From 93125a715a80cfa582a23bd281069a09b4eb05f2 Mon Sep 17 00:00:00 2001 From: HSunboy Date: Tue, 31 Dec 2019 18:34:31 +0800 Subject: [PATCH] update new parser --- README.md | 3 +- jest.config.js | 2 +- package.json | 2 +- .../generic/genericAutocompleteParser.js | 3578 +++++++ src/core/parse/generic/genericSyntaxParser.js | 3539 +++++++ src/core/parse/generic/sqlParseSupport.js | 2221 ++++ src/core/parse/hive/hiveAutocompleteParser.js | 5883 +++++++++++ src/core/parse/hive/hiveSyntaxParser.js | 5812 +++++++++++ src/core/parse/hive/sqlParseSupport.js | 2471 +++++ .../parse/impala/impalaAutocompleteParser.js | 5382 ++++++++++ src/core/parse/impala/impalaSyntaxParser.js | 5330 ++++++++++ src/core/parse/impala/sqlParseSupport.js | 2545 +++++ src/core/parse/sqlFunctions.js | 4951 +++++++++ src/core/parse/sqlParserRepository.js | 74 + src/core/parse/stringDistance.js | 77 + src/core/sqlAutoCompleteParser.js | 9283 ----------------- src/core/sqlSyntaxParser.js | 9197 ---------------- src/jison/autocomplete_footer.jison | 0 src/jison/autocomplete_header.jison | 0 src/jison/comment.txt | 10 - src/jison/globalSearchParser.jison | 0 src/jison/solrFormulaParser.jison | 0 src/jison/solrQueryParser.jison | 0 src/jison/sql-autocomplete.sh | 36 - src/jison/sql-syntax.sh | 37 - src/jison/sql.jisonlex | 244 +- .../calcite/autocomplete_footer.jison} | 4 + .../sql/calcite/autocomplete_header.jison | 29 + src/jison/sql/calcite/sql.jisonlex | 226 + src/jison/sql/calcite/sql_alter.jison | 109 + src/jison/sql/calcite/sql_create.jison | 615 ++ src/jison/sql/calcite/sql_drop.jison | 184 + src/jison/sql/calcite/sql_error.jison | 132 + src/jison/sql/calcite/sql_insert.jison | 72 + src/jison/sql/calcite/sql_main.jison | 2762 +++++ src/jison/sql/calcite/sql_set.jison | 46 + src/jison/sql/calcite/sql_update.jison | 122 + src/jison/sql/calcite/sql_use.jison | 39 + .../sql/calcite/sql_valueExpression.jison | 839 ++ src/jison/sql/calcite/syntax_footer.jison | 19 + src/jison/sql/calcite/syntax_header.jison | 28 + src/jison/sql/druid/autocomplete_footer.jison | 19 + src/jison/sql/druid/autocomplete_header.jison | 29 + src/jison/sql/druid/sql.jisonlex | 226 + src/jison/sql/druid/sql_alter.jison | 109 + src/jison/sql/druid/sql_create.jison | 615 ++ src/jison/sql/druid/sql_drop.jison | 184 + src/jison/sql/druid/sql_error.jison | 132 + src/jison/sql/druid/sql_insert.jison | 72 + src/jison/sql/druid/sql_main.jison | 2762 +++++ src/jison/sql/druid/sql_set.jison | 46 + src/jison/sql/druid/sql_update.jison | 122 + src/jison/sql/druid/sql_use.jison | 39 + src/jison/sql/druid/sql_valueExpression.jison | 839 ++ src/jison/sql/druid/syntax_footer.jison | 19 + src/jison/sql/druid/syntax_header.jison | 28 + .../elasticsearch/autocomplete_footer.jison | 19 + .../elasticsearch/autocomplete_header.jison | 29 + src/jison/sql/elasticsearch/sql.jisonlex | 226 + src/jison/sql/elasticsearch/sql_alter.jison | 109 + src/jison/sql/elasticsearch/sql_create.jison | 615 ++ src/jison/sql/elasticsearch/sql_drop.jison | 184 + src/jison/sql/elasticsearch/sql_error.jison | 132 + src/jison/sql/elasticsearch/sql_insert.jison | 72 + src/jison/sql/elasticsearch/sql_main.jison | 2762 +++++ src/jison/sql/elasticsearch/sql_set.jison | 46 + src/jison/sql/elasticsearch/sql_update.jison | 122 + src/jison/sql/elasticsearch/sql_use.jison | 39 + .../elasticsearch/sql_valueExpression.jison | 839 ++ .../sql/elasticsearch/syntax_footer.jison | 19 + .../sql/elasticsearch/syntax_header.jison | 28 + src/jison/sql/flink/autocomplete_footer.jison | 19 + src/jison/sql/flink/autocomplete_header.jison | 29 + src/jison/sql/flink/sql.jisonlex | 279 + src/jison/sql/flink/sql_create.jison | 615 ++ src/jison/sql/flink/sql_drop.jison | 184 + src/jison/sql/flink/sql_error.jison | 132 + src/jison/sql/flink/sql_insert.jison | 72 + src/jison/sql/flink/sql_list.jison | 37 + src/jison/sql/flink/sql_main.jison | 2762 +++++ src/jison/sql/flink/sql_set.jison | 46 + src/jison/sql/flink/sql_show.jison | 39 + src/jison/sql/flink/sql_valueExpression.jison | 839 ++ src/jison/sql/flink/syntax_footer.jison | 19 + src/jison/sql/flink/syntax_header.jison | 28 + .../sql/generic/autocomplete_footer.jison | 19 + .../sql/generic/autocomplete_header.jison | 29 + src/jison/sql/generic/sql.jisonlex | 226 + src/jison/sql/generic/sql_alter.jison | 109 + src/jison/sql/generic/sql_create.jison | 615 ++ src/jison/sql/generic/sql_drop.jison | 184 + src/jison/sql/generic/sql_error.jison | 132 + src/jison/sql/generic/sql_insert.jison | 72 + src/jison/sql/generic/sql_main.jison | 2762 +++++ src/jison/sql/generic/sql_set.jison | 46 + src/jison/sql/generic/sql_update.jison | 122 + src/jison/sql/generic/sql_use.jison | 39 + .../sql/generic/sql_valueExpression.jison | 839 ++ src/jison/sql/generic/syntax_footer.jison | 19 + src/jison/sql/generic/syntax_header.jison | 28 + src/jison/sql/hive/autocomplete_footer.jison | 19 + src/jison/sql/hive/autocomplete_header.jison | 29 + src/jison/sql/hive/sql.jisonlex | 419 + src/jison/sql/hive/sql_alter.jison | 867 ++ src/jison/sql/hive/sql_analyze.jison | 236 + src/jison/sql/hive/sql_create.jison | 1629 +++ src/jison/sql/hive/sql_drop.jison | 348 + src/jison/sql/hive/sql_error.jison | 169 + src/jison/sql/hive/sql_grant.jison | 378 + src/jison/sql/hive/sql_insert.jison | 536 + src/jison/sql/hive/sql_load.jison | 293 + src/jison/sql/hive/sql_main.jison | 3683 +++++++ src/jison/sql/hive/sql_set.jison | 62 + src/jison/sql/hive/sql_show.jison | 535 + src/jison/sql/hive/sql_update.jison | 124 + src/jison/sql/hive/sql_use.jison | 42 + src/jison/sql/hive/sql_valueExpression.jison | 839 ++ src/jison/sql/hive/syntax_footer.jison | 19 + src/jison/sql/hive/syntax_header.jison | 28 + .../sql/impala/autocomplete_footer.jison | 19 + .../sql/impala/autocomplete_header.jison | 29 + src/jison/sql/impala/sql.jisonlex | 535 + src/jison/sql/impala/sql_alter.jison | 573 + src/jison/sql/impala/sql_analyze.jison | 164 + src/jison/sql/impala/sql_create.jison | 1285 +++ src/jison/sql/impala/sql_drop.jison | 354 + src/jison/sql/impala/sql_error.jison | 142 + src/jison/sql/impala/sql_grant.jison | 194 + src/jison/sql/impala/sql_insert.jison | 242 + src/jison/sql/impala/sql_load.jison | 80 + src/jison/sql/impala/sql_main.jison | 3581 +++++++ src/jison/sql/impala/sql_set.jison | 47 + src/jison/sql/impala/sql_show.jison | 372 + src/jison/sql/impala/sql_update.jison | 138 + src/jison/sql/impala/sql_use.jison | 39 + .../sql/impala/sql_valueExpression.jison | 828 ++ src/jison/sql/impala/syntax_footer.jison | 19 + src/jison/sql/impala/syntax_header.jison | 28 + src/jison/sql/ksql/autocomplete_footer.jison | 19 + src/jison/sql/ksql/autocomplete_header.jison | 29 + src/jison/sql/ksql/sql.jisonlex | 228 + src/jison/sql/ksql/sql_create.jison | 615 ++ src/jison/sql/ksql/sql_drop.jison | 184 + src/jison/sql/ksql/sql_error.jison | 132 + src/jison/sql/ksql/sql_insert.jison | 72 + src/jison/sql/ksql/sql_list.jison | 37 + src/jison/sql/ksql/sql_main.jison | 2762 +++++ src/jison/sql/ksql/sql_set.jison | 46 + src/jison/sql/ksql/sql_show.jison | 39 + src/jison/sql/ksql/sql_valueExpression.jison | 839 ++ src/jison/sql/ksql/syntax_footer.jison | 19 + src/jison/sql/ksql/syntax_header.jison | 28 + .../sql/phoenix/autocomplete_footer.jison | 19 + .../sql/phoenix/autocomplete_header.jison | 29 + src/jison/sql/phoenix/sql.jisonlex | 226 + src/jison/sql/phoenix/sql_alter.jison | 109 + src/jison/sql/phoenix/sql_create.jison | 615 ++ src/jison/sql/phoenix/sql_drop.jison | 184 + src/jison/sql/phoenix/sql_error.jison | 132 + src/jison/sql/phoenix/sql_insert.jison | 72 + src/jison/sql/phoenix/sql_main.jison | 2762 +++++ src/jison/sql/phoenix/sql_set.jison | 46 + src/jison/sql/phoenix/sql_update.jison | 122 + src/jison/sql/phoenix/sql_use.jison | 39 + .../sql/phoenix/sql_valueExpression.jison | 839 ++ src/jison/sql/phoenix/syntax_footer.jison | 19 + src/jison/sql/phoenix/syntax_header.jison | 28 + .../sql/presto/autocomplete_footer.jison | 19 + .../sql/presto/autocomplete_header.jison | 29 + src/jison/sql/presto/sql.jisonlex | 406 + src/jison/sql/presto/sql_alter.jison | 795 ++ src/jison/sql/presto/sql_analyze.jison | 132 + src/jison/sql/presto/sql_create.jison | 1408 +++ src/jison/sql/presto/sql_drop.jison | 321 + src/jison/sql/presto/sql_error.jison | 169 + src/jison/sql/presto/sql_grant.jison | 378 + src/jison/sql/presto/sql_insert.jison | 536 + src/jison/sql/presto/sql_load.jison | 271 + src/jison/sql/presto/sql_main.jison | 3665 +++++++ src/jison/sql/presto/sql_set.jison | 62 + src/jison/sql/presto/sql_show.jison | 512 + src/jison/sql/presto/sql_update.jison | 124 + src/jison/sql/presto/sql_use.jison | 42 + .../sql/presto/sql_valueExpression.jison | 839 ++ src/jison/sql/presto/syntax_footer.jison | 19 + src/jison/sql/presto/syntax_header.jison | 28 + src/jison/sqlParseSupport.js | 2278 ---- src/jison/sqlStatementsParser.jison | 63 +- src/jison/sql_alter.jison | 49 +- src/jison/sql_analyze.jison | 3 +- src/jison/sql_create.jison | 453 +- src/jison/sql_drop.jison | 0 src/jison/sql_error.jison | 0 src/jison/sql_grant.jison | 19 +- src/jison/sql_insert.jison | 7 +- src/jison/sql_load.jison | 0 src/jison/sql_main.jison | 698 +- src/jison/sql_set.jison | 0 src/jison/sql_show.jison | 51 +- src/jison/sql_update.jison | 0 src/jison/sql_use.jison | 0 src/jison/sql_valueExpression.jison | 0 src/jison/syntax_footer.jison | 3 +- src/jison/syntax_header.jison | 0 src/lib/parser.ts | 53 +- src/scripts/generateParsers.js | 571 + test/index.test.ts | 16 +- 207 files changed, 108782 insertions(+), 21177 deletions(-) create mode 100644 src/core/parse/generic/genericAutocompleteParser.js create mode 100644 src/core/parse/generic/genericSyntaxParser.js create mode 100644 src/core/parse/generic/sqlParseSupport.js create mode 100644 src/core/parse/hive/hiveAutocompleteParser.js create mode 100644 src/core/parse/hive/hiveSyntaxParser.js create mode 100644 src/core/parse/hive/sqlParseSupport.js create mode 100644 src/core/parse/impala/impalaAutocompleteParser.js create mode 100644 src/core/parse/impala/impalaSyntaxParser.js create mode 100644 src/core/parse/impala/sqlParseSupport.js create mode 100644 src/core/parse/sqlFunctions.js create mode 100644 src/core/parse/sqlParserRepository.js create mode 100644 src/core/parse/stringDistance.js delete mode 100644 src/core/sqlAutoCompleteParser.js delete mode 100644 src/core/sqlSyntaxParser.js mode change 100755 => 100644 src/jison/autocomplete_footer.jison mode change 100755 => 100644 src/jison/autocomplete_header.jison delete mode 100644 src/jison/comment.txt mode change 100755 => 100644 src/jison/globalSearchParser.jison mode change 100755 => 100644 src/jison/solrFormulaParser.jison mode change 100755 => 100644 src/jison/solrQueryParser.jison delete mode 100755 src/jison/sql-autocomplete.sh delete mode 100755 src/jison/sql-syntax.sh mode change 100755 => 100644 src/jison/sql.jisonlex rename src/jison/{license.txt => sql/calcite/autocomplete_footer.jison} (94%) mode change 100755 => 100644 create mode 100644 src/jison/sql/calcite/autocomplete_header.jison create mode 100644 src/jison/sql/calcite/sql.jisonlex create mode 100644 src/jison/sql/calcite/sql_alter.jison create mode 100644 src/jison/sql/calcite/sql_create.jison create mode 100644 src/jison/sql/calcite/sql_drop.jison create mode 100644 src/jison/sql/calcite/sql_error.jison create mode 100644 src/jison/sql/calcite/sql_insert.jison create mode 100644 src/jison/sql/calcite/sql_main.jison create mode 100644 src/jison/sql/calcite/sql_set.jison create mode 100644 src/jison/sql/calcite/sql_update.jison create mode 100644 src/jison/sql/calcite/sql_use.jison create mode 100644 src/jison/sql/calcite/sql_valueExpression.jison create mode 100644 src/jison/sql/calcite/syntax_footer.jison create mode 100644 src/jison/sql/calcite/syntax_header.jison create mode 100644 src/jison/sql/druid/autocomplete_footer.jison create mode 100644 src/jison/sql/druid/autocomplete_header.jison create mode 100644 src/jison/sql/druid/sql.jisonlex create mode 100644 src/jison/sql/druid/sql_alter.jison create mode 100644 src/jison/sql/druid/sql_create.jison create mode 100644 src/jison/sql/druid/sql_drop.jison create mode 100644 src/jison/sql/druid/sql_error.jison create mode 100644 src/jison/sql/druid/sql_insert.jison create mode 100644 src/jison/sql/druid/sql_main.jison create mode 100644 src/jison/sql/druid/sql_set.jison create mode 100644 src/jison/sql/druid/sql_update.jison create mode 100644 src/jison/sql/druid/sql_use.jison create mode 100644 src/jison/sql/druid/sql_valueExpression.jison create mode 100644 src/jison/sql/druid/syntax_footer.jison create mode 100644 src/jison/sql/druid/syntax_header.jison create mode 100644 src/jison/sql/elasticsearch/autocomplete_footer.jison create mode 100644 src/jison/sql/elasticsearch/autocomplete_header.jison create mode 100644 src/jison/sql/elasticsearch/sql.jisonlex create mode 100644 src/jison/sql/elasticsearch/sql_alter.jison create mode 100644 src/jison/sql/elasticsearch/sql_create.jison create mode 100644 src/jison/sql/elasticsearch/sql_drop.jison create mode 100644 src/jison/sql/elasticsearch/sql_error.jison create mode 100644 src/jison/sql/elasticsearch/sql_insert.jison create mode 100644 src/jison/sql/elasticsearch/sql_main.jison create mode 100644 src/jison/sql/elasticsearch/sql_set.jison create mode 100644 src/jison/sql/elasticsearch/sql_update.jison create mode 100644 src/jison/sql/elasticsearch/sql_use.jison create mode 100644 src/jison/sql/elasticsearch/sql_valueExpression.jison create mode 100644 src/jison/sql/elasticsearch/syntax_footer.jison create mode 100644 src/jison/sql/elasticsearch/syntax_header.jison create mode 100644 src/jison/sql/flink/autocomplete_footer.jison create mode 100644 src/jison/sql/flink/autocomplete_header.jison create mode 100644 src/jison/sql/flink/sql.jisonlex create mode 100644 src/jison/sql/flink/sql_create.jison create mode 100644 src/jison/sql/flink/sql_drop.jison create mode 100644 src/jison/sql/flink/sql_error.jison create mode 100644 src/jison/sql/flink/sql_insert.jison create mode 100644 src/jison/sql/flink/sql_list.jison create mode 100644 src/jison/sql/flink/sql_main.jison create mode 100644 src/jison/sql/flink/sql_set.jison create mode 100644 src/jison/sql/flink/sql_show.jison create mode 100644 src/jison/sql/flink/sql_valueExpression.jison create mode 100644 src/jison/sql/flink/syntax_footer.jison create mode 100644 src/jison/sql/flink/syntax_header.jison create mode 100644 src/jison/sql/generic/autocomplete_footer.jison create mode 100644 src/jison/sql/generic/autocomplete_header.jison create mode 100644 src/jison/sql/generic/sql.jisonlex create mode 100644 src/jison/sql/generic/sql_alter.jison create mode 100644 src/jison/sql/generic/sql_create.jison create mode 100644 src/jison/sql/generic/sql_drop.jison create mode 100644 src/jison/sql/generic/sql_error.jison create mode 100644 src/jison/sql/generic/sql_insert.jison create mode 100644 src/jison/sql/generic/sql_main.jison create mode 100644 src/jison/sql/generic/sql_set.jison create mode 100644 src/jison/sql/generic/sql_update.jison create mode 100644 src/jison/sql/generic/sql_use.jison create mode 100644 src/jison/sql/generic/sql_valueExpression.jison create mode 100644 src/jison/sql/generic/syntax_footer.jison create mode 100644 src/jison/sql/generic/syntax_header.jison create mode 100644 src/jison/sql/hive/autocomplete_footer.jison create mode 100644 src/jison/sql/hive/autocomplete_header.jison create mode 100644 src/jison/sql/hive/sql.jisonlex create mode 100644 src/jison/sql/hive/sql_alter.jison create mode 100644 src/jison/sql/hive/sql_analyze.jison create mode 100644 src/jison/sql/hive/sql_create.jison create mode 100644 src/jison/sql/hive/sql_drop.jison create mode 100644 src/jison/sql/hive/sql_error.jison create mode 100644 src/jison/sql/hive/sql_grant.jison create mode 100644 src/jison/sql/hive/sql_insert.jison create mode 100644 src/jison/sql/hive/sql_load.jison create mode 100644 src/jison/sql/hive/sql_main.jison create mode 100644 src/jison/sql/hive/sql_set.jison create mode 100644 src/jison/sql/hive/sql_show.jison create mode 100644 src/jison/sql/hive/sql_update.jison create mode 100644 src/jison/sql/hive/sql_use.jison create mode 100644 src/jison/sql/hive/sql_valueExpression.jison create mode 100644 src/jison/sql/hive/syntax_footer.jison create mode 100644 src/jison/sql/hive/syntax_header.jison create mode 100644 src/jison/sql/impala/autocomplete_footer.jison create mode 100644 src/jison/sql/impala/autocomplete_header.jison create mode 100644 src/jison/sql/impala/sql.jisonlex create mode 100644 src/jison/sql/impala/sql_alter.jison create mode 100644 src/jison/sql/impala/sql_analyze.jison create mode 100644 src/jison/sql/impala/sql_create.jison create mode 100644 src/jison/sql/impala/sql_drop.jison create mode 100644 src/jison/sql/impala/sql_error.jison create mode 100644 src/jison/sql/impala/sql_grant.jison create mode 100644 src/jison/sql/impala/sql_insert.jison create mode 100644 src/jison/sql/impala/sql_load.jison create mode 100644 src/jison/sql/impala/sql_main.jison create mode 100644 src/jison/sql/impala/sql_set.jison create mode 100644 src/jison/sql/impala/sql_show.jison create mode 100644 src/jison/sql/impala/sql_update.jison create mode 100644 src/jison/sql/impala/sql_use.jison create mode 100644 src/jison/sql/impala/sql_valueExpression.jison create mode 100644 src/jison/sql/impala/syntax_footer.jison create mode 100644 src/jison/sql/impala/syntax_header.jison create mode 100644 src/jison/sql/ksql/autocomplete_footer.jison create mode 100644 src/jison/sql/ksql/autocomplete_header.jison create mode 100644 src/jison/sql/ksql/sql.jisonlex create mode 100644 src/jison/sql/ksql/sql_create.jison create mode 100644 src/jison/sql/ksql/sql_drop.jison create mode 100644 src/jison/sql/ksql/sql_error.jison create mode 100644 src/jison/sql/ksql/sql_insert.jison create mode 100644 src/jison/sql/ksql/sql_list.jison create mode 100644 src/jison/sql/ksql/sql_main.jison create mode 100644 src/jison/sql/ksql/sql_set.jison create mode 100644 src/jison/sql/ksql/sql_show.jison create mode 100644 src/jison/sql/ksql/sql_valueExpression.jison create mode 100644 src/jison/sql/ksql/syntax_footer.jison create mode 100644 src/jison/sql/ksql/syntax_header.jison create mode 100644 src/jison/sql/phoenix/autocomplete_footer.jison create mode 100644 src/jison/sql/phoenix/autocomplete_header.jison create mode 100644 src/jison/sql/phoenix/sql.jisonlex create mode 100644 src/jison/sql/phoenix/sql_alter.jison create mode 100644 src/jison/sql/phoenix/sql_create.jison create mode 100644 src/jison/sql/phoenix/sql_drop.jison create mode 100644 src/jison/sql/phoenix/sql_error.jison create mode 100644 src/jison/sql/phoenix/sql_insert.jison create mode 100644 src/jison/sql/phoenix/sql_main.jison create mode 100644 src/jison/sql/phoenix/sql_set.jison create mode 100644 src/jison/sql/phoenix/sql_update.jison create mode 100644 src/jison/sql/phoenix/sql_use.jison create mode 100644 src/jison/sql/phoenix/sql_valueExpression.jison create mode 100644 src/jison/sql/phoenix/syntax_footer.jison create mode 100644 src/jison/sql/phoenix/syntax_header.jison create mode 100644 src/jison/sql/presto/autocomplete_footer.jison create mode 100644 src/jison/sql/presto/autocomplete_header.jison create mode 100644 src/jison/sql/presto/sql.jisonlex create mode 100644 src/jison/sql/presto/sql_alter.jison create mode 100644 src/jison/sql/presto/sql_analyze.jison create mode 100644 src/jison/sql/presto/sql_create.jison create mode 100644 src/jison/sql/presto/sql_drop.jison create mode 100644 src/jison/sql/presto/sql_error.jison create mode 100644 src/jison/sql/presto/sql_grant.jison create mode 100644 src/jison/sql/presto/sql_insert.jison create mode 100644 src/jison/sql/presto/sql_load.jison create mode 100644 src/jison/sql/presto/sql_main.jison create mode 100644 src/jison/sql/presto/sql_set.jison create mode 100644 src/jison/sql/presto/sql_show.jison create mode 100644 src/jison/sql/presto/sql_update.jison create mode 100644 src/jison/sql/presto/sql_use.jison create mode 100644 src/jison/sql/presto/sql_valueExpression.jison create mode 100644 src/jison/sql/presto/syntax_footer.jison create mode 100644 src/jison/sql/presto/syntax_header.jison delete mode 100755 src/jison/sqlParseSupport.js mode change 100755 => 100644 src/jison/sqlStatementsParser.jison mode change 100755 => 100644 src/jison/sql_alter.jison mode change 100755 => 100644 src/jison/sql_analyze.jison mode change 100755 => 100644 src/jison/sql_create.jison mode change 100755 => 100644 src/jison/sql_drop.jison mode change 100755 => 100644 src/jison/sql_error.jison mode change 100755 => 100644 src/jison/sql_grant.jison mode change 100755 => 100644 src/jison/sql_insert.jison mode change 100755 => 100644 src/jison/sql_load.jison mode change 100755 => 100644 src/jison/sql_main.jison mode change 100755 => 100644 src/jison/sql_set.jison mode change 100755 => 100644 src/jison/sql_show.jison mode change 100755 => 100644 src/jison/sql_update.jison mode change 100755 => 100644 src/jison/sql_use.jison mode change 100755 => 100644 src/jison/sql_valueExpression.jison mode change 100755 => 100644 src/jison/syntax_footer.jison mode change 100755 => 100644 src/jison/syntax_header.jison create mode 100644 src/scripts/generateParsers.js diff --git a/README.md b/README.md index fcf0c3d..86ce341 100644 --- a/README.md +++ b/README.md @@ -97,4 +97,5 @@ hive,impala语法解析文件来自[Hue](https://github.com/cloudera/hue) - 1.1.8 添加转义字符支持 - 1.1.9 添加函数的中括号语法支持( split(nameList)[0] ) - 1.2.0 添加 ts,添加测试 -- 2.0.0 添加flinksql语法检查 \ No newline at end of file +- 2.0.0 添加flinksql语法检查 +- 3.0.0 拆分hive,impala,集成最新 `HUE` 方案 \ No newline at end of file diff --git a/jest.config.js b/jest.config.js index 802a0a6..af3fab7 100644 --- a/jest.config.js +++ b/jest.config.js @@ -165,7 +165,7 @@ module.exports = { // A map from regular expressions to paths to transformers transform: { - '^.+\\.tsx?$': 'ts-jest' + '^.+\\.(t|j)sx?$': 'ts-jest' }, // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation diff --git a/package.json b/package.json index 68fa126..d4f250c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dt-sql-parser", - "version": "2.0.11", + "version": "3.0.0", "description": "sql,hive,parser ", "keywords": [ "hive", diff --git a/src/core/parse/generic/genericAutocompleteParser.js b/src/core/parse/generic/genericAutocompleteParser.js new file mode 100644 index 0000000..85564db --- /dev/null +++ b/src/core/parse/generic/genericAutocompleteParser.js @@ -0,0 +1,3578 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +/* parser generated by jison 0.4.18 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +import SqlParseSupport from './sqlParseSupport'; + +var genericAutocompleteParser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,13,14,20,24,28,40,53,54,69,71,73,77,87,88,99,100,101,104,105,117,118,121,132,134,142,152,157,158,163,168,170,183,185,187,188,189,190,191,192,193,194,217,218,225,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,357,500,514],$V1=[2,360],$V2=[163,225],$V3=[2,260],$V4=[1,5],$V5=[1,93],$V6=[1,134],$V7=[1,162],$V8=[1,101],$V9=[1,27],$Va=[1,166],$Vb=[1,94],$Vc=[1,47],$Vd=[1,67],$Ve=[1,10],$Vf=[1,11],$Vg=[1,13],$Vh=[1,72],$Vi=[1,73],$Vj=[1,26],$Vk=[1,16],$Vl=[1,18],$Vm=[1,69],$Vn=[1,99],$Vo=[1,80],$Vp=[1,34],$Vq=[1,83],$Vr=[1,109],$Vs=[1,38],$Vt=[1,88],$Vu=[1,171],$Vv=[1,82],$Vw=[1,175],$Vx=[1,125],$Vy=[1,159],$Vz=[1,17],$VA=[1,22],$VB=[1,55],$VC=[1,66],$VD=[1,86],$VE=[1,40],$VF=[1,65],$VG=[1,78],$VH=[1,61],$VI=[1,92],$VJ=[1,172],$VK=[1,63],$VL=[1,75],$VM=[1,85],$VN=[1,113],$VO=[1,9],$VP=[1,12],$VQ=[1,14],$VR=[1,15],$VS=[1,19],$VT=[1,20],$VU=[1,21],$VV=[1,23],$VW=[1,24],$VX=[1,25],$VY=[1,28],$VZ=[1,29],$V_=[1,30],$V$=[1,31],$V01=[1,32],$V11=[1,33],$V21=[1,35],$V31=[1,36],$V41=[1,37],$V51=[1,39],$V61=[1,41],$V71=[1,42],$V81=[1,43],$V91=[1,44],$Va1=[1,45],$Vb1=[1,46],$Vc1=[1,48],$Vd1=[1,49],$Ve1=[1,50],$Vf1=[1,51],$Vg1=[1,52],$Vh1=[1,53],$Vi1=[1,54],$Vj1=[1,56],$Vk1=[1,57],$Vl1=[1,58],$Vm1=[1,59],$Vn1=[1,60],$Vo1=[1,62],$Vp1=[1,64],$Vq1=[1,68],$Vr1=[1,70],$Vs1=[1,71],$Vt1=[1,74],$Vu1=[1,76],$Vv1=[1,77],$Vw1=[1,79],$Vx1=[1,81],$Vy1=[1,84],$Vz1=[1,87],$VA1=[1,89],$VB1=[1,90],$VC1=[1,91],$VD1=[1,95],$VE1=[1,96],$VF1=[1,97],$VG1=[1,98],$VH1=[1,100],$VI1=[1,102],$VJ1=[1,103],$VK1=[1,104],$VL1=[1,105],$VM1=[1,106],$VN1=[1,107],$VO1=[1,108],$VP1=[1,110],$VQ1=[1,111],$VR1=[1,112],$VS1=[1,114],$VT1=[1,115],$VU1=[1,116],$VV1=[1,135],$VW1=[1,136],$VX1=[1,158],$VY1=[1,156],$VZ1=[2,458],$V_1=[1,192],$V$1=[1,190],$V02=[1,185],$V12=[1,191],$V22=[1,187],$V32=[1,188],$V42=[1,196],$V52=[73,163,225],$V62=[2,633],$V72=[1,204],$V82=[2,484],$V92=[1,211],$Va2=[2,73,163,225],$Vb2=[1,214],$Vc2=[1,217],$Vd2=[1,231],$Ve2=[2,658],$Vf2=[1,233],$Vg2=[1,234],$Vh2=[1,242],$Vi2=[1,243],$Vj2=[1,244],$Vk2=[1,247],$Vl2=[1,254],$Vm2=[2,13,20,24,28,40,53,54,69,71,73,77,87,88,99,100,101,104,105,117,118,121,132,134,142,152,157,158,163,170,183,185,187,188,189,190,191,192,193,194,217,218,225,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,357,500,514],$Vn2=[183,235],$Vo2=[2,13,14,28,50,53,54,69,71,73,77,87,99,100,101,104,105,112,117,121,132,134,142,157,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,235,240,241,242,244,245,246,247,250,254,255,257,258,259,262,264,265,266,269,270,271,272,275,276,277,280,281,283,285,288,290,291,292,294,299,301,302,315,390],$Vp2=[2,634],$Vq2=[2,73,163,225,294],$Vr2=[2,646],$Vs2=[2,71,73,163,170,225],$Vt2=[2,14,71,73,77,163,170,225],$Vu2=[1,279],$Vv2=[1,280],$Vw2=[1,285],$Vx2=[13,14,163,225],$Vy2=[13,163,225],$Vz2=[13,14,105,142,163,225,229,230,231,244],$VA2=[2,581],$VB2=[13,105,142,163,225,229,230,231,244],$VC2=[1,303],$VD2=[1,366],$VE2=[1,367],$VF2=[1,315],$VG2=[1,310],$VH2=[1,322],$VI2=[1,328],$VJ2=[1,330],$VK2=[1,331],$VL2=[1,304],$VM2=[1,311],$VN2=[1,306],$VO2=[1,313],$VP2=[1,364],$VQ2=[1,312],$VR2=[1,346],$VS2=[1,370],$VT2=[1,316],$VU2=[1,347],$VV2=[1,358],$VW2=[1,314],$VX2=[1,369],$VY2=[1,329],$VZ2=[1,371],$V_2=[1,372],$V$2=[1,373],$V03=[1,374],$V13=[1,359],$V23=[1,368],$V33=[1,363],$V43=[1,365],$V53=[1,375],$V63=[1,376],$V73=[1,377],$V83=[2,14,53,54,71,73,77,87,88,99,104,105,142,158,170,181,229,230,231,232,233,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300,303],$V93=[2,508],$Va3=[1,388],$Vb3=[14,105,142,229,230,231,244],$Vc3=[14,105,142,163,225,229,230,231,244,268],$Vd3=[14,105,142,163,225,229,230,231,244],$Ve3=[2,505],$Vf3=[1,396],$Vg3=[2,355],$Vh3=[1,403],$Vi3=[2,16],$Vj3=[1,415],$Vk3=[1,424],$Vl3=[1,420],$Vm3=[1,421],$Vn3=[1,422],$Vo3=[1,423],$Vp3=[1,417],$Vq3=[1,416],$Vr3=[1,438],$Vs3=[1,439],$Vt3=[2,71,73,77,163,170,225],$Vu3=[1,466],$Vv3=[1,461],$Vw3=[1,462],$Vx3=[1,464],$Vy3=[1,463],$Vz3=[1,473],$VA3=[1,467],$VB3=[1,474],$VC3=[1,475],$VD3=[1,465],$VE3=[1,476],$VF3=[1,483],$VG3=[1,490],$VH3=[2,13,28,50,53,54,69,71,73,77,87,100,101,105,117,132,134,142,157,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,235,240,241,242,244,245,255,258,259,264,265,266,269,272,275,276,277,280,281,290,294,301,302,390],$VI3=[1,496],$VJ3=[73,163,225,294],$VK3=[2,272],$VL3=[1,497],$VM3=[1,504],$VN3=[1,519],$VO3=[1,508],$VP3=[1,518],$VQ3=[1,510],$VR3=[1,511],$VS3=[1,512],$VT3=[1,509],$VU3=[1,515],$VV3=[1,514],$VW3=[1,516],$VX3=[1,513],$VY3=[1,521],$VZ3=[1,520],$V_3=[2,284],$V$3=[2,14,73,77,163,175,225,264,294],$V04=[2,73,163,225,264,294],$V14=[77,264],$V24=[2,1010],$V34=[1,544],$V44=[1,547],$V54=[1,532],$V64=[1,529],$V74=[1,530],$V84=[1,531],$V94=[1,528],$Va4=[1,538],$Vb4=[1,537],$Vc4=[1,536],$Vd4=[1,539],$Ve4=[1,534],$Vf4=[1,533],$Vg4=[1,527],$Vh4=[1,535],$Vi4=[1,549],$Vj4=[1,548],$Vk4=[2,906],$Vl4=[2,73,77,163,225,264,294],$Vm4=[1,566],$Vn4=[1,557],$Vo4=[1,554],$Vp4=[1,555],$Vq4=[1,556],$Vr4=[1,553],$Vs4=[1,563],$Vt4=[1,562],$Vu4=[1,561],$Vv4=[1,564],$Vw4=[1,559],$Vx4=[1,558],$Vy4=[1,560],$Vz4=[1,567],$VA4=[2,14,28,53,54,69,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,280,281,283,290,294,301,302,390],$VB4=[1,574],$VC4=[1,578],$VD4=[1,584],$VE4=[1,595],$VF4=[1,598],$VG4=[2,28,53,54,69,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,272,276,277,280,281,290,294,301,302,390],$VH4=[2,866],$VI4=[1,601],$VJ4=[2,14,28,53,54,69,71,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,280,281,283,290,294,301,302,390],$VK4=[2,876],$VL4=[2,1054],$VM4=[1,609],$VN4=[1,614],$VO4=[2,14,28,50,53,54,69,71,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,235,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,280,281,283,290,294,301,302,390],$VP4=[2,14,28,53,54,69,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,278,280,281,283,290,294,301,302,390],$VQ4=[1,625],$VR4=[1,624],$VS4=[1,628],$VT4=[1,627],$VU4=[117,163,225],$VV4=[2,555],$VW4=[2,28,53,54,73,77,105,117,132,142,157,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,275,277,294,302],$VX4=[2,41],$VY4=[1,652],$VZ4=[1,673],$V_4=[105,142,163,225,229,230,231],$V$4=[2,14,28,50,73,77,87,88,101,163,175,187,188,189,190,191,192,193,194,225,264,265,266,272,275,277,294,302],$V05=[1,697],$V15=[170,357],$V25=[2,988],$V35=[1,710],$V45=[1,707],$V55=[1,708],$V65=[1,709],$V75=[1,706],$V85=[1,716],$V95=[1,715],$Va5=[1,714],$Vb5=[1,717],$Vc5=[1,712],$Vd5=[1,711],$Ve5=[1,705],$Vf5=[1,713],$Vg5=[1,722],$Vh5=[1,726],$Vi5=[2,28,53,54,69,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,280,281,283,290,294,301,302,390],$Vj5=[1,727],$Vk5=[14,163,225,302],$Vl5=[2,1188],$Vm5=[163,225,302],$Vn5=[1,739],$Vo5=[14,77,163,225,264,302],$Vp5=[163,225,264,302],$Vq5=[77,163,225,264,302],$Vr5=[2,14,50,73,77,183],$Vs5=[1,745],$Vt5=[73,163,225,265,266,272,277,294],$Vu5=[2,672],$Vv5=[1,753],$Vw5=[2,73,163,225,265,266,272,277,294],$Vx5=[1,757],$Vy5=[1,787],$Vz5=[1,804],$VA5=[1,806],$VB5=[88,256,261,293],$VC5=[2,903],$VD5=[2,14,73,77,163,175,187,188,189,190,191,192,193,194,225,264,265,266,272,275,277,294,302],$VE5=[2,73,77,163,187,188,189,190,191,192,193,194,225,264,265,266,272,275,277,294,302],$VF5=[1,857],$VG5=[2,14,28,53,54,73,77,87,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$VH5=[2,734],$VI5=[2,28,53,54,73,77,87,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,290,294,301,302,390],$VJ5=[2,28,53,54,73,77,87,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,234,240,242,244,245,255,258,259,264,265,266,269,272,276,277,290,294,301,302,390],$VK5=[1,880],$VL5=[2,735],$VM5=[2,736],$VN5=[1,881],$VO5=[2,14,28,53,54,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$VP5=[2,737],$VQ5=[2,28,53,54,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,272,276,277,290,294,301,302,390],$VR5=[1,886],$VS5=[1,889],$VT5=[1,888],$VU5=[1,900],$VV5=[1,896],$VW5=[1,899],$VX5=[1,898],$VY5=[1,903],$VZ5=[2,14,258,259,301],$V_5=[2,258,259],$V$5=[1,916],$V06=[1,922],$V16=[1,923],$V26=[1,931],$V36=[1,936],$V46=[1,941],$V56=[1,940],$V66=[1,944],$V76=[1,949],$V86=[2,14,28,50,53,54,69,73,77,87,88,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,275,276,277,280,281,283,290,294,301,302,390],$V96=[2,28,53,54,69,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,272,275,276,277,280,281,290,294,301,302,390],$Va6=[1,950],$Vb6=[14,163,225],$Vc6=[2,51],$Vd6=[1,962],$Ve6=[14,28,163,225],$Vf6=[2,155],$Vg6=[28,163,225],$Vh6=[1,969],$Vi6=[14,28,117,163,225],$Vj6=[2,71],$Vk6=[28,117,163,225],$Vl6=[1,977],$Vm6=[1,978],$Vn6=[14,28,50,69,71,117,163,225],$Vo6=[2,560],$Vp6=[28,50,69,71,117,163,225],$Vq6=[14,28,50],$Vr6=[2,207],$Vs6=[28,50],$Vt6=[1,988],$Vu6=[2,503],$Vv6=[1,991],$Vw6=[2,242],$Vx6=[1,995],$Vy6=[1,1002],$Vz6=[73,77],$VA6=[2,250],$VB6=[1,1015],$VC6=[105,142,229,230,231,244],$VD6=[1,1019],$VE6=[2,28,53,54,73,77,87,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$VF6=[2,28,53,54,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$VG6=[53,54,71,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300],$VH6=[2,73,163,187,188,189,190,191,192,193,194,225,265,266,272,277,294],$VI6=[2,665],$VJ6=[1,1095],$VK6=[1,1098],$VL6=[1,1100],$VM6=[1,1094],$VN6=[1,1097],$VO6=[1,1099],$VP6=[1,1096],$VQ6=[1,1101],$VR6=[73,163,225,266,272,277,294],$VS6=[2,677],$VT6=[1,1105],$VU6=[2,673],$VV6=[2,73,163,187,188,189,190,191,192,193,194,225,266,272,277,294],$VW6=[1,1110],$VX6=[2,14,73,163,187,188,189,190,191,192,193,194,225,265,266,272,277,294],$VY6=[2,668],$VZ6=[2,73,163,225,265,266,272,277,294,302],$V_6=[2,14,73,77,163,225,265,266,272,277,294,302],$V$6=[2,73,77,163,225,265,266,272,277,294,302],$V07=[14,73,77,163,225,265,266,272,277,294,302],$V17=[2,934],$V27=[1,1125],$V37=[1,1127],$V47=[1,1129],$V57=[1,1124],$V67=[1,1128],$V77=[1,1126],$V87=[1,1130],$V97=[2,14,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,275,277,294,302],$Va7=[2,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,275,277,294,302],$Vb7=[2,14,28,53,54,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,275,277,294,302],$Vc7=[2,28,53,54,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,275,277,294,302],$Vd7=[2,285],$Ve7=[1,1145],$Vf7=[2,1197],$Vg7=[2,1198],$Vh7=[2,1199],$Vi7=[1,1148],$Vj7=[2,287],$Vk7=[1,1149],$Vl7=[1,1151],$Vm7=[1,1150],$Vn7=[2,904],$Vo7=[2,14,28,53,54,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$Vp7=[2,744],$Vq7=[2,28,53,54,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,290,294,301,302,390],$Vr7=[2,745],$Vs7=[2,746],$Vt7=[2,747],$Vu7=[2,28,53,54,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,234,240,242,244,245,255,258,259,264,265,266,269,272,276,277,290,294,301,302,390],$Vv7=[2,14,28,53,54,73,77,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$Vw7=[2,754],$Vx7=[2,28,53,54,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,255,258,259,264,265,266,272,276,277,290,294,301,302,390],$Vy7=[2,755],$Vz7=[2,756],$VA7=[2,757],$VB7=[2,758],$VC7=[2,28,50,53,54,69,71,73,77,87,100,101,105,117,134,142,163,170,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,272,275,276,277,278,280,281,290,294,301,302,390],$VD7=[1,1182],$VE7=[2,258,259,301],$VF7=[1,1202],$VG7=[1,1204],$VH7=[1,1206],$VI7=[14,73,77,277],$VJ7=[2,850],$VK7=[2,73,277],$VL7=[73,277],$VM7=[2,1065],$VN7=[1,1217],$VO7=[14,278],$VP7=[1,1218],$VQ7=[1,1236],$VR7=[2,42],$VS7=[2,193],$VT7=[1,1251],$VU7=[1,1271],$VV7=[2,236],$VW7=[1,1286],$VX7=[1,1285],$VY7=[2,73],$VZ7=[2,28,53,54,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$V_7=[2,28,53,54,73,77,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$V$7=[1,1311],$V08=[2,73,77,277],$V18=[2,1161],$V28=[2,1186],$V38=[1,1322],$V48=[1,1323],$V58=[1,1325],$V68=[2,14,71,73,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,244,294],$V78=[1,1327],$V88=[1,1330],$V98=[1,1332],$Va8=[1,1335],$Vb8=[73,163,225,272,277,294],$Vc8=[2,1109],$Vd8=[1,1339],$Ve8=[2,678],$Vf8=[2,73,163,187,188,189,190,191,192,193,194,225,272,277,294],$Vg8=[1,1344],$Vh8=[2,731],$Vi8=[2,938],$Vj8=[1,1362],$Vk8=[2,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,277,294,302],$Vl8=[1,1396],$Vm8=[1,1395],$Vn8=[2,14,28,53,54,69,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,275,276,277,280,281,283,290,294,301,302,390],$Vo8=[1,1413],$Vp8=[1,1427],$Vq8=[2,1071],$Vr8=[1,1439],$Vs8=[1,1442],$Vt8=[2,28,53,54,69,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,272,276,277,278,280,281,290,294,301,302,390],$Vu8=[1,1450],$Vv8=[1,1451],$Vw8=[1,1452],$Vx8=[1,1453],$Vy8=[1,1454],$Vz8=[1,1455],$VA8=[1,1456],$VB8=[1,1457],$VC8=[1,1458],$VD8=[1,1459],$VE8=[1,1460],$VF8=[1,1461],$VG8=[1,1469],$VH8=[1,1473],$VI8=[1,1477],$VJ8=[2,197],$VK8=[1,1490],$VL8=[2,79],$VM8=[1,1508],$VN8=[1,1509],$VO8=[1,1510],$VP8=[1,1511],$VQ8=[2,73,77],$VR8=[1,1513],$VS8=[1,1514],$VT8=[1,1515],$VU8=[1,1519],$VV8=[14,73,77],$VW8=[1,1524],$VX8=[2,969],$VY8=[1,1545],$VZ8=[1,1546],$V_8=[1,1547],$V$8=[1,1548],$V09=[1,1549],$V19=[1,1550],$V29=[1,1551],$V39=[1,1552],$V49=[73,163,225,272,294],$V59=[2,706],$V69=[2,1110],$V79=[2,73,163,187,188,189,190,191,192,193,194,225,272,294],$V89=[272,277],$V99=[14,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,277,294,302],$Va9=[1,1586],$Vb9=[2,71,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,277,294,302],$Vc9=[1,1603],$Vd9=[2,288],$Ve9=[2,286],$Vf9=[1,1610],$Vg9=[2,753],$Vh9=[2,28,53,54,73,77,105,142,163,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,290,294,301,302,390],$Vi9=[2,1228],$Vj9=[2,851],$Vk9=[2,1076],$Vl9=[1,1632],$Vm9=[1,1631],$Vn9=[2,14,50,73,77,87,88,101],$Vo9=[2,617],$Vp9=[1,1647],$Vq9=[2,93],$Vr9=[1,1675],$Vs9=[1,1676],$Vt9=[1,1680],$Vu9=[2,50,73,77,87,88,101],$Vv9=[2,211],$Vw9=[2,14,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,277,294,302],$Vx9=[2,724],$Vy9=[2,707],$Vz9=[2,73,163,187,188,189,190,191,192,193,194,225,294],$VA9=[1,1714],$VB9=[2,1111],$VC9=[2,679],$VD9=[2,14,73,77,163,225,266,272,277,294],$VE9=[2,694],$VF9=[1,1736],$VG9=[2,73,77,163,187,188,189,190,191,192,193,194,225,266,272,277,294],$VH9=[2,741],$VI9=[2,752],$VJ9=[14,245,489],$VK9=[2,1067],$VL9=[1,1767],$VM9=[2,80],$VN9=[2,94],$VO9=[2,14,50,73,77,87,88],$VP9=[1,1784],$VQ9=[1,1786],$VR9=[1,1790],$VS9=[1,1800],$VT9=[1,1794],$VU9=[2,970],$VV9=[2,725],$VW9=[1,1814],$VX9=[1,1813],$VY9=[1,1817],$VZ9=[14,73,240,252,295,489],$V_9=[2,1086],$V$9=[2,708],$V0a=[2,14,73,77,121,163,187,188,189,190,191,192,193,194,225,272,283,294],$V1a=[2,721],$V2a=[1,1845],$V3a=[1,1846],$V4a=[2,73,77,163,187,188,189,190,191,192,193,194,225,272,294],$V5a=[2,73,240,252,295,489],$V6a=[1,1851],$V7a=[1,1858],$V8a=[1,1863],$V9a=[1,1866],$Vaa=[1,1868],$Vba=[2,101],$Vca=[1,1875],$Vda=[1,1874],$Vea=[1,1880],$Vfa=[2,77,101],$Vga=[1,1886],$Vha=[2,77,101,105,142,229,230,231,244],$Via=[1,1888],$Vja=[2,212],$Vka=[2,14,73,163,187,188,189,190,191,192,193,194,225,294],$Vla=[2,695],$Vma=[14,73,240],$Vna=[2,1096],$Voa=[1,1903],$Vpa=[1,1904],$Vqa=[1,1905],$Vra=[2,73,240],$Vsa=[1,1912],$Vta=[1,1916],$Vua=[1,1917],$Vva=[28,71,163,225],$Vwa=[2,1101],$Vxa=[1,1950],$Vya=[1,1951],$Vza=[1,1953],$VAa=[14,263,279],$VBa=[1,1965],$VCa=[1,1966],$VDa=[2,1078],$VEa=[2,14,73,240],$VFa=[2,191],$VGa=[2,192],$VHa=[14,53,54,71,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300],$VIa=[1,2009],$VJa=[1,2011],$VKa=[2,179],$VLa=[2,178],$VMa=[2,14,73],$VNa=[2,177]; +var parser = {trace: function trace () { }, +yy: {}, +symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"CreateStatement":5,"DropStatement":6,"SetSpecification":7,"UseStatement":8,"DataDefinition_EDIT":9,"AlterStatement_EDIT":10,"CreateStatement_EDIT":11,"DropStatement_EDIT":12,"SET":13,"CURSOR":14,"UseStatement_EDIT":15,"AlterTable":16,"AlterView":17,"AlterTable_EDIT":18,"AlterView_EDIT":19,"ALTER":20,"AlterTableLeftSide":21,"PartitionSpec":22,"AlterTableLeftSide_EDIT":23,"TABLE":24,"SchemaQualifiedTableIdentifier":25,"SchemaQualifiedTableIdentifier_EDIT":26,"AlterViewLeftSide":27,"AS":28,"QuerySpecification":29,"AlterViewLeftSide_EDIT":30,"QuerySpecification_EDIT":31,"VIEW":32,"DatabaseDefinition":33,"TableDefinition":34,"ViewDefinition":35,"RoleDefinition":36,"DatabaseDefinition_EDIT":37,"TableDefinition_EDIT":38,"ViewDefinition_EDIT":39,"CREATE":40,"DatabaseOrSchema":41,"OptionalIfNotExists":42,"RegularIdentifier":43,"DatabaseDefinitionOptionals":44,"OptionalIfNotExists_EDIT":45,"DatabaseDefinitionOptionals_EDIT":46,"OptionalComment":47,"OptionalComment_INVALID":48,"Comment":49,"COMMENT":50,"QuotedValue":51,"Comment_INVALID":52,"SINGLE_QUOTE":53,"DOUBLE_QUOTE":54,"VALUE":55,"TableDefinitionRightPart":56,"TableDefinitionRightPart_EDIT":57,"TableIdentifierAndOptionalColumnSpecification":58,"OptionalPartitionedBy":59,"OptionalAsSelectStatement":60,"TableIdentifierAndOptionalColumnSpecification_EDIT":61,"PartitionedBy_EDIT":62,"OptionalAsSelectStatement_EDIT":63,"SchemaQualifiedIdentifier":64,"OptionalColumnSpecificationsOrLike":65,"OptionalColumnSpecificationsOrLike_EDIT":66,"SchemaQualifiedIdentifier_EDIT":67,"ParenthesizedColumnSpecificationList":68,"LIKE":69,"ParenthesizedColumnSpecificationList_EDIT":70,"(":71,"ColumnSpecificationList":72,")":73,"ColumnSpecificationList_EDIT":74,"RightParenthesisOrError":75,"ColumnSpecification":76,",":77,"ColumnSpecification_EDIT":78,"ColumnIdentifier":79,"ColumnDataType":80,"OptionalColumnOptions":81,"ColumnDataType_EDIT":82,"ColumnOptions_EDIT":83,"ColumnOptions":84,"ColumnOption":85,"ColumnOption_EDIT":86,"NOT":87,"NULL":88,"PrimitiveType":89,"ArrayType":90,"MapType":91,"StructType":92,"ArrayType_INVALID":93,"MapType_INVALID":94,"StructType_INVALID":95,"ArrayType_EDIT":96,"MapType_EDIT":97,"StructType_EDIT":98,"ARRAY":99,"<":100,">":101,"AnyCursor":102,"GreaterThanOrError":103,"MAP":104,"STRUCT":105,"StructDefinitionList":106,"StructDefinitionList_EDIT":107,"StructDefinition":108,"StructDefinition_EDIT":109,"Commas":110,"RegularOrBacktickedIdentifier":111,":":112,"ColumnDataTypeList":113,"ColumnDataTypeList_EDIT":114,"ColumnDataTypeListInner_EDIT":115,"PartitionedBy":116,"PARTITION":117,"BY":118,"RangeClause":119,"RangeClause_EDIT":120,"RANGE":121,"ParenthesizedColumnList":122,"ParenthesizedPartitionValuesList":123,"ParenthesizedColumnList_EDIT":124,"ParenthesizedPartitionValuesList_EDIT":125,"PartitionValueList":126,"PartitionValueList_EDIT":127,"PartitionValue":128,"PartitionValue_EDIT":129,"ValueExpression":130,"LessThanOrEqualTo":131,"VALUES":132,"ValueExpression_EDIT":133,"COMPARISON_OPERATOR":134,"CommitLocations":135,"OptionalParenthesizedViewColumnList":136,"ParenthesizedViewColumnList_EDIT":137,"ParenthesizedViewColumnList":138,"ViewColumnList":139,"ViewColumnList_EDIT":140,"ColumnReference":141,"ROLE":142,"DropDatabaseStatement":143,"DropRoleStatement":144,"DropTableStatement":145,"DropViewStatement":146,"TruncateTableStatement":147,"DropDatabaseStatement_EDIT":148,"DropTableStatement_EDIT":149,"DropViewStatement_EDIT":150,"TruncateTableStatement_EDIT":151,"DROP":152,"OptionalIfExists":153,"OptionalCascade":154,"OptionalIfExists_EDIT":155,"OptionalPurge":156,"PURGE":157,"TRUNCATE":158,"OptionalPartitionSpec":159,"SqlStatements":160,"NonStartingToken":161,"SqlStatement":162,";":163,"NewStatement":164,"SqlStatement_EDIT":165,"CommonTableExpression":166,"DataManipulation_EDIT":167,"SetSpecification_EDIT":168,"SelectStatement":169,"SELECT":170,"OptionalAllOrDistinct":171,"SelectList_ERROR":172,"TableExpression":173,"SelectList":174,"TableExpression_ERROR":175,"SelectStatement_EDIT":176,"SelectList_ERROR_EDIT":177,"TableExpression_EDIT":178,"SelectList_EDIT":179,"ErrorList":180,"Errors":181,"SetOption":182,"=":183,"SetValue":184,"ALL":185,"JoinType_EDIT":186,"FULL":187,"LEFT":188,"RIGHT":189,"CROSS":190,"JOIN":191,"OUTER":192,"INNER":193,"SEMI":194,"OptionalSelectConditions_EDIT":195,"WhereClause":196,"OptionalGroupByClause":197,"OptionalHavingClause":198,"OptionalOrderByClause":199,"OptionalLimitClause":200,"OptionalWhereClause":201,"HavingClause":202,"OrderByClause":203,"LimitClause":204,"GroupByClause_EDIT":205,"HavingClause_EDIT":206,"OrderByClause_EDIT":207,"LimitClause_EDIT":208,"GroupByClause":209,"WhereClause_EDIT":210,"DataManipulation":211,"InsertStatement":212,"UpdateStatement":213,"InsertValuesStatement":214,"InsertValuesStatement_EDIT":215,"UpdateStatement_EDIT":216,"INSERT":217,"INTO":218,"OptionalTable":219,"InsertValuesList":220,"ParenthesizedRowValuesList":221,"RowValuesList":222,"InValueList":223,"SqlSyntax":224,"EOF":225,"SqlAutocomplete":226,"SqlStatements_EDIT":227,"NonReservedKeyword":228,"OPTION":229,"REGULAR_IDENTIFIER":230,"VARIABLE_REFERENCE":231,"!":232,"*":233,"-":234,".":235,"[":236,"]":237,"~":238,"ANALYTIC":239,"AND":240,"ARITHMETIC_OPERATOR":241,"ASC":242,"AVG":243,"BACKTICK":244,"BETWEEN":245,"BIGINT":246,"BOOLEAN":247,"CASE":248,"CAST":249,"CHAR":250,"COUNT":251,"CURRENT":252,"DATABASE":253,"DECIMAL":254,"DESC":255,"DISTINCT":256,"DOUBLE":257,"ELSE":258,"END":259,"EXISTS":260,"FALSE":261,"FLOAT":262,"FOLLOWING":263,"FROM":264,"GROUP":265,"HAVING":266,"HDFS_START_QUOTE":267,"IF":268,"IN":269,"INT":270,"IS":271,"LIMIT":272,"MAX":273,"MIN":274,"ON":275,"OR":276,"ORDER":277,"OVER":278,"PRECEDING":279,"REGEXP":280,"RLIKE":281,"ROW":282,"ROWS":283,"SCHEMA":284,"SMALLINT":285,"STDDEV_POP":286,"STDDEV_SAMP":287,"STRING":288,"SUM":289,"THEN":290,"TIMESTAMP":291,"TINYINT":292,"TRUE":293,"UNION":294,"UNSIGNED_INTEGER":295,"UNSIGNED_INTEGER_E":296,"VAR_POP":297,"VAR_SAMP":298,"VARCHAR":299,"VARIANCE":300,"WHEN":301,"WHERE":302,"PARTIAL_CURSOR":303,"FromOrIn":304,"SingleQuotedValue":305,"SingleQuotedValue_EDIT":306,"PARTIAL_VALUE":307,"DoubleQuotedValue":308,"DoubleQuotedValue_EDIT":309,"QuotedValue_EDIT":310,"OptionalFromDatabase":311,"DatabaseIdentifier":312,"OptionalFromDatabase_EDIT":313,"DatabaseIdentifier_EDIT":314,"CASCADE":315,"OptionalInDatabase":316,"OptionalPartitionSpec_EDIT":317,"PartitionSpec_EDIT":318,"PartitionSpecList":319,"PartitionSpecList_EDIT":320,"RangePartitionSpec":321,"UnsignedValueSpecification":322,"RangePartitionComparisonOperator":323,"RangePartitionSpec_EDIT":324,"ConfigurationName":325,"PartialBacktickedOrAnyCursor":326,"PartialBacktickedIdentifier":327,"PartialBacktickedOrCursor":328,"PartialBacktickedOrPartialCursor":329,"OptionalParenthesizedColumnList":330,"OptionalParenthesizedColumnList_EDIT":331,"ColumnList":332,"ColumnList_EDIT":333,"ParenthesizedSimpleValueList":334,"SimpleValueList":335,"PartitionExpression":336,"PartitionExpression_EDIT":337,"RegularOrBackTickedSchemaQualifiedName":338,"RegularOrBackTickedSchemaQualifiedName_EDIT":339,"LocalOrSchemaQualifiedName":340,"LocalOrSchemaQualifiedName_EDIT":341,"BasicIdentifierChain":342,"ColumnReference_EDIT":343,"BasicIdentifierChain_EDIT":344,"DerivedColumnChain":345,"DerivedColumnChain_EDIT":346,"PartialBacktickedIdentifierOrPartialCursor":347,"OptionalTypeLength":348,"OptionalTypePrecision":349,"OptionalUnions":350,"OptionalUnions_EDIT":351,"CommonTableExpression_EDIT":352,"Unions":353,"Unions_EDIT":354,"UnionClause":355,"UnionClause_EDIT":356,"WITH":357,"WithQueries":358,"WithQueries_EDIT":359,"WithQuery":360,"WithQuery_EDIT":361,"TableSubQueryInner":362,"TableSubQueryInner_EDIT":363,"FromClause":364,"OptionalSelectConditions":365,"FromClause_EDIT":366,"OptionalJoins":367,"Joins":368,"Joins_INVALID":369,"TableReferenceList":370,"TableReferenceList_EDIT":371,"SearchCondition":372,"SearchCondition_EDIT":373,"GroupByColumnList":374,"GroupByColumnList_EDIT":375,"ColumnGroupingSets":376,"ColumnGroupingSets_EDIT":377,"ColumnGroupingSet_EDIT":378,"GroupByColumnListPartTwo_EDIT":379,"OrderByColumnList":380,"OrderByColumnList_EDIT":381,"OrderByIdentifier":382,"OrderByIdentifier_EDIT":383,"OptionalAscOrDesc":384,"UnsignedNumericLiteral":385,"NonParenthesizedValueExpressionPrimary":386,"OptionalNot":387,"TableSubQuery":388,"ValueExpressionList":389,"BETWEEN_AND":390,"LikeRightPart":391,"CaseRightPart":392,"NonParenthesizedValueExpressionPrimary_EDIT":393,"TableSubQuery_EDIT":394,"ValueExpressionInSecondPart_EDIT":395,"LikeRightPart_EDIT":396,"CaseRightPart_EDIT":397,"EndOrError":398,"ValueExpressionList_EDIT":399,"ColumnOrArbitraryFunctionRef":400,"ArbitraryFunctionRightPart":401,"ArbitraryFunctionName":402,"UserDefinedFunction":403,"UnsignedValueSpecification_EDIT":404,"ColumnOrArbitraryFunctionRef_EDIT":405,"ArbitraryFunctionRightPart_EDIT":406,"UserDefinedFunction_EDIT":407,"SignedInteger":408,"+":409,"UnsignedLiteral":410,"UnsignedLiteral_EDIT":411,"GeneralLiteral":412,"GeneralLiteral_EDIT":413,"ExactNumericLiteral":414,"ApproximateNumericLiteral":415,"TruthValue":416,"SelectSpecification":417,"OptionalCorrelationName":418,"SelectSpecification_EDIT":419,"OptionalCorrelationName_EDIT":420,"TableReference":421,"TableReference_EDIT":422,"TablePrimaryOrJoinedTable":423,"TablePrimaryOrJoinedTable_EDIT":424,"TablePrimary":425,"JoinedTable":426,"TablePrimary_EDIT":427,"JoinedTable_EDIT":428,"Joins_EDIT":429,"JoinType":430,"OptionalJoinCondition":431,"Join_EDIT":432,"JoinCondition_EDIT":433,"UsingColList":434,"TableOrQueryName":435,"DerivedTable":436,"TableOrQueryName_EDIT":437,"DerivedTable_EDIT":438,"OptionalOnColumn":439,"OptionalOnColumn_EDIT":440,"PushQueryState":441,"PopQueryState":442,"SubQuery":443,"SubQuery_EDIT":444,"QueryExpression":445,"QueryExpression_EDIT":446,"QueryExpressionBody":447,"QueryExpressionBody_EDIT":448,"NonJoinQueryExpression":449,"NonJoinQueryExpression_EDIT":450,"NonJoinQueryTerm":451,"NonJoinQueryTerm_EDIT":452,"NonJoinQueryPrimary":453,"NonJoinQueryPrimary_EDIT":454,"SimpleTable":455,"SimpleTable_EDIT":456,"AggregateFunction":457,"OptionalOverClause":458,"AnalyticFunction":459,"OverClause":460,"CastFunction":461,"AggregateFunction_EDIT":462,"OptionalOverClause_EDIT":463,"AnalyticFunction_EDIT":464,"OverClause_EDIT":465,"CastFunction_EDIT":466,"ArbitraryFunction":467,"ArbitraryFunction_EDIT":468,"CountFunction":469,"SumFunction":470,"OtherAggregateFunction":471,"CountFunction_EDIT":472,"SumFunction_EDIT":473,"OtherAggregateFunction_EDIT":474,"WindowExpression":475,"WindowExpression_EDIT":476,"OptionalPartitionBy":477,"OptionalOrderByAndWindow":478,"PartitionBy_EDIT":479,"OptionalOrderByAndWindow_EDIT":480,"PartitionBy":481,"OptionalWindowSpec":482,"WindowSpec_EDIT":483,"WindowSpec":484,"RowsOrRange":485,"PopLexerState":486,"OptionalCurrentOrPreceding":487,"OptionalAndFollowing":488,"UNBOUNDED":489,"OptionalCurrentOrPreceding_EDIT":490,"OptionalAndFollowing_EDIT":491,"PushHdfsLexerState":492,"HdfsPath":493,"HDFS_PATH":494,"HDFS_END_QUOTE":495,"HdfsPath_EDIT":496,"IntegerOrUnbounded":497,"OtherAggregateFunction_Type":498,"FromOrComma":499,"UPDATE":500,"TargetTable":501,"SetClauseList":502,"OptionalFromJoinedTable":503,"TargetTable_EDIT":504,"SetClauseList_EDIT":505,"FromJoinedTable_EDIT":506,"TableName":507,"TableName_EDIT":508,"SetClause":509,"SetClause_EDIT":510,"SetTarget":511,"UpdateSource":512,"UpdateSource_EDIT":513,"USE":514,"CaseWhenThenList":515,"CaseWhenThenList_EDIT":516,"CaseWhenThenListPartTwo":517,"CaseWhenThenListPartTwo_EDIT":518,"$accept":0,"$end":1}, +terminals_: {2:"error",13:"SET",14:"CURSOR",20:"ALTER",24:"TABLE",28:"AS",32:"VIEW",40:"CREATE",50:"COMMENT",53:"SINGLE_QUOTE",54:"DOUBLE_QUOTE",55:"VALUE",69:"LIKE",71:"(",73:")",77:",",87:"NOT",88:"NULL",99:"ARRAY",100:"<",101:">",104:"MAP",105:"STRUCT",112:":",117:"PARTITION",118:"BY",121:"RANGE",132:"VALUES",134:"COMPARISON_OPERATOR",142:"ROLE",152:"DROP",157:"PURGE",158:"TRUNCATE",163:";",168:"SetSpecification_EDIT",170:"SELECT",175:"TableExpression_ERROR",181:"Errors",183:"=",185:"ALL",187:"FULL",188:"LEFT",189:"RIGHT",190:"CROSS",191:"JOIN",192:"OUTER",193:"INNER",194:"SEMI",217:"INSERT",218:"INTO",222:"RowValuesList",225:"EOF",229:"OPTION",230:"REGULAR_IDENTIFIER",231:"VARIABLE_REFERENCE",232:"!",233:"*",234:"-",235:".",236:"[",237:"]",238:"~",239:"ANALYTIC",240:"AND",241:"ARITHMETIC_OPERATOR",242:"ASC",243:"AVG",244:"BACKTICK",245:"BETWEEN",246:"BIGINT",247:"BOOLEAN",248:"CASE",249:"CAST",250:"CHAR",251:"COUNT",252:"CURRENT",253:"DATABASE",254:"DECIMAL",255:"DESC",256:"DISTINCT",257:"DOUBLE",258:"ELSE",259:"END",260:"EXISTS",261:"FALSE",262:"FLOAT",263:"FOLLOWING",264:"FROM",265:"GROUP",266:"HAVING",267:"HDFS_START_QUOTE",268:"IF",269:"IN",270:"INT",271:"IS",272:"LIMIT",273:"MAX",274:"MIN",275:"ON",276:"OR",277:"ORDER",278:"OVER",279:"PRECEDING",280:"REGEXP",281:"RLIKE",282:"ROW",283:"ROWS",284:"SCHEMA",285:"SMALLINT",286:"STDDEV_POP",287:"STDDEV_SAMP",288:"STRING",289:"SUM",290:"THEN",291:"TIMESTAMP",292:"TINYINT",293:"TRUE",294:"UNION",295:"UNSIGNED_INTEGER",296:"UNSIGNED_INTEGER_E",297:"VAR_POP",298:"VAR_SAMP",299:"VARCHAR",300:"VARIANCE",301:"WHEN",302:"WHERE",303:"PARTIAL_CURSOR",307:"PARTIAL_VALUE",315:"CASCADE",357:"WITH",390:"BETWEEN_AND",409:"+",489:"UNBOUNDED",494:"HDFS_PATH",495:"HDFS_END_QUOTE",500:"UPDATE",514:"USE"}, +productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[9,1],[9,1],[9,1],[9,2],[9,1],[4,1],[4,1],[10,1],[10,1],[10,2],[16,2],[18,1],[18,2],[18,2],[18,3],[21,3],[23,3],[23,3],[17,3],[19,1],[19,2],[19,3],[19,3],[19,3],[27,3],[30,3],[30,3],[5,1],[5,1],[5,1],[5,1],[11,1],[11,1],[11,1],[11,2],[33,3],[33,5],[37,4],[37,3],[37,5],[37,4],[37,6],[37,6],[44,1],[46,1],[47,0],[47,1],[49,2],[48,1],[52,2],[52,2],[52,3],[52,3],[34,4],[38,4],[38,4],[38,3],[56,3],[57,3],[57,3],[57,3],[57,3],[58,2],[61,2],[61,2],[65,0],[65,1],[65,2],[66,1],[66,2],[66,2],[68,3],[70,3],[72,1],[72,3],[74,1],[74,3],[74,3],[74,5],[74,2],[74,4],[74,4],[74,6],[76,3],[78,3],[78,3],[78,3],[81,0],[81,1],[84,1],[84,2],[83,1],[83,2],[83,2],[83,3],[85,2],[85,1],[85,1],[86,2],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[82,1],[82,1],[82,1],[90,4],[93,3],[96,4],[96,4],[91,6],[94,3],[97,6],[97,4],[97,6],[97,5],[92,4],[95,3],[98,4],[106,1],[106,3],[107,1],[107,2],[107,3],[107,3],[107,5],[108,4],[109,5],[109,4],[109,4],[109,4],[109,3],[109,3],[113,1],[113,3],[114,1],[114,2],[114,3],[114,3],[114,5],[115,2],[115,2],[115,1],[115,1],[103,1],[103,1],[59,0],[59,1],[116,3],[62,2],[62,3],[62,3],[119,3],[120,2],[120,2],[120,3],[120,3],[120,3],[123,3],[125,3],[125,3],[126,1],[126,3],[127,1],[127,3],[127,5],[127,3],[127,5],[128,6],[128,4],[128,4],[129,2],[129,2],[129,3],[129,4],[129,4],[129,5],[129,6],[129,6],[129,3],[129,4],[129,4],[131,1],[131,1],[60,0],[60,3],[63,3],[63,3],[135,0],[35,8],[39,4],[39,9],[39,3],[39,6],[39,7],[39,8],[39,8],[39,8],[136,0],[136,1],[138,3],[137,3],[139,2],[139,4],[140,3],[140,5],[140,5],[140,7],[36,3],[6,1],[6,1],[6,1],[6,1],[6,1],[12,1],[12,1],[12,1],[12,1],[12,2],[143,5],[148,3],[148,3],[148,4],[148,5],[148,5],[148,6],[144,3],[145,5],[149,3],[149,4],[149,5],[149,5],[149,6],[156,0],[156,1],[146,4],[150,4],[150,5],[150,3],[150,4],[150,4],[147,4],[151,2],[151,4],[151,3],[151,4],[151,5],[151,5],[151,5],[160,1],[160,2],[160,0],[160,1],[160,4],[165,2],[165,1],[165,2],[165,1],[165,1],[165,1],[165,1],[169,4],[169,4],[169,3],[169,4],[176,4],[176,4],[176,3],[176,3],[176,4],[176,4],[176,4],[176,5],[176,6],[176,4],[172,1],[172,3],[172,5],[172,3],[172,5],[177,3],[177,5],[177,7],[177,3],[177,5],[177,7],[7,4],[7,4],[7,2],[180,1],[180,3],[186,3],[186,3],[186,3],[186,2],[186,3],[186,3],[186,2],[186,3],[186,3],[186,3],[186,3],[186,2],[186,3],[186,3],[186,3],[186,3],[186,2],[195,7],[195,7],[195,7],[195,7],[195,6],[195,6],[195,6],[195,6],[195,6],[195,6],[195,6],[195,6],[195,6],[195,6],[195,5],[195,5],[195,5],[195,5],[195,5],[195,6],[195,6],[195,6],[195,6],[195,6],[211,1],[211,1],[212,1],[167,1],[167,1],[214,6],[215,2],[215,4],[215,4],[215,5],[215,6],[220,1],[220,3],[221,3],[219,0],[219,1],[224,3],[226,3],[226,3],[164,0],[227,1],[227,4],[227,4],[227,7],[162,1],[162,1],[162,1],[228,1],[228,1],[228,1],[43,1],[43,1],[43,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[161,1],[110,1],[110,2],[102,1],[102,1],[304,1],[304,1],[41,1],[41,1],[305,3],[305,2],[306,2],[308,3],[308,2],[309,2],[51,1],[51,1],[310,1],[310,1],[311,0],[311,2],[313,2],[154,0],[154,1],[153,0],[153,2],[155,2],[42,0],[42,3],[45,2],[45,3],[316,0],[316,2],[316,2],[159,0],[159,1],[317,1],[22,4],[318,4],[321,5],[324,2],[324,3],[324,4],[324,5],[324,5],[324,5],[323,1],[323,1],[323,1],[323,1],[325,1],[325,1],[326,1],[326,1],[328,1],[328,1],[329,1],[329,1],[327,2],[75,1],[75,1],[330,0],[330,1],[331,1],[122,3],[124,3],[124,3],[332,1],[332,3],[333,3],[333,5],[334,3],[335,1],[335,3],[25,1],[25,3],[26,1],[26,3],[26,3],[64,1],[64,3],[67,1],[67,3],[67,3],[312,1],[314,1],[319,1],[319,3],[320,1],[320,3],[320,3],[320,5],[336,3],[337,3],[337,3],[337,3],[337,1],[111,1],[111,3],[111,2],[338,1],[338,3],[339,1],[339,3],[340,1],[340,2],[341,1],[341,2],[141,1],[141,3],[343,1],[342,1],[342,3],[344,3],[344,5],[345,1],[345,3],[346,1],[346,3],[346,5],[346,3],[79,1],[347,1],[347,1],[89,1],[89,1],[89,2],[89,2],[89,1],[89,1],[89,1],[89,1],[89,1],[89,1],[89,1],[89,2],[348,0],[348,3],[349,0],[349,3],[349,5],[29,2],[29,3],[29,5],[31,2],[31,2],[31,4],[31,3],[31,3],[31,1],[31,4],[31,3],[350,0],[350,1],[351,1],[353,1],[353,2],[354,1],[354,2],[354,2],[354,3],[355,4],[356,3],[356,4],[356,4],[166,2],[352,2],[358,1],[358,3],[359,1],[359,3],[359,3],[359,5],[360,5],[361,2],[361,5],[361,5],[171,0],[171,1],[171,1],[173,2],[178,2],[178,4],[178,3],[367,0],[367,1],[367,1],[364,2],[366,2],[366,2],[365,5],[201,0],[201,1],[196,2],[210,2],[210,2],[197,0],[197,1],[209,3],[205,3],[205,3],[205,2],[376,0],[376,1],[376,3],[376,3],[377,1],[377,3],[377,3],[377,5],[377,3],[378,1],[378,1],[374,1],[374,3],[375,1],[375,2],[375,3],[375,3],[375,3],[375,4],[375,5],[379,1],[379,2],[379,1],[199,0],[199,1],[203,3],[207,3],[207,2],[380,1],[380,3],[381,1],[381,2],[381,3],[381,4],[381,5],[382,2],[383,2],[383,2],[384,0],[384,1],[384,1],[200,0],[200,1],[204,2],[204,4],[204,2],[204,4],[208,2],[372,1],[373,1],[130,1],[130,2],[130,2],[130,2],[130,2],[130,4],[130,4],[130,4],[130,6],[130,2],[130,3],[130,3],[130,3],[130,3],[130,3],[130,6],[130,6],[130,5],[130,5],[130,6],[130,5],[130,3],[130,3],[130,3],[130,3],[130,3],[130,2],[130,3],[130,2],[130,3],[133,1],[133,3],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,3],[133,4],[133,5],[133,4],[133,4],[133,4],[133,6],[133,6],[133,2],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,4],[133,3],[133,6],[133,6],[133,5],[133,5],[133,6],[133,6],[133,6],[133,6],[133,5],[133,4],[133,5],[133,5],[133,5],[133,5],[133,4],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,2],[133,3],[133,2],[133,3],[133,2],[133,3],[133,2],[133,3],[133,3],[133,4],[133,3],[133,3],[133,3],[389,1],[389,3],[399,1],[399,3],[399,3],[399,5],[399,3],[399,5],[399,4],[399,3],[399,2],[399,2],[399,4],[223,1],[223,3],[386,1],[386,1],[386,2],[386,2],[386,1],[386,1],[393,1],[393,1],[393,2],[393,2],[393,1],[400,1],[400,3],[405,1],[408,1],[408,2],[408,2],[322,1],[404,1],[410,1],[410,1],[411,1],[385,1],[385,1],[414,1],[414,2],[414,3],[414,2],[415,2],[415,3],[415,4],[412,1],[412,1],[412,1],[413,1],[413,1],[416,1],[416,1],[387,0],[387,1],[417,2],[417,1],[419,2],[419,3],[419,2],[174,1],[174,3],[179,1],[179,2],[179,3],[179,3],[179,3],[179,4],[179,3],[179,3],[179,4],[179,4],[179,4],[179,5],[179,5],[370,1],[370,3],[371,1],[371,3],[371,3],[371,5],[371,3],[421,1],[422,1],[423,1],[423,1],[424,1],[424,1],[426,2],[428,2],[428,2],[368,3],[368,4],[369,1],[369,2],[432,3],[432,1],[432,3],[432,3],[432,3],[429,1],[429,2],[429,2],[429,3],[430,2],[430,2],[430,3],[430,2],[430,1],[430,3],[430,2],[430,3],[430,3],[430,2],[430,3],[430,2],[430,3],[430,3],[430,2],[431,0],[431,2],[434,1],[434,3],[433,2],[433,2],[425,2],[425,2],[427,2],[427,2],[427,2],[435,1],[437,1],[436,1],[438,1],[439,0],[439,2],[440,2],[440,2],[441,0],[442,0],[388,3],[388,4],[394,3],[394,3],[362,2],[363,3],[443,1],[444,1],[445,1],[446,1],[447,1],[448,1],[449,1],[450,1],[451,1],[452,1],[453,1],[454,1],[455,1],[456,1],[418,0],[418,1],[418,1],[418,2],[418,2],[420,1],[420,1],[420,2],[420,2],[420,2],[403,2],[403,2],[403,1],[407,1],[407,2],[407,1],[407,2],[407,2],[407,2],[407,1],[467,2],[467,2],[468,2],[468,2],[402,1],[402,1],[402,1],[402,1],[401,2],[401,3],[406,3],[406,4],[406,3],[457,1],[457,1],[457,1],[462,1],[462,1],[462,1],[459,3],[459,4],[464,4],[464,5],[464,4],[458,0],[458,1],[463,1],[460,2],[460,2],[465,2],[475,4],[476,4],[476,4],[476,5],[476,7],[477,0],[477,1],[481,3],[479,2],[479,3],[479,3],[478,0],[478,2],[480,1],[480,3],[480,2],[482,0],[482,1],[484,5],[484,5],[483,2],[483,6],[483,5],[483,5],[483,5],[483,4],[486,0],[492,0],[493,3],[496,5],[496,4],[496,3],[496,3],[496,2],[485,1],[485,1],[487,0],[487,2],[487,2],[490,2],[490,2],[488,0],[488,3],[488,3],[491,2],[491,3],[491,3],[497,1],[497,1],[198,0],[198,1],[202,2],[206,2],[206,2],[461,6],[461,3],[466,6],[466,5],[466,4],[466,6],[466,5],[466,4],[466,6],[466,5],[466,6],[466,5],[469,4],[469,3],[469,5],[472,5],[472,6],[472,5],[471,4],[471,5],[474,5],[474,6],[474,5],[498,1],[498,1],[498,1],[498,1],[498,1],[498,1],[498,1],[498,1],[499,1],[499,1],[470,5],[470,3],[473,5],[473,6],[473,5],[182,1],[182,3],[184,1],[184,1],[184,2],[184,1],[184,1],[184,1],[184,1],[213,6],[216,6],[216,6],[216,6],[216,6],[216,7],[216,3],[216,2],[216,2],[216,2],[501,1],[504,1],[507,1],[508,1],[502,1],[502,3],[505,1],[505,3],[505,3],[505,5],[509,3],[510,3],[510,2],[510,1],[511,1],[512,1],[513,1],[503,0],[503,2],[506,2],[506,2],[8,2],[15,2],[395,3],[395,3],[395,3],[391,2],[391,2],[391,2],[396,2],[396,2],[396,2],[396,2],[396,2],[396,2],[392,2],[392,4],[397,2],[397,4],[397,4],[397,3],[397,4],[397,3],[397,4],[397,4],[397,3],[397,4],[397,3],[398,1],[398,1],[515,1],[515,2],[516,1],[516,2],[516,3],[516,3],[516,2],[517,4],[518,2],[518,3],[518,4],[518,4],[518,3],[518,3],[518,4],[518,2],[518,3],[518,2],[518,3],[518,3],[518,4],[518,3],[518,4],[518,4],[518,5],[518,4],[518,3]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 9: + + parser.suggestSetOptions(); + +break; +case 15: + + parser.suggestKeywords(['TABLE', 'VIEW']); + +break; +case 21: case 30: case 244: case 248: case 250: case 1173: + + parser.addTablePrimary($$[$0]); + +break; +case 22: case 239: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + +break; +case 23: + + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 26: case 655: + + parser.suggestKeywords(['AS']); + +break; +case 28: case 195: case 204: case 265: case 656: case 993: + + parser.suggestKeywords(['SELECT']); + +break; +case 31: case 249: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + +break; +case 32: + + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 40: case 227: + + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + +break; +case 42: + + parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); + +break; +case 43: case 61: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 45: + + if (!$$[$0-2]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 46: + + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 47: + + parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); + +break; +case 49: + + if (!$$[$0]) { + parser.suggestKeywords(['COMMENT']); + } + +break; +case 67: + + var keywords = []; + if (!$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$$[$0-1]) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + +break; +case 68: + + parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); + this.$ = $$[$0]; + +break; +case 73: +this.$ = []; +break; +case 75: case 557: case 1170: case 1190: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 77: case 213: case 215: case 490: case 493: case 579: case 622: case 743: case 922: case 990: case 1042: +this.$ = $$[$0-1]; +break; +case 79: case 648: +this.$ = [$$[$0]]; +break; +case 80: +this.$ = $$[$0-2].concat($$[$0]); +break; +case 85: case 87: + + parser.checkForKeywords($$[$0-1]); + +break; +case 86: case 88: + + parser.checkForKeywords($$[$0-3]); + +break; +case 89: + + this.$ = $$[$0-2]; + this.$.type = $$[$0-1]; + var keywords = []; + if (!$$[$0]['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 90: case 117: case 123: case 124: case 137: case 140: case 149: case 151: + + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + +break; +case 93: +this.$ = {}; +break; +case 95: + + this.$ = {}; + this.$[$$[$0]] = true; + +break; +case 96: + + $$[$0-1][$$[$0]] = true; + +break; +case 101: case 102: +this.$ = 'null'; +break; +case 103: +this.$ = 'comment'; +break; +case 104: + + parser.suggestKeywords(['NULL']); + +break; +case 122: + + parser.suggestKeywords(parser.getTypeKeywords()); + +break; +case 136: case 139: + + parser.suggestKeywords(['COMMENT']); + +break; +case 158: case 1068: + + parser.suggestKeywords(['BY']); + +break; +case 159: + + parser.suggestKeywords(['RANGE']); + +break; +case 168: case 173: case 174: + + parser.suggestKeywords(['PARTITION']); + +break; +case 180: + + parser.suggestKeywords(['VALUE', 'VALUES']); + +break; +case 181: + + if ($$[$0].endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + +break; +case 182: case 185: case 188: + + parser.suggestKeywords(['<', '<=']); + +break; +case 183: case 522: case 525: + + parser.suggestKeywords(['VALUES']); + +break; +case 186: case 189: + + parser.suggestFunctions(); + +break; +case 197: + + parser.commitLocations(); + +break; +case 199: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + +break; +case 200: + + if (!$$[$0-6]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 203: + + var keywords = [{value: 'AS', weight: 1 }]; + if (!$$[$0-1]) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + +break; +case 210: + + if (!$$[$0-1]) { + parser.suggestKeywords(['COMMENT']); + } + +break; +case 214: case 216: +this.$ = $$[$0-3]; +break; +case 231: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + +break; +case 232: + + parser.suggestKeywords(['CASCADE']); + +break; +case 234: + + if (!$$[$0-3]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 236: case 255: + + parser.addTablePrimary($$[$0-1]); + +break; +case 238: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 241: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PURGE']); + } + +break; +case 245: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 246: + + parser.addTablePrimary($$[$0]); + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 251: + + parser.suggestKeywords(['TABLE']); + +break; +case 252: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 256: + + parser.addTablePrimary($$[$0-1]); + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 261: case 361: case 363: + + parser.addStatementLocation(_$[$0]); + +break; +case 263: case 264: + + parser.suggestDdlAndDmlKeywords(); + +break; +case 272: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); + this.$ = { selectList: $$[$0] }; + +break; +case 273: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } + +break; +case 274: + + parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); + +break; +case 276: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); + if ($$[$0].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($$[$01]); + } + if ($$[$0].suggestFunctions) { + parser.suggestFunctions(); + } + if ($$[$0].suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($$[$0].suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($$[$0].suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($$[$0].suggestAggregateFunctions && (!$$[$0-1] || $$[$0-1] === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + +break; +case 277: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1] || $$[$0-1] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-1]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 278: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + +break; +case 279: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + +break; +case 280: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2] || $$[$0-2] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-2]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 281: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-2]); + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 282: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-3]); + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 283: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + parser.checkForSelectListKeywords($$[$0-1]); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + +break; +case 289: case 290: case 291: case 646: case 674: case 695: case 708: case 712: case 736: case 761: case 762: case 843: case 845: case 909: case 919: case 926: case 938: case 1067: case 1189: case 1227: case 1228: +this.$ = $$[$0]; +break; +case 292: case 293: + + this.$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 294: case 913: case 914: + + this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 300: case 301: case 302: + + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + +break; +case 303: case 305: case 306: case 308: case 309: case 310: case 311: case 313: case 314: case 315: case 316: +this.$ = { suggestKeywords: ['JOIN'] }; +break; +case 304: case 307: case 312: +this.$ = { suggestKeywords: ['OUTER'] }; +break; +case 317: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] + }; + +break; +case 318: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$$[$0-1] && !$$[$0] + } + +break; +case 319: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$$[$0] + } + +break; +case 331: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + +break; +case 332: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + +break; +case 334: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + +break; +case 336: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true]); + if ($$[$0-5].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 1)); + } + this.$ = parser.getValueExpressionKeywords($$[$0-5], keywords); + this.$.cursorAtEnd = !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if ($$[$0-5].columnReference) { + this.$.columnReference = $$[$0-5].columnReference; + } + if (!$$[$0-3]) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 337: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true]); + if ($$[$0-4].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-4].suggestKeywords, 8)); + } + if ($$[$0-4].valueExpression) { + this.$ = parser.getValueExpressionKeywords($$[$0-4].valueExpression, keywords); + if ($$[$0-4].valueExpression.columnReference) { + this.$.columnReference = $$[$0-4].valueExpression.columnReference; + } + } else { + this.$ = { suggestKeywords: keywords }; + } + this.$.cursorAtEnd = !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 338: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-1], $$[$0]], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true]); + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; + if (!$$[$0-1]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-3], _$[$0-3]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 339: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0]], + [{ value: 'LIMIT', weight: 3 }], + [true]); + if ($$[$0-2].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 4)); + } + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 340: + + this.$ = { suggestKeywords: [], cursorAtEnd: true }; + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]); + this.$.limitClauseLocation = _$[$0-1]; + +break; +case 346: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + +break; +case 347: + + parser.suggestKeywords(['INTO']); + +break; +case 348: + + if (!$$[$0-1]) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 350: + + $$[$0-1].owner = 'insert'; + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['VALUES']); + +break; +case 358: case 359: + + return parser.yy.result; + +break; +case 360: + + parser.prepareNewStatement(); + +break; +case 362: case 364: + + parser.addStatementLocation(_$[$0-3]); + +break; +case 491: case 494: case 580: +this.$ = ''; +break; +case 506: case 509: + + parser.yy.correlatedSubQuery = false; + +break; +case 507: case 511: + + parser.suggestKeywords(['EXISTS']); + +break; +case 510: + + parser.suggestKeywords(['NOT EXISTS']); + +break; +case 521: case 523: case 524: case 526: + + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + +break; +case 547: case 550: case 551: case 576: case 577: case 598: case 601: case 692: case 1184: + + parser.suggestColumns(); + +break; +case 555: case 581: + + parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0] } ] }; + +break; +case 556: case 582: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; + +break; +case 558: case 563: + + parser.suggestDatabases(); + this.$ = { identifierChain: [{ name: $$[$0-2] }] }; + +break; +case 559: case 584: + + parser.suggestTablesOrColumns($$[$0-2]); + +break; +case 560: +this.$ = [{ name: $$[$0] }]; +break; +case 561: +this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; +break; +case 562: + + parser.suggestDatabases({ appendDot: true }); + +break; +case 566: case 1193: + + parser.suggestDatabases(); + +break; +case 575: case 697: case 698: case 704: case 705: case 986: case 1069: + + parser.valueExpressionSuggest(); + +break; +case 583: + + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + +break; +case 586: +this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; +break; +case 589: + + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + +break; +case 590: case 877: + + parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); + +break; +case 592: + + this.$ = [ $$[$0].identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); + +break; +case 593: + + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $$[$0-2].push($$[$0].identifier); + parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); + +break; +case 594: + + parser.suggestColumns({ + identifierChain: $$[$0-2] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 595: + + parser.suggestColumns({ + identifierChain: $$[$0-4] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 596: +this.$ = [ $$[$0].identifier ]; +break; +case 597: + + $$[$0-2].push($$[$0].identifier); + +break; +case 599: + + parser.suggestColumns({ identifierChain: $$[$0-2] }); + +break; +case 600: + + parser.suggestColumns({ identifierChain: $$[$0-4] }); + +break; +case 602: +this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; +break; +case 624: case 924: +this.$ = $$[$0-2]; +break; +case 627: + + parser.addCommonTableExpressions($$[$0-3]); + +break; +case 628: case 629: case 651: + + parser.addCommonTableExpressions($$[$0-2]); + +break; +case 643: + + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + +break; +case 644: + + parser.suggestKeywords(['ALL', 'DISTINCT']); + +break; +case 649: +this.$ = $$[$0-2].concat([$$[$0]]); +break; +case 653: + + parser.addCommonTableExpressions($$[$0-4]); + +break; +case 654: + + parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); + $$[$0-1].alias = $$[$0-4]; + this.$ = $$[$0-1]; + +break; +case 661: case 662: + + parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); + +break; +case 663: + + var keywords = []; + + parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); + + if ($$[$0-3]) { + if (typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($$[$0-3].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); + } + if ($$[$0-3].tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); + } + if ($$[$0-3].tableReferenceList.suggestJoins) { + parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); + } + if ($$[$0-3].tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE') { + keyword.weight = 1.1; + } + }); + + if ($$[$0-3].tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($$[$0-3].tableReferenceList); + } + } + } + + if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($$[$0-1].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].suggestFilters) { + parser.suggestFilters($$[$0-1].suggestFilters); + } + if ($$[$0-1].suggestGroupBys) { + parser.suggestGroupBys($$[$0-1].suggestGroupBys); + } + if ($$[$0-1].suggestOrderBys) { + parser.suggestOrderBys($$[$0-1].suggestOrderBys); + } + + if ($$[$0-1].empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + +break; +case 664: + + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$$[$0-1]) { + parser.addClauseLocation('whereClause', _$[$0-2]); + parser.addClauseLocation('limitClause', _$[$0-2]); + return; + } + parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); + var keywords = []; + + if ($$[$0-1].suggestColRefKeywords) { + parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); + parser.addColRefIfExists($$[$0-1]); + } + + if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + +break; +case 668: + + this.$ = { tableReferenceList : $$[$0] } + +break; +case 669: case 931: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 671: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true]); + + if (keywords.length > 0) { + this.$ = { suggestKeywords: keywords, empty: !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + } else { + this.$ = {}; + } + + this.$.whereClauseLocation = $$[$0-4] ? _$[$0-4] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-1] && !$$[$0]) { + this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + +break; +case 675: + + if ($$[$0].suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 676: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 679: + + this.$ = { valueExpression: $$[$0] }; + +break; +case 680: case 719: + + parser.suggestSelectListAliases(); + +break; +case 681: + + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 682: + + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 709: + + if ($$[$0].emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 710: + + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 714: + + this.$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 715: case 716: case 717: +this.$ = { emptyOrderBy: false }; +break; +case 718: +this.$ = parser.mergeSuggestKeywords($$[$0]); +break; +case 720: + + this.$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 721: + + this.$ = { suggestKeywords: ['ASC', 'DESC'] }; + +break; +case 734: case 735: + + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 737: + + // verifyType($$[$0], 'NUMBER'); + this.$ = $$[$0]; + $$[$0].types = ['NUMBER']; + +break; +case 738: case 739: case 740: case 741: case 748: case 749: case 750: case 751: case 752: case 753: case 759: case 760: case 781: case 839: case 840: case 898: +this.$ = { types: [ 'BOOLEAN' ] }; +break; +case 742: + + this.$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + +break; +case 744: case 745: case 746: case 747: + + parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 754: case 755: + + // verifyType($$[$0-2], 'BOOLEAN'); + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 756: case 757: case 758: + + // verifyType($$[$0-2], 'NUMBER'); + // verifyType($$[$0], 'NUMBER'); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 764: + + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 765: case 767: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 766: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 768: + + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 769: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 770: + + parser.suggestFunctions(); + parser.suggestColumns(); + this.$ = { types: [ 'T' ] }; + +break; +case 771: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 772: + + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 773: + + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 774: + + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 775: + + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 776: case 777: case 778: + + parser.suggestKeywords(['NOT']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 779: + + parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 780: + + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 782: + + this.$ = $$[$0-1]; + +break; +case 783: + + parser.valueExpressionSuggest(); + this.$ = { types: ['T'], typeSet: true }; + +break; +case 784: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 785: case 786: case 787: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 788: case 789: case 790: case 791: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0].types); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 792: case 794: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 793: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + +break; +case 795: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; + +break; +case 796: case 797: case 798: case 799: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 800: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-3].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 801: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 802: case 803: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; +break; +case 804: case 805: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; +break; +case 806: + + if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-5].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; + +break; +case 807: + + if ($$[$0-5].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0-5].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; + +break; +case 808: + + if ($$[$0-5].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-5].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 809: + + parser.valueExpressionSuggest($$[$0-5], $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 810: case 816: + + parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 811: + + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 812: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-4].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; + +break; +case 813: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; + +break; +case 814: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 815: + + parser.valueExpressionSuggest($$[$0-4], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-4].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 817: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 818: case 820: case 822: case 824: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + +break; +case 819: case 823: + + parser.addColRefIfExists($$[$0]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 821: case 825: + + parser.addColRefIfExists($$[$0-2]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 826: case 827: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 828: case 829: case 830: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 831: case 832: case 833: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions(['NUMBER']); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 834: case 835: case 836: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 837: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 838: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 841: + + parser.valueExpressionSuggest(undefined, $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 842: + + parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 844: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 846: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 847: + + this.$ = $$[$0]; + this.$.suggestFilters = $$[$0-1].suggestFilters; + +break; +case 848: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 849: case 1115: case 1120: case 1121: +this.$ = { types: [ 'T' ] }; +break; +case 850: case 852: + + $$[$0].position = 1; + +break; +case 851: + + $$[$0].position = $$[$0-2].position + 1; + this.$ = $$[$0]; + +break; +case 853: + + $$[$0-2].position += 1; + +break; +case 854: + + $$[$0-2].position = 1; + +break; +case 855: + + $$[$0-4].position += 1; + +break; +case 856: + + parser.valueExpressionSuggest(); + $$[$0-2].position += 1; + +break; +case 857: + + parser.valueExpressionSuggest(); + $$[$0-4].position += 1; + +break; +case 858: + + parser.suggestValueExpressionKeywords($$[$0-3]); + +break; +case 859: case 860: + + parser.valueExpressionSuggest(); + this.$ = { cursorAtStart : true, position: 1 }; + +break; +case 861: case 862: + + parser.valueExpressionSuggest(); + this.$ = { position: 2 }; + +break; +case 866: +this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; +break; +case 867: + + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].expression) { + this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } + } else { + this.$ = { function: fn, types: parser.findReturnTypes(fn) } + } + +break; +case 868: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 870: +this.$ = { types: [ 'NULL' ] }; +break; +case 872: + + if ($$[$0].suggestKeywords) { + this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; + } else { + this.$ = { types: ['COLREF'], columnReference: $$[$0] }; + } + +break; +case 873: + + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); + } + this.$ = { types: parser.findReturnTypes(fn) }; + +break; +case 874: case 1032: case 1033: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-1]) }; + +break; +case 876: + + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; + this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } + +break; +case 883: + + parser.suggestValues($$[$0]); + +break; +case 884: +this.$ = { types: [ 'NUMBER' ] }; +break; +case 890: case 892: +this.$ = $$[$0-1] + $$[$0]; +break; +case 891: +this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; +break; +case 896: case 897: + + if (/\$\{[^}]*\}/.test($$[$0])) { + parser.addVariableLocation(_$[$0], $$[$0]); + this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } + } else { + this.$ = { types: [ 'STRING' ] } + } + +break; +case 899: + + this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 900: + + this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 905: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); + } else { + this.$ = { valueExpression: $$[$0-1] } + } + +break; +case 906: + + parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); + this.$ = { asterisk: true } + +break; +case 907: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + } + +break; +case 908: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); + this.$ = { suggestAggregateFunctions: true }; + +break; +case 910: +this.$ = [ $$[$0] ]; +break; +case 911: + + $$[$0-2].push($$[$0]); + +break; +case 916: + + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 917: + + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 918: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 920: case 921: case 923: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + +break; +case 934: + + this.$ = $$[$0]; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + this.$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + +break; +case 941: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-2]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 942: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-3]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 943: +this.$ = { joinType: $$[$0] }; +break; +case 944: +this.$ = { joinType: $$[$0-1] }; +break; +case 945: + + if ($$[$0-2].suggestKeywords) { + parser.suggestKeywords($$[$0-2].suggestKeywords); + } + +break; +case 946: + + if ($$[$0].suggestKeywords) { + parser.suggestKeywords($$[$0].suggestKeywords); + } + +break; +case 949: + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $$[$0-2], + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 954: +this.$ = 'CROSS JOIN'; +break; +case 955: +this.$ = 'FULL JOIN'; +break; +case 956: +this.$ = 'FULL OUTER JOIN'; +break; +case 957: +this.$ = 'INNER JOIN'; +break; +case 958: +this.$ = 'JOIN'; +break; +case 959: +this.$ = 'LEFT INNER JOIN'; +break; +case 960: +this.$ = 'LEFT JOIN'; +break; +case 961: +this.$ = 'LEFT OUTER JOIN'; +break; +case 962: +this.$ = 'LEFT SEMI JOIN'; +break; +case 963: +this.$ = 'OUTER JOIN'; +break; +case 964: case 966: +this.$ = 'RIGHT OUTER JOIN'; +break; +case 965: +this.$ = 'RIGHT JOIN'; +break; +case 967: +this.$ = 'RIGHT SEMI JOIN'; +break; +case 968: +this.$ = 'SEMI JOIN'; +break; +case 969: +this.$ = { noJoinCondition: true, suggestKeywords: ['ON'] }; +break; +case 970: +this.$ = { valueExpression: $$[$0] }; +break; +case 974: + + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + +break; +case 975: + + this.$ = { + primary: $$[$0-1] + } + if ($$[$0-1].identifierChain) { + if ($$[$0]) { + $$[$0-1].alias = $$[$0].alias + parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); + } + parser.addTablePrimary($$[$0-1]); + } + + var keywords = []; + if (!$$[$0]) { + keywords = ['AS']; + } else if ($$[$0].suggestKeywords) { + keywords = $$[$0].suggestKeywords; + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 976: + + this.$ = { + primary: $$[$0-1] + }; + + if ($$[$0]) { + this.$.primary.alias = $$[$0].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); + parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); + } + + var keywords = []; + if (!$$[$0]) { + keywords = ['AS']; + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 977: + + if ($$[$0]) { + parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); + } + +break; +case 978: + + if ($$[$0]) { + parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); + parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias); + } + +break; +case 988: + + parser.pushQueryState(); + +break; +case 989: + + parser.popQueryState(); + +break; +case 991: + + if ($$[$0-1]) { + $$[$0-2].alias = $$[$0-1].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); + parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + this.$ = $$[$0-2]; + +break; +case 994: + + var subQuery = parser.getSubQuery($$[$0]); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + this.$ = subQuery; + +break; +case 1011: case 1012: case 1013: case 1014: +this.$ = { alias: $$[$0], location: _$[$0] }; +break; +case 1020: + + if (!$$[$0]) { + $$[$0-1].suggestKeywords = ['OVER']; + } + +break; +case 1027: + + parser.suggestKeywords(['OVER']); + +break; +case 1030: case 1031: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 1039: +this.$ = { expression: $$[$0-1] }; +break; +case 1040: + + parser.valueExpressionSuggest(); + this.$ = { position: 1 } + +break; +case 1041: + + parser.suggestValueExpressionKeywords($$[$0-1]); + +break; +case 1049: case 1127: case 1148: +this.$ = { types: parser.findReturnTypes($$[$0-2]) }; +break; +case 1050: +this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; +break; +case 1051: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-3], 1); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 1052: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1053: + + parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 1061: case 1062: + + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + +break; +case 1063: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$$[$0-2]) { + parser.suggestKeywords(['PARTITION BY']); + } + +break; +case 1064: + + if (!$$[$0-1]) { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3]); + } + +break; +case 1073: + + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + +break; +case 1074: + + var keywords = []; + if ($$[$0-2].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); + } + if (!$$[$0]) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + +break; +case 1080: + + parser.suggestKeywords(['BETWEEN']); + +break; +case 1081: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['AND']); + } + +break; +case 1086: + + lexer.popState(); + +break; +case 1087: + + lexer.begin('hdfs'); + +break; +case 1089: + + parser.suggestHdfs({ path: $$[$0-3] }); + +break; +case 1090: + + parser.suggestHdfs({ path: $$[$0-2] }); + +break; +case 1091: + + parser.suggestHdfs({ path: $$[$0-1] }); + +break; +case 1092: + + parser.suggestHdfs({ path: '' }); + +break; +case 1093: + + parser.suggestHdfs({ path: '' }); + +break; +case 1099: + + parser.suggestKeywords(['PRECEDING']); + +break; +case 1100: case 1105: + + parser.suggestKeywords(['ROW']); + +break; +case 1104: + + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + +break; +case 1106: + + parser.suggestKeywords(['FOLLOWING']); + +break; +case 1112: + + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 1113: + + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 1114: case 1119: +this.$ = { types: [ $$[$0-1].toUpperCase() ] }; +break; +case 1116: + + parser.valueExpressionSuggest(); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 1117: case 1118: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ] }; + +break; +case 1122: + + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 1123: + + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ 'T' ] }; + +break; +case 1124: case 1125: + + parser.suggestKeywords(parser.getTypeKeywords()); + this.$ = { types: [ 'T' ] }; + +break; +case 1126: case 1132: +this.$ = { types: parser.findReturnTypes($$[$0-3]) }; +break; +case 1128: case 1133: case 1147: +this.$ = { types: parser.findReturnTypes($$[$0-4]) }; +break; +case 1129: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1130: case 1135: case 1150: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 1131: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1134: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1136: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1149: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1151: + + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1166: + + parser.suggestKeywords([ 'WHERE' ]); + +break; +case 1167: + + parser.suggestKeywords([ 'SET' ]); + +break; +case 1183: + + parser.suggestKeywords([ '=' ]); + +break; +case 1192: + + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $$[$0]; + } + +break; +case 1195: +this.$ = { inValueEdit: true }; +break; +case 1196: +this.$ = { inValueEdit: true, cursorAtStart: true }; +break; +case 1197: case 1198: case 1199: +this.$ = { suggestKeywords: ['NOT'] }; +break; +case 1203: case 1204: case 1205: + + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + this.$ = { types: ['BOOLEAN'] } + +break; +case 1206: case 1208: +this.$ = parser.findCaseType($$[$0-1]); +break; +case 1207: case 1210: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 1209: + + parser.suggestValueExpressionKeywords($$[$0-1], ['END']); + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 1211: +this.$ = parser.findCaseType($$[$0-2]); +break; +case 1212: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 1213: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-2]); + +break; +case 1214: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + this.$.suggestFilters = $$[$0-1].suggestFilters + +break; +case 1215: + + parser.valueExpressionSuggest(); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 1216: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 1217: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = $$[$0-1]; + +break; +case 1218: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ] }; + +break; +case 1221: +this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; +break; +case 1222: + + $$[$0-1].caseTypes.push($$[$0]); + this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; + +break; +case 1226: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + +break; +case 1229: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; +break; +case 1230: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 1231: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 1232: case 1233: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; +break; +case 1234: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 1235: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [$$[$0]] }; + +break; +case 1236: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 1237: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 1238: case 1240: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 1239: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 1241: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; + +break; +case 1242: + + parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 1243: + + parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 1244: case 1245: case 1246: case 1247: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +} +}, +table: [o($V0,$V1,{226:1,164:2}),{1:[3]},o($V2,$V3,{160:3,227:4,161:6,162:7,165:8,3:117,211:118,29:119,102:120,166:121,9:122,167:123,31:124,4:126,5:127,6:128,7:129,8:130,212:131,213:132,169:133,10:137,11:138,12:139,15:140,215:141,216:142,176:143,352:144,16:145,17:146,33:147,34:148,35:149,36:150,143:151,144:152,145:153,146:154,147:155,214:157,18:160,19:161,37:163,38:164,39:165,148:167,149:168,150:169,151:170,21:173,27:174,23:176,30:177,2:$V4,13:$V5,14:$V6,20:$V7,24:$V8,28:$V9,40:$Va,53:$Vb,54:$Vc,69:$Vd,71:$Ve,73:$Vf,77:$Vg,87:$Vh,88:$Vi,99:$Vj,100:$Vk,101:$Vl,104:$Vm,105:$Vn,117:$Vo,118:$Vp,121:$Vq,132:$Vr,134:$Vs,142:$Vt,152:$Vu,157:$Vv,158:$Vw,168:$Vx,170:$Vy,183:$Vz,185:$VA,187:$VB,188:$VC,189:$VD,190:$VE,191:$VF,192:$VG,193:$VH,194:$VI,217:$VJ,218:$VK,229:$VL,230:$VM,231:$VN,232:$VO,233:$VP,234:$VQ,235:$VR,236:$VS,237:$VT,238:$VU,239:$VV,240:$VW,241:$VX,242:$VY,243:$VZ,244:$V_,245:$V$,246:$V01,247:$V11,248:$V21,249:$V31,250:$V41,251:$V51,252:$V61,253:$V71,254:$V81,255:$V91,256:$Va1,257:$Vb1,258:$Vc1,259:$Vd1,260:$Ve1,261:$Vf1,262:$Vg1,263:$Vh1,264:$Vi1,265:$Vj1,266:$Vk1,267:$Vl1,268:$Vm1,269:$Vn1,270:$Vo1,271:$Vp1,272:$Vq1,273:$Vr1,274:$Vs1,275:$Vt1,276:$Vu1,277:$Vv1,278:$Vw1,279:$Vx1,280:$Vy1,281:$Vz1,282:$VA1,283:$VB1,284:$VC1,285:$VD1,286:$VE1,287:$VF1,288:$VG1,289:$VH1,290:$VI1,291:$VJ1,292:$VK1,293:$VL1,294:$VM1,295:$VN1,296:$VO1,297:$VP1,298:$VQ1,299:$VR1,300:$VS1,301:$VT1,302:$VU1,303:$VV1,357:$VW1,500:$VX1,514:$VY1}),{163:[1,179],225:[1,178]},{225:[1,180]},o($V2,[2,258]),{2:[1,181]},o($V2,[2,261]),{163:[1,182],225:[2,361]},{2:[2,374]},{2:[2,375]},{2:[2,376]},{2:[2,377]},{2:[2,378]},{2:[2,379]},{2:[2,380]},{2:[2,381]},{2:[2,382]},{2:[2,383]},{2:[2,384]},{2:[2,385]},{2:[2,386]},{2:[2,387]},{2:[2,388]},{2:[2,389]},{2:[2,390]},{2:[2,391]},{2:[2,392]},{2:[2,393]},{2:[2,394]},{2:[2,395]},{2:[2,396]},{2:[2,397]},{2:[2,398]},{2:[2,399]},{2:[2,400]},{2:[2,401]},{2:[2,402]},{2:[2,403]},{2:[2,404]},{2:[2,405]},{2:[2,406]},{2:[2,407]},{2:[2,408]},{2:[2,409]},{2:[2,410]},{2:[2,411]},{2:[2,412]},{2:[2,413]},{2:[2,414]},{2:[2,415]},{2:[2,416]},{2:[2,417]},{2:[2,418]},{2:[2,419]},{2:[2,420]},{2:[2,421]},{2:[2,422]},{2:[2,423]},{2:[2,424]},{2:[2,425]},{2:[2,426]},{2:[2,427]},{2:[2,428]},{2:[2,429]},{2:[2,430]},{2:[2,431]},{2:[2,432]},{2:[2,433]},{2:[2,434]},{2:[2,435]},{2:[2,436]},{2:[2,437]},{2:[2,438]},{2:[2,439]},{2:[2,440]},{2:[2,441]},{2:[2,442]},{2:[2,443]},{2:[2,444]},{2:[2,445]},{2:[2,446]},{2:[2,447]},{2:[2,448]},{2:[2,449]},{2:[2,450]},{2:[2,451]},{2:[2,452]},{2:[2,453]},{2:[2,454]},{2:[2,455]},{2:[2,456]},{2:[2,457]},{2:$VZ1,14:[1,183],43:186,105:$V_1,142:$V$1,182:184,185:$V02,228:189,229:$V12,230:$V22,231:$V32},{2:[2,459]},{2:[2,460]},{2:[2,461]},{2:[2,462]},{2:[2,463]},{2:[2,464]},{2:[2,465]},{2:[2,466]},{2:[2,467]},{2:[2,468]},{2:[2,469]},{2:[2,470]},{2:[2,471]},{2:[2,472]},{2:[2,473]},{2:[2,474]},{2:[2,475]},{2:[2,476]},{2:[2,477]},{2:[2,478]},{2:[2,479]},{2:[2,480]},{2:[2,481]},o($V2,[2,365]),o($V2,[2,366]),o($V2,[2,367]),o($V2,[2,264],{2:[1,193]}),{14:[1,194],71:$V42,169:195,170:$Vy,176:197},o($V2,[2,266]),o($V2,[2,267]),o($V2,[2,268]),o($V2,[2,269]),o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,341]),o($V2,[2,342]),o($V52,$V62,{350:198,351:199,353:200,354:201,355:202,356:203,294:$V72}),o([2,73,77,101,117,163,225,264,265,266,272,277,294,302],$V82),o([2,28,53,54,69,71,73,77,87,88,99,100,101,104,105,117,134,142,158,163,183,187,188,189,190,191,192,193,194,225,229,230,231,232,233,234,235,238,239,240,241,242,243,244,245,248,249,251,255,258,259,260,261,264,265,266,268,269,272,273,274,276,277,280,281,286,287,289,290,293,294,295,296,297,298,300,301,302,390],[2,485]),{43:210,105:$V_1,111:209,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,358:205,359:206,360:207,361:208},o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,8]),o($V2,[2,10]),o($V2,[2,344]),o($V2,[2,345]),o($Va2,$V62,{355:202,350:212,353:213,294:$Vb2}),o($Va2,[2,630],{169:216,71:[1,215],170:$Vc2}),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,33]),o($V2,[2,34]),o($V2,[2,35]),o($V2,[2,36]),o($V2,[2,218]),o($V2,[2,219]),o($V2,[2,220]),o($V2,[2,221]),o($V2,[2,222]),{14:[1,219],43:218,105:$V_1,142:$V$1,228:189,229:$V12,230:$V22,231:$V32},o($V2,[2,343]),{14:[1,222],43:210,105:$V_1,111:229,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:230,338:227,339:228,340:225,341:226,501:220,504:221,507:223,508:224},o([2,14,53,54,71,87,88,99,104,105,142,158,181,229,230,231,232,233,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300,303],$Ve2,{171:232,185:$Vf2,256:$Vg2}),o($V2,[2,13]),o($V2,[2,14]),{14:[1,235],24:[1,236],32:[1,237]},o($V2,[2,37]),o($V2,[2,38]),o($V2,[2,39]),{14:[1,238],24:[1,240],32:[1,241],41:239,142:$Vh2,253:$Vi2,284:$Vj2},o($V2,[2,223]),o($V2,[2,224]),o($V2,[2,225]),o($V2,[2,226]),{14:[1,245],24:[1,248],32:[1,249],41:246,142:$Vk2,253:$Vi2,284:$Vj2},{14:[1,250],218:[1,251]},{14:[1,253],22:252,117:$Vl2},{13:[1,257],14:[1,256],28:[1,255]},{14:[1,259],24:[1,258]},o($V2,[2,17],{22:260,117:$Vl2}),o($V2,[2,25]),{1:[2,358]},o($V0,$V1,{164:261}),{1:[2,359]},o($V2,[2,259]),o($Vm2,$V1,{164:262}),o($V2,[2,9]),{183:[1,263],235:[1,264]},o($V2,[2,297]),o($Vn2,[2,1152]),o($Vo2,[2,371]),o($Vo2,[2,372]),o($Vo2,[2,373]),o($Vo2,[2,368]),o($Vo2,[2,369]),o($Vo2,[2,370]),o($V2,[2,263]),o($V2,[2,265]),o($V52,$V62,{353:200,354:201,355:202,356:203,350:265,351:266,294:$V72}),{29:267,31:268,166:269,169:133,170:$Vy,176:143,352:144,357:$VW1},o($Va2,$V62,{355:202,353:213,350:270,294:$Vb2}),o($Va2,[2,622]),o($Va2,[2,626]),o($V52,$Vp2,{355:271,356:272,294:$V72}),o($Va2,[2,635]),o($Vq2,[2,636]),o($Va2,[2,638],{355:202,353:273,294:$Vb2}),o([14,170,185,256],$V1,{164:274}),o([14,71,170],$Vr2,{77:[1,275]}),o($Vs2,[2,647]),o($Vt2,[2,648]),o($Vs2,[2,650],{77:[1,276]}),{14:[1,278],28:[1,277]},o($Vo2,[2,578]),{55:$Vu2,244:$Vv2},o($Va2,[2,625]),o($Va2,$Vp2,{355:271,294:$Vb2}),o([170,185,256],$V1,{164:281}),{29:282,166:284,169:283,170:$Vc2,357:$Vw2},o($Va2,$V62,{355:202,353:213,350:286,294:$Vb2}),o([2,53,54,71,87,88,99,104,105,142,158,181,229,230,231,232,233,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300],$Ve2,{171:287,185:$Vf2,256:$Vg2}),o($V2,[2,1192]),o($V2,[2,1193]),o($V2,[2,1169],{13:[1,288],14:[1,289]}),o($V2,[2,1168],{13:[1,290]}),o($V2,[2,1170]),o($Vx2,[2,1171]),o($Vy2,[2,1172]),o($Vx2,[2,1173]),o($Vy2,[2,1174]),o($Vx2,[2,585],{228:189,43:210,111:291,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($Vy2,[2,587],{228:189,43:210,111:292,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($Vz2,$VA2,{235:[1,293]}),o($VB2,[2,583]),{55:$Vu2,244:$Vv2,307:[1,294]},{2:$VC2,14:[1,299],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:308,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,172:295,174:296,177:297,179:298,180:300,181:$VL2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:301,419:302,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($V83,[2,659]),o($V83,[2,660]),o($V2,[2,15]),{14:[1,380],25:378,26:379,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},{14:[1,385],25:383,26:384,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($V2,[2,40]),o([14,105,142,163,225,229,230,231],$V93,{42:386,45:387,268:$Va3}),o($Vb3,$V93,{42:389,45:390,268:$Va3}),o($Vb3,$V93,{42:391,45:392,268:$Va3}),{43:393,105:$V_1,142:$V$1,228:189,229:$V12,230:$V22,231:$V32},o($Vc3,[2,488]),o($Vc3,[2,489]),o($V2,[2,227]),o($Vd3,$Ve3,{153:394,155:395,268:$Vf3}),{43:397,105:$V_1,142:$V$1,228:189,229:$V12,230:$V22,231:$V32},o($Vb3,$Ve3,{153:398,155:399,268:$Vf3}),o($Vb3,$Ve3,{153:400,155:401,268:$Vf3}),o($V2,[2,347]),o($Vb3,$Vg3,{219:402,24:$Vh3}),o($V2,$Vi3,{14:[1,404]}),o($V2,[2,19]),{71:[1,405]},{14:[1,407],29:406,31:408,166:269,169:133,170:$Vy,176:143,352:144,357:$VW1},o($V2,[2,26]),{14:[1,409]},o($Vb3,$Ve3,{153:410,155:411,268:$Vf3}),o($V2,[2,251]),o($V2,[2,18]),o($V2,$V3,{161:6,162:7,3:117,211:118,29:119,102:120,166:121,9:122,167:123,31:124,4:126,5:127,6:128,7:129,8:130,212:131,213:132,169:133,10:137,11:138,12:139,15:140,215:141,216:142,176:143,352:144,16:145,17:146,33:147,34:148,35:149,36:150,143:151,144:152,145:153,146:154,147:155,214:157,18:160,19:161,37:163,38:164,39:165,148:167,149:168,150:169,151:170,21:173,27:174,23:176,30:177,160:412,165:413,2:$V4,13:$V5,14:$V6,20:$V7,24:$V8,28:$V9,40:$Va,53:$Vb,54:$Vc,69:$Vd,71:$Ve,73:$Vf,77:$Vg,87:$Vh,88:$Vi,99:$Vj,100:$Vk,101:$Vl,104:$Vm,105:$Vn,117:$Vo,118:$Vp,121:$Vq,132:$Vr,134:$Vs,142:$Vt,152:$Vu,157:$Vv,158:$Vw,168:$Vx,170:$Vy,183:$Vz,185:$VA,187:$VB,188:$VC,189:$VD,190:$VE,191:$VF,192:$VG,193:$VH,194:$VI,217:$VJ,218:$VK,229:$VL,230:$VM,231:$VN,232:$VO,233:$VP,234:$VQ,235:$VR,236:$VS,237:$VT,238:$VU,239:$VV,240:$VW,241:$VX,242:$VY,243:$VZ,244:$V_,245:$V$,246:$V01,247:$V11,248:$V21,249:$V31,250:$V41,251:$V51,252:$V61,253:$V71,254:$V81,255:$V91,256:$Va1,257:$Vb1,258:$Vc1,259:$Vd1,260:$Ve1,261:$Vf1,262:$Vg1,263:$Vh1,264:$Vi1,265:$Vj1,266:$Vk1,267:$Vl1,268:$Vm1,269:$Vn1,270:$Vo1,271:$Vp1,272:$Vq1,273:$Vr1,274:$Vs1,275:$Vt1,276:$Vu1,277:$Vv1,278:$Vw1,279:$Vx1,280:$Vy1,281:$Vz1,282:$VA1,283:$VB1,284:$VC1,285:$VD1,286:$VE1,287:$VF1,288:$VG1,289:$VH1,290:$VI1,291:$VJ1,292:$VK1,293:$VL1,294:$VM1,295:$VN1,296:$VO1,297:$VP1,298:$VQ1,299:$VR1,300:$VS1,301:$VT1,302:$VU1,303:$VV1,357:$VW1,500:$VX1,514:$VY1}),o($V2,$V3,{161:6,162:7,3:117,211:118,29:119,4:126,5:127,6:128,7:129,8:130,212:131,213:132,16:145,17:146,33:147,34:148,35:149,36:150,143:151,144:152,145:153,146:154,147:155,214:157,169:283,166:284,160:414,21:418,27:419,2:$V4,13:$Vj3,20:$Vk3,24:$V8,28:$V9,40:$Vl3,53:$Vb,54:$Vc,69:$Vd,71:$Ve,73:$Vf,77:$Vg,87:$Vh,88:$Vi,99:$Vj,100:$Vk,101:$Vl,104:$Vm,105:$Vn,117:$Vo,118:$Vp,121:$Vq,132:$Vr,134:$Vs,142:$Vt,152:$Vm3,157:$Vv,158:$Vn3,170:$Vc2,183:$Vz,185:$VA,187:$VB,188:$VC,189:$VD,190:$VE,191:$VF,192:$VG,193:$VH,194:$VI,217:$Vo3,218:$VK,229:$VL,230:$VM,231:$VN,232:$VO,233:$VP,234:$VQ,235:$VR,236:$VS,237:$VT,238:$VU,239:$VV,240:$VW,241:$VX,242:$VY,243:$VZ,244:$V_,245:$V$,246:$V01,247:$V11,248:$V21,249:$V31,250:$V41,251:$V51,252:$V61,253:$V71,254:$V81,255:$V91,256:$Va1,257:$Vb1,258:$Vc1,259:$Vd1,260:$Ve1,261:$Vf1,262:$Vg1,263:$Vh1,264:$Vi1,265:$Vj1,266:$Vk1,267:$Vl1,268:$Vm1,269:$Vn1,270:$Vo1,271:$Vp1,272:$Vq1,273:$Vr1,274:$Vs1,275:$Vt1,276:$Vu1,277:$Vv1,278:$Vw1,279:$Vx1,280:$Vy1,281:$Vz1,282:$VA1,283:$VB1,284:$VC1,285:$VD1,286:$VE1,287:$VF1,288:$VG1,289:$VH1,290:$VI1,291:$VJ1,292:$VK1,293:$VL1,294:$VM1,295:$VN1,296:$VO1,297:$VP1,298:$VQ1,299:$VR1,300:$VS1,301:$VT1,302:$VU1,357:$Vw2,500:$Vp3,514:$Vq3}),{2:[1,425],43:427,51:429,53:$Vr3,54:$Vs3,88:[1,432],105:$V_1,142:$V$1,184:426,228:189,229:$V12,230:$V22,231:$V32,234:[1,434],235:$VP2,261:[1,431],293:[1,430],295:$V33,296:$V43,305:436,308:437,385:433,408:428,409:[1,435],414:352,415:353},{43:440,105:$V_1,142:$V$1,228:189,229:$V12,230:$V22,231:$V32},o($Va2,[2,623]),o($Va2,[2,629]),{73:[1,441]},{73:[1,442]},{71:$V42,169:195,170:$Vy,176:197},o($Va2,[2,628]),o($Vq2,[2,637]),o($Va2,[2,639],{355:202,353:443,294:$Vb2}),o($Va2,[2,640],{355:271,294:$Vb2}),{14:[1,445],170:$Ve2,171:444,185:$Vf2,256:$Vg2},{43:210,105:$V_1,111:209,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,360:446,361:447},{43:210,105:$V_1,111:449,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,358:448,360:207},{71:[1,450]},o($Vt3,[2,655]),{244:[1,451]},o($Vo2,[2,580]),{170:$Ve2,171:452,185:$Vf2,256:$Vg2},{73:[1,453]},o($Va2,$V62,{350:198,355:202,353:213,294:$Vb2}),{71:[1,455],169:454,170:$Vc2},{43:210,105:$V_1,111:449,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,358:456,360:207},o($Va2,[2,632]),{2:$VC2,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,172:457,174:458,180:459,181:$VL2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{14:$VF3,43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,502:478,505:479,509:480,510:481,511:482},o($V2,[2,1167]),{43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,502:486,509:480,511:487},o($Vx2,[2,586]),o($Vy2,[2,588]),{43:210,105:$V_1,111:488,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,303:$VG3,327:491,329:489},o($VH3,[2,539]),{173:492,178:493,264:$VI3,364:494,366:495},o($VJ3,$VK3,{364:494,366:495,173:498,178:499,14:[1,500],77:[1,501],175:$VL3,264:$VI3}),{173:502,264:$VM3,364:503},o($Vq2,[2,276],{364:503,173:505,264:$VM3}),o($Vq2,[2,277],{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,364:503,173:506,174:507,391:517,28:$V82,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,77:$VO3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VU3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,264:$VM3,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{77:[1,522],264:$V_3},o($V$3,[2,910]),o($V04,[2,912],{77:[1,523]}),o($V14,[2,298]),{77:[1,524]},o([14,73,77,163,175,225,264,294],$V24,{228:189,43:210,305:436,308:437,418:525,420:526,391:540,396:541,111:542,51:543,327:545,310:546,306:550,309:551,28:$V34,53:$VD2,54:$VE2,69:$V44,87:$V54,100:$V64,101:$V74,105:$V_1,134:$V84,142:$V$1,183:$V94,229:$V12,230:$V22,231:$V32,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,244:$Vd2,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($V$3,$Vk4),o($Vl4,$V24,{228:189,43:210,305:436,308:437,111:542,51:543,418:552,391:565,28:$Vm4,53:$Vr3,54:$Vs3,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,105:$V_1,134:$Vq4,142:$V$1,183:$Vr4,229:$V12,230:$V22,231:$V32,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,244:$V92,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),{28:$Vz4},o($VA4,[2,733]),{14:[1,570],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:568,133:569,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:573,104:$VJ2,105:$V_1,111:357,130:571,133:572,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VC4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:575,133:576,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:[1,577],305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VC4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:579,133:580,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:[1,581],305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{71:$VD4,388:582,394:583},{14:[1,587],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:585,133:586,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:[1,591],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:589,133:592,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,258:$VE4,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,301:$VF4,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,392:588,393:317,397:590,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360,515:593,516:594,517:596,518:597},o($VG4,[2,763]),o($VA4,[2,865]),o($VA4,$VH4,{401:599,406:600,71:$VI4}),{71:$VI4,401:602,406:603},o($VA4,[2,869]),o($VA4,[2,870]),o($VG4,[2,871]),o($VG4,[2,872]),o($VG4,[2,875]),o($VA4,[2,882]),o($VJ4,$VK4,{235:[1,604]}),{71:[2,1034]},{71:[2,1035]},{71:[2,1036]},{71:[2,1037]},o($VA4,$VL4,{458:605,463:606,460:607,465:608,278:$VM4}),{14:[1,611],278:$VM4,460:610,465:612},o($VA4,[2,1022]),o($VG4,[2,883]),o($VG4,[2,878]),o($VG4,[2,1023]),o($VG4,[2,1025],{460:613,278:$VN4}),o($VG4,[2,1029]),o($VA4,[2,884]),o($VA4,[2,885]),o($VO4,[2,592]),o($VP4,[2,1043]),o($VP4,[2,1044]),o($VP4,[2,1045]),{71:[1,615]},{71:[1,616]},o($VG4,[2,886]),o($VG4,[2,1046]),o($VG4,[2,1047]),o($VG4,[2,1048]),o($VA4,[2,887]),o($VA4,[2,888]),o($VA4,[2,896]),o($VA4,[2,897]),o($VA4,[2,898]),o([2,14,28,50,53,54,69,71,73,77,87,99,100,101,104,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,235,240,241,242,244,245,246,247,250,254,255,257,258,259,262,264,265,266,269,270,271,272,276,277,280,281,283,285,288,290,291,292,294,299,301,302,390],[2,602]),{71:[1,617]},{71:[1,618]},{71:[1,619]},o($VG4,[2,899]),o($VG4,[2,900]),o($VA4,[2,889],{235:[1,620]}),{295:[1,621],296:[1,622]},{295:[1,623]},{53:$VQ4,55:$VR4,307:[1,626]},{54:$VS4,55:$VT4,307:[1,629]},o($VA4,[2,901]),o($VA4,[2,902]),{71:[2,1137]},{71:[2,1138]},{71:[2,1139]},{71:[2,1140]},{71:[2,1141]},{71:[2,1142]},{71:[2,1143]},{71:[2,1144]},o([14,117],[2,21]),o($VU4,[2,22]),o($VU4,[2,23]),o([13,14,28,53,54,73,77,105,117,132,142,157,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,275,277,294,302],$VV4,{235:[1,630]}),o($VW4,[2,557],{235:[1,631]}),o([13,14,28],[2,30]),o($V2,[2,31]),o($V2,[2,32]),o($V2,$VX4,{228:189,43:632,14:[1,633],105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32}),o($V2,[2,44],{228:189,43:634,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32}),{14:[1,636],87:[1,635]},{14:[1,639],43:210,56:637,57:638,58:640,61:641,64:642,67:643,105:$V_1,111:644,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:645},o($V2,[2,62]),{14:[1,647],43:210,64:646,67:648,105:$V_1,111:644,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:645},o($V2,[2,201]),o($V2,[2,217]),o($V2,[2,229],{228:189,43:210,111:649,14:[1,650],105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V2,[2,230],{228:189,43:210,111:651,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),{14:[1,653],260:$VY4},o($V2,[2,235]),{14:[1,655],25:654,26:656,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($V2,[2,237],{228:189,43:210,25:657,111:658,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),{14:[1,660],25:659,26:661,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($V2,[2,247],{228:189,43:210,111:658,25:662,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),{14:[1,663],25:665,26:664,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($Vb3,[2,356]),o($V2,[2,20]),{43:210,79:668,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,319:666,336:667},o($V2,[2,24]),o($V2,[2,28]),o($V2,[2,29]),o($V2,[2,27]),{14:[1,670],25:669,26:671,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($V2,[2,253],{228:189,43:210,111:658,25:672,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V2,[2,262]),{163:[1,674],225:[2,363]},{163:$VZ4,225:[2,362]},{2:$VZ1,43:186,105:$V_1,142:$V$1,182:184,185:$V02,228:189,229:$V12,230:$V22,231:$V32},{43:218,105:$V_1,142:$V$1,228:189,229:$V12,230:$V22,231:$V32},{43:210,105:$V_1,111:676,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,338:227,340:225,501:675,507:223},{22:677,117:$Vl2},{28:[1,678]},{24:[1,680],32:[1,681],41:679,142:$Vh2,253:$Vi2,284:$Vj2},{24:[1,683],32:[1,684],41:682,142:$Vk2,253:$Vi2,284:$Vj2},{24:[1,685]},{218:[1,686]},{24:[1,687],32:[1,688]},o($V2,[2,295]),o($V2,[2,296]),o($V2,[2,1154]),o($V2,[2,1155],{228:189,43:689,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32}),o($V2,[2,1157]),o($V2,[2,1158]),o($V2,[2,1159]),o($V2,[2,1160]),o($V_4,[2,879]),{235:$VP2,295:$V33,296:$V43,385:690,414:352,415:353},{235:$VP2,295:$V33,296:$V43,385:691,414:352,415:353},o($V$4,[2,496]),o($V$4,[2,497]),{53:$VQ4,55:$VR4},{54:$VS4,55:$VT4},o($Vn2,[2,1153]),o($Va2,$V62,{355:202,353:213,350:692,294:$Vb2}),o($Va2,[2,627]),o($Va2,[2,641],{355:271,294:$Vb2}),{169:693,170:$Vy,176:694},o($Vq2,[2,643],{169:695,170:$Vc2}),o($Vt2,[2,649]),o($Vs2,[2,651],{77:[1,696]}),o($Vs2,[2,652],{77:$V05}),{28:[1,698]},o($V15,$V25,{362:699,102:700,363:701,441:702,14:$V6,303:$VV1}),o($Vo2,[2,579]),{169:693,170:$Vc2},o($Va2,[2,631]),o($Va2,$V62,{355:202,353:213,350:265,294:$Vb2}),{29:267,166:284,169:283,170:$Vc2,357:$Vw2},o([71,170],$Vr2,{77:$V05}),{173:492,264:$VM3,364:503},o($Vq2,$VK3,{173:498,364:503,77:[1,703],175:$VL3,264:$VM3}),{77:[1,704],264:$V_3},o([2,73,77,163,175,225,264,294],$V24,{228:189,43:210,305:436,308:437,418:525,391:540,111:542,51:543,28:$Vm4,53:$Vr3,54:$Vs3,69:$VN3,87:$V35,100:$V45,101:$V55,105:$V_1,134:$V65,142:$V$1,183:$V75,229:$V12,230:$V22,231:$V32,233:$V85,234:$V95,240:$Va5,241:$Vb5,244:$V92,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:718,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:719,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:720,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:721,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{71:$Vg5,388:582},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:723,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:724,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,301:$Vh5,305:354,308:355,322:318,342:470,385:340,386:309,392:588,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477,515:725,517:596},o($Vi5,$VH4,{401:599,71:$Vj5}),{71:$Vj5,401:602},o([2,28,53,54,69,71,73,77,87,100,101,105,121,134,142,163,175,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,271,272,276,277,280,281,283,290,294,301,302,390],$VK4,{235:[1,728]}),o($Vi5,$VL4,{458:605,460:607,278:$VN4}),{278:$VN4,460:610},{71:[1,729]},{71:[1,730]},{71:[1,731]},{71:[1,732]},{71:[1,733]},o($Vk5,$Vl5,{503:734,506:735,77:[1,736],264:[1,737]}),o($Vm5,$Vl5,{503:738,264:$Vn5}),o($Vo5,[2,1175]),o($Vp5,[2,1177],{77:[1,740]}),{14:[1,742],183:[1,741]},o($Vq5,[2,1184]),o([14,183],[2,1185]),o($Vr5,[2,589],{235:[1,743]}),o($Vm5,$Vl5,{503:744,77:$Vs5,264:$Vn5}),{183:[1,746]},o($Vz2,[2,582]),o($VB2,[2,584]),o($VH3,[2,537]),o($VH3,[2,538]),o($Vq2,[2,270]),o($Vq2,[2,275]),o($Vt5,$Vu5,{365:747,195:749,201:750,196:751,210:752,14:[1,748],302:$Vv5}),o($Vw5,$Vu5,{365:754,201:755,196:756,302:$Vx5}),{14:[1,759],25:773,26:775,43:210,71:$VD4,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382,370:758,371:760,388:774,394:776,421:761,422:762,423:763,424:764,425:765,426:766,427:767,428:768,435:769,436:770,437:771,438:772},o($Vq2,[2,271]),o($Vq2,[2,273]),o($Vq2,[2,278]),o($Vq2,[2,283],{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,364:503,173:777,174:779,53:$Vr3,54:$Vs3,71:$Vu3,77:[1,778],87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,264:$VM3,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{2:$VC2,14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:782,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,180:780,181:$VL2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:781,419:783,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($Vq2,[2,274]),o($Vw5,$Vu5,{365:747,201:755,196:756,302:$Vx5}),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,370:784,388:774,421:761,423:763,425:785,426:766,435:769,436:786},o($Vq2,[2,279]),o($Vq2,[2,280]),o($V04,[2,913],{77:$Vy5}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:788,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:789,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:790,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:791,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:792,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:793,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:794,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($Vl4,$Vk4,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:795,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:796,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,841]),{43:210,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:718,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,391:797,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:798,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:799,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:800,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{14:$Vz5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:803,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,174:801,179:802,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:301,419:302,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:805,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VA5},o($V$3,[2,905]),o($Vl4,[2,909]),o($VB5,$VC5,{387:807,14:[1,808],87:[1,809]}),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:810,133:812,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:811,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:815,133:817,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:816,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:818,133:820,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:819,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:821,133:823,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:822,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:[1,827],69:$V44,245:[1,825],269:[1,824],280:$Vi4,281:$Vj4,391:826,396:828},{71:[1,829],395:830},{14:[1,833],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:831,133:832,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:834,133:836,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:835,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:837,133:839,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:838,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:840,133:842,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:841,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:843,133:845,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:844,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:846,133:848,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:847,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VA4,[2,759]),o($VG4,[2,839]),o($VD5,[2,1011]),o($VD5,[2,1012]),{14:[1,853],43:210,51:850,53:$VD2,54:$VE2,105:$V_1,111:849,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,305:436,306:550,308:437,309:551,310:852,327:851},o($VE5,[2,1015]),o($VE5,[2,1016]),{14:$VF5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:854,133:855,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,327:858,328:856,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VF5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:859,133:860,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,327:858,328:861,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VF5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:862,133:863,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,327:858,328:864,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VE5,[2,498]),o($VE5,[2,499]),o($Vl4,[2,907]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:865,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:866,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:867,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:868,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,245:[1,870],269:[1,869],280:$VY3,281:$VZ3,391:871},{71:[1,872]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:873,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:874,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:875,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:876,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:877,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:878,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,837]),{43:210,51:850,53:$Vr3,54:$Vs3,105:$V_1,111:849,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,305:436,308:437},{43:210,105:$V_1,111:879,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VG5,$VH5,{391:540,396:541,69:$V44,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VI5,[2,765],{391:565,69:$VN3,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($VJ5,[2,766],{391:517,69:$VN3,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,241:$VW3,280:$VY3,281:$VZ3}),o($VG5,$VL5,{391:540,396:541,69:$V44,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VI5,[2,767],{391:565,69:$VN3,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($VG4,[2,768]),o([2,28,53,54,71,73,77,87,88,99,100,101,104,105,134,142,158,163,183,187,188,189,190,191,192,193,194,225,229,230,231,232,233,234,235,238,239,240,241,242,243,244,245,248,249,251,255,258,259,260,261,264,265,266,268,269,272,273,274,276,277,286,287,289,290,293,294,295,296,297,298,300,301,302,390],$V82,{391:517,69:$VN3,280:$VY3,281:$VZ3}),o($VG5,$VM5,{391:540,396:541,69:$V44,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VI5,[2,769],{391:565,69:$VN3,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($VG4,[2,770]),{69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3,391:517},o($VO5,$VP5,{391:540,396:541}),o($VQ5,[2,771],{391:565}),o($VG4,[2,772]),o($VA4,[2,742]),o($VG4,[2,781]),o($V15,$V25,{441:702,388:774,362:882,436:883,363:884,102:885,14:$V6,71:$Vg5,303:$VV1}),{69:$V44,73:$VR5,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},{2:$VS5,69:$VN3,73:$VT5,75:887,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,391:565},{2:$VS5,69:$VN3,73:$VT5,75:890,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3,391:517},o($VA4,[2,761]),{14:[1,893],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,258:$VE4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,301:$VF4,391:540,392:891,396:541,397:892,515:593,516:594,517:596,518:597},o($VG4,[2,843]),{2:$VU5,43:210,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,79:342,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,111:357,130:897,134:$VS3,142:$V$1,158:$VK2,183:$VT3,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,258:$VV5,259:$VW5,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,290:$VX5,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,301:$Vh5,305:354,308:355,322:318,342:470,385:340,386:309,391:517,392:895,398:894,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477,515:725,517:596},{2:$VU5,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,259:$VW5,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,301:$Vh5,391:565,392:901,398:902,515:725,517:596},{14:[1,905],258:[1,904],259:$VY5,301:$VF4,517:906,518:907},{2:$VU5,258:[1,909],259:$VW5,398:908},{14:[1,910]},o($VZ5,[2,1221]),o($V_5,[2,1223],{517:596,515:911,301:$Vh5}),{14:[1,915],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:912,133:913,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,290:[1,914],293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VA4,[2,867]),o($VG4,[2,873]),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,73:$V$5,77:$V06,79:342,87:$VG2,88:$VH2,99:$VI2,102:918,104:$VJ2,105:$V_1,111:357,130:920,133:921,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,389:917,393:317,399:919,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VA4,[2,868]),o($VG4,[2,874]),{43:210,79:924,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,233:$V16,244:$Vd2,303:$VG3,327:491,329:925},o($VA4,[2,1020]),o($VG4,[2,1024]),o($VA4,[2,1055]),o($VG4,[2,1056]),{43:210,71:[1,929],105:$V_1,111:926,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,475:927,476:928},o($VA4,[2,1021]),o($VG4,[2,1027]),o($VG4,[2,1028]),o($VG4,[2,1026]),{43:210,71:[1,930],105:$V_1,111:926,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,475:927},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,73:$V26,77:$V06,79:342,87:$VG2,88:$VH2,99:$VI2,102:933,104:$VJ2,105:$V_1,111:357,130:920,133:921,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,389:932,393:317,399:934,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,28:[1,939],43:210,53:$VD2,54:$VE2,71:$VF2,73:$V36,79:342,87:$VG2,88:$VH2,99:$VI2,102:937,104:$VJ2,105:$V_1,111:357,130:935,133:938,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o([14,53,54,71,77,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300,303],$Ve2,{171:942,73:$V46,185:$Vf2,233:$V56,256:$Vg2}),o([14,53,54,71,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300,303],$Ve2,{171:943,73:$V66,185:$Vf2,256:$Vg2}),o([14,53,54,71,73,77,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300,303],$Ve2,{171:945,185:$Vf2,256:$Vg2}),o($VA4,[2,890],{295:[1,946],296:[1,947]}),o($VA4,[2,892]),{295:[1,948]},o($VA4,[2,893]),{53:$V76},o($V86,[2,491]),o($V96,[2,492]),{54:$Va6},o($V86,[2,494]),o($V96,[2,495]),{43:210,105:$V_1,111:951,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,303:$VG3,327:491,329:952},{43:210,105:$V_1,111:953,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vb6,$Vc6,{44:954,46:955,47:956,48:957,49:958,52:959,50:[1,960]}),o($V2,[2,43],{228:189,43:961,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32}),o($V2,[2,46]),{14:[1,963],260:$Vd6},o($V_4,[2,510]),o($V2,[2,59]),o($V2,[2,60]),o($V2,[2,61]),o($Ve6,$Vf6,{59:964,62:965,116:966,117:[1,967]}),o($Vg6,$Vf6,{116:966,59:968,117:$Vh6}),o($Vi6,$Vj6,{65:970,66:971,68:972,70:974,69:[1,973],71:[1,975]}),o($Vk6,$Vj6,{68:972,65:976,69:$Vl6,71:$Vm6}),o($Vn6,$Vo6,{235:[1,979]}),o($Vp6,[2,562],{235:[1,980]}),o($Vq6,$Vr6,{136:981,137:982,138:983,71:[1,984]}),o($V2,[2,199],{228:189,43:210,64:985,111:986,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($Vs6,$Vr6,{138:983,136:987,71:$Vt6}),o($V2,$Vu6,{154:989,14:[1,990],315:$Vv6}),o($V2,[2,231],{228:189,43:210,111:992,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V2,$Vu6,{154:993,315:$Vv6}),o($Vd3,[2,506]),o([105,142,163,225,229,230,231,244],[2,507]),o($Vb6,$Vw6,{156:994,157:$Vx6}),o($V2,[2,238]),o($V2,$Vw6,{156:996,157:$Vx6}),o($V2,$Vw6,{156:997,157:$Vx6}),o($VW4,$VV4,{235:[1,998]}),o($V2,[2,244]),o($V2,[2,245],{228:189,43:210,111:658,25:999,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V2,[2,249]),o($V2,[2,248]),o($V2,[2,348]),o($V2,[2,349],{132:[1,1000]}),{14:[1,1001],132:$Vy6},{73:[1,1003],77:[1,1004]},o($Vz6,[2,567]),{183:[1,1005]},o($V2,$VA6,{14:[1,1006]}),o($V2,[2,252],{228:189,43:210,111:658,25:1007,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V2,[2,254]),o($V2,[2,515],{159:1008,22:1009,117:$Vl2}),o($Vm2,$V1,{164:1010}),o($Vm2,$V1,{164:1011}),{13:[1,1012]},o([13,105,142,229,230,231,244],$VA2,{235:[1,1013]}),o($V2,$Vi3),{29:406,166:284,169:283,170:$Vc2,357:$Vw2},o($V_4,$V93,{42:1014,268:$VB6}),o($VC6,$V93,{42:1016,268:$VB6}),o($VC6,$V93,{42:1017,268:$VB6}),o($VC6,$Ve3,{153:1018,268:$VD6}),o($VC6,$Ve3,{153:1020,268:$VD6}),o($VC6,$Ve3,{153:1021,268:$VD6}),o($VC6,$Ve3,{153:1022,268:$VD6}),o($VC6,$Vg3,{219:1023,24:$Vh3}),{25:378,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{25:383,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($V2,[2,1156]),o($V_4,[2,880]),o($V_4,[2,881]),o($Va2,[2,624]),o($Vq2,[2,642]),o($Vq2,[2,645]),o($Vq2,[2,644]),{43:210,105:$V_1,111:449,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,358:1024,360:207},{43:210,105:$V_1,111:449,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,360:446},{71:[1,1025]},{73:[1,1026]},{2:$VS5,73:$VT5,75:1027},{2:$VS5,73:$VT5,75:1028},{29:1043,31:1044,166:269,169:133,170:$Vy,176:143,352:144,357:$VW1,443:1029,444:1030,445:1031,446:1032,447:1033,448:1034,449:1035,450:1036,451:1037,452:1038,453:1039,454:1040,455:1041,456:1042},{2:$VC2,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,180:1045,181:$VL2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:781,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:1046,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VB5,$VC5,{387:1047,87:[1,1048]}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1049,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1050,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1051,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1052,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,245:[1,1054],269:[1,1053],280:$VY3,281:$VZ3,391:826},{71:[1,1055]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1056,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1057,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1058,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1059,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1060,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1061,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VE6,$VH5,{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VE6,$VL5,{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VE6,$VM5,{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VF6,$VP5,{391:540}),o($V15,$V25,{388:774,362:882,436:883,441:1062,71:$Vg5}),{69:$VN3,73:$VR5,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540},{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,301:$Vh5,391:540,392:891,515:725,517:596},{258:[1,1063],259:$VY5,301:$Vh5,517:906},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1064,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,73:$V$5,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1065,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,79:924,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,233:$V16,244:$V92},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,73:$V26,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1067,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,73:$V36,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1068,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG6,$Ve2,{171:1069,73:$V46,185:$Vf2,233:$V56,256:$Vg2}),o($VG6,$Ve2,{171:1070,73:$V66,185:$Vf2,256:$Vg2}),o([53,54,71,73,87,88,99,104,105,142,158,229,230,231,232,234,235,238,239,243,244,248,249,251,260,261,268,273,274,286,287,289,293,295,296,297,298,300],$Ve2,{171:1071,185:$Vf2,256:$Vg2}),o($Vb6,$Vu5,{196:756,201:1072,210:1073,302:$Vv5}),o($V2,$Vu5,{196:756,201:1074,302:$Vx5}),{14:$VF3,43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,509:1075,510:1076,511:482},{14:[1,1078],25:773,26:775,43:210,71:$VD4,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382,388:774,394:776,421:1077,422:1079,423:763,424:764,425:765,426:766,427:767,428:768,435:769,436:770,437:771,438:772},o($V2,$Vu5,{196:756,201:1080,302:$Vx5}),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,388:774,421:1077,423:763,425:785,426:766,435:769,436:786},{43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,502:1081,509:480,511:487},{14:$VC4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1084,133:1085,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360,512:1082,513:1083},o($Vq5,[2,1183]),{43:210,79:924,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,233:[1,1086],244:$V92},o($V2,$Vu5,{196:756,201:1087,302:$Vx5}),{43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,509:1075,511:487},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1088,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477,512:1082},o($Vq2,[2,661]),o($VH6,$Vu5,{201:755,196:756,365:1089,302:$Vx5}),o($Vq2,$VI6,{367:1090,368:1091,369:1092,430:1093,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($VR6,$VS6,{197:1102,209:1103,205:1104,265:$VT6}),o($Vt5,$VU6,{2:[1,1106],14:[1,1107]}),o($VV6,$VS6,{197:1108,209:1109,265:$VW6}),{14:[1,1113],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1114,133:1115,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,372:1111,373:1112,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($Vq2,[2,662]),o($VV6,$VS6,{209:1109,197:1116,265:$VW6}),o($VX6,$VU6),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1117,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,372:1111,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o([14,73,163,225,265,266,272,277,294,302],$VY6,{77:[1,1118]}),o($VZ6,[2,669]),o($VZ6,[2,670]),o($V_6,[2,925]),o($VZ6,[2,927],{77:[1,1119]}),o($V_6,[2,932]),o($V$6,[2,933]),o($V07,$V17,{368:1120,429:1121,430:1122,432:1123,186:1131,187:$V27,188:$V37,189:$V47,190:$V57,191:$VN6,192:$V67,193:$V77,194:$V87}),o($V_6,[2,935]),o($V$6,[2,936],{368:1132,430:1133,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($V$6,[2,937]),o($V97,$V24,{228:189,43:210,305:436,308:437,111:542,51:543,418:1134,28:$Vm4,53:$Vr3,54:$Vs3,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o([14,73,77,163,187,188,189,190,191,192,193,194,225,265,266,272,275,277,294,302],$V24,{228:189,43:210,305:436,308:437,111:542,51:543,327:545,310:546,306:550,309:551,418:1135,420:1136,28:$V34,53:$VD2,54:$VE2,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$Vd2}),o($Va7,$V24,{228:189,43:210,305:436,308:437,111:542,51:543,418:1137,28:$Vm4,53:$Vr3,54:$Vs3,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($Va7,$V24,{228:189,43:210,305:436,308:437,111:542,51:543,418:1138,28:$Vm4,53:$Vr3,54:$Vs3,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($Vb7,[2,980]),o($Vb7,[2,982]),o($Vc7,[2,981]),o($Vc7,[2,983]),o($Vq2,[2,281]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,173:1139,174:1140,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,264:$VM3,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,364:503,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V04,[2,916],{77:$Vy5}),{77:[1,1141],264:$Vd7},o($V$3,[2,911]),o($V04,[2,918],{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,174:1142,28:$Vz4,53:$Vr3,54:$Vs3,71:$Vu3,77:[1,1143],87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($V04,[2,919],{77:[1,1144]}),o($VZ6,$VY6,{77:$Ve7}),o($V$6,$V17,{430:1133,368:1146,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($Va7,$V24,{228:189,43:210,305:436,308:437,111:542,51:543,418:1135,28:$Vm4,53:$Vr3,54:$Vs3,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:781,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V04,[2,914],{77:$Vy5}),o($VQ5,[2,784],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,785],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,786],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,787],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,818],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,822],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,826],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,827],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VG4,[2,842]),o($VF6,$Vf7,{391:540}),o($VF6,$Vg7,{391:540}),o($VF6,$Vh7,{391:540}),{14:$Vi7,77:[1,1147],264:$Vj7},{264:[2,289]},{28:$Vz4,264:[2,292]},o([28,264],$V82,{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,174:507,391:517,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,77:$VO3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VU3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($V04,[2,915],{77:$Vy5}),o($V14,[2,299]),{88:$Vk7,256:[1,1152],261:$Vl7,293:$Vm7},o($VG4,[2,773],{88:[1,1153],261:[1,1154],293:[1,1155]}),o($VB5,$Vn7,{14:[1,1156]}),o($Vo7,$Vp7,{391:540,396:541,69:$V44,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,792]),o($Vq7,[2,796],{391:565,69:$VN3,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($VG4,[2,533]),o($VG4,[2,534]),o($Vo7,$Vr7,{391:540,396:541,69:$V44,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,793]),o($Vq7,[2,797],{391:565,69:$VN3,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($Vo7,$Vs7,{391:540,396:541,69:$V44,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,794]),o($Vq7,[2,798],{391:565,69:$VN3,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($Vo7,$Vt7,{391:540,396:541,69:$V44,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,795]),o($Vq7,[2,799],{391:565,69:$VN3,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),{71:[1,1157],395:1158},{14:[1,1161],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1159,133:1160,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VA4,[2,760]),o($VG4,[2,764]),o($VG4,[2,840]),o($V15,$V25,{228:189,43:210,386:309,393:317,322:318,400:319,402:320,403:321,404:323,405:324,407:325,410:326,342:327,457:332,459:333,461:334,411:335,344:336,462:337,464:338,466:339,385:340,412:341,79:342,469:343,470:344,471:345,413:348,472:349,473:350,474:351,414:352,415:353,305:354,308:355,416:356,111:357,498:360,306:361,309:362,441:702,130:920,133:921,362:1162,389:1163,363:1164,399:1165,102:1166,14:$VB4,53:$VD2,54:$VE2,71:$VF2,77:$V06,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1}),o($VG4,[2,801]),{14:[1,1168],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,390:[1,1167],391:540,396:541},{69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,390:[1,1169],391:565},o($Vu7,[2,817],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,241:$VW3,280:$VY3,281:$VZ3}),o($Vv7,$Vw7,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,820]),o($Vx7,[2,821],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,245:$Vw4,269:$Vx4,280:$VY3,281:$VZ3}),o($Vv7,$Vy7,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,824]),o($Vx7,[2,825],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,245:$Vw4,269:$Vx4,280:$VY3,281:$VZ3}),o($VO5,$Vz7,{391:540,396:541,69:$V44,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,831]),o($VQ5,[2,834],{391:565,69:$VN3,269:$Vx4,280:$VY3,281:$VZ3}),o($VO5,$VA7,{391:540,396:541,69:$V44,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,832]),o($VQ5,[2,835],{391:565,69:$VN3,269:$Vx4,280:$VY3,281:$VZ3}),o($VO5,$VB7,{391:540,396:541,69:$V44,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VG4,[2,833]),o($VQ5,[2,836],{391:565,69:$VN3,269:$Vx4,280:$VY3,281:$VZ3}),o($VD5,[2,1013]),o($VD5,[2,1014]),o($VE5,[2,1017]),o($VE5,[2,1018]),o($VE5,[2,1019]),o($VO5,$Vf7,{391:540,396:541}),o($VQ5,[2,1200],{391:565}),o($VG4,[2,1203]),o([2,28,53,54,73,77,87,100,101,105,134,142,163,183,187,188,189,190,191,192,193,194,225,229,230,231,233,234,240,241,242,244,245,255,258,259,264,265,266,269,272,276,277,290,294,301,302,390],[2,535],{391:517,69:$VN3,280:$VY3,281:$VZ3}),o($VG4,[2,536]),o($VO5,$Vg7,{391:540,396:541}),o($VQ5,[2,1201],{391:565}),o($VG4,[2,1204]),o($VO5,$Vh7,{391:540,396:541}),o($VQ5,[2,1202],{391:565}),o($VG4,[2,1205]),o($Vq7,[2,788],{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vq7,[2,789],{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vq7,[2,790],{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vq7,[2,791],{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),{71:[1,1170]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1171,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,838]),o($V15,$V25,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,441:1062,130:1066,389:1172,362:1173,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,390:[1,1174],391:540},o($Vx7,[2,819],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vx7,[2,823],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,828],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,829],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VQ5,[2,830],{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vl4,[2,908]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:795,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,280:$VY3,281:$VZ3,391:797},{73:[1,1175]},{28:$Vm4,43:210,51:543,53:$Vr3,54:$Vs3,73:$V24,105:$V_1,111:542,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,305:436,308:437,418:1176},{2:$VS5,73:$VT5,75:1177},{2:$VS5,73:$VT5,75:1178},o($VA4,[2,743]),o($VG4,[2,782]),o($VC7,[2,540]),o($VC7,[2,541]),o($VG4,[2,783]),o($VA4,[2,762]),o($VG4,[2,845]),{2:$VU5,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:897,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,258:$VV5,259:$VW5,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,290:$VX5,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,398:1179,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,844]),o($VG4,[2,849]),{2:$VU5,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1180,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,259:$VW5,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,398:1181,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,290:$VD7,391:540},o($VE7,[2,1236],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1183,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VG4,[2,1219]),o($VG4,[2,1220]),o($VG4,[2,847]),o($VG4,[2,848]),o($VA4,[2,1206]),{14:[1,1186],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1184,133:1185,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{2:$VU5,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1187,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,259:$VW5,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,290:$VX5,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,301:$Vh5,305:354,308:355,322:318,342:470,385:340,386:309,398:1188,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477,515:1189,517:596},o($VZ5,[2,1222]),o($V_5,[2,1224],{517:596,515:1190,301:$Vh5}),o($VG4,[2,1208]),{2:$VU5,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1191,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,259:$VW5,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,398:1192,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VU5,259:$VW5,398:1193},o($V_5,[2,1227],{517:906,301:$Vh5}),{14:[1,1195],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,290:[1,1194],391:540,396:541},o($VE7,[2,1229],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,290:[1,1196]}),{14:[1,1198],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1199,133:1197,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VE7,[2,1238],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,391:517,130:1200,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,290:[1,1201],293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VA4,[2,1038]),{14:[1,1203],73:$VF7,77:$VG7},{2:$VS5,73:$VT5,75:1205,77:$VH7},{2:$VS5,73:$VT5,75:1207},o($VI7,$VJ7,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VK7,[2,852],{391:565,69:$VN3,77:[1,1208],87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),{14:$V6,102:1209,303:$VV1},o($VJ4,[2,877]),o($VO4,[2,593]),o($VG4,[2,594],{235:[1,1210]}),o($VA4,[2,1057]),o($VA4,[2,1058]),o($VG4,[2,1059]),o($VL7,$VM7,{477:1211,479:1212,102:1213,481:1215,14:$V6,117:[1,1214],303:$VV1}),o($VL7,$VM7,{481:1215,477:1216,117:$VN7}),o($VO7,[2,1049]),{14:[1,1219],73:$VP7,77:$VG7},{2:$VS5,73:$VT5,75:1220,77:$VH7},{2:$VS5,73:$VT5,75:1221},{14:[1,1223],28:[1,1222],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},o($VA4,[2,1115]),{2:$VS5,28:[1,1224],73:$VT5,75:1225},{2:$VS5,28:[1,1226],69:$VN3,73:$VT5,75:1227,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,391:565},{14:[1,1228]},{73:[1,1229]},o($VP4,[2,1127]),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,77:$V06,79:342,87:$VG2,88:$VH2,99:$VI2,102:1231,104:$VJ2,105:$V_1,111:357,130:920,133:921,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,389:1230,393:317,399:1232,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1234,104:$VJ2,105:$V_1,111:357,130:1233,133:1235,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VP4,[2,1148]),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,73:$VQ7,77:$V06,79:342,87:$VG2,88:$VH2,99:$VI2,102:1238,104:$VJ2,105:$V_1,111:357,130:920,133:921,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,389:1237,393:317,399:1239,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VA4,[2,891]),{295:[1,1240]},o($VA4,[2,894]),o($V86,[2,490]),o($V86,[2,493]),o([2,13,14,28,53,54,73,77,105,117,132,142,157,163,187,188,189,190,191,192,193,194,225,229,230,231,244,265,266,272,275,277,294,302],[2,556]),o($VW4,[2,559]),o($VW4,[2,558]),o($V2,$VR7,{14:[1,1241]}),{2:[1,1242]},o($Vb6,[2,49]),{2:[2,50]},o([2,14,28,73,77,101,163,225],[2,52]),{2:[2,54]},{51:1243,53:[1,1244],54:[1,1245],305:436,308:437},o($V2,[2,45]),o($Vd3,[2,509]),o($V_4,[2,511]),o($V2,$VS7,{60:1246,63:1247,14:[1,1248],28:[1,1249]}),o($V2,$VS7,{60:1250,28:$VT7}),o($Ve6,[2,156]),{14:[1,1252],118:[1,1253]},o($V2,$VS7,{60:1254,28:$VT7}),{118:[1,1255]},o($Vi6,[2,68]),o($Vk6,[2,69]),o($Vi6,[2,72]),{14:[1,1257],25:1256,26:1258,43:210,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382},o($Vk6,[2,74]),{43:210,72:1259,74:1260,76:1261,78:1262,79:1263,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vk6,[2,70]),{25:1256,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{43:210,72:1264,76:1265,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{43:210,105:$V_1,111:1267,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,303:$VG3,327:491,329:1268},{43:210,105:$V_1,111:1269,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o([14,28],$Vc6,{49:958,47:1270,50:$VU7}),o($V2,$Vc6,{49:958,47:1272,50:$VU7}),o($Vq6,[2,208]),{43:210,79:342,105:$V_1,111:357,139:1274,140:1273,141:1275,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($Vs6,$Vr6,{138:983,136:1276,71:$Vt6}),o($Vp6,$Vo6,{235:[1,1277]}),{28:$Vc6,47:1278,49:958,50:$VU7},{43:210,79:342,105:$V_1,111:357,139:1279,141:1280,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($V2,[2,228]),o($V2,[2,232]),o($V2,[2,504]),o($V2,$Vu6,{154:1281,315:$Vv6}),o($V2,[2,233]),o($V2,$VV7,{14:[1,1282]}),o($Vb6,[2,243]),o($V2,[2,239]),o($V2,[2,240]),{43:210,105:$V_1,111:951,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($V2,[2,246]),{71:$VW7,220:1283,221:1284,222:$VX7},o($V2,[2,350]),{71:$VW7,220:1287,221:1284,222:$VX7},o($Vb6,[2,518]),{43:210,79:668,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,336:1288},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1289,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V2,[2,255]),o($V2,[2,256]),o($V2,[2,257]),o($V2,[2,516]),o($V2,$V3,{161:6,162:7,3:117,211:118,29:119,4:126,5:127,6:128,7:129,8:130,212:131,213:132,16:145,17:146,33:147,34:148,35:149,36:150,143:151,144:152,145:153,146:154,147:155,214:157,169:283,166:284,160:412,21:418,27:419,2:$V4,13:$Vj3,20:$Vk3,24:$V8,28:$V9,40:$Vl3,53:$Vb,54:$Vc,69:$Vd,71:$Ve,73:$Vf,77:$Vg,87:$Vh,88:$Vi,99:$Vj,100:$Vk,101:$Vl,104:$Vm,105:$Vn,117:$Vo,118:$Vp,121:$Vq,132:$Vr,134:$Vs,142:$Vt,152:$Vm3,157:$Vv,158:$Vn3,170:$Vc2,183:$Vz,185:$VA,187:$VB,188:$VC,189:$VD,190:$VE,191:$VF,192:$VG,193:$VH,194:$VI,217:$Vo3,218:$VK,229:$VL,230:$VM,231:$VN,232:$VO,233:$VP,234:$VQ,235:$VR,236:$VS,237:$VT,238:$VU,239:$VV,240:$VW,241:$VX,242:$VY,243:$VZ,244:$V_,245:$V$,246:$V01,247:$V11,248:$V21,249:$V31,250:$V41,251:$V51,252:$V61,253:$V71,254:$V81,255:$V91,256:$Va1,257:$Vb1,258:$Vc1,259:$Vd1,260:$Ve1,261:$Vf1,262:$Vg1,263:$Vh1,264:$Vi1,265:$Vj1,266:$Vk1,267:$Vl1,268:$Vm1,269:$Vn1,270:$Vo1,271:$Vp1,272:$Vq1,273:$Vr1,274:$Vs1,275:$Vt1,276:$Vu1,277:$Vv1,278:$Vw1,279:$Vx1,280:$Vy1,281:$Vz1,282:$VA1,283:$VB1,284:$VC1,285:$VD1,286:$VE1,287:$VF1,288:$VG1,289:$VH1,290:$VI1,291:$VJ1,292:$VK1,293:$VL1,294:$VM1,295:$VN1,296:$VO1,297:$VP1,298:$VQ1,299:$VR1,300:$VS1,301:$VT1,302:$VU1,357:$Vw2,500:$Vp3,514:$Vq3}),o($V2,$V3,{161:6,162:7,3:117,211:118,29:119,4:126,5:127,6:128,7:129,8:130,212:131,213:132,16:145,17:146,33:147,34:148,35:149,36:150,143:151,144:152,145:153,146:154,147:155,214:157,169:283,166:284,21:418,27:419,160:1290,2:$V4,13:$Vj3,20:$Vk3,24:$V8,28:$V9,40:$Vl3,53:$Vb,54:$Vc,69:$Vd,71:$Ve,73:$Vf,77:$Vg,87:$Vh,88:$Vi,99:$Vj,100:$Vk,101:$Vl,104:$Vm,105:$Vn,117:$Vo,118:$Vp,121:$Vq,132:$Vr,134:$Vs,142:$Vt,152:$Vm3,157:$Vv,158:$Vn3,170:$Vc2,183:$Vz,185:$VA,187:$VB,188:$VC,189:$VD,190:$VE,191:$VF,192:$VG,193:$VH,194:$VI,217:$Vo3,218:$VK,229:$VL,230:$VM,231:$VN,232:$VO,233:$VP,234:$VQ,235:$VR,236:$VS,237:$VT,238:$VU,239:$VV,240:$VW,241:$VX,242:$VY,243:$VZ,244:$V_,245:$V$,246:$V01,247:$V11,248:$V21,249:$V31,250:$V41,251:$V51,252:$V61,253:$V71,254:$V81,255:$V91,256:$Va1,257:$Vb1,258:$Vc1,259:$Vd1,260:$Ve1,261:$Vf1,262:$Vg1,263:$Vh1,264:$Vi1,265:$Vj1,266:$Vk1,267:$Vl1,268:$Vm1,269:$Vn1,270:$Vo1,271:$Vp1,272:$Vq1,273:$Vr1,274:$Vs1,275:$Vt1,276:$Vu1,277:$Vv1,278:$Vw1,279:$Vx1,280:$Vy1,281:$Vz1,282:$VA1,283:$VB1,284:$VC1,285:$VD1,286:$VE1,287:$VF1,288:$VG1,289:$VH1,290:$VI1,291:$VJ1,292:$VK1,293:$VL1,294:$VM1,295:$VN1,296:$VO1,297:$VP1,298:$VQ1,299:$VR1,300:$VS1,301:$VT1,302:$VU1,357:$Vw2,500:$Vp3,514:$Vq3}),{43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,502:1291,509:480,511:487},{43:210,105:$V_1,111:488,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($V2,$VX4,{228:189,43:1292,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32}),{87:[1,1293]},{43:210,56:637,58:1294,64:1295,105:$V_1,111:986,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{43:210,64:1296,105:$V_1,111:986,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{43:210,105:$V_1,111:1297,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{260:$VY4},{25:1298,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{25:659,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{25:1299,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{25:1300,43:210,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vs2,[2,653],{77:$V05}),o($V15,$V25,{362:699,441:1062}),o($Vt2,[2,654]),o($Vt3,[2,656]),o($Vt3,[2,657]),o($VY7,[2,994]),o($VY7,[2,989],{442:1301}),o($VY7,[2,996]),o($VY7,[2,997]),o($VY7,[2,998]),o($VY7,[2,999]),o($VY7,[2,1000]),o($VY7,[2,1001]),o($VY7,[2,1002]),o($VY7,[2,1003]),o($VY7,[2,1004]),o($VY7,[2,1005]),o($VY7,[2,1006]),o($VY7,[2,1007]),o($VY7,[2,1008]),o($VY7,[2,1009]),{77:[1,1302],264:$Vd7},{77:[1,1303],264:$Vj7},{88:$Vk7,256:[1,1304],261:$Vl7,293:$Vm7},o($VB5,$Vn7),o($VZ7,$Vp7,{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VZ7,$Vr7,{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VZ7,$Vs7,{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VZ7,$Vt7,{391:540,69:$VN3,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),{71:[1,1305]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1306,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V15,$V25,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,441:1062,130:1066,362:1162,389:1307,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,390:[1,1308],391:540},o($V_7,$Vw7,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($V_7,$Vy7,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VF6,$Vz7,{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VF6,$VA7,{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VF6,$VB7,{391:540,69:$VN3,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),{29:1043,166:284,169:283,170:$Vc2,357:$Vw2,443:1029,445:1031,447:1033,449:1035,451:1037,453:1039,455:1041},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1309,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,290:[1,1310],391:540},{73:$VF7,77:$V$7},o($V08,$VJ7,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{73:$VP7,77:$V$7},{28:[1,1312],69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1313,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1314,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,73:$VQ7,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1315,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V2,$V18,{14:[1,1316]}),o($V2,[2,1165]),o($V2,[2,1164]),o($Vo5,[2,1176]),o($Vp5,[2,1178],{77:[1,1317]}),o($Vk5,[2,1189]),o($Vm5,[2,1190]),o($Vm5,[2,1191]),o($V2,[2,1163]),o($Vp5,[2,1179],{77:$Vs5}),o($Vo5,[2,1181]),o($Vq5,[2,1182]),o($Vo5,$V28,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($Vq5,[2,1187],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vr5,[2,590]),o($V2,[2,1162]),o($Vq5,$V28,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vq2,$VI6,{368:1091,369:1092,430:1093,367:1318,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($Vq2,[2,664]),o($Vq2,[2,666],{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($Vq2,[2,667]),o($Vq2,[2,943],{228:189,43:210,111:658,435:769,25:773,388:774,436:786,430:1133,425:1320,368:1321,71:$Vg5,105:$V_1,142:$V$1,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6,229:$V12,230:$V22,231:$V32,244:$V92}),{191:$V38},{191:$V48,192:[1,1324]},{191:$V58},o($V68,[2,958]),{191:$V78,192:[1,1328],193:[1,1326],194:[1,1329]},{191:$V88},{191:$V98,192:[1,1333],193:[1,1331],194:[1,1334]},{191:$Va8},o($Vb8,$Vc8,{198:1336,202:1337,206:1338,266:$Vd8}),o($VR6,$Ve8,{2:[1,1340],14:[1,1341]}),o($Vf8,$Vc8,{198:1342,202:1343,266:$Vg8}),{14:[1,1346],118:[1,1345]},o([266,272,277],$VS6,{209:1109,205:1348,197:1349,14:[1,1347],265:$VT6}),o($VV6,$VS6,{209:1109,197:1350,265:$VW6}),o($Vf8,$Vc8,{202:1343,198:1351,266:$Vg8}),o($VV6,$Ve8),{118:[1,1352]},o($VX6,[2,674]),o($VH6,[2,675]),o($VH6,[2,676],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o([2,14,73,163,225,265,266,272,277,294],$Vh8,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VH6,[2,732],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vf8,$Vc8,{202:1343,198:1353,266:$Vg8}),o($VH6,$Vh8,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{14:$V6,25:773,26:775,43:210,71:$VD4,102:1356,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,303:$VV1,327:382,388:774,394:776,421:1354,422:1355,423:763,424:764,425:765,426:766,427:767,428:768,435:769,436:770,437:771,438:772},{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,388:774,421:1357,423:763,425:785,426:766,435:769,436:786},o($V07,$Vi8,{186:1131,430:1358,432:1359,187:$V27,188:$V37,189:$V47,190:$V57,191:$VN6,192:$V67,193:$V77,194:$V87}),o($V$6,[2,939]),{14:$Vj8,25:773,26:775,43:210,71:$VD4,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382,388:774,394:776,425:1360,427:1361,435:769,436:770,437:771,438:772},o($V$6,[2,950],{430:1133,368:1363,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),{14:[1,1364],191:$V38},{14:[1,1366],191:$V48,192:[1,1365]},{14:[1,1367],191:$V58},{14:[1,1371],191:$V78,192:[1,1369],193:[1,1368],194:[1,1370]},{14:[1,1372],191:$V88},{14:[1,1376],191:$V98,192:[1,1374],193:[1,1373],194:[1,1375]},{14:[1,1377],191:$Va8},o($Vk8,[2,946],{228:189,43:210,111:658,435:769,25:773,388:774,436:786,425:1378,71:$Vg5,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),o($V$6,[2,940],{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,388:774,425:1320,435:769,436:786},o($V97,[2,975]),o($V97,[2,976]),o($Va7,[2,979]),o($Va7,[2,977]),o($Va7,[2,978]),o($Vq2,[2,282]),o($V04,[2,917],{77:$Vy5}),{14:$Vz5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1381,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,174:1379,179:1380,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:301,419:302,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($V04,[2,920],{77:$Vy5}),o($V04,[2,921],{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,174:1382,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($V04,[2,922],{228:189,43:210,417:301,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,130:460,400:468,402:469,342:470,457:471,459:472,498:477,174:1383,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,388:774,421:1354,423:763,425:785,426:766,435:769,436:786},o($V$6,$Vi8,{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),{2:$VC2,14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:782,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,180:1384,181:[1,1385],228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:781,419:783,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,77:[1,1386],79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:779,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VA4,[2,738]),o($VA4,[2,739]),o($VA4,[2,740]),{14:[1,1388],264:[1,1387]},o($VG4,[2,776]),o($VG4,[2,777]),o($VG4,[2,778]),o($VG4,[2,774]),o($V15,$V25,{228:189,43:210,386:309,393:317,322:318,400:319,402:320,403:321,404:323,405:324,407:325,410:326,342:327,457:332,459:333,461:334,411:335,344:336,462:337,464:338,466:339,385:340,412:341,79:342,469:343,470:344,471:345,413:348,472:349,473:350,474:351,414:352,415:353,305:354,308:355,416:356,111:357,498:360,306:361,309:362,441:702,130:920,133:921,363:1164,399:1165,102:1166,362:1389,389:1390,14:$VB4,53:$VD2,54:$VE2,71:$VF2,77:$V06,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1}),o($VG4,[2,800]),{14:[1,1392],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,390:[1,1391],391:540,396:541},{69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,390:[1,1393],391:565},o($VJ5,[2,811],{391:517,69:$VN3,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,241:$VW3,280:$VY3,281:$VZ3}),{73:[1,1394]},{14:$Vl8,73:$Vm8,77:$VG7},{2:$VS5,73:$VT5,75:1397},{2:$VS5,73:$VT5,75:1398},{2:$VS5,73:$VT5,75:1399,77:$VH7},{14:[1,1402],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1400,133:1401,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VG4,[2,816]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1403,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V15,$V25,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,441:1062,130:1066,389:1404,362:1405,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,390:[1,1406],391:540},{2:$VS5,73:$VT5,75:1407,77:$V$7},{2:$VS5,73:$VT5,75:1408},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1409,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($Vn8,[2,990]),{73:[1,1410]},o($V96,[2,992]),o($V96,[2,993]),o($VG4,[2,846]),{2:$VU5,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,259:$VW5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540,398:1411},o($VG4,[2,1218]),o($VE7,[2,1234],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1412,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VE7,[2,1237],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{14:[1,1414],69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,259:$Vo8,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},{2:$VU5,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,259:$VW5,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,391:565,398:1415},{2:$VU5,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,259:$VW5,276:$VX3,280:$VY3,281:$VZ3,391:517,398:1416},{2:$VU5,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,259:$VW5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,290:$VD7,391:540,398:1417},o($VG4,[2,1213]),o($V_5,[2,1226],{517:906,301:$Vh5}),o($V_5,[2,1225],{517:906,301:$Vh5}),{2:$VU5,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,259:$VW5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540,398:1418},o($VG4,[2,1211]),o($VG4,[2,1216]),{14:[1,1421],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1419,133:1420,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VE7,[2,1242],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1422,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VE7,[2,1230],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1423,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VE7,[2,1233],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($VE7,[2,1247],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,391:517,130:1424,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},o($VE7,[2,1239],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VE7,[2,1240],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1425,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VA4,[2,1039]),{2:$VS5,73:$VT5,75:1426,77:$Vp8},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1430,104:$VJ2,105:$V_1,111:357,130:1428,133:1429,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VG4,[2,1040]),o($VK7,[2,860],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1066,389:1431,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VG4,[2,1042]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1432,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VK7,[2,861],{77:[1,1433]}),{43:210,79:342,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:1434},{73:$Vq8,203:1437,207:1438,277:$Vr8,478:1435,480:1436},o($VY7,$Vq8,{478:1440,203:1441,277:$Vs8}),o($VK7,$VM7,{481:1215,477:1443,117:$VN7}),{14:[1,1445],118:[1,1444]},o($VK7,[2,1066]),{73:$Vq8,203:1441,277:$Vs8,478:1435},{118:[1,1446]},o($VO7,[2,1050]),{2:$VS5,73:$VT5,75:1447,77:$Vp8},o($Vt8,[2,1051]),o($Vt8,[2,1053]),{14:[1,1449],89:1448,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{2:$VS5,73:$VT5,75:1463,89:1462,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{2:$VS5,73:$VT5,75:1465,89:1464,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},o($VG4,[2,1118]),{2:$VS5,73:$VT5,75:1467,89:1466,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},o($VG4,[2,1121]),{2:$VS5,73:$VT5,75:1468},o($VP4,[2,1126]),{14:[1,1470],73:$VG8,77:$VG7},{2:$VS5,73:$VT5,75:1471,77:$VH7},{2:$VS5,73:$VT5,75:1472},{14:[1,1474],69:$V44,73:$VH8,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},{2:$VS5,73:$VT5,75:1475},{2:$VS5,69:$VN3,73:$VT5,75:1476,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3,391:565},o($VP4,[2,1132]),{14:[1,1478],73:$VI8,77:$VG7},{2:$VS5,73:$VT5,75:1479,77:$VH7},{2:$VS5,73:$VT5,75:1480},o($VA4,[2,895]),o($V2,[2,47]),o($V2,[2,48]),o([2,14,28,50,73,77,87,88,101,163,225],[2,53]),{2:[2,55],53:$VQ4,55:[1,1481]},{2:[2,56],54:$VS4,55:[1,1482]},o($V2,[2,63]),o($V2,[2,66]),o($V2,[2,67]),o([14,170,357],$VJ8,{135:1483}),o($V2,[2,65]),o($V15,$VJ8,{135:1484}),o($Vg6,[2,158]),{14:[1,1485],119:1487,120:1486,121:[1,1488]},o($V2,[2,64]),{119:1487,121:[1,1489]},o($Vi6,$VY7),o($Vk6,[2,75]),o($Vk6,[2,76]),{73:$VK8,77:[1,1491]},{2:$VS5,73:$VT5,75:1492},o($Vz6,$VL8,{14:[1,1493]}),o($VY7,[2,81],{77:[1,1494]}),{14:[1,1496],80:1495,82:1497,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,96:1505,97:1506,98:1507,99:$VM8,104:$VN8,105:$VO8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{73:$VK8,77:$VP8},o($VQ8,$VL8),{80:1512,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,99:$VR8,104:$VS8,105:$VT8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},o($Vn6,[2,561]),o($Vp6,[2,564]),o($Vp6,[2,563]),{14:[1,1517],28:[1,1516]},{51:1243,53:$Vr3,54:$Vs3,305:436,308:437},o($V2,[2,202]),{2:$VS5,73:$VT5,75:1518},{73:$VU8,77:[1,1520]},o($VV8,$Vc6,{49:958,47:1521,50:$VU7}),{28:$Vc6,47:1522,49:958,50:$VU7},{43:210,105:$V_1,111:1267,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{28:[1,1523]},{73:$VU8,77:$VW8},o($VQ8,$Vc6,{49:958,47:1525,50:$VU7}),o($V2,[2,234]),o($V2,[2,241]),o($V2,[2,351]),o($V2,[2,352]),{77:[1,1526]},{43:210,53:$Vr3,54:$Vs3,79:342,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,142:$V$1,158:$VK2,223:1527,228:189,229:$V12,230:$V22,231:$V32,235:$VP2,239:$Vz3,243:$VS2,244:$V92,249:$VB3,251:$VC3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:1528,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V2,[2,346]),o($Vz6,[2,568]),o($Vz6,[2,573],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{163:$VZ4,225:[2,364]},o($Vm5,$Vl5,{503:1529,77:$Vs5,264:$Vn5}),o($V2,$Vc6,{47:956,49:958,44:1530,50:$VU7}),{260:$Vd6},o($Vg6,$Vf6,{116:966,59:1531,117:$Vh6}),o($Vk6,$Vj6,{65:970,68:972,69:$Vl6,71:$Vm6}),o($Vs6,$Vr6,{138:983,136:1532,71:$Vt6}),o($V2,$Vu6,{154:989,315:$Vv6}),o($V2,$Vw6,{156:1533,157:$Vx6}),o($V2,$VA6),{132:$Vy6},o($VY7,[2,995]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:1534,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VC2,43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,180:1535,181:$VL2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:781,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{264:[1,1536]},o($V15,$V25,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,441:1062,130:1066,362:1389,389:1537,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,390:[1,1538],391:540},{73:$Vm8,77:$V$7},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1539,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,259:$Vo8,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1540,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1541,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{89:1448,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{73:$VG8,77:$V$7},{69:$VN3,73:$VH8,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540},{73:$VI8,77:$V$7},o($V2,[2,1166]),{43:210,79:342,105:$V_1,111:357,141:484,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485,502:1542,509:480,511:487},o($Vq2,[2,663]),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,388:774,425:1543,435:769,436:786},o($Vk8,$VX8,{431:1544,275:$VY8}),o($Vq2,[2,944],{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($V68,[2,954]),o($V68,[2,955]),{191:$VZ8},o($V68,[2,957]),{191:$V_8},o($V68,[2,960]),{191:$V$8},{191:$V09},o($V68,[2,963]),{191:$V19},o($V68,[2,965]),{191:$V29},{191:$V39},o($V68,[2,968]),o($V49,$V59,{199:1553,203:1554,207:1555,277:$Vr8}),o($Vb8,$V69,{2:[1,1556],14:[1,1557]}),o($V79,$V59,{199:1558,203:1559,277:$Vs8}),{14:[1,1561],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1560,133:1562,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($V89,$Vc8,{202:1343,206:1563,198:1564,266:$Vd8}),o($Vf8,$Vc8,{202:1343,198:1565,266:$Vg8}),o($V79,$V59,{203:1559,199:1566,277:$Vs8}),o($Vf8,$V69),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1567,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{14:[1,1570],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1571,133:1572,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,374:1568,375:1569,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VV6,[2,682]),o($VV6,$VS6,{209:1109,197:1573,265:$VW6}),o($Vf8,$Vc8,{202:1343,198:1574,266:$Vg8}),o($V89,$Vc8,{202:1343,206:1575,198:1576,266:$Vd8}),o($Vf8,$Vc8,{202:1343,198:1577,266:$Vg8}),o($V79,$V59,{203:1559,199:1578,277:$Vs8}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1580,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,374:1579,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V79,$V59,{203:1559,199:1581,277:$Vs8}),o($V_6,[2,926]),o($VZ6,[2,929],{77:[1,1582]}),o($VZ6,[2,931]),o($VZ6,[2,928]),{14:$Vj8,25:773,26:775,43:210,71:$VD4,105:$V_1,111:381,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$Vd2,327:382,388:774,394:776,425:1583,427:1361,435:769,436:770,437:771,438:772},o($V$6,[2,952],{430:1133,368:1584,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($V99,$VX8,{431:1544,433:1585,275:$Va9}),o($Vk8,$VX8,{431:1587,275:$VY8}),o($Vk8,$VX8,{431:1588,275:$VY8}),o($V$6,[2,951],{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($Vb9,[2,303]),{14:[1,1589],191:$VZ8},{2:[1,1590],191:[1,1591]},o($Vb9,[2,306]),{14:[1,1592],191:$V_8},{14:[1,1593],191:$V$8},{14:[1,1594],191:$V09},{2:[1,1595],191:[1,1596]},o($Vb9,[2,311]),{14:[1,1597],191:$V19},{14:[1,1598],191:$V29},{14:[1,1599],191:$V39},{2:[1,1600],191:[1,1601]},o($Vb9,[2,316]),o($Vk8,$VX8,{431:1602,275:$VY8}),{14:$Vi7,77:$Vc9,264:$Vd9},{264:[2,290]},{28:$Vz4,264:[2,293]},o($V04,[2,923],{77:$Vy5}),o($V04,[2,924],{77:$Vy5}),{77:[1,1604],264:$Ve9},{77:[1,1605]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:460,142:$V$1,158:$VK2,174:1140,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VN2,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,417:301,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:1606,133:1608,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:1607,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VG4,[2,775]),{73:[1,1609]},{14:$Vl8,73:$Vf9,77:$VG7},{14:[1,1613],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1611,133:1612,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VG4,[2,810]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1614,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VA4,[2,750]),o($VA4,[2,751]),{77:$Vp8},o($VG4,[2,1194]),o($VG4,[2,1195]),o($VG4,[2,1196]),o([2,14,28,53,54,73,77,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$Vg9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($Vh9,[2,814],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($Vu7,[2,815],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,241:$VW3,280:$VY3,281:$VZ3}),o($Vh9,[2,813],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),{2:$VS5,73:$VT5,75:1615,77:$V$7},{2:$VS5,73:$VT5,75:1616},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1617,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,804]),o($VG4,[2,805]),o($Vh9,[2,812],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vn8,[2,991]),o($VG4,[2,1217]),o($VE7,[2,1235],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VA4,[2,1207]),o($VG4,[2,1209]),o($VG4,[2,1214]),o($VG4,[2,1215]),o($VG4,[2,1212]),o($VG4,[2,1210]),o([14,258,259,301],$Vi9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VE7,[2,1232],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($VE7,[2,1244],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,391:517,130:1618,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VE7,[2,1243],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VE7,[2,1231],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VE7,[2,1246],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VE7,[2,1241],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VG4,[2,1041]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1619,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VI7,$Vj9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VK7,[2,853],{391:565,69:$VN3,77:[1,1620],87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($VK7,[2,856],{77:[1,1621]}),o($VK7,[2,859],{77:$V$7}),o($VK7,[2,854],{77:$V$7}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1622,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VG4,[2,595],{235:[1,1623]}),{73:[1,1624]},{2:$VS5,73:$VT5,75:1625},{14:[1,1627],73:$Vk9,121:$Vl9,283:$Vm9,482:1626,483:1628,484:1629,485:1630},o($VY7,[2,1073]),{14:[1,1634],118:[1,1633]},{2:$VS5,73:$VT5,75:1635},o($VY7,$Vk9,{482:1626,484:1629,485:1636,121:$Vl9,283:$Vm9}),{118:[1,1637]},o($VY7,$Vq8,{203:1441,478:1638,277:$Vs8}),{14:[1,1640],43:210,53:$VD2,54:$VE2,71:$VF2,77:$V06,79:342,87:$VG2,88:$VH2,99:$VI2,102:1642,104:$VJ2,105:$V_1,111:357,130:920,133:921,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,389:1639,393:317,399:1641,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VK7,[2,1068]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1643,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($Vt8,[2,1052]),{73:[1,1644]},{2:$VS5,73:$VT5,75:1645},o($Vn9,[2,605]),o($Vn9,[2,606]),o($Vn9,$Vo9,{348:1646,71:$Vp9}),o($Vn9,[2,619],{349:1648,71:[1,1649]}),o($Vn9,[2,609]),o($Vn9,[2,610]),o($Vn9,[2,611]),o($Vn9,[2,612]),o($Vn9,[2,613]),o($Vn9,[2,614]),o($Vn9,[2,615]),o($Vn9,$Vo9,{348:1650,71:$Vp9}),{2:$VS5,73:$VT5,75:1651},o($VG4,[2,1123]),{2:$VS5,73:$VT5,75:1652},o($VG4,[2,1117]),{2:$VS5,73:$VT5,75:1653},o($VG4,[2,1120]),o($VG4,[2,1125]),o($VP4,[2,1128]),{2:$VS5,73:$VT5,75:1654,77:$Vp8},o($VG4,[2,1129]),o($VG4,[2,1131]),o($VP4,[2,1147]),{2:$VS5,73:$VT5,75:1655},o($VG4,[2,1149]),o($VG4,[2,1151]),o($VP4,[2,1133]),{2:$VS5,73:$VT5,75:1656,77:$Vp8},o($VG4,[2,1134]),o($VG4,[2,1136]),{2:[2,57],53:$V76},{2:[2,58],54:$Va6},{14:[1,1658],29:1657,31:1659,166:269,169:133,170:$Vy,176:143,352:144,357:$VW1},{29:1657,166:284,169:283,170:$Vc2,357:$Vw2},o($Vg6,[2,159]),o($Vg6,[2,160]),o($Ve6,[2,157]),{14:[1,1660],71:[1,1663],122:1662,124:1661},{71:[1,1665],122:1664},o($Vi6,[2,77]),{43:210,76:1666,78:1667,79:1263,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vk6,[2,78]),o($VY7,[2,85],{77:[1,1668]}),{43:210,72:1669,76:1265,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VV8,$Vq9,{81:1670,83:1671,84:1672,86:1673,85:1674,49:1677,50:$VU7,87:$Vr9,88:$Vs9}),o($VQ8,$Vq9,{85:1674,49:1677,81:1678,84:1679,50:$VU7,87:$Vt9,88:$Vs9}),o($VQ8,$Vq9,{85:1674,49:1677,84:1679,81:1681,50:$VU7,87:$Vt9,88:$Vs9}),o($Vn9,[2,105]),o($Vn9,[2,106]),o($Vn9,[2,107]),o($Vn9,[2,108]),o($Vn9,[2,109]),o($Vn9,[2,110]),o($Vn9,[2,111]),o($Vu9,[2,112]),o($Vu9,[2,113]),o($Vu9,[2,114]),{100:[1,1682]},{100:[1,1683]},{100:[1,1684]},{43:210,76:1685,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VQ8,$Vq9,{81:1670,85:1674,49:1677,84:1679,50:$VU7,87:$Vt9,88:$Vs9}),{100:[1,1686]},{100:[1,1687]},{100:[1,1688]},{14:[1,1690],29:1689,31:1691,166:269,169:133,170:$Vy,176:143,352:144,357:$VW1},o($V2,[2,203]),o([50,163,225],[2,210]),o($Vq6,[2,209]),{43:210,79:342,105:$V_1,111:357,141:1692,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($Vz6,$Vv9,{14:[1,1693]}),{28:[1,1694]},{29:1695,166:284,169:283,170:$Vc2,357:$Vw2},{43:210,79:342,105:$V_1,111:357,141:1696,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($VQ8,$Vv9),{71:$VW7,221:1697},{73:[1,1698],77:[1,1699]},o($Vz6,[2,863]),o($V2,$Vu5,{196:756,201:1700,302:$Vx5}),o($V2,$VR7),o($V2,$VS7,{60:1246,28:$VT7}),{28:$Vc6,47:1701,49:958,50:$VU7},o($V2,$VV7),{77:$Vy5,264:$Vd9},{264:$Ve9},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1702,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{73:$Vf9,77:$V$7},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1703,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o([2,28,53,54,73,77,105,121,142,163,175,187,188,189,190,191,192,193,194,225,229,230,231,240,242,244,245,255,258,259,264,265,266,272,276,277,283,290,294,301,302,390],$Vg9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VE7,$Vi9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($V08,$Vj9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vp5,[2,1180],{77:$Vs5}),o($Vk8,$VX8,{431:1704,275:$VY8}),o($Vw9,[2,941]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1705,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V68,[2,956]),o($V68,[2,959]),o($V68,[2,961]),o($V68,[2,962]),o($V68,[2,964]),o($V68,[2,966]),o($V68,[2,967]),o($VJ3,$Vx9,{200:1706,204:1707,208:1708,272:[1,1709]}),o($V49,$Vy9,{2:[1,1710],14:[1,1711]}),o($Vz9,$Vx9,{200:1712,204:1713,272:$VA9}),{14:[1,1715],199:1717,203:1559,207:1716,272:$V59,277:$Vr8},o($V79,$V59,{203:1559,199:1718,277:$Vs8}),o($Vz9,$Vx9,{204:1713,200:1719,272:$VA9}),o($V79,$Vy9),o([2,14,73,163,225,272,277,294],$VB9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($Vf8,[2,1112],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o($Vf8,[2,1113],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($V79,$V59,{203:1559,199:1720,277:$Vs8}),{199:1722,203:1559,207:1721,272:$V59,277:$Vr8},o($V79,$V59,{203:1559,199:1723,277:$Vs8}),o($Vz9,$Vx9,{204:1713,200:1724,272:$VA9}),o($Vf8,$VB9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o([2,14,73,163,225,266,272,277,294],$VC9,{77:[1,1725]}),o($VV6,[2,680]),o($VV6,[2,681],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,391:517,130:1726,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,77:[1,1727],87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VD9,$VE9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VV6,[2,696],{391:565,69:$VN3,77:[1,1728],87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vf8,$Vc8,{202:1343,198:1729,266:$Vg8}),o($V79,$V59,{203:1559,199:1730,277:$Vs8}),o($V79,$V59,{203:1559,199:1731,277:$Vs8}),{199:1733,203:1559,207:1732,272:$V59,277:$Vr8},o($V79,$V59,{203:1559,199:1734,277:$Vs8}),o($Vz9,$Vx9,{204:1713,200:1735,272:$VA9}),o($VV6,$VC9,{77:$VF9}),o($VG9,$VE9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vz9,$Vx9,{200:1706,204:1713,272:$VA9}),{25:773,43:210,71:$Vg5,105:$V_1,111:658,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,370:1737,388:774,421:761,423:763,425:785,426:766,435:769,436:786},o($V99,$VX8,{433:1585,431:1704,275:$Va9}),o($V$6,[2,953],{430:1319,187:$VJ6,188:$VK6,189:$VL6,190:$VM6,191:$VN6,192:$VO6,193:$VP6,194:$VQ6}),o($Vk8,[2,948]),{14:[1,1740],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1738,133:1739,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($Vk8,[2,947]),o($Vk8,[2,949]),o($Vb9,[2,305]),o($Vb9,[2,300]),o($Vb9,[2,304]),o($Vb9,[2,308]),o($Vb9,[2,309]),o($Vb9,[2,310]),o($Vb9,[2,301]),o($Vb9,[2,307]),o($Vb9,[2,313]),o($Vb9,[2,314]),o($Vb9,[2,315]),o($Vb9,[2,302]),o($Vb9,[2,312]),o($Vk8,[2,945]),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:782,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:781,419:783,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$Vz5,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:308,104:$VJ2,105:$V_1,111:357,130:305,133:307,142:$V$1,158:$VK2,174:1742,179:1741,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,233:$VN2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,417:301,419:302,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{2:$VA5,14:$V6,102:1743,303:$VV1},o($VO5,$VH9,{391:540,396:541}),o($VG4,[2,779]),o($VQ5,[2,780],{391:565}),o($VA4,[2,748]),o($VA4,[2,749]),o($VG5,$VI9,{391:540,396:541,69:$V44,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,241:$Vd4,269:$Vf4,271:$Vg4,280:$Vi4,281:$Vj4}),o($VI5,[2,808],{391:565,69:$VN3,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,241:$Vv4,269:$Vx4,280:$VY3,281:$VZ3}),o($VJ5,[2,809],{391:517,69:$VN3,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,241:$VW3,280:$VY3,281:$VZ3}),o($VI5,[2,807],{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VG4,[2,802]),o($VG4,[2,803]),o($VI5,[2,806],{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($VE7,[2,1245],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VK7,[2,858],{77:$V$7}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1744,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1066,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,389:1745,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VK7,[2,862],{77:$V$7}),{43:210,79:924,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VA4,[2,1060]),o($VG4,[2,1062]),o($VY7,[2,1072]),o($VY7,$Vk9,{484:1629,485:1636,482:1746,121:$Vl9,283:$Vm9}),o($VY7,[2,1075]),o($VY7,[2,1077]),{14:[1,1747],245:[1,1748],489:[1,1749]},o($VJ9,[2,1094]),o($VJ9,[2,1095]),{14:[1,1754],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1757,104:$VJ2,105:$V_1,111:357,130:1755,133:1756,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,380:1750,381:1751,382:1752,383:1753,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($V79,[2,710]),o($VG4,[2,1061]),{245:[1,1758],489:[1,1759]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1761,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,380:1760,382:1752,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VS5,73:$VT5,75:1762},o($VL7,$VK9,{14:[1,1763],77:$VG7}),o($VK7,[2,1069],{391:517,69:$VN3,77:$V82,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o($VK7,[2,1070]),{77:$VH7},o($VK7,$VK9,{77:$V$7}),o($VA4,[2,1114]),o($VG4,[2,1124]),o($Vn9,[2,607]),{295:[1,1764]},o($Vn9,[2,608]),{295:[1,1765]},o($Vn9,[2,616]),o($VG4,[2,1122]),o($VG4,[2,1116]),o($VG4,[2,1119]),o($VG4,[2,1130]),o($VG4,[2,1150]),o($VG4,[2,1135]),o($V2,[2,194]),o($V2,[2,195]),o($V2,[2,196]),o($Vg6,[2,162]),o($Vg6,[2,163],{123:1766,71:$VL9}),{14:[1,1768],71:[1,1771],123:1770,125:1769},{14:$V6,43:210,79:1775,102:1773,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,303:$VV1,332:1774,333:1772},{71:$VL9,123:1770},{43:210,79:1775,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,332:1776},o($Vz6,$VM9,{14:[1,1777]}),o($VY7,[2,83],{77:[1,1778]}),{43:210,72:1779,76:1265,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VY7,[2,82],{77:$VP8}),o([2,14,73,77],[2,89]),o($VQ8,[2,92]),o($VV8,$VN9,{49:1677,86:1780,85:1781,50:$VU7,87:$Vr9,88:$Vs9}),o($VQ8,[2,97],{85:1674,49:1677,84:1782,50:$VU7,87:$Vt9,88:$Vs9}),o($VO9,[2,95]),{14:[1,1783],88:$VP9},o($VO9,[2,102]),o($VO9,[2,103]),o($VQ8,[2,90]),o($VQ8,$VN9,{49:1677,85:1781,50:$VU7,87:$Vt9,88:$Vs9}),{88:$VP9},o($VQ8,[2,91]),{14:$V6,80:1785,82:1788,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,96:1505,97:1506,98:1507,99:$VM8,101:$VQ9,102:1787,104:$VN8,105:$VO8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8,303:$VV1},{14:$V6,77:[1,1792],89:1789,101:$VR9,102:1791,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8,303:$VV1},{43:210,77:$VS9,101:$VT9,105:$V_1,106:1793,107:1795,108:1796,109:1797,110:1799,111:1798,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VQ8,$VM9),{80:1785,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,99:$VR8,101:$VQ9,104:$VS8,105:$VT8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{89:1801,101:$VR9,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{43:210,101:$VT9,105:$V_1,106:1802,108:1796,111:1803,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($V2,[2,198]),o($V2,[2,204]),o($V2,[2,205]),o($VV8,$Vc6,{49:958,47:1804,50:$VU7}),o($VY7,[2,213],{77:[1,1805]}),{29:1806,166:284,169:283,170:$Vc2,357:$Vw2},o($V2,[2,206]),o($VQ8,$Vc6,{49:958,47:1807,50:$VU7}),o($V2,[2,353]),o($V2,[2,354]),{43:210,53:$Vr3,54:$Vs3,79:342,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,235:$VP2,239:$Vz3,243:$VS2,244:$V92,249:$VB3,251:$VC3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:1808,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V2,$V18),{28:[1,1809]},o($VF6,$VH9,{391:540}),o($VE6,$VI9,{391:540,69:$VN3,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,241:$Vb5,269:$Vd5,271:$Ve5,280:$VY3,281:$VZ3}),o($Vw9,[2,942]),o($Vk8,$VU9,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vz9,[2,671]),o($VJ3,$VV9,{2:[1,1810],14:[1,1811]}),o($Vz9,[2,335]),{14:$VW9,231:$VX9,235:$VP2,295:$V33,296:$V43,385:1812,414:352,415:353},{14:[1,1815],208:1816,272:$VY9},o($Vz9,$Vx9,{204:1713,200:1818,272:$VA9}),o($Vz9,[2,334]),o($Vz9,$VV9),{231:$VX9,235:$VP2,295:$V33,296:$V43,385:1812,414:352,415:353},o($V79,$V59,{203:1559,199:1819,277:$Vs8}),o($Vz9,$Vx9,{204:1713,200:1820,272:$VA9}),{208:1821,272:$VY9},o($Vz9,$Vx9,{204:1713,200:1822,272:$VA9}),o($Vz9,[2,333]),o($Vz9,$Vx9,{204:1713,200:1823,272:$VA9}),o($Vz9,$Vx9,{204:1713,200:1824,272:$VA9}),{208:1825,272:$VY9},o($Vz9,$Vx9,{204:1713,200:1826,272:$VA9}),o($Vz9,[2,332]),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1830,104:$VJ2,105:$V_1,111:357,130:1827,133:1829,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,379:1828,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VV6,[2,697],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1580,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,374:1831,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1580,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,374:1832,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($V79,$V59,{203:1559,199:1833,277:$Vs8}),o($Vz9,$Vx9,{204:1713,200:1834,272:$VA9}),o($Vz9,$Vx9,{204:1713,200:1835,272:$VA9}),o($Vz9,$Vx9,{204:1713,200:1836,272:$VA9}),{208:1837,272:$VY9},o($Vz9,$Vx9,{204:1713,200:1838,272:$VA9}),o($Vz9,[2,331]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1839,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VZ6,[2,930],{77:$Ve7}),o($V99,$VU9,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($Vk8,[2,973],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vk8,[2,974],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),{264:[2,291]},{14:$Vi7,77:$Vc9},{264:[2,294]},o($VK7,[2,855],{77:$V$7}),o($VK7,[2,857],{77:$V$7}),o($VY7,[2,1074]),o($VY7,[2,1080]),o($VZ9,$V_9,{486:1840}),o($VZ9,$V_9,{486:1841}),o([2,14,73,121,163,225,272,283,294],$V$9,{77:[1,1842]}),o($V79,[2,709]),o($V0a,[2,711]),o($V79,[2,713]),o([2,73,163,187,188,189,190,191,192,193,194,225,242,255,272,294],$V82,{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,391:517,130:1761,382:1843,53:$Vr3,54:$Vs3,69:$VN3,71:$Vu3,87:$VP3,88:$VH2,99:$VI2,100:$VQ3,101:$VR3,104:$VJ2,105:$V_1,134:$VS3,142:$V$1,158:$VK2,183:$VT3,229:$V12,230:$V22,231:$V32,232:$Vw3,233:$VK5,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,240:$VV3,241:$VW3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,276:$VX3,280:$VY3,281:$VZ3,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o([2,14,73,77,121,163,225,272,283,294],$V1a,{391:540,396:541,384:1844,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,242:$V2a,245:$Ve4,255:$V3a,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($V4a,$V1a,{391:565,384:1847,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,242:$V2a,245:$Vw4,255:$V3a,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($V4a,$V1a,{384:1848,242:$V2a,255:$V3a}),o($V5a,$V_9,{486:1849}),o($V5a,$V_9,{486:1850}),o([2,73,121,163,187,188,189,190,191,192,193,194,225,272,283,294],$V$9,{77:$V6a}),o([2,73,77,121,163,187,188,189,190,191,192,193,194,225,272,283,294],$V1a,{391:540,384:1844,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,242:$V2a,245:$Vc5,255:$V3a,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VG4,[2,1063]),o($VY7,$Vq8,{203:1441,478:1852,77:$Vp8,277:$Vs8}),{73:[1,1853]},{73:[1,1854],77:[1,1855]},o($Vg6,[2,166]),{117:$V7a,126:1856,128:1857},o($Vg6,[2,164]),o($Vg6,[2,165]),o($Ve6,[2,161]),{14:[1,1859],117:$V8a,126:1861,127:1860,128:1857,129:1862},{2:$VS5,73:$VT5,75:1864},{2:$VS5,73:$VT5,75:1865},{73:$V9a,77:[1,1867]},o($VQ8,[2,548]),{73:$V9a,77:$Vaa},o($VY7,[2,87],{77:[1,1869]}),{43:210,72:1870,76:1265,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VY7,[2,86],{77:$VP8}),o($VQ8,[2,99],{85:1674,49:1677,84:1871,50:$VU7,87:$Vt9,88:$Vs9}),o($VO9,[2,96]),o($VQ8,[2,98],{49:1677,85:1781,50:$VU7,87:$Vt9,88:$Vs9}),o([2,50,73,77,87,88],[2,104]),o($VO9,$Vba),{101:[1,1872]},o($Vn9,[2,116]),{2:$Vca,101:$Vda,103:1873},{2:$Vca,101:$Vda,103:1876},{77:[1,1877]},o($Vn9,[2,120]),{2:$Vca,101:$Vda,103:1878},{14:$V6,102:1879,303:$VV1},{77:[1,1881],101:$Vea},o($Vn9,[2,126]),{2:$Vca,101:$Vda,103:1882},o($Vfa,[2,128]),o($Vba,[2,130],{110:1883,77:$VS9}),{112:[1,1884]},{43:210,77:$Vga,105:$V_1,111:1885,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vha,[2,482]),{77:[1,1887]},{77:$Via,101:$Vea},{112:[1,1889]},o($Vz6,$Vja,{14:[1,1890]}),{43:210,79:342,105:$V_1,111:357,139:1891,141:1280,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($V2,[2,200]),o($VQ8,$Vja),o($Vz6,[2,864]),{29:1689,166:284,169:283,170:$Vc2,357:$Vw2},{14:[1,1892]},o($Vz9,[2,340]),o($Vka,[2,726],{77:[1,1893]}),o($Vka,[2,728],{77:[1,1894]}),o($Vz9,[2,730]),o($Vz9,$Vx9,{204:1713,200:1895,272:$VA9}),o($Vz9,[2,330]),{14:$VW9},o($Vz9,[2,339]),o($Vz9,$Vx9,{204:1713,200:1896,272:$VA9}),o($Vz9,[2,328]),o($Vz9,[2,329]),o($Vz9,[2,338]),o($Vz9,[2,325]),o($Vz9,[2,326]),o($Vz9,[2,327]),o($Vz9,[2,337]),o($VD9,$Vla,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VV6,[2,700],{77:[1,1897]}),o($VG9,[2,703],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($VG9,[2,705],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1898,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VV6,[2,698],{77:$VF9}),o($VV6,[2,699],{77:$VF9}),o($Vz9,$Vx9,{204:1713,200:1899,272:$VA9}),o($Vz9,[2,321]),o($Vz9,[2,322]),o($Vz9,[2,323]),o($Vz9,[2,324]),o($Vz9,[2,336]),o($VG9,$Vla,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vma,$Vna,{487:1900,490:1901,497:1902,252:$Voa,295:$Vpa,489:$Vqa}),o($Vma,$Vna,{497:1902,487:1906,490:1907,252:$Voa,295:$Vpa,489:$Vqa}),{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:1757,104:$VJ2,105:$V_1,111:357,130:1755,133:1756,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,342:327,344:336,382:1908,383:1909,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($V79,[2,714]),o($V0a,[2,718]),o($V0a,[2,722]),o($V0a,[2,723]),o($V4a,[2,719]),o($V4a,[2,720]),o($Vra,$Vna,{487:1910,497:1911,252:$Vsa,295:$Vpa,489:$Vqa}),o($Vra,$Vna,{497:1911,487:1913,252:$Vsa,295:$Vpa,489:$Vqa}),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1761,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,382:1908,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VS5,73:$VT5,75:1914},o($Vn9,[2,618]),o($Vn9,[2,620]),{295:[1,1915]},{73:$Vta,77:$Vua},o($VQ8,[2,170]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1918,132:[1,1919],142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{2:$VS5,73:$VT5,75:1920},{2:$VS5,73:$VT5,75:1921},{73:$Vta,77:[1,1922]},o($VY7,[2,172]),{14:[1,1923],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1925,132:[1,1926],133:1924,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($Vva,[2,546]),o($Vva,[2,547]),o([14,71],[2,545]),{14:$V6,43:210,79:1928,102:1927,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,303:$VV1},{43:210,79:1928,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{43:210,72:1929,76:1265,79:1266,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($VY7,[2,84],{77:$VP8}),o($VQ8,[2,100],{49:1677,85:1781,50:$VU7,87:$Vt9,88:$Vs9}),o($Vn9,[2,115]),o($Vu9,[2,117]),o($Vu9,[2,153]),o($Vu9,[2,154]),o($Vu9,[2,118]),{14:$V6,80:1930,82:1931,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,96:1505,97:1506,98:1507,99:$VM8,102:1932,104:$VN8,105:$VO8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8,303:$VV1},o($Vu9,[2,122]),{2:$Vca,101:$Vda,103:1933},o($Vn9,[2,125]),{43:210,77:$VS9,105:$V_1,108:1934,109:1935,110:1799,111:1798,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vu9,[2,127]),o($Vba,[2,131],{228:189,43:210,108:1796,111:1803,106:1936,77:$Vga,105:$V_1,142:$V$1,229:$V12,230:$V22,231:$V32,244:$V92}),{14:$V6,80:1937,82:1939,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,96:1505,97:1506,98:1507,99:$VM8,102:1938,104:$VN8,105:$VO8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8,303:$VV1},{112:[1,1940]},o($Vha,[2,483]),{80:1930,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,99:$VR8,104:$VS8,105:$VT8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},{43:210,105:$V_1,108:1934,111:1803,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},{80:1941,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,99:$VR8,104:$VS8,105:$VT8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8},o($VY7,[2,215],{77:[1,1942]}),o($VY7,[2,214],{77:$VW8}),o($Vz9,[2,320]),{235:$VP2,295:$V33,296:$V43,385:1943,414:352,415:353},{231:[1,1944]},o($Vz9,[2,319]),o($Vz9,[2,318]),o($VV6,[2,701],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,130:1580,374:1945,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VG9,[2,704],{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($Vz9,[2,317]),o([14,73],$Vwa,{488:1946,491:1947,240:[1,1948]}),o($VY7,$Vwa,{488:1949,240:$Vxa}),{14:[1,1952],279:$Vya},{14:[1,1954],282:$Vza},o($VAa,[2,1107]),o($VAa,[2,1108]),{14:[1,1955],73:$Vwa,240:$Vxa,488:1956},o($VY7,[2,1085]),o($V0a,[2,712]),o($V79,[2,715],{77:[1,1957]}),o($VY7,$Vwa,{488:1958,240:$Vxa}),{279:$Vya},{282:$Vza},o($VY7,$Vwa,{488:1956,240:$Vxa}),o($VG4,[2,1064]),{73:[1,1959]},o($Ve6,[2,167]),{117:$V7a,128:1960},{69:$VN3,87:$V35,100:[1,1962],101:$V55,131:1961,134:[1,1963],183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3,391:540},{100:$VBa,131:1964,134:$VCa},o($Vg6,[2,168]),o($Vg6,[2,169]),{14:[1,1967],117:$V8a,128:1960,129:1968},o($VQ8,[2,180],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o($VQ8,[2,181],{391:565,131:1969,69:$VN3,87:$Vn4,100:[1,1970],101:$Vp4,134:[1,1971],183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),{14:[1,1972],69:$V44,87:$V54,100:[1,1974],101:$V74,131:1973,134:[1,1975],183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4,391:540,396:541},{14:[1,1976],100:$VBa,131:1977,134:$VCa},o($VY7,[2,550],{77:[1,1978]}),o($VQ8,[2,549]),o($VY7,[2,88],{77:$VP8}),{101:[1,1979]},{2:$Vca,101:$Vda,103:1980},{2:$Vca,101:$Vda,103:1981},o($Vu9,[2,124]),o($Vfa,[2,129]),o($Vba,[2,133],{110:1982,77:$VS9}),o($Vba,[2,132],{77:$Via}),o([77,101],$Vc6,{49:958,47:1983,14:[1,1984],50:$VU7}),o($Vfa,[2,140]),o($Vfa,[2,141]),{14:$V6,80:1985,82:1987,89:1498,90:1499,91:1500,92:1501,93:1502,94:1503,95:1504,96:1505,97:1506,98:1507,99:$VM8,102:1986,104:$VN8,105:$VO8,246:$Vu8,247:$Vv8,250:$Vw8,254:$Vx8,257:$Vy8,262:$Vz8,270:$VA8,285:$VB8,288:$VC8,291:$VD8,292:$VE8,299:$VF8,303:$VV1},o($Vfa,$Vc6,{49:958,47:1983,50:$VU7}),{43:210,79:342,105:$V_1,111:357,139:1988,141:1280,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,342:485},o($Vka,[2,727]),o($Vka,[2,729]),o($VV6,[2,702],{77:$VF9}),{14:[1,1989],73:$VDa},o($VY7,[2,1083]),{14:[1,1992],252:[1,1990],295:$Vpa,489:$Vqa,497:1991},o($VY7,[2,1082]),{252:[1,1993],295:$Vpa,489:$Vqa,497:1994},o($VEa,[2,1097]),o($Vra,[2,1099]),o($VEa,[2,1098]),o($Vra,[2,1100]),o($VY7,[2,1084]),o($VY7,[2,1079]),o($V79,[2,716],{228:189,43:210,386:309,322:318,403:321,410:326,461:334,385:340,412:341,79:342,469:343,470:344,471:345,414:352,415:353,305:354,308:355,416:356,111:357,400:468,402:469,342:470,457:471,459:472,498:477,382:1752,130:1761,380:1995,53:$Vr3,54:$Vs3,71:$Vu3,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,142:$V$1,158:$VK2,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73}),o($VY7,$VDa),o($Vn9,[2,621]),o($VQ8,[2,171]),{132:[1,1996]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1050,132:$VFa,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1052,132:$VGa,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:1997,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VHa,$VFa),o($VHa,$VGa),o($VY7,[2,173],{77:[1,1998]}),o($VY7,[2,175],{77:[1,1999]}),{132:[1,2000]},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:866,132:$VFa,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:868,132:$VGa,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VQ8,[2,182]),{14:[1,2001],132:[1,2002]},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:815,132:$VFa,133:817,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:816,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{14:$VB4,43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,102:813,104:$VJ2,105:$V_1,111:357,130:821,132:$VGa,133:823,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$Vd2,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,303:$VV1,305:354,306:361,308:355,309:362,322:318,326:822,327:814,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VQ8,[2,188]),{14:[1,2003],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:2005,133:2004,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},{43:210,79:1775,105:$V_1,111:357,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92,332:2006},o($Vn9,[2,119]),o($Vu9,[2,121]),o($Vu9,[2,123]),{43:210,77:$Vga,105:$V_1,106:2007,108:1796,111:1803,142:$V$1,228:189,229:$V12,230:$V22,231:$V32,244:$V92},o($Vfa,[2,135]),o($Vfa,[2,139]),{14:[1,2008]},o($Vfa,[2,137]),o($Vfa,[2,138]),o($VY7,[2,216],{77:$VW8}),o($VY7,[2,1081]),{14:[1,2010],282:$VIa},{14:[1,2012],263:$VJa},o($VY7,[2,1104]),{282:$VIa},{263:$VJa},o($V79,[2,717],{77:$V6a}),o($VQ8,$VKa,{131:2013,100:$VBa,134:$VCa}),o($VQ8,$VLa,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),{117:$V7a,126:2014,128:1857},{117:$V7a,126:2015,128:1857},o($VQ8,[2,184]),o($VQ8,[2,183]),o($Vz6,$VKa,{131:2017,14:[1,2016],100:$VBa,134:$VCa}),o($VQ8,[2,189],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o($VQ8,[2,190],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vz6,$VLa,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4}),o($VY7,[2,551],{77:$Vaa}),o($Vba,[2,134],{77:$Via}),o($Vfa,[2,136]),o($VMa,[2,1102]),o($VY7,[2,1105]),o($VMa,[2,1103]),o($VY7,[2,1106]),{43:210,53:$Vr3,54:$Vs3,71:$Vu3,79:342,87:$Vv3,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:2018,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$Vw3,234:$Vx3,235:$VP2,238:$Vy3,239:$Vz3,243:$VS2,244:$V92,248:$VA3,249:$VB3,251:$VC3,260:$VD3,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$VE3,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,308:355,322:318,342:470,385:340,386:309,400:468,402:469,403:321,410:326,412:341,414:352,415:353,416:356,457:471,459:472,461:334,469:343,470:344,471:345,498:477},o($VY7,[2,174],{77:$Vua}),o($VY7,[2,176],{77:$Vua}),o($VQ8,[2,185]),{14:[1,2019],43:210,53:$VD2,54:$VE2,71:$VF2,79:342,87:$VG2,88:$VH2,99:$VI2,104:$VJ2,105:$V_1,111:357,130:2021,133:2020,142:$V$1,158:$VK2,228:189,229:$V12,230:$V22,231:$V32,232:$VM2,234:$VO2,235:$VP2,238:$VQ2,239:$VR2,243:$VS2,244:$V92,248:$VT2,249:$VU2,251:$VV2,260:$VW2,261:$VX2,268:$VY2,273:$VZ2,274:$V_2,286:$V$2,287:$V03,289:$V13,293:$V23,295:$V33,296:$V43,297:$V53,298:$V63,300:$V73,305:354,306:361,308:355,309:362,322:318,342:327,344:336,385:340,386:309,393:317,400:319,402:320,403:321,404:323,405:324,407:325,410:326,411:335,412:341,413:348,414:352,415:353,416:356,457:332,459:333,461:334,462:337,464:338,466:339,469:343,470:344,471:345,472:349,473:350,474:351,498:360},o($VQ8,$VNa,{391:540,69:$VN3,87:$V35,100:$V45,101:$V55,134:$V65,183:$V75,233:$V85,234:$V95,240:$Va5,241:$Vb5,245:$Vc5,269:$Vd5,271:$Ve5,276:$Vf5,280:$VY3,281:$VZ3}),o($VQ8,[2,186],{391:517,69:$VN3,87:$VN5,100:$VQ3,101:$VR3,134:$VS3,183:$VT3,233:$VK5,240:$VV3,241:$VW3,276:$VX3,280:$VY3,281:$VZ3}),o($VQ8,[2,187],{391:565,69:$VN3,87:$Vn4,100:$Vo4,101:$Vp4,134:$Vq4,183:$Vr4,233:$Vs4,234:$Vt4,240:$Vu4,241:$Vv4,245:$Vw4,269:$Vx4,276:$Vy4,280:$VY3,281:$VZ3}),o($Vz6,$VNa,{391:540,396:541,69:$V44,87:$V54,100:$V64,101:$V74,134:$V84,183:$V94,233:$Va4,234:$Vb4,240:$Vc4,241:$Vd4,245:$Ve4,269:$Vf4,271:$Vg4,276:$Vh4,280:$Vi4,281:$Vj4})], +defaultActions: {9:[2,374],10:[2,375],11:[2,376],12:[2,377],13:[2,378],14:[2,379],15:[2,380],16:[2,381],17:[2,382],18:[2,383],19:[2,384],20:[2,385],21:[2,386],22:[2,387],23:[2,388],24:[2,389],25:[2,390],26:[2,391],27:[2,392],28:[2,393],29:[2,394],30:[2,395],31:[2,396],32:[2,397],33:[2,398],34:[2,399],35:[2,400],36:[2,401],37:[2,402],38:[2,403],39:[2,404],40:[2,405],41:[2,406],42:[2,407],43:[2,408],44:[2,409],45:[2,410],46:[2,411],47:[2,412],48:[2,413],49:[2,414],50:[2,415],51:[2,416],52:[2,417],53:[2,418],54:[2,419],55:[2,420],56:[2,421],57:[2,422],58:[2,423],59:[2,424],60:[2,425],61:[2,426],62:[2,427],63:[2,428],64:[2,429],65:[2,430],66:[2,431],67:[2,432],68:[2,433],69:[2,434],70:[2,435],71:[2,436],72:[2,437],73:[2,438],74:[2,439],75:[2,440],76:[2,441],77:[2,442],78:[2,443],79:[2,444],80:[2,445],81:[2,446],82:[2,447],83:[2,448],84:[2,449],85:[2,450],86:[2,451],87:[2,452],88:[2,453],89:[2,454],90:[2,455],91:[2,456],92:[2,457],94:[2,459],95:[2,460],96:[2,461],97:[2,462],98:[2,463],99:[2,464],100:[2,465],101:[2,466],102:[2,467],103:[2,468],104:[2,469],105:[2,470],106:[2,471],107:[2,472],108:[2,473],109:[2,474],110:[2,475],111:[2,476],112:[2,477],113:[2,478],114:[2,479],115:[2,480],116:[2,481],178:[2,358],180:[2,359],328:[2,1034],329:[2,1035],330:[2,1036],331:[2,1037],370:[2,1137],371:[2,1138],372:[2,1139],373:[2,1140],374:[2,1141],375:[2,1142],376:[2,1143],377:[2,1144],802:[2,289],957:[2,50],959:[2,54],1380:[2,290],1535:[2,286],1741:[2,291],1743:[2,294]}, +parseError: function parseError (str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } +}, +parse: function parse (input) { + var self = this, + stack = [0], + tstack = [], // token stack + vstack = [null], // semantic value stack + lstack = [], // location stack + table = this.table, + yytext = '', + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + + var args = lstack.slice.call(arguments, 1); + + //this.reductionCount = this.shiftCount = 0; + + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + // copy state + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + + var ranges = lexer.options && lexer.options.ranges; + + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + + function popStack (n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + +_token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + // if token isn't its numeric value, convert + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + } + + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + // retreive state number from top of stack + state = stack[stack.length - 1]; + + // use default actions if available + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + // read action for current state and first input + action = table[state] && table[state][symbol]; + } + +_handle_error: + // handle parse error + if (typeof action === 'undefined' || !action.length || !action[0]) { + var error_rule_depth; + var errStr = ''; + + // Return the rule stack depth where the nearest error rule can be found. + // Return FALSE when no error recovery rule was found. + function locateNearestErrorRecoveryRule(state) { + var stack_probe = stack.length - 1; + var depth = 0; + + // try to recover from error + for(;;) { + // check for error recovery rule in this state + if ((TERROR.toString()) in table[state]) { + return depth; + } + if (state === 0 || stack_probe < 2) { + return false; // No suitable error recovery rule available. + } + stack_probe -= 2; // popStack(1): [symbol, action] + state = stack[stack_probe]; + ++depth; + } + } + + if (!recovering) { + // first see if there's any chance at hitting an error recovery rule: + error_rule_depth = locateNearestErrorRecoveryRule(state); + + // Report error + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'"+this.terminals_[p]+"'"); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; + } else { + errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + + (symbol == EOF ? "end of input" : + ("'"+(this.terminals_[symbol] || symbol)+"'")); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), + expected: expected, + recoverable: (error_rule_depth !== false) + }); + } else if (preErrorSymbol !== EOF) { + error_rule_depth = locateNearestErrorRecoveryRule(state); + } + + // just recovered from another error + if (recovering == 3) { + if (symbol === EOF || preErrorSymbol === EOF) { + throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); + } + + // discard current lookahead and grab another + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + symbol = lex(); + } + + // try to recover from error + if (error_rule_depth === false) { + throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); + } + popStack(error_rule_depth); + + preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token + symbol = TERROR; // insert generic error symbol as new lookahead + state = stack[stack.length-1]; + action = table[state] && table[state][TERROR]; + recovering = 3; // allow 3 real symbols to be shifted before reporting a new error + } + + // this shouldn't happen, unless resolve defaults are off + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); + } + + switch (action[0]) { + case 1: // shift + //this.shiftCount++; + + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); // push state + symbol = null; + if (!preErrorSymbol) { // normal execution/no error + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + // error just occurred, resume old lookahead f/ before error + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + + case 2: + // reduce + //this.reductionCount++; + + len = this.productions_[action[1]][1]; + + // perform semantic action + yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 + // default location, uses first token for firsts, last for lasts + yyval._$ = { + first_line: lstack[lstack.length-(len||1)].first_line, + last_line: lstack[lstack.length-1].last_line, + first_column: lstack[lstack.length-(len||1)].first_column, + last_column: lstack[lstack.length-1].last_column + }; + if (ranges) { + yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; + } + r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); + + if (typeof r !== 'undefined') { + return r; + } + + // pop off stack + if (len) { + stack = stack.slice(0,-1*len*2); + vstack = vstack.slice(0, -1*len); + lstack = lstack.slice(0, -1*len); + } + + stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) + vstack.push(yyval.$); + lstack.push(yyval._$); + // goto new state = table[STATE][NONTERMINAL] + newState = table[stack[stack.length-2]][stack[stack.length-1]]; + stack.push(newState); + break; + + case 3: + // accept + return true; + } + + } + + return true; +}}; + + +SqlParseSupport.initSqlParser(parser);/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function(match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex () { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin (condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState () { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules () { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState (n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState (condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {"case-insensitive":true,"flex":true}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0: /* skip whitespace */ +break; +case 1: /* skip comments */ +break; +case 2: /* skip comments */ +break; +case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 14; +break; +case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 303; +break; +case 5: this.popState(); return 390; +break; +case 6: return 185; +break; +case 7: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 20; +break; +case 8: return 240; +break; +case 9: return 28; +break; +case 10: return 242; +break; +case 11: this.begin('between'); return 245; +break; +case 12: return 246; +break; +case 13: return 247; +break; +case 14: return 118; +break; +case 15: return 315; +break; +case 16: return 248; +break; +case 17: return 250; +break; +case 18: return 50; +break; +case 19: parser.determineCase(yy_.yytext); return 40; +break; +case 20: return 190; +break; +case 21: return 252; +break; +case 22: return 253; +break; +case 23: return 254; +break; +case 24: return 255; +break; +case 25: return 256; +break; +case 26: return 241; +break; +case 27: return 257; +break; +case 28: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 152; +break; +case 29: return 258; +break; +case 30: return 259; +break; +case 31: parser.yy.correlatedSubQuery = true; return 260; +break; +case 32: return 261; +break; +case 33: return 262; +break; +case 34: return 263; +break; +case 35: parser.determineCase(yy_.yytext); return 264; +break; +case 36: return 187; +break; +case 37: return 265; +break; +case 38: return 266; +break; +case 39: return 268; +break; +case 40: return 269; +break; +case 41: return 193; +break; +case 42: return 217; +break; +case 43: return 270; +break; +case 44: return 218; +break; +case 45: return 271; +break; +case 46: return 191; +break; +case 47: return 188; +break; +case 48: return 69; +break; +case 49: return 272; +break; +case 50: return 87; +break; +case 51: return 88; +break; +case 52: return 275; +break; +case 53: return 229; +break; +case 54: return 276; +break; +case 55: return 277; +break; +case 56: return 192; +break; +case 57: return 117; +break; +case 58: return 279; +break; +case 59: return 157; +break; +case 60: return 121; +break; +case 61: return 280; +break; +case 62: return 189; +break; +case 63: return 281; +break; +case 64: return 282; +break; +case 65: return 142; +break; +case 66: return 283; +break; +case 67: return 284; +break; +case 68: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 170; +break; +case 69: return 194; +break; +case 70: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 13; +break; +case 71: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 'SHOW'; +break; +case 72: return 285; +break; +case 73: return 288; +break; +case 74: return 24; +break; +case 75: return 290; +break; +case 76: return 291; +break; +case 77: return 292; +break; +case 78: return 'TO'; +break; +case 79: return 293; +break; +case 80: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 158; +break; +case 81: return 489; +break; +case 82: return 294; +break; +case 83: parser.determineCase(yy_.yytext); return 500; +break; +case 84: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 514; +break; +case 85: return 132; +break; +case 86: return 299; +break; +case 87: return 32; +break; +case 88: return 301; +break; +case 89: return 302; +break; +case 90: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 357; +break; +case 91: return 278; +break; +case 92: return 142; +break; +case 93: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 243; +break; +case 94: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 249; +break; +case 95: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 251; +break; +case 96: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 273; +break; +case 97: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 274; +break; +case 98: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 286; +break; +case 99: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 287; +break; +case 100: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 289; +break; +case 101: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 297; +break; +case 102: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 298; +break; +case 103: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 300; +break; +case 104: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; +break; +case 105: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; +break; +case 106: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; +break; +case 107: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; +break; +case 108: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; +break; +case 109: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; +break; +case 110: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; +break; +case 111: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; +break; +case 112: return 295; +break; +case 113: return 295; +break; +case 114: return 296; +break; +case 115: return 230; +break; +case 116: parser.yy.cursorFound = true; return 14; +break; +case 117: parser.yy.cursorFound = true; return 303; +break; +case 118: return 267; +break; +case 119: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 494; +break; +case 120: this.popState(); return 495; +break; +case 121: return 225; +break; +case 122: return 240; +break; +case 123: return 276; +break; +case 124: return 183; +break; +case 125: return 100; +break; +case 126: return 101; +break; +case 127: return 134; +break; +case 128: return 134; +break; +case 129: return 134; +break; +case 130: return 134; +break; +case 131: return 134; +break; +case 132: return 234; +break; +case 133: return 233; +break; +case 134: return 241; +break; +case 135: return 241; +break; +case 136: return 241; +break; +case 137: return 241; +break; +case 138: return 241; +break; +case 139: return 241; +break; +case 140: return 77; +break; +case 141: return 235; +break; +case 142: return 112; +break; +case 143: return 163; +break; +case 144: return 238; +break; +case 145: return 232; +break; +case 146: return 71; +break; +case 147: return 73; +break; +case 148: return 236; +break; +case 149: return 237; +break; +case 150: return 231; +break; +case 151: this.begin('backtickedValue'); return 244; +break; +case 152: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { + return 307; + } + return 55; + +break; +case 153: this.popState(); return 244; +break; +case 154: this.begin('singleQuotedValue'); return 53; +break; +case 155: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { + return 307; + } + return 55; + +break; +case 156: this.popState(); return 53; +break; +case 157: this.begin('doubleQuotedValue'); return 54; +break; +case 158: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { + return 307; + } + return 55; + +break; +case 159: this.popState(); return 54; +break; +case 160: return 225; +break; +case 161: /* To prevent console logging of unknown chars */ +break; +case 162: +break; +case 163: +break; +case 164: +break; +case 165: +break; +case 166: +break; +case 167:console.log(yy_.yytext); +break; +} +}, +rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:AND)/i,/^(?:ALL)/i,/^(?:ALTER)/i,/^(?:AND)/i,/^(?:AS)/i,/^(?:ASC)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BOOLEAN)/i,/^(?:BY)/i,/^(?:CASCADE)/i,/^(?:CASE)/i,/^(?:CHAR)/i,/^(?:COMMENT)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CURRENT)/i,/^(?:DATABASE)/i,/^(?:DECIMAL)/i,/^(?:DESC)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:ELSE)/i,/^(?:END)/i,/^(?:EXISTS)/i,/^(?:FALSE)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:GROUP)/i,/^(?:HAVING)/i,/^(?:IF)/i,/^(?:IN)/i,/^(?:INNER)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTO)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIMIT)/i,/^(?:NOT)/i,/^(?:NULL)/i,/^(?:ON)/i,/^(?:OPTION)/i,/^(?:OR)/i,/^(?:ORDER)/i,/^(?:OUTER)/i,/^(?:PARTITION)/i,/^(?:PRECEDING)/i,/^(?:PURGE)/i,/^(?:RANGE)/i,/^(?:REGEXP)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROW)/i,/^(?:ROLE)/i,/^(?:ROWS)/i,/^(?:SCHEMA)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SET)/i,/^(?:SHOW)/i,/^(?:SMALLINT)/i,/^(?:STRING)/i,/^(?:TABLE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TINYINT)/i,/^(?:TO)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UNBOUNDED)/i,/^(?:UNION)/i,/^(?:UPDATE)/i,/^(?:USE)/i,/^(?:VALUES)/i,/^(?:VARCHAR)/i,/^(?:VIEW)/i,/^(?:WHEN)/i,/^(?:WHERE)/i,/^(?:WITH)/i,/^(?:OVER)/i,/^(?:ROLE)/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], +conditions: {"hdfs":{"rules":[116,117,118,119,120,121,163],"inclusive":false},"doubleQuotedValue":{"rules":[158,159,166],"inclusive":false},"singleQuotedValue":{"rules":[155,156,165],"inclusive":false},"backtickedValue":{"rules":[152,153,164],"inclusive":false},"between":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,154,157,160,161,162,167],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,154,157,160,161,167],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); +export default genericAutocompleteParser; diff --git a/src/core/parse/generic/genericSyntaxParser.js b/src/core/parse/generic/genericSyntaxParser.js new file mode 100644 index 0000000..3fbab72 --- /dev/null +++ b/src/core/parse/generic/genericSyntaxParser.js @@ -0,0 +1,3539 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +/* parser generated by jison 0.4.18 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +import SqlParseSupport from './sqlParseSupport'; + +var genericSyntaxParser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[13,20,40,152,158,167,177,181,323,333,495,509],$V1=[2,276],$V2=[177,181],$V3=[2,277],$V4=[1,28],$V5=[1,40],$V6=[1,36],$V7=[1,37],$V8=[1,38],$V9=[1,39],$Va=[1,32],$Vb=[1,33],$Vc=[1,31],$Vd=[1,29],$Ve=[73,177,181],$Vf=[2,560],$Vg=[1,46],$Vh=[1,57],$Vi=[1,55],$Vj=[1,56],$Vk=[1,52],$Vl=[1,53],$Vm=[1,65],$Vn=[2,593],$Vo=[1,67],$Vp=[1,68],$Vq=[1,79],$Vr=[1,80],$Vs=[73,177,181,262],$Vt=[193,194],$Vu=[13,28,50,53,54,69,71,73,77,87,99,100,101,104,105,112,117,121,132,134,142,157,177,181,186,187,188,191,192,193,194,200,201,202,204,205,206,207,210,212,215,216,218,219,220,223,225,226,227,228,231,232,233,234,235,236,237,240,241,242,243,246,247,248,250,252,253,256,258,259,260,262,267,269,270,283,382],$Vv=[13,105,142,186,187,188,204],$Vw=[1,147],$Vx=[1,148],$Vy=[1,111],$Vz=[1,106],$VA=[1,117],$VB=[1,120],$VC=[1,122],$VD=[1,123],$VE=[1,107],$VF=[1,104],$VG=[1,109],$VH=[1,145],$VI=[1,108],$VJ=[1,133],$VK=[1,151],$VL=[1,112],$VM=[1,134],$VN=[1,141],$VO=[1,110],$VP=[1,150],$VQ=[1,121],$VR=[1,152],$VS=[1,153],$VT=[1,154],$VU=[1,155],$VV=[1,142],$VW=[1,149],$VX=[1,144],$VY=[1,146],$VZ=[1,156],$V_=[1,157],$V$=[1,158],$V01=[53,54,71,73,87,88,99,104,105,142,158,186,187,188,190,191,192,193,197,199,203,204,208,209,211,221,222,230,238,239,254,255,257,261,263,264,265,266,268,323],$V11=[71,77,323],$V21=[105,142,177,181,186,187,188],$V31=[2,433],$V41=[1,164],$V51=[105,142,186,187,188,204],$V61=[105,142,177,181,186,187,188,204,230],$V71=[2,430],$V81=[1,169],$V91=[73,77,177,181,225,262],$Va1=[2,969],$Vb1=[1,223],$Vc1=[1,224],$Vd1=[1,212],$Ve1=[1,209],$Vf1=[1,210],$Vg1=[1,211],$Vh1=[1,218],$Vi1=[1,217],$Vj1=[1,208],$Vk1=[1,216],$Vl1=[1,219],$Vm1=[1,214],$Vn1=[1,213],$Vo1=[1,207],$Vp1=[1,215],$Vq1=[1,226],$Vr1=[1,225],$Vs1=[28,53,54,69,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,241,242,243,246,247,248,250,252,258,262,269,270,382],$Vt1=[1,232],$Vu1=[1,238],$Vv1=[1,240],$Vw1=[28,53,54,69,71,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,241,242,243,246,247,248,250,252,258,262,269,270,382],$Vx1=[1,245],$Vy1=[28,50,53,54,69,71,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,193,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,241,242,243,246,247,248,250,252,258,262,269,270,382],$Vz1=[28,53,54,69,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,241,242,243,244,246,247,248,250,252,258,262,269,270,382],$VA1=[28,53,54,73,77,105,117,132,142,157,177,181,186,187,188,204,212,226,227,228,232,235,236,237,240,242,243,247,252,262,270],$VB1=[28,50,73,77,87,88,101,177,181,212,225,226,227,228,232,235,236,237,240,242,243,247,252,262,270],$VC1=[177,181,270],$VD1=[77,177,181,225,270],$VE1=[50,73,77,194],$VF1=[73,177,181,227,228,237,242,262],$VG1=[2,617],$VH1=[1,293],$VI1=[88,217,222,261],$VJ1=[73,77,177,181,212,225,226,227,228,232,235,236,237,240,242,243,247,252,262,270],$VK1=[28,53,54,73,77,87,105,121,142,177,181,186,187,188,200,202,204,205,212,216,219,220,225,226,227,228,232,235,236,237,241,242,243,247,250,252,258,262,269,270,382],$VL1=[28,53,54,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,232,235,236,237,241,242,243,247,250,252,258,262,269,270,382],$VM1=[323,333],$VN1=[2,947],$VO1=[219,220,269],$VP1=[53,54,71,87,88,99,104,105,142,158,186,187,188,190,192,193,197,199,203,204,208,209,211,221,222,230,238,239,254,255,257,261,263,264,265,266,268],$VQ1=[28,50,53,54,69,73,77,87,88,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,240,241,242,243,246,247,248,250,252,258,262,269,270,382],$VR1=[73,77],$VS1=[2,50],$VT1=[1,363],$VU1=[28,177,181],$VV1=[28,117,177,181],$VW1=[28,50,69,71,117,177,181],$VX1=[28,50],$VY1=[73,177,181,228,237,242,262],$VZ1=[73,77,177,181,227,228,237,242,262,270],$V_1=[1,396],$V$1=[1,397],$V02=[1,398],$V12=[1,399],$V22=[1,400],$V32=[1,401],$V42=[1,402],$V52=[1,403],$V62=[73,77,177,181,212,226,227,228,232,235,236,237,240,242,243,247,252,262,270],$V72=[28,53,54,73,77,105,142,177,181,186,187,188,204,212,226,227,228,232,235,236,237,240,242,243,247,252,262,270],$V82=[28,53,54,73,77,87,100,101,105,121,134,142,177,181,186,187,188,194,200,202,204,205,212,216,219,220,225,226,227,228,232,235,236,237,241,242,243,247,250,252,258,262,269,270,382],$V92=[28,53,54,73,77,105,121,142,177,181,186,187,188,200,202,204,212,216,219,220,225,226,227,228,232,235,236,237,241,242,243,247,250,252,258,262,269,270,382],$Va2=[1,428],$Vb2=[73,77,242],$Vc2=[73,242],$Vd2=[1,458],$Ve2=[73,177,181,237,242,262],$Vf2=[71,105,142,186,187,188,204],$Vg2=[28,53,54,69,73,77,87,100,101,105,121,134,142,177,181,186,187,188,191,192,194,200,201,202,204,205,212,216,219,220,225,226,227,228,231,232,234,235,236,237,240,241,242,243,246,247,248,250,252,258,262,269,270,382],$Vh2=[1,493],$Vi2=[1,496],$Vj2=[1,497],$Vk2=[1,498],$Vl2=[1,499],$Vm2=[1,500],$Vn2=[1,501],$Vo2=[1,502],$Vp2=[1,503],$Vq2=[1,504],$Vr2=[1,505],$Vs2=[1,506],$Vt2=[1,507],$Vu2=[1,524],$Vv2=[1,525],$Vw2=[1,526],$Vx2=[73,177,181,237,262],$Vy2=[73,77,177,181,212,226,227,228,232,235,236,237,242,243,247,252,262,270],$Vz2=[2,928],$VA2=[1,541],$VB2=[50,73,77,87,88,101],$VC2=[2,542],$VD2=[1,563],$VE2=[1,574],$VF2=[1,575],$VG2=[73,77,177,181,228,237,242,262],$VH2=[205,482],$VI2=[50,73,77,87,88],$VJ2=[73,200,213,263,482],$VK2=[2,1045],$VL2=[73,77,121,177,181,237,250,262],$VM2=[1,628],$VN2=[77,101],$VO2=[73,200],$VP2=[2,1055],$VQ2=[1,640],$VR2=[1,641],$VS2=[1,642],$VT2=[2,1060],$VU2=[1,657],$VV2=[224,245],$VW2=[1,667],$VX2=[1,668],$VY2=[2,190],$VZ2=[2,191]; +var parser = {trace: function trace () { }, +yy: {}, +symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"CreateStatement":5,"DropStatement":6,"SetSpecification":7,"UseStatement":8,"DataDefinition_EDIT":9,"AlterStatement_EDIT":10,"CreateStatement_EDIT":11,"DropStatement_EDIT":12,"SET":13,"CURSOR":14,"UseStatement_EDIT":15,"AlterTable":16,"AlterView":17,"AlterTable_EDIT":18,"AlterView_EDIT":19,"ALTER":20,"AlterTableLeftSide":21,"PartitionSpec":22,"AlterTableLeftSide_EDIT":23,"TABLE":24,"SchemaQualifiedTableIdentifier":25,"SchemaQualifiedTableIdentifier_EDIT":26,"AlterViewLeftSide":27,"AS":28,"QuerySpecification":29,"AlterViewLeftSide_EDIT":30,"QuerySpecification_EDIT":31,"VIEW":32,"DatabaseDefinition":33,"TableDefinition":34,"ViewDefinition":35,"RoleDefinition":36,"DatabaseDefinition_EDIT":37,"TableDefinition_EDIT":38,"ViewDefinition_EDIT":39,"CREATE":40,"DatabaseOrSchema":41,"OptionalIfNotExists":42,"RegularIdentifier":43,"DatabaseDefinitionOptionals":44,"OptionalIfNotExists_EDIT":45,"OptionalComment":46,"DatabaseDefinitionOptionals_EDIT":47,"OptionalComment_INVALID":48,"Comment":49,"COMMENT":50,"QuotedValue":51,"Comment_INVALID":52,"SINGLE_QUOTE":53,"DOUBLE_QUOTE":54,"VALUE":55,"TableDefinitionRightPart":56,"TableDefinitionRightPart_EDIT":57,"TableIdentifierAndOptionalColumnSpecification":58,"OptionalPartitionedBy":59,"OptionalAsSelectStatement":60,"TableIdentifierAndOptionalColumnSpecification_EDIT":61,"PartitionedBy_EDIT":62,"OptionalAsSelectStatement_EDIT":63,"SchemaQualifiedIdentifier":64,"OptionalColumnSpecificationsOrLike":65,"OptionalColumnSpecificationsOrLike_EDIT":66,"SchemaQualifiedIdentifier_EDIT":67,"ParenthesizedColumnSpecificationList":68,"LIKE":69,"ParenthesizedColumnSpecificationList_EDIT":70,"(":71,"ColumnSpecificationList":72,")":73,"ColumnSpecificationList_EDIT":74,"RightParenthesisOrError":75,"ColumnSpecification":76,",":77,"ColumnSpecification_EDIT":78,"ColumnIdentifier":79,"ColumnDataType":80,"OptionalColumnOptions":81,"ColumnDataType_EDIT":82,"ColumnOptions_EDIT":83,"ColumnOptions":84,"ColumnOption":85,"ColumnOption_EDIT":86,"NOT":87,"NULL":88,"PrimitiveType":89,"ArrayType":90,"MapType":91,"StructType":92,"ArrayType_INVALID":93,"MapType_INVALID":94,"StructType_INVALID":95,"ArrayType_EDIT":96,"MapType_EDIT":97,"StructType_EDIT":98,"ARRAY":99,"<":100,">":101,"AnyCursor":102,"GreaterThanOrError":103,"MAP":104,"STRUCT":105,"StructDefinitionList":106,"StructDefinitionList_EDIT":107,"StructDefinition":108,"StructDefinition_EDIT":109,"Commas":110,"RegularOrBacktickedIdentifier":111,":":112,"ColumnDataTypeList":113,"ColumnDataTypeList_EDIT":114,"ColumnDataTypeListInner_EDIT":115,"PartitionedBy":116,"PARTITION":117,"BY":118,"RangeClause":119,"RangeClause_EDIT":120,"RANGE":121,"ParenthesizedColumnList":122,"ParenthesizedPartitionValuesList":123,"ParenthesizedColumnList_EDIT":124,"ParenthesizedPartitionValuesList_EDIT":125,"PartitionValueList":126,"PartitionValueList_EDIT":127,"PartitionValue":128,"PartitionValue_EDIT":129,"ValueExpression":130,"LessThanOrEqualTo":131,"VALUES":132,"ValueExpression_EDIT":133,"COMPARISON_OPERATOR":134,"CommitLocations":135,"OptionalParenthesizedViewColumnList":136,"ParenthesizedViewColumnList_EDIT":137,"ParenthesizedViewColumnList":138,"ViewColumnList":139,"ViewColumnList_EDIT":140,"ColumnReference":141,"ROLE":142,"DropDatabaseStatement":143,"DropRoleStatement":144,"DropTableStatement":145,"DropViewStatement":146,"TruncateTableStatement":147,"DropDatabaseStatement_EDIT":148,"DropTableStatement_EDIT":149,"DropViewStatement_EDIT":150,"TruncateTableStatement_EDIT":151,"DROP":152,"OptionalIfExists":153,"OptionalCascade":154,"OptionalIfExists_EDIT":155,"OptionalPurge":156,"PURGE":157,"TRUNCATE":158,"OptionalPartitionSpec":159,"DataManipulation":160,"InsertStatement":161,"UpdateStatement":162,"InsertValuesStatement":163,"DataManipulation_EDIT":164,"InsertValuesStatement_EDIT":165,"UpdateStatement_EDIT":166,"INSERT":167,"INTO":168,"OptionalTable":169,"InsertValuesList":170,"ParenthesizedRowValuesList":171,"RowValuesList":172,"InValueList":173,"SqlSyntax":174,"NewStatement":175,"SqlStatements":176,"EOF":177,"SqlAutocomplete":178,"SqlStatements_EDIT":179,"SqlStatement":180,";":181,"SqlStatement_EDIT":182,"CommonTableExpression":183,"SetSpecification_EDIT":184,"NonReservedKeyword":185,"OPTION":186,"REGULAR_IDENTIFIER":187,"VARIABLE_REFERENCE":188,"NonStartingToken":189,"!":190,"*":191,"-":192,".":193,"=":194,"[":195,"]":196,"~":197,"ALL":198,"ANALYTIC":199,"AND":200,"ARITHMETIC_OPERATOR":201,"ASC":202,"AVG":203,"BACKTICK":204,"BETWEEN":205,"BIGINT":206,"BOOLEAN":207,"CASE":208,"CAST":209,"CHAR":210,"COUNT":211,"CROSS":212,"CURRENT":213,"DATABASE":214,"DECIMAL":215,"DESC":216,"DISTINCT":217,"DOUBLE":218,"ELSE":219,"END":220,"EXISTS":221,"FALSE":222,"FLOAT":223,"FOLLOWING":224,"FROM":225,"FULL":226,"GROUP":227,"HAVING":228,"HDFS_START_QUOTE":229,"IF":230,"IN":231,"INNER":232,"INT":233,"IS":234,"JOIN":235,"LEFT":236,"LIMIT":237,"MAX":238,"MIN":239,"ON":240,"OR":241,"ORDER":242,"OUTER":243,"OVER":244,"PRECEDING":245,"REGEXP":246,"RIGHT":247,"RLIKE":248,"ROW":249,"ROWS":250,"SCHEMA":251,"SEMI":252,"SMALLINT":253,"STDDEV_POP":254,"STDDEV_SAMP":255,"STRING":256,"SUM":257,"THEN":258,"TIMESTAMP":259,"TINYINT":260,"TRUE":261,"UNION":262,"UNSIGNED_INTEGER":263,"UNSIGNED_INTEGER_E":264,"VAR_POP":265,"VAR_SAMP":266,"VARCHAR":267,"VARIANCE":268,"WHEN":269,"WHERE":270,"PARTIAL_CURSOR":271,"FromOrIn":272,"SingleQuotedValue":273,"SingleQuotedValue_EDIT":274,"PARTIAL_VALUE":275,"DoubleQuotedValue":276,"DoubleQuotedValue_EDIT":277,"QuotedValue_EDIT":278,"OptionalFromDatabase":279,"DatabaseIdentifier":280,"OptionalFromDatabase_EDIT":281,"DatabaseIdentifier_EDIT":282,"CASCADE":283,"OptionalInDatabase":284,"OptionalPartitionSpec_EDIT":285,"PartitionSpec_EDIT":286,"PartitionSpecList":287,"PartitionSpecList_EDIT":288,"RangePartitionSpec":289,"UnsignedValueSpecification":290,"RangePartitionComparisonOperator":291,"RangePartitionSpec_EDIT":292,"ConfigurationName":293,"PartialBacktickedOrAnyCursor":294,"PartialBacktickedIdentifier":295,"PartialBacktickedOrCursor":296,"PartialBacktickedOrPartialCursor":297,"OptionalParenthesizedColumnList":298,"OptionalParenthesizedColumnList_EDIT":299,"ColumnList":300,"ColumnList_EDIT":301,"ParenthesizedSimpleValueList":302,"SimpleValueList":303,"PartitionExpression":304,"PartitionExpression_EDIT":305,"RegularOrBackTickedSchemaQualifiedName":306,"RegularOrBackTickedSchemaQualifiedName_EDIT":307,"LocalOrSchemaQualifiedName":308,"LocalOrSchemaQualifiedName_EDIT":309,"BasicIdentifierChain":310,"ColumnReference_EDIT":311,"BasicIdentifierChain_EDIT":312,"DerivedColumnChain":313,"DerivedColumnChain_EDIT":314,"PartialBacktickedIdentifierOrPartialCursor":315,"OptionalTypeLength":316,"OptionalTypePrecision":317,"SelectStatement":318,"OptionalUnions":319,"SelectStatement_EDIT":320,"OptionalUnions_EDIT":321,"CommonTableExpression_EDIT":322,"SELECT":323,"OptionalAllOrDistinct":324,"SelectList":325,"TableExpression":326,"Unions":327,"Unions_EDIT":328,"UnionClause":329,"UnionClause_EDIT":330,"SelectList_EDIT":331,"TableExpression_EDIT":332,"WITH":333,"WithQueries":334,"WithQueries_EDIT":335,"WithQuery":336,"WithQuery_EDIT":337,"TableSubQueryInner":338,"TableSubQueryInner_EDIT":339,"FromClause":340,"OptionalSelectConditions":341,"FromClause_EDIT":342,"OptionalJoins":343,"OptionalSelectConditions_EDIT":344,"Joins":345,"Joins_INVALID":346,"TableReferenceList":347,"TableReferenceList_EDIT":348,"OptionalWhereClause":349,"OptionalGroupByClause":350,"OptionalHavingClause":351,"OptionalOrderByClause":352,"OptionalLimitClause":353,"WhereClause_EDIT":354,"GroupByClause_EDIT":355,"HavingClause_EDIT":356,"OrderByClause_EDIT":357,"LimitClause_EDIT":358,"WhereClause":359,"GroupByClause":360,"HavingClause":361,"OrderByClause":362,"LimitClause":363,"SearchCondition":364,"SearchCondition_EDIT":365,"GroupByColumnList":366,"GroupByColumnList_EDIT":367,"ColumnGroupingSets":368,"ColumnGroupingSets_EDIT":369,"ColumnGroupingSet_EDIT":370,"GroupByColumnListPartTwo_EDIT":371,"OrderByColumnList":372,"OrderByColumnList_EDIT":373,"OrderByIdentifier":374,"OrderByIdentifier_EDIT":375,"OptionalAscOrDesc":376,"UnsignedNumericLiteral":377,"NonParenthesizedValueExpressionPrimary":378,"OptionalNot":379,"TableSubQuery":380,"ValueExpressionList":381,"BETWEEN_AND":382,"LikeRightPart":383,"CaseRightPart":384,"NonParenthesizedValueExpressionPrimary_EDIT":385,"TableSubQuery_EDIT":386,"ValueExpressionInSecondPart_EDIT":387,"LikeRightPart_EDIT":388,"CaseRightPart_EDIT":389,"EndOrError":390,"ValueExpressionList_EDIT":391,"ColumnOrArbitraryFunctionRef":392,"ArbitraryFunctionRightPart":393,"ArbitraryFunctionName":394,"UserDefinedFunction":395,"UnsignedValueSpecification_EDIT":396,"ColumnOrArbitraryFunctionRef_EDIT":397,"ArbitraryFunctionRightPart_EDIT":398,"UserDefinedFunction_EDIT":399,"SignedInteger":400,"+":401,"UnsignedLiteral":402,"UnsignedLiteral_EDIT":403,"GeneralLiteral":404,"GeneralLiteral_EDIT":405,"ExactNumericLiteral":406,"ApproximateNumericLiteral":407,"TruthValue":408,"SelectSpecification":409,"OptionalCorrelationName":410,"SelectSpecification_EDIT":411,"OptionalCorrelationName_EDIT":412,"TableReference":413,"TableReference_EDIT":414,"TablePrimaryOrJoinedTable":415,"TablePrimaryOrJoinedTable_EDIT":416,"TablePrimary":417,"JoinedTable":418,"TablePrimary_EDIT":419,"JoinedTable_EDIT":420,"Joins_EDIT":421,"JoinType":422,"OptionalJoinCondition":423,"Join_EDIT":424,"JoinType_EDIT":425,"JoinCondition_EDIT":426,"UsingColList":427,"TableOrQueryName":428,"DerivedTable":429,"TableOrQueryName_EDIT":430,"DerivedTable_EDIT":431,"OptionalOnColumn":432,"OptionalOnColumn_EDIT":433,"PushQueryState":434,"PopQueryState":435,"SubQuery":436,"SubQuery_EDIT":437,"QueryExpression":438,"QueryExpression_EDIT":439,"QueryExpressionBody":440,"QueryExpressionBody_EDIT":441,"NonJoinQueryExpression":442,"NonJoinQueryExpression_EDIT":443,"NonJoinQueryTerm":444,"NonJoinQueryTerm_EDIT":445,"NonJoinQueryPrimary":446,"NonJoinQueryPrimary_EDIT":447,"SimpleTable":448,"SimpleTable_EDIT":449,"AggregateFunction":450,"OptionalOverClause":451,"AnalyticFunction":452,"OverClause":453,"CastFunction":454,"AggregateFunction_EDIT":455,"OptionalOverClause_EDIT":456,"AnalyticFunction_EDIT":457,"OverClause_EDIT":458,"CastFunction_EDIT":459,"ArbitraryFunction":460,"ArbitraryFunction_EDIT":461,"CountFunction":462,"SumFunction":463,"OtherAggregateFunction":464,"CountFunction_EDIT":465,"SumFunction_EDIT":466,"OtherAggregateFunction_EDIT":467,"WindowExpression":468,"WindowExpression_EDIT":469,"OptionalPartitionBy":470,"OptionalOrderByAndWindow":471,"PartitionBy_EDIT":472,"OptionalOrderByAndWindow_EDIT":473,"PartitionBy":474,"OptionalWindowSpec":475,"WindowSpec_EDIT":476,"WindowSpec":477,"RowsOrRange":478,"PopLexerState":479,"OptionalCurrentOrPreceding":480,"OptionalAndFollowing":481,"UNBOUNDED":482,"OptionalCurrentOrPreceding_EDIT":483,"OptionalAndFollowing_EDIT":484,"PushHdfsLexerState":485,"HdfsPath":486,"HDFS_PATH":487,"HDFS_END_QUOTE":488,"HdfsPath_EDIT":489,"IntegerOrUnbounded":490,"OtherAggregateFunction_Type":491,"FromOrComma":492,"SetOption":493,"SetValue":494,"UPDATE":495,"TargetTable":496,"SetClauseList":497,"OptionalFromJoinedTable":498,"TargetTable_EDIT":499,"SetClauseList_EDIT":500,"FromJoinedTable_EDIT":501,"TableName":502,"TableName_EDIT":503,"SetClause":504,"SetClause_EDIT":505,"SetTarget":506,"UpdateSource":507,"UpdateSource_EDIT":508,"USE":509,"CaseWhenThenList":510,"CaseWhenThenList_EDIT":511,"CaseWhenThenListPartTwo":512,"CaseWhenThenListPartTwo_EDIT":513,"$accept":0,"$end":1}, +terminals_: {2:"error",13:"SET",14:"CURSOR",20:"ALTER",24:"TABLE",28:"AS",32:"VIEW",40:"CREATE",50:"COMMENT",53:"SINGLE_QUOTE",54:"DOUBLE_QUOTE",55:"VALUE",69:"LIKE",71:"(",73:")",77:",",87:"NOT",88:"NULL",99:"ARRAY",100:"<",101:">",104:"MAP",105:"STRUCT",112:":",117:"PARTITION",118:"BY",121:"RANGE",132:"VALUES",134:"COMPARISON_OPERATOR",142:"ROLE",152:"DROP",157:"PURGE",158:"TRUNCATE",167:"INSERT",168:"INTO",172:"RowValuesList",177:"EOF",181:";",184:"SetSpecification_EDIT",186:"OPTION",187:"REGULAR_IDENTIFIER",188:"VARIABLE_REFERENCE",190:"!",191:"*",192:"-",193:".",194:"=",195:"[",196:"]",197:"~",198:"ALL",199:"ANALYTIC",200:"AND",201:"ARITHMETIC_OPERATOR",202:"ASC",203:"AVG",204:"BACKTICK",205:"BETWEEN",206:"BIGINT",207:"BOOLEAN",208:"CASE",209:"CAST",210:"CHAR",211:"COUNT",212:"CROSS",213:"CURRENT",214:"DATABASE",215:"DECIMAL",216:"DESC",217:"DISTINCT",218:"DOUBLE",219:"ELSE",220:"END",221:"EXISTS",222:"FALSE",223:"FLOAT",224:"FOLLOWING",225:"FROM",226:"FULL",227:"GROUP",228:"HAVING",229:"HDFS_START_QUOTE",230:"IF",231:"IN",232:"INNER",233:"INT",234:"IS",235:"JOIN",236:"LEFT",237:"LIMIT",238:"MAX",239:"MIN",240:"ON",241:"OR",242:"ORDER",243:"OUTER",244:"OVER",245:"PRECEDING",246:"REGEXP",247:"RIGHT",248:"RLIKE",249:"ROW",250:"ROWS",251:"SCHEMA",252:"SEMI",253:"SMALLINT",254:"STDDEV_POP",255:"STDDEV_SAMP",256:"STRING",257:"SUM",258:"THEN",259:"TIMESTAMP",260:"TINYINT",261:"TRUE",262:"UNION",263:"UNSIGNED_INTEGER",264:"UNSIGNED_INTEGER_E",265:"VAR_POP",266:"VAR_SAMP",267:"VARCHAR",268:"VARIANCE",269:"WHEN",270:"WHERE",271:"PARTIAL_CURSOR",275:"PARTIAL_VALUE",283:"CASCADE",323:"SELECT",333:"WITH",382:"BETWEEN_AND",401:"+",482:"UNBOUNDED",487:"HDFS_PATH",488:"HDFS_END_QUOTE",495:"UPDATE",509:"USE"}, +productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[9,1],[9,1],[9,1],[9,2],[9,1],[4,1],[4,1],[10,1],[10,1],[10,2],[16,2],[18,1],[18,2],[18,2],[18,3],[21,3],[23,3],[23,3],[17,3],[19,1],[19,2],[19,3],[19,3],[19,3],[27,3],[30,3],[30,3],[5,1],[5,1],[5,1],[5,1],[11,1],[11,1],[11,1],[11,2],[33,3],[33,5],[37,4],[37,3],[37,5],[37,4],[37,6],[44,1],[47,1],[46,0],[46,1],[49,2],[48,1],[52,2],[52,2],[52,3],[52,3],[34,4],[38,4],[38,4],[38,3],[56,3],[57,3],[57,3],[57,3],[57,3],[58,2],[61,2],[61,2],[65,0],[65,1],[65,2],[66,1],[66,2],[66,2],[68,3],[70,3],[72,1],[72,3],[74,1],[74,3],[74,3],[74,5],[74,2],[74,4],[74,4],[74,6],[76,3],[78,3],[78,3],[78,3],[81,0],[81,1],[84,1],[84,2],[83,1],[83,2],[83,2],[83,3],[85,2],[85,1],[85,1],[86,2],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[80,1],[82,1],[82,1],[82,1],[90,4],[93,3],[96,4],[96,4],[91,6],[94,3],[97,6],[97,4],[97,6],[97,5],[92,4],[95,3],[98,4],[106,1],[106,3],[107,1],[107,2],[107,3],[107,3],[107,5],[108,4],[109,5],[109,4],[109,4],[109,4],[109,3],[109,3],[113,1],[113,3],[114,1],[114,2],[114,3],[114,3],[114,5],[115,2],[115,2],[115,1],[115,1],[103,1],[103,1],[59,0],[59,1],[116,3],[62,2],[62,3],[62,3],[119,3],[120,2],[120,2],[120,3],[120,3],[120,3],[123,3],[125,3],[125,3],[126,1],[126,3],[127,1],[127,3],[127,5],[127,3],[127,5],[128,6],[128,4],[128,4],[129,2],[129,2],[129,3],[129,4],[129,4],[129,5],[129,6],[129,6],[129,3],[129,4],[129,4],[131,1],[131,1],[60,0],[60,3],[63,3],[63,3],[135,0],[35,8],[39,4],[39,9],[39,3],[39,6],[39,7],[39,8],[39,8],[39,8],[136,0],[136,1],[138,3],[137,3],[139,2],[139,4],[140,3],[140,5],[140,5],[140,7],[36,3],[6,1],[6,1],[6,1],[6,1],[6,1],[12,1],[12,1],[12,1],[12,1],[12,2],[143,5],[148,3],[148,3],[148,4],[148,5],[148,5],[148,6],[144,3],[145,5],[149,3],[149,4],[149,5],[149,5],[149,6],[156,0],[156,1],[146,4],[150,4],[150,5],[150,3],[150,4],[150,4],[147,4],[151,2],[151,4],[151,3],[151,4],[151,5],[151,5],[151,5],[160,1],[160,1],[161,1],[164,1],[164,1],[163,6],[165,2],[165,4],[165,4],[165,5],[165,6],[170,1],[170,3],[171,3],[169,0],[169,1],[174,3],[178,3],[178,3],[175,0],[176,0],[176,1],[176,4],[179,1],[179,4],[179,4],[179,7],[180,1],[180,1],[180,1],[182,1],[182,2],[182,1],[182,1],[182,1],[182,1],[185,1],[185,1],[185,1],[43,1],[43,1],[43,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[189,1],[110,1],[110,2],[102,1],[102,1],[272,1],[272,1],[41,1],[41,1],[273,3],[273,2],[274,2],[276,3],[276,2],[277,2],[51,1],[51,1],[278,1],[278,1],[279,0],[279,2],[281,2],[154,0],[154,1],[153,0],[153,2],[155,2],[42,0],[42,3],[45,2],[45,3],[284,0],[284,2],[284,2],[159,0],[159,1],[285,1],[22,4],[286,4],[289,5],[292,2],[292,3],[292,4],[292,5],[292,5],[292,5],[291,1],[291,1],[291,1],[291,1],[293,1],[293,1],[294,1],[294,1],[296,1],[296,1],[297,1],[297,1],[295,2],[75,1],[75,1],[298,0],[298,1],[299,1],[122,3],[124,3],[124,3],[300,1],[300,3],[301,3],[301,5],[302,3],[303,1],[303,3],[25,1],[25,3],[26,1],[26,3],[26,3],[64,1],[64,3],[67,1],[67,3],[67,3],[280,1],[282,1],[287,1],[287,3],[288,1],[288,3],[288,3],[288,5],[304,3],[305,3],[305,3],[305,3],[305,1],[111,1],[111,3],[111,2],[306,1],[306,3],[307,1],[307,3],[308,1],[308,2],[309,1],[309,2],[141,1],[141,3],[311,1],[310,1],[310,3],[312,3],[312,5],[313,1],[313,3],[314,1],[314,3],[314,5],[314,3],[79,1],[315,1],[315,1],[89,1],[89,1],[89,2],[89,2],[89,1],[89,1],[89,1],[89,1],[89,1],[89,1],[89,1],[89,2],[316,0],[316,3],[317,0],[317,3],[317,5],[29,2],[29,3],[29,5],[31,2],[31,2],[31,4],[31,3],[31,3],[31,1],[31,4],[31,3],[318,3],[318,4],[319,0],[319,1],[321,1],[327,1],[327,2],[328,1],[328,2],[328,2],[328,3],[329,4],[330,3],[330,4],[330,4],[320,3],[320,3],[320,4],[320,4],[320,4],[320,5],[320,6],[320,4],[183,2],[322,2],[334,1],[334,3],[335,1],[335,3],[335,3],[335,5],[336,5],[337,2],[337,5],[337,5],[324,0],[324,1],[324,1],[326,2],[332,2],[332,4],[332,3],[343,0],[343,1],[343,1],[340,2],[342,2],[342,2],[341,5],[344,5],[344,5],[344,5],[344,5],[344,5],[344,6],[344,6],[344,6],[344,6],[344,6],[349,0],[349,1],[359,2],[354,2],[354,2],[350,0],[350,1],[360,3],[355,3],[355,3],[355,2],[368,0],[368,1],[368,3],[368,3],[369,1],[369,3],[369,3],[369,5],[369,3],[370,1],[370,1],[366,1],[366,3],[367,1],[367,2],[367,3],[367,3],[367,3],[367,4],[367,5],[371,1],[371,2],[371,1],[352,0],[352,1],[362,3],[357,3],[357,2],[372,1],[372,3],[373,1],[373,2],[373,3],[373,4],[373,5],[374,2],[375,2],[375,2],[376,0],[376,1],[376,1],[353,0],[353,1],[363,2],[363,4],[363,2],[363,4],[358,2],[364,1],[365,1],[130,1],[130,2],[130,2],[130,2],[130,2],[130,4],[130,4],[130,4],[130,6],[130,2],[130,3],[130,3],[130,3],[130,3],[130,3],[130,6],[130,6],[130,5],[130,5],[130,6],[130,5],[130,3],[130,3],[130,3],[130,3],[130,3],[130,2],[130,3],[130,2],[130,3],[133,1],[133,3],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,2],[133,3],[133,4],[133,5],[133,4],[133,4],[133,4],[133,6],[133,6],[133,2],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,4],[133,3],[133,6],[133,6],[133,5],[133,5],[133,6],[133,6],[133,6],[133,6],[133,5],[133,4],[133,5],[133,5],[133,5],[133,5],[133,4],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,3],[133,2],[133,3],[133,2],[133,3],[133,2],[133,3],[133,2],[133,3],[133,3],[133,4],[133,3],[133,3],[133,3],[381,1],[381,3],[391,1],[391,3],[391,3],[391,5],[391,3],[391,5],[391,4],[391,3],[391,2],[391,2],[391,4],[173,1],[173,3],[378,1],[378,1],[378,2],[378,2],[378,1],[378,1],[385,1],[385,1],[385,2],[385,2],[385,1],[392,1],[392,3],[397,1],[400,1],[400,2],[400,2],[290,1],[396,1],[402,1],[402,1],[403,1],[377,1],[377,1],[406,1],[406,2],[406,3],[406,2],[407,2],[407,3],[407,4],[404,1],[404,1],[404,1],[405,1],[405,1],[408,1],[408,1],[379,0],[379,1],[409,2],[409,1],[411,2],[411,3],[411,2],[325,1],[325,3],[331,1],[331,2],[331,3],[331,3],[331,3],[331,4],[331,3],[331,3],[331,4],[331,4],[331,4],[331,5],[331,5],[347,1],[347,3],[348,1],[348,3],[348,3],[348,5],[348,3],[413,1],[414,1],[415,1],[415,1],[416,1],[416,1],[418,2],[420,2],[420,2],[345,3],[345,4],[346,1],[346,2],[424,3],[424,1],[424,3],[424,3],[424,3],[421,1],[421,2],[421,2],[421,3],[422,2],[422,2],[422,3],[422,2],[422,1],[422,3],[422,2],[422,3],[422,3],[422,2],[422,3],[422,2],[422,3],[422,3],[422,2],[425,2],[425,3],[425,3],[425,2],[425,3],[425,3],[425,3],[425,3],[425,2],[425,3],[425,3],[425,3],[425,3],[425,2],[423,0],[423,2],[427,1],[427,3],[426,2],[426,2],[417,2],[417,2],[419,2],[419,2],[419,2],[428,1],[430,1],[429,1],[431,1],[432,0],[432,2],[433,2],[433,2],[434,0],[435,0],[380,3],[380,4],[386,3],[386,3],[338,2],[339,3],[436,1],[437,1],[438,1],[439,1],[440,1],[441,1],[442,1],[443,1],[444,1],[445,1],[446,1],[447,1],[448,1],[449,1],[410,0],[410,1],[410,1],[410,2],[410,2],[412,1],[412,1],[412,2],[412,2],[412,2],[395,2],[395,2],[395,1],[399,1],[399,2],[399,1],[399,2],[399,2],[399,2],[399,1],[460,2],[460,2],[461,2],[461,2],[394,1],[394,1],[394,1],[394,1],[393,2],[393,3],[398,3],[398,4],[398,3],[450,1],[450,1],[450,1],[455,1],[455,1],[455,1],[452,3],[452,4],[457,4],[457,5],[457,4],[451,0],[451,1],[456,1],[453,2],[453,2],[458,2],[468,4],[469,4],[469,4],[469,5],[469,7],[470,0],[470,1],[474,3],[472,2],[472,3],[472,3],[471,0],[471,2],[473,1],[473,3],[473,2],[475,0],[475,1],[477,5],[477,5],[476,2],[476,6],[476,5],[476,5],[476,5],[476,4],[479,0],[485,0],[486,3],[489,5],[489,4],[489,3],[489,3],[489,2],[478,1],[478,1],[480,0],[480,2],[480,2],[483,2],[483,2],[481,0],[481,3],[481,3],[484,2],[484,3],[484,3],[490,1],[490,1],[351,0],[351,1],[361,2],[356,2],[356,2],[454,6],[454,3],[459,6],[459,5],[459,4],[459,6],[459,5],[459,4],[459,6],[459,5],[459,6],[459,5],[462,4],[462,3],[462,5],[465,5],[465,6],[465,5],[464,4],[464,5],[467,5],[467,6],[467,5],[491,1],[491,1],[491,1],[491,1],[491,1],[491,1],[491,1],[491,1],[492,1],[492,1],[463,5],[463,3],[466,5],[466,6],[466,5],[7,4],[7,2],[493,1],[493,3],[494,1],[494,1],[494,2],[494,1],[494,1],[494,1],[494,1],[162,6],[166,6],[166,6],[166,6],[166,6],[166,7],[166,3],[166,2],[166,2],[166,2],[496,1],[499,1],[502,1],[503,1],[497,1],[497,3],[500,1],[500,3],[500,3],[500,5],[504,3],[505,3],[505,2],[505,1],[506,1],[507,1],[508,1],[498,0],[498,2],[501,2],[501,2],[8,2],[15,2],[387,3],[387,3],[387,3],[383,2],[383,2],[383,2],[388,2],[388,2],[388,2],[388,2],[388,2],[388,2],[384,2],[384,4],[389,2],[389,4],[389,4],[389,3],[389,4],[389,3],[389,4],[389,4],[389,3],[389,4],[389,3],[390,1],[390,1],[510,1],[510,2],[511,1],[511,2],[511,3],[511,3],[511,2],[512,4],[513,2],[513,3],[513,4],[513,4],[513,3],[513,3],[513,4],[513,2],[513,3],[513,2],[513,3],[513,3],[513,4],[513,3],[513,4],[513,4],[513,5],[513,4],[513,3]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 9: + + parser.suggestSetOptions(); + +break; +case 15: + + parser.suggestKeywords(['TABLE', 'VIEW']); + +break; +case 21: case 30: case 243: case 247: case 249: case 1134: + + parser.addTablePrimary($$[$0]); + +break; +case 22: case 238: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + +break; +case 23: + + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 26: case 590: + + parser.suggestKeywords(['AS']); + +break; +case 28: case 194: case 203: case 288: case 591: case 952: + + parser.suggestKeywords(['SELECT']); + +break; +case 31: case 248: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + +break; +case 32: + + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 40: case 226: + + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + +break; +case 42: + + parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); + +break; +case 43: case 60: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 45: + + if (!$$[$0-2]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 46: + + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 47: + + parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); + +break; +case 48: + + if (!$$[$0]) { + parser.suggestKeywords(['COMMENT']); + } + +break; +case 66: + + var keywords = []; + if (!$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$$[$0-1]) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + +break; +case 67: + + parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); + this.$ = $$[$0]; + +break; +case 72: +this.$ = []; +break; +case 74: case 482: case 1131: case 1151: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 76: case 212: case 214: case 415: case 418: case 504: case 547: case 688: case 867: case 949: case 1001: +this.$ = $$[$0-1]; +break; +case 78: case 583: +this.$ = [$$[$0]]; +break; +case 79: +this.$ = $$[$0-2].concat($$[$0]); +break; +case 84: case 86: + + parser.checkForKeywords($$[$0-1]); + +break; +case 85: case 87: + + parser.checkForKeywords($$[$0-3]); + +break; +case 88: + + this.$ = $$[$0-2]; + this.$.type = $$[$0-1]; + var keywords = []; + if (!$$[$0]['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 89: case 116: case 122: case 123: case 136: case 139: case 148: case 150: + + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + +break; +case 92: +this.$ = {}; +break; +case 94: + + this.$ = {}; + this.$[$$[$0]] = true; + +break; +case 95: + + $$[$0-1][$$[$0]] = true; + +break; +case 100: case 101: +this.$ = 'null'; +break; +case 102: +this.$ = 'comment'; +break; +case 103: + + parser.suggestKeywords(['NULL']); + +break; +case 121: + + parser.suggestKeywords(parser.getTypeKeywords()); + +break; +case 135: case 138: + + parser.suggestKeywords(['COMMENT']); + +break; +case 157: case 1027: + + parser.suggestKeywords(['BY']); + +break; +case 158: + + parser.suggestKeywords(['RANGE']); + +break; +case 167: case 172: case 173: + + parser.suggestKeywords(['PARTITION']); + +break; +case 179: + + parser.suggestKeywords(['VALUE', 'VALUES']); + +break; +case 180: + + if ($$[$0].endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + +break; +case 181: case 184: case 187: + + parser.suggestKeywords(['<', '<=']); + +break; +case 182: case 447: case 450: + + parser.suggestKeywords(['VALUES']); + +break; +case 185: case 188: + + parser.suggestFunctions(); + +break; +case 196: + + parser.commitLocations(); + +break; +case 198: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + +break; +case 199: + + if (!$$[$0-6]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 202: + + var keywords = [{value: 'AS', weight: 1 }]; + if (!$$[$0-1]) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + +break; +case 209: + + if (!$$[$0-1]) { + parser.suggestKeywords(['COMMENT']); + } + +break; +case 213: case 215: +this.$ = $$[$0-3]; +break; +case 230: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + +break; +case 231: + + parser.suggestKeywords(['CASCADE']); + +break; +case 233: + + if (!$$[$0-3]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 235: case 254: + + parser.addTablePrimary($$[$0-1]); + +break; +case 237: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 240: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PURGE']); + } + +break; +case 244: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 245: + + parser.addTablePrimary($$[$0]); + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 250: + + parser.suggestKeywords(['TABLE']); + +break; +case 251: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 255: + + parser.addTablePrimary($$[$0-1]); + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 262: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + +break; +case 263: + + parser.suggestKeywords(['INTO']); + +break; +case 264: + + if (!$$[$0-1]) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 266: + + $$[$0-1].owner = 'insert'; + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['VALUES']); + +break; +case 274: case 275: + + return parser.yy.result; + +break; +case 276: + + parser.prepareNewStatement(); + +break; +case 278: case 280: case 282: + + parser.addStatementLocation(_$[$0]); + +break; +case 281: case 283: + + parser.addStatementLocation(_$[$0-3]); + +break; +case 287: + + parser.suggestDdlAndDmlKeywords(); + +break; +case 416: case 419: case 505: +this.$ = ''; +break; +case 431: case 434: + + parser.yy.correlatedSubQuery = false; + +break; +case 432: case 436: + + parser.suggestKeywords(['EXISTS']); + +break; +case 435: + + parser.suggestKeywords(['NOT EXISTS']); + +break; +case 446: case 448: case 449: case 451: + + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + +break; +case 472: case 475: case 476: case 501: case 502: case 523: case 526: case 637: case 1145: + + parser.suggestColumns(); + +break; +case 480: case 506: + + parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0] } ] }; + +break; +case 481: case 507: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; + +break; +case 483: case 488: + + parser.suggestDatabases(); + this.$ = { identifierChain: [{ name: $$[$0-2] }] }; + +break; +case 484: case 509: + + parser.suggestTablesOrColumns($$[$0-2]); + +break; +case 485: +this.$ = [{ name: $$[$0] }]; +break; +case 486: +this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; +break; +case 487: + + parser.suggestDatabases({ appendDot: true }); + +break; +case 491: case 1154: + + parser.suggestDatabases(); + +break; +case 500: case 642: case 643: case 649: case 650: case 945: case 1028: + + parser.valueExpressionSuggest(); + +break; +case 508: + + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + +break; +case 511: +this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; +break; +case 514: + + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + +break; +case 515: case 822: + + parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); + +break; +case 517: + + this.$ = [ $$[$0].identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); + +break; +case 518: + + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $$[$0-2].push($$[$0].identifier); + parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); + +break; +case 519: + + parser.suggestColumns({ + identifierChain: $$[$0-2] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 520: + + parser.suggestColumns({ + identifierChain: $$[$0-4] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 521: +this.$ = [ $$[$0].identifier ]; +break; +case 522: + + $$[$0-2].push($$[$0].identifier); + +break; +case 524: + + parser.suggestColumns({ identifierChain: $$[$0-2] }); + +break; +case 525: + + parser.suggestColumns({ identifierChain: $$[$0-4] }); + +break; +case 527: +this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; +break; +case 549: case 869: +this.$ = $$[$0-2]; +break; +case 552: + + parser.addCommonTableExpressions($$[$0-3]); + +break; +case 553: case 554: case 586: + + parser.addCommonTableExpressions($$[$0-2]); + +break; +case 558: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); + this.$ = { selectList: $$[$0] }; + +break; +case 559: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } + +break; +case 570: + + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + +break; +case 571: + + parser.suggestKeywords(['ALL', 'DISTINCT']); + +break; +case 573: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); + if ($$[$0].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($$[$01]); + } + if ($$[$0].suggestFunctions) { + parser.suggestFunctions(); + } + if ($$[$0].suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($$[$0].suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($$[$0].suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($$[$0].suggestAggregateFunctions && (!$$[$0-1] || $$[$0-1] === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + +break; +case 574: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1] || $$[$0-1] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-1]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 575: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + +break; +case 576: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + +break; +case 577: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2] || $$[$0-2] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-2]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 578: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-2]); + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 579: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-3]); + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 580: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + parser.checkForSelectListKeywords($$[$0-1]); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + +break; +case 581: case 619: case 640: case 653: case 657: case 681: case 706: case 707: case 788: case 790: case 854: case 864: case 871: case 883: case 1026: case 1150: case 1188: case 1189: +this.$ = $$[$0]; +break; +case 584: +this.$ = $$[$0-2].concat([$$[$0]]); +break; +case 588: + + parser.addCommonTableExpressions($$[$0-4]); + +break; +case 589: + + parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); + $$[$0-1].alias = $$[$0-4]; + this.$ = $$[$0-1]; + +break; +case 596: case 597: + + parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); + +break; +case 598: + + var keywords = []; + + parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); + + if ($$[$0-3]) { + if (typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($$[$0-3].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); + } + if ($$[$0-3].tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); + } + if ($$[$0-3].tableReferenceList.suggestJoins) { + parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); + } + if ($$[$0-3].tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE') { + keyword.weight = 1.1; + } + }); + + if ($$[$0-3].tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($$[$0-3].tableReferenceList); + } + } + } + + if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($$[$0-1].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].suggestFilters) { + parser.suggestFilters($$[$0-1].suggestFilters); + } + if ($$[$0-1].suggestGroupBys) { + parser.suggestGroupBys($$[$0-1].suggestGroupBys); + } + if ($$[$0-1].suggestOrderBys) { + parser.suggestOrderBys($$[$0-1].suggestOrderBys); + } + + if ($$[$0-1].empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + +break; +case 599: + + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$$[$0-1]) { + parser.addClauseLocation('whereClause', _$[$0-2]); + parser.addClauseLocation('limitClause', _$[$0-2]); + return; + } + parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); + var keywords = []; + + if ($$[$0-1].suggestColRefKeywords) { + parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); + parser.addColRefIfExists($$[$0-1]); + } + + if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + +break; +case 603: + + this.$ = { tableReferenceList : $$[$0] } + +break; +case 604: case 876: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 606: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true]); + + if (keywords.length > 0) { + this.$ = { suggestKeywords: keywords, empty: !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + } else { + this.$ = {}; + } + + this.$.whereClauseLocation = $$[$0-4] ? _$[$0-4] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-1] && !$$[$0]) { + this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + +break; +case 607: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + +break; +case 608: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + +break; +case 610: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + +break; +case 612: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true]); + if ($$[$0-5].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 1)); + } + this.$ = parser.getValueExpressionKeywords($$[$0-5], keywords); + this.$.cursorAtEnd = !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if ($$[$0-5].columnReference) { + this.$.columnReference = $$[$0-5].columnReference; + } + if (!$$[$0-3]) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 613: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true]); + if ($$[$0-4].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-4].suggestKeywords, 8)); + } + if ($$[$0-4].valueExpression) { + this.$ = parser.getValueExpressionKeywords($$[$0-4].valueExpression, keywords); + if ($$[$0-4].valueExpression.columnReference) { + this.$.columnReference = $$[$0-4].valueExpression.columnReference; + } + } else { + this.$ = { suggestKeywords: keywords }; + } + this.$.cursorAtEnd = !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 614: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-1], $$[$0]], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true]); + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; + if (!$$[$0-1]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-3], _$[$0-3]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 615: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0]], + [{ value: 'LIMIT', weight: 3 }], + [true]); + if ($$[$0-2].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 4)); + } + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 616: + + this.$ = { suggestKeywords: [], cursorAtEnd: true }; + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]); + this.$.limitClauseLocation = _$[$0-1]; + +break; +case 620: + + if ($$[$0].suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 621: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 624: + + this.$ = { valueExpression: $$[$0] }; + +break; +case 625: case 664: + + parser.suggestSelectListAliases(); + +break; +case 626: + + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 627: + + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 654: + + if ($$[$0].emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 655: + + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 659: + + this.$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 660: case 661: case 662: +this.$ = { emptyOrderBy: false }; +break; +case 663: +this.$ = parser.mergeSuggestKeywords($$[$0]); +break; +case 665: + + this.$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 666: + + this.$ = { suggestKeywords: ['ASC', 'DESC'] }; + +break; +case 679: case 680: + + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 682: + + // verifyType($$[$0], 'NUMBER'); + this.$ = $$[$0]; + $$[$0].types = ['NUMBER']; + +break; +case 683: case 684: case 685: case 686: case 693: case 694: case 695: case 696: case 697: case 698: case 704: case 705: case 726: case 784: case 785: case 843: +this.$ = { types: [ 'BOOLEAN' ] }; +break; +case 687: + + this.$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + +break; +case 689: case 690: case 691: case 692: + + parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 699: case 700: + + // verifyType($$[$0-2], 'BOOLEAN'); + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 701: case 702: case 703: + + // verifyType($$[$0-2], 'NUMBER'); + // verifyType($$[$0], 'NUMBER'); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 709: + + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 710: case 712: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 711: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 713: + + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 714: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 715: + + parser.suggestFunctions(); + parser.suggestColumns(); + this.$ = { types: [ 'T' ] }; + +break; +case 716: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 717: + + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 718: + + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 719: + + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 720: + + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 721: case 722: case 723: + + parser.suggestKeywords(['NOT']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 724: + + parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 725: + + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 727: + + this.$ = $$[$0-1]; + +break; +case 728: + + parser.valueExpressionSuggest(); + this.$ = { types: ['T'], typeSet: true }; + +break; +case 729: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 730: case 731: case 732: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 733: case 734: case 735: case 736: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0].types); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 737: case 739: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 738: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + +break; +case 740: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; + +break; +case 741: case 742: case 743: case 744: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 745: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-3].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 746: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 747: case 748: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; +break; +case 749: case 750: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; +break; +case 751: + + if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-5].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; + +break; +case 752: + + if ($$[$0-5].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0-5].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; + +break; +case 753: + + if ($$[$0-5].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-5].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 754: + + parser.valueExpressionSuggest($$[$0-5], $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 755: case 761: + + parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 756: + + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 757: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-4].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; + +break; +case 758: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; + +break; +case 759: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 760: + + parser.valueExpressionSuggest($$[$0-4], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-4].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 762: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 763: case 765: case 767: case 769: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + +break; +case 764: case 768: + + parser.addColRefIfExists($$[$0]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 766: case 770: + + parser.addColRefIfExists($$[$0-2]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 771: case 772: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 773: case 774: case 775: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 776: case 777: case 778: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions(['NUMBER']); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 779: case 780: case 781: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 782: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 783: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 786: + + parser.valueExpressionSuggest(undefined, $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 787: + + parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 789: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 791: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 792: + + this.$ = $$[$0]; + this.$.suggestFilters = $$[$0-1].suggestFilters; + +break; +case 793: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 794: case 1074: case 1079: case 1080: +this.$ = { types: [ 'T' ] }; +break; +case 795: case 797: + + $$[$0].position = 1; + +break; +case 796: + + $$[$0].position = $$[$0-2].position + 1; + this.$ = $$[$0]; + +break; +case 798: + + $$[$0-2].position += 1; + +break; +case 799: + + $$[$0-2].position = 1; + +break; +case 800: + + $$[$0-4].position += 1; + +break; +case 801: + + parser.valueExpressionSuggest(); + $$[$0-2].position += 1; + +break; +case 802: + + parser.valueExpressionSuggest(); + $$[$0-4].position += 1; + +break; +case 803: + + parser.suggestValueExpressionKeywords($$[$0-3]); + +break; +case 804: case 805: + + parser.valueExpressionSuggest(); + this.$ = { cursorAtStart : true, position: 1 }; + +break; +case 806: case 807: + + parser.valueExpressionSuggest(); + this.$ = { position: 2 }; + +break; +case 811: +this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; +break; +case 812: + + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].expression) { + this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } + } else { + this.$ = { function: fn, types: parser.findReturnTypes(fn) } + } + +break; +case 813: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 815: +this.$ = { types: [ 'NULL' ] }; +break; +case 817: + + if ($$[$0].suggestKeywords) { + this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; + } else { + this.$ = { types: ['COLREF'], columnReference: $$[$0] }; + } + +break; +case 818: + + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); + } + this.$ = { types: parser.findReturnTypes(fn) }; + +break; +case 819: case 991: case 992: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-1]) }; + +break; +case 821: + + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; + this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } + +break; +case 828: + + parser.suggestValues($$[$0]); + +break; +case 829: +this.$ = { types: [ 'NUMBER' ] }; +break; +case 835: case 837: +this.$ = $$[$0-1] + $$[$0]; +break; +case 836: +this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; +break; +case 841: case 842: + + if (/\$\{[^}]*\}/.test($$[$0])) { + parser.addVariableLocation(_$[$0], $$[$0]); + this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } + } else { + this.$ = { types: [ 'STRING' ] } + } + +break; +case 844: + + this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 845: + + this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 850: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); + } else { + this.$ = { valueExpression: $$[$0-1] } + } + +break; +case 851: + + parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); + this.$ = { asterisk: true } + +break; +case 852: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + } + +break; +case 853: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); + this.$ = { suggestAggregateFunctions: true }; + +break; +case 855: +this.$ = [ $$[$0] ]; +break; +case 856: + + $$[$0-2].push($$[$0]); + +break; +case 858: case 859: + + this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 861: + + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 862: + + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 863: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 865: case 866: case 868: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + +break; +case 879: + + this.$ = $$[$0]; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + this.$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + +break; +case 886: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-2]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 887: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-3]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 888: +this.$ = { joinType: $$[$0] }; +break; +case 889: +this.$ = { joinType: $$[$0-1] }; +break; +case 890: + + if ($$[$0-2].suggestKeywords) { + parser.suggestKeywords($$[$0-2].suggestKeywords); + } + +break; +case 891: + + if ($$[$0].suggestKeywords) { + parser.suggestKeywords($$[$0].suggestKeywords); + } + +break; +case 894: + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $$[$0-2], + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 899: +this.$ = 'CROSS JOIN'; +break; +case 900: +this.$ = 'FULL JOIN'; +break; +case 901: +this.$ = 'FULL OUTER JOIN'; +break; +case 902: +this.$ = 'INNER JOIN'; +break; +case 903: +this.$ = 'JOIN'; +break; +case 904: +this.$ = 'LEFT INNER JOIN'; +break; +case 905: +this.$ = 'LEFT JOIN'; +break; +case 906: +this.$ = 'LEFT OUTER JOIN'; +break; +case 907: +this.$ = 'LEFT SEMI JOIN'; +break; +case 908: +this.$ = 'OUTER JOIN'; +break; +case 909: case 911: +this.$ = 'RIGHT OUTER JOIN'; +break; +case 910: +this.$ = 'RIGHT JOIN'; +break; +case 912: +this.$ = 'RIGHT SEMI JOIN'; +break; +case 913: +this.$ = 'SEMI JOIN'; +break; +case 914: case 916: case 917: case 919: case 920: case 921: case 922: case 924: case 925: case 926: case 927: +this.$ = { suggestKeywords: ['JOIN'] }; +break; +case 915: case 918: case 923: +this.$ = { suggestKeywords: ['OUTER'] }; +break; +case 928: +this.$ = { noJoinCondition: true, suggestKeywords: ['ON'] }; +break; +case 929: +this.$ = { valueExpression: $$[$0] }; +break; +case 933: + + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + +break; +case 934: + + this.$ = { + primary: $$[$0-1] + } + if ($$[$0-1].identifierChain) { + if ($$[$0]) { + $$[$0-1].alias = $$[$0].alias + parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); + } + parser.addTablePrimary($$[$0-1]); + } + + var keywords = []; + if (!$$[$0]) { + keywords = ['AS']; + } else if ($$[$0].suggestKeywords) { + keywords = $$[$0].suggestKeywords; + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 935: + + this.$ = { + primary: $$[$0-1] + }; + + if ($$[$0]) { + this.$.primary.alias = $$[$0].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); + parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); + } + + var keywords = []; + if (!$$[$0]) { + keywords = ['AS']; + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 936: + + if ($$[$0]) { + parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); + } + +break; +case 937: + + if ($$[$0]) { + parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); + parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias); + } + +break; +case 947: + + parser.pushQueryState(); + +break; +case 948: + + parser.popQueryState(); + +break; +case 950: + + if ($$[$0-1]) { + $$[$0-2].alias = $$[$0-1].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); + parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + this.$ = $$[$0-2]; + +break; +case 953: + + var subQuery = parser.getSubQuery($$[$0]); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + this.$ = subQuery; + +break; +case 970: case 971: case 972: case 973: +this.$ = { alias: $$[$0], location: _$[$0] }; +break; +case 979: + + if (!$$[$0]) { + $$[$0-1].suggestKeywords = ['OVER']; + } + +break; +case 986: + + parser.suggestKeywords(['OVER']); + +break; +case 989: case 990: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 998: +this.$ = { expression: $$[$0-1] }; +break; +case 999: + + parser.valueExpressionSuggest(); + this.$ = { position: 1 } + +break; +case 1000: + + parser.suggestValueExpressionKeywords($$[$0-1]); + +break; +case 1008: case 1086: case 1107: +this.$ = { types: parser.findReturnTypes($$[$0-2]) }; +break; +case 1009: +this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; +break; +case 1010: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-3], 1); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 1011: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1012: + + parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 1020: case 1021: + + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + +break; +case 1022: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$$[$0-2]) { + parser.suggestKeywords(['PARTITION BY']); + } + +break; +case 1023: + + if (!$$[$0-1]) { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3]); + } + +break; +case 1032: + + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + +break; +case 1033: + + var keywords = []; + if ($$[$0-2].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); + } + if (!$$[$0]) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + +break; +case 1039: + + parser.suggestKeywords(['BETWEEN']); + +break; +case 1040: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['AND']); + } + +break; +case 1045: + + lexer.popState(); + +break; +case 1046: + + lexer.begin('hdfs'); + +break; +case 1048: + + parser.suggestHdfs({ path: $$[$0-3] }); + +break; +case 1049: + + parser.suggestHdfs({ path: $$[$0-2] }); + +break; +case 1050: + + parser.suggestHdfs({ path: $$[$0-1] }); + +break; +case 1051: + + parser.suggestHdfs({ path: '' }); + +break; +case 1052: + + parser.suggestHdfs({ path: '' }); + +break; +case 1058: + + parser.suggestKeywords(['PRECEDING']); + +break; +case 1059: case 1064: + + parser.suggestKeywords(['ROW']); + +break; +case 1063: + + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + +break; +case 1065: + + parser.suggestKeywords(['FOLLOWING']); + +break; +case 1071: + + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 1072: + + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 1073: case 1078: +this.$ = { types: [ $$[$0-1].toUpperCase() ] }; +break; +case 1075: + + parser.valueExpressionSuggest(); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 1076: case 1077: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ] }; + +break; +case 1081: + + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 1082: + + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ 'T' ] }; + +break; +case 1083: case 1084: + + parser.suggestKeywords(parser.getTypeKeywords()); + this.$ = { types: [ 'T' ] }; + +break; +case 1085: case 1091: +this.$ = { types: parser.findReturnTypes($$[$0-3]) }; +break; +case 1087: case 1092: case 1106: +this.$ = { types: parser.findReturnTypes($$[$0-4]) }; +break; +case 1088: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1089: case 1094: case 1109: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 1090: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1093: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1095: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1108: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1110: + + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1127: + + parser.suggestKeywords([ 'WHERE' ]); + +break; +case 1128: + + parser.suggestKeywords([ 'SET' ]); + +break; +case 1144: + + parser.suggestKeywords([ '=' ]); + +break; +case 1153: + + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $$[$0]; + } + +break; +case 1156: +this.$ = { inValueEdit: true }; +break; +case 1157: +this.$ = { inValueEdit: true, cursorAtStart: true }; +break; +case 1158: case 1159: case 1160: +this.$ = { suggestKeywords: ['NOT'] }; +break; +case 1164: case 1165: case 1166: + + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + this.$ = { types: ['BOOLEAN'] } + +break; +case 1167: case 1169: +this.$ = parser.findCaseType($$[$0-1]); +break; +case 1168: case 1171: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 1170: + + parser.suggestValueExpressionKeywords($$[$0-1], ['END']); + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 1172: +this.$ = parser.findCaseType($$[$0-2]); +break; +case 1173: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 1174: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-2]); + +break; +case 1175: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + this.$.suggestFilters = $$[$0-1].suggestFilters + +break; +case 1176: + + parser.valueExpressionSuggest(); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 1177: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 1178: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = $$[$0-1]; + +break; +case 1179: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ] }; + +break; +case 1182: +this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; +break; +case 1183: + + $$[$0-1].caseTypes.push($$[$0]); + this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; + +break; +case 1187: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + +break; +case 1190: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; +break; +case 1191: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 1192: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 1193: case 1194: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; +break; +case 1195: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 1196: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [$$[$0]] }; + +break; +case 1197: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 1198: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 1199: case 1201: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 1200: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 1202: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; + +break; +case 1203: + + parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 1204: + + parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 1205: case 1206: case 1207: case 1208: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +} +}, +table: [o($V0,$V1,{174:1,175:2}),{1:[3]},o($V2,$V3,{176:3,180:4,3:5,160:6,29:7,4:8,5:9,6:10,7:11,8:12,161:13,162:14,318:15,183:16,16:17,17:18,33:19,34:20,35:21,36:22,143:23,144:24,145:25,146:26,147:27,163:30,21:34,27:35,13:$V4,20:$V5,40:$V6,152:$V7,158:$V8,167:$V9,323:$Va,333:$Vb,495:$Vc,509:$Vd}),{177:[1,41],181:[1,42]},o($V2,[2,278]),o($V2,[2,284]),o($V2,[2,285]),o($V2,[2,286]),o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,257]),o($V2,[2,258]),o($Ve,$Vf,{319:43,327:44,329:45,262:$Vg}),{71:[1,48],318:47,323:$Va},o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,33]),o($V2,[2,34]),o($V2,[2,35]),o($V2,[2,36]),o($V2,[2,217]),o($V2,[2,218]),o($V2,[2,219]),o($V2,[2,220]),o($V2,[2,221]),{43:51,105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,198:[1,50],493:49},{43:58,105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl},o($V2,[2,259]),{43:64,105:$Vh,111:63,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,306:62,308:61,496:59,502:60},o([53,54,71,87,88,99,104,105,142,158,186,187,188,190,191,192,193,197,199,203,204,208,209,211,221,222,230,238,239,254,255,257,261,263,264,265,266,268],$Vn,{324:66,198:$Vo,217:$Vp}),{43:64,105:$Vh,111:71,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,334:69,336:70},{22:72,117:[1,73]},{28:[1,74]},{24:[1,76],32:[1,77],41:75,142:[1,78],214:$Vq,251:$Vr},{24:[1,83],32:[1,84],41:81,142:[1,82],214:$Vq,251:$Vr},{24:[1,85]},{168:[1,86]},{24:[1,87],32:[1,88]},{1:[2,273]},o($V0,$V1,{175:89}),o($Ve,[2,547]),o($Ve,[2,561],{329:90,262:$Vg}),o($Vs,[2,563]),o([198,217,323],$V1,{175:91}),o($Ve,$Vf,{327:44,329:45,319:92,262:$Vg}),{29:93,183:16,318:15,323:$Va,333:$Vb},{193:[1,95],194:[1,94]},o($V2,[2,1112]),o($Vt,[2,1113]),o($Vu,[2,296]),o($Vu,[2,297]),o($Vu,[2,298]),o($Vu,[2,293]),o($Vu,[2,294]),o($Vu,[2,295]),o($V2,[2,1153]),{13:[1,96]},{13:[2,1132]},{13:[2,1134]},{13:[2,510],43:64,105:$Vh,111:97,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($Vv,[2,506],{193:[1,98]}),o($Vu,[2,503]),{55:[1,99],204:[1,100]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:103,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,191:$VF,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,325:101,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,409:102,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($V01,[2,594]),o($V01,[2,595]),o([71,323],[2,581],{77:[1,159]}),o($V11,[2,583]),{28:[1,160]},o($V2,[2,16]),{71:[1,161]},{29:162,183:16,318:15,323:$Va,333:$Vb},o($V21,$V31,{42:163,230:$V41}),o($V51,$V31,{42:165,230:$V41}),o($V51,$V31,{42:166,230:$V41}),{43:167,105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl},o($V61,[2,413]),o($V61,[2,414]),o($V51,$V71,{153:168,230:$V81}),{43:170,105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl},o($V51,$V71,{153:171,230:$V81}),o($V51,$V71,{153:172,230:$V81}),o($V51,$V71,{153:173,230:$V81}),o($V51,[2,271],{169:174,24:[1,175]}),{25:176,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{25:178,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($V2,$V3,{180:4,3:5,160:6,29:7,4:8,5:9,6:10,7:11,8:12,161:13,162:14,318:15,183:16,16:17,17:18,33:19,34:20,35:21,36:22,143:23,144:24,145:25,146:26,147:27,163:30,21:34,27:35,176:179,13:$V4,20:$V5,40:$V6,152:$V7,158:$V8,167:$V9,323:$Va,333:$Vb,495:$Vc,509:$Vd}),o($Vs,[2,564]),{198:$Vo,217:$Vp,323:$Vn,324:180},o($Ve,[2,548]),{73:[1,181]},{43:183,51:185,53:$Vw,54:$Vx,88:[1,188],105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,192:[1,190],193:$VH,222:[1,187],261:[1,186],263:$VX,264:$VY,273:192,276:193,377:189,400:184,401:[1,191],406:135,407:136,494:182},{43:194,105:$Vh,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl},{43:64,79:129,105:$Vh,111:140,141:198,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,310:199,497:195,504:196,506:197},{13:[2,511]},{43:64,105:$Vh,111:200,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{204:[1,201]},o($Vu,[2,505]),o($Vs,[2,558],{326:202,340:204,77:[1,203],225:[1,205]}),o($V91,[2,855]),o($V91,$Va1,{185:54,43:64,273:192,276:193,410:206,383:220,111:221,51:222,28:$Vb1,53:$Vw,54:$Vx,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,105:$Vh,134:$Vg1,142:$Vi,186:$Vj,187:$Vk,188:$Vl,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,204:$Vm,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($V91,[2,851]),o($Vs1,[2,678]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:227,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:228,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:229,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:230,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{71:$Vt1,380:231},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:233,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:235,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,269:$Vu1,273:137,276:138,290:113,310:119,377:127,378:105,384:234,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143,510:236,512:237},o($Vs1,[2,810]),o($Vs1,[2,811],{393:239,71:$Vv1}),{71:$Vv1,393:241},o($Vs1,[2,814]),o($Vs1,[2,815]),o($Vs1,[2,827]),o($Vw1,[2,821],{193:[1,242]}),{71:[2,993]},{71:[2,994]},{71:[2,995]},{71:[2,996]},o($Vs1,[2,1013],{451:243,453:244,244:$Vx1}),{244:$Vx1,453:246},o($Vs1,[2,981]),o($Vs1,[2,829]),o($Vs1,[2,830]),o($Vy1,[2,517]),o($Vz1,[2,1002]),o($Vz1,[2,1003]),o($Vz1,[2,1004]),{71:[1,247]},{71:[1,248]},o($Vs1,[2,832]),o($Vs1,[2,833]),o($Vs1,[2,841]),o($Vs1,[2,842]),o($Vs1,[2,843]),o([28,50,53,54,69,71,73,77,87,99,100,101,104,105,121,134,142,177,181,186,187,188,191,192,193,194,200,201,202,204,205,206,207,210,212,215,216,218,219,220,223,225,226,227,228,231,232,233,234,235,236,237,241,242,243,246,247,248,250,252,253,256,258,259,260,262,267,269,270,382],[2,527]),{71:[1,249]},{71:[1,250]},{71:[1,251]},o($Vs1,[2,834],{193:[1,252]}),{263:[1,253],264:[1,254]},{263:[1,255]},{53:[1,257],55:[1,256]},{54:[1,259],55:[1,258]},o($Vs1,[2,846]),o($Vs1,[2,847]),{71:[2,1096]},{71:[2,1097]},{71:[2,1098]},{71:[2,1099]},{71:[2,1100]},{71:[2,1101]},{71:[2,1102]},{71:[2,1103]},{43:64,105:$Vh,111:71,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,336:260},{71:[1,261]},{43:64,79:264,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,287:262,304:263},o($V2,[2,24]),o($V2,[2,41],{185:54,43:265,105:$Vh,142:$Vi,186:$Vj,187:$Vk,188:$Vl}),{87:[1,266]},{43:64,56:267,58:268,64:269,105:$Vh,111:270,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{43:64,64:271,105:$Vh,111:270,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($V2,[2,216]),{43:64,105:$Vh,111:272,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{221:[1,273]},o($V2,[2,234]),{25:274,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{25:275,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{25:276,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{25:277,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($V51,[2,272]),{117:[2,21]},o($VA1,[2,480],{193:[1,278]}),{28:[2,30]},o($V2,[2,279]),{318:279,323:$Va},o($Ve,$Vf,{327:44,329:45,319:280,262:$Vg}),o($V2,[2,1111]),o($V2,[2,1115]),o($V2,[2,1116],{185:54,43:281,105:$Vh,142:$Vi,186:$Vj,187:$Vk,188:$Vl}),o($V2,[2,1118]),o($V2,[2,1119]),o($V2,[2,1120]),o($V2,[2,1121]),o($V21,[2,824]),{193:$VH,263:$VX,264:$VY,377:282,406:135,407:136},{193:$VH,263:$VX,264:$VY,377:283,406:135,407:136},o($VB1,[2,421]),o($VB1,[2,422]),o($Vt,[2,1114]),o($VC1,[2,1149],{498:284,77:[1,285],225:[1,286]}),o($VD1,[2,1136]),{194:[1,287]},{194:[2,1146]},o($VE1,[2,514],{193:[1,288]}),o($Vv,[2,507]),o($Vu,[2,504]),o($Vs,[2,559]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:103,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,191:$VF,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,409:289,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VF1,$VG1,{341:290,349:291,359:292,270:$VH1}),{25:301,43:64,71:$Vt1,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,347:294,380:302,413:295,415:296,417:297,418:298,428:299,429:300},o($V91,[2,850]),o($VI1,[2,848],{379:303,87:[1,304]}),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:305,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:306,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:307,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:308,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{69:$Vc1,205:[1,310],231:[1,309],246:$Vq1,248:$Vr1,383:311},{71:[1,312]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:313,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:314,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:315,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:316,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:317,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:318,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,704]),o($VJ1,[2,970]),o($VJ1,[2,971]),{43:64,51:320,53:$Vw,54:$Vx,105:$Vh,111:319,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,273:192,276:193},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:321,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:322,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:323,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VK1,[2,679],{383:220,69:$Vc1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VK1,[2,680],{383:220,69:$Vc1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VK1,[2,681],{383:220,69:$Vc1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VL1,[2,682],{383:220}),o($Vs1,[2,687]),o($VM1,$VN1,{380:302,338:324,429:325,434:326,71:$Vt1}),{69:$Vc1,73:[1,327],87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,383:220},o($Vs1,[2,706]),{69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,269:$Vu1,383:220,384:328,510:236,512:237},{219:[1,330],220:[1,329],269:$Vu1,512:331},o($VO1,[2,1182]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:332,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,812]),{43:64,53:$Vw,54:$Vx,71:$Vy,73:[1,333],79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:335,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,381:334,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,813]),{43:64,79:337,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,191:[1,336],204:$Vm},o($Vs1,[2,979]),o($Vs1,[2,1014]),{43:64,71:[1,340],105:$Vh,111:338,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,468:339},o($Vs1,[2,980]),{43:64,53:$Vw,54:$Vx,71:$Vy,73:[1,341],79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:335,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,381:342,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,73:[1,344],79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:343,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VP1,$Vn,{324:347,73:[1,346],191:[1,345],198:$Vo,217:$Vp}),o($VP1,$Vn,{324:348,73:[1,349],198:$Vo,217:$Vp}),o([53,54,71,73,87,88,99,104,105,142,158,186,187,188,190,192,193,197,199,203,204,208,209,211,221,222,230,238,239,254,255,257,261,263,264,265,266,268],$Vn,{324:350,198:$Vo,217:$Vp}),o($Vs1,[2,835],{263:[1,351],264:[1,352]}),o($Vs1,[2,837]),{263:[1,353]},o($Vs1,[2,838]),{53:[1,354]},o($VQ1,[2,416]),{54:[1,355]},o($VQ1,[2,419]),o($V11,[2,584]),o($VM1,$VN1,{434:326,338:356}),{73:[1,357],77:[1,358]},o($VR1,[2,492]),{194:[1,359]},o($V2,$VS1,{44:360,46:361,49:362,50:$VT1}),{221:[1,364]},o($V2,[2,58]),o($VU1,[2,154],{59:365,116:366,117:[1,367]}),o($VV1,[2,70],{65:368,68:369,69:[1,370],71:[1,371]}),o($VW1,[2,485],{193:[1,372]}),o($VX1,[2,206],{136:373,138:374,71:[1,375]}),o($V2,[2,428],{154:376,283:[1,377]}),o($V51,[2,431]),o($V2,[2,241],{156:378,157:[1,379]}),o($V2,[2,243]),o($V2,[2,249]),{132:[1,380]},{43:64,105:$Vh,111:381,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($Vs,[2,569]),o($Ve,[2,549]),o($V2,[2,1117]),o($V21,[2,825]),o($V21,[2,826]),o($V2,$VG1,{359:292,349:382,270:$VH1}),{43:64,79:129,105:$Vh,111:140,141:198,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,310:199,504:383,506:197},{25:301,43:64,71:$Vt1,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,380:302,413:384,415:296,417:297,418:298,428:299,429:300},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:386,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143,507:385},{43:64,79:337,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,191:[1,387],204:$Vm},o($V91,[2,856]),o($Vs,[2,596]),o($VY1,[2,622],{350:388,360:389,227:[1,390]}),o($VF1,[2,618]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:392,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,364:391,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o([73,177,181,227,228,237,242,262,270],[2,603],{77:[1,393]}),o($VZ1,[2,870]),o($VZ1,[2,877]),o($VZ1,[2,879],{345:394,422:395,212:$V_1,226:$V$1,232:$V02,235:$V12,236:$V22,243:$V32,247:$V42,252:$V52}),o($VZ1,[2,880]),o($V62,$Va1,{185:54,43:64,273:192,276:193,111:221,51:222,410:404,28:$Vb1,53:$Vw,54:$Vx,105:$Vh,142:$Vi,186:$Vj,187:$Vk,188:$Vl,204:$Vm}),o($V62,$Va1,{185:54,43:64,273:192,276:193,111:221,51:222,410:405,28:$Vb1,53:$Vw,54:$Vx,105:$Vh,142:$Vi,186:$Vj,187:$Vk,188:$Vl,204:$Vm}),o($V72,[2,939]),o($V72,[2,941]),{88:[1,406],217:[1,409],222:[1,408],261:[1,407]},o($VI1,[2,849]),o($V82,[2,689],{383:220,69:$Vc1,191:$Vh1,192:$Vi1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($V82,[2,690],{383:220,69:$Vc1,191:$Vh1,192:$Vi1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($V82,[2,691],{383:220,69:$Vc1,191:$Vh1,192:$Vi1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($V82,[2,692],{383:220,69:$Vc1,191:$Vh1,192:$Vi1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),{71:[1,410]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:411,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,705]),o($VM1,$VN1,{185:54,43:64,378:105,290:113,392:114,394:115,395:116,402:118,310:119,450:124,452:125,454:126,377:127,404:128,79:129,462:130,463:131,464:132,406:135,407:136,273:137,276:138,408:139,111:140,491:143,434:326,130:335,338:412,381:413,53:$Vw,54:$Vx,71:$Vy,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,142:$Vi,158:$VD,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$}),{69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,382:[1,414],383:220},o($V92,[2,699],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($V92,[2,700],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VL1,[2,701],{383:220,69:$Vc1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VL1,[2,702],{383:220,69:$Vc1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VL1,[2,703],{383:220,69:$Vc1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($VJ1,[2,972]),o($VJ1,[2,973]),o($VL1,[2,1158],{383:220}),o($VL1,[2,1159],{383:220}),o($VL1,[2,1160],{383:220}),{73:[1,415]},{28:$Vb1,43:64,51:222,53:$Vw,54:$Vx,73:$Va1,105:$Vh,111:221,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,273:192,276:193,410:416},{29:424,183:16,318:15,323:$Va,333:$Vb,436:417,438:418,440:419,442:420,444:421,446:422,448:423},o($Vs1,[2,688]),o($Vs1,[2,707]),o($Vs1,[2,1167]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:425,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VO1,[2,1183]),{69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,258:[1,426],383:220},o($Vs1,[2,997]),{73:[1,427],77:$Va2},o($Vb2,[2,795],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($Vw1,[2,822]),o($Vy1,[2,518]),o($Vs1,[2,1016]),o($Vs1,[2,1017]),o($Vc2,[2,1024],{470:429,474:430,117:[1,431]}),{244:[2,1008]},{73:[1,432],77:$Va2},{28:[1,433],69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,383:220},o($Vs1,[2,1074]),{73:[1,434]},o($Vz1,[2,1086]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:335,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,381:435,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:436,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vz1,[2,1107]),{43:64,53:$Vw,54:$Vx,71:$Vy,73:[1,437],79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:335,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,381:438,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,836]),{263:[1,439]},o($Vs1,[2,839]),o($VQ1,[2,415]),o($VQ1,[2,418]),{73:[1,440]},o($V2,[2,443]),{43:64,79:264,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,304:441},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:442,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($V2,[2,42]),o($V2,[2,48]),o([28,73,77,101,177,181],[2,51]),{51:443,53:$Vw,54:$Vx,273:192,276:193},o([105,142,177,181,186,187,188,204],[2,434]),o($V2,[2,192],{60:444,28:[1,445]}),o($VU1,[2,155]),{118:[1,446]},o($VV1,[2,67]),o($VV1,[2,71]),{25:447,43:64,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{43:64,72:448,76:449,79:450,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{43:64,105:$Vh,111:451,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{28:$VS1,46:452,49:362,50:$VT1},o($VX1,[2,207]),{43:64,79:129,105:$Vh,111:140,139:453,141:454,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,310:199},o($V2,[2,227]),o($V2,[2,429]),o($V2,[2,235]),o($V2,[2,242]),{71:$Vd2,170:455,171:456,172:[1,457]},o($VA1,[2,481]),o($V2,[2,1122]),o($VD1,[2,1137]),o($VC1,[2,1150]),o($VD1,[2,1142]),o($VD1,[2,1147],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($VE1,[2,515]),o($Ve2,[2,1068],{351:459,361:460,228:[1,461]}),o($VY1,[2,623]),{118:[1,462]},o($VF1,[2,619]),o($VF1,[2,676],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),{25:301,43:64,71:$Vt1,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,380:302,413:463,415:296,417:297,418:298,428:299,429:300},o($VZ1,[2,883],{422:464,212:$V_1,226:$V$1,232:$V02,235:$V12,236:$V22,243:$V32,247:$V42,252:$V52}),{25:301,43:64,71:$Vt1,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,380:302,417:465,428:299,429:300},{235:[1,466]},{235:[1,467],243:[1,468]},{235:[1,469]},o($Vf2,[2,903]),{232:[1,470],235:[1,471],243:[1,472],252:[1,473]},{235:[1,474]},{232:[1,475],235:[1,476],243:[1,477],252:[1,478]},{235:[1,479]},o($V62,[2,934]),o($V62,[2,935]),o($Vs1,[2,683]),o($Vs1,[2,684]),o($Vs1,[2,685]),{225:[1,480]},o($VM1,$VN1,{185:54,43:64,378:105,290:113,392:114,394:115,395:116,402:118,310:119,450:124,452:125,454:126,377:127,404:128,79:129,462:130,463:131,464:132,406:135,407:136,273:137,276:138,408:139,111:140,491:143,434:326,130:335,338:481,381:482,53:$Vw,54:$Vx,71:$Vy,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,142:$Vi,158:$VD,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$}),{69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,382:[1,483],383:220},{73:[1,484]},{73:[1,485],77:$Va2},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:486,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vg2,[2,949]),{73:[1,487]},{73:[2,953]},{73:[2,955]},{73:[2,957]},{73:[2,959]},{73:[2,961]},{73:[2,963]},{73:[2,965]},{73:[2,967]},{69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,220:[1,488],231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,383:220},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:489,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,998]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:490,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{73:[2,1030],242:$Vh2,362:492,471:491},o($Vc2,[2,1025]),{118:[1,494]},{244:[2,1009]},{89:495,206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},o($Vz1,[2,1085]),{73:[1,508],77:$Va2},{69:$Vc1,73:[1,509],87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,383:220},o($Vz1,[2,1091]),{73:[1,510],77:$Va2},o($Vs1,[2,840]),o($V11,[2,589]),o($VR1,[2,493]),o($VR1,[2,498],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o([28,50,73,77,87,88,101,177,181],[2,52]),o($V2,[2,62]),o($VM1,[2,196],{135:511}),{119:512,121:[1,513]},o($VV1,[2,72]),{73:[1,514],77:[1,515]},o($VR1,[2,78]),{80:516,89:517,90:518,91:519,92:520,93:521,94:522,95:523,99:$Vu2,104:$Vv2,105:$Vw2,206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},o($VW1,[2,486]),{28:[1,527]},{73:[1,528],77:[1,529]},o($VR1,$VS1,{49:362,46:530,50:$VT1}),o($V2,[2,262]),o($V2,[2,268]),{77:[1,531]},{43:64,53:$Vw,54:$Vx,79:129,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,142:$Vi,158:$VD,173:532,185:54,186:$Vj,187:$Vk,188:$Vl,193:$VH,199:$VJ,203:$VK,204:$Vm,209:$VM,211:$VN,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:533,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vx2,[2,651],{352:534,362:535,242:$Vh2}),o($Ve2,[2,1069]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:536,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:538,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,366:537,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VZ1,[2,871]),{25:301,43:64,71:$Vt1,105:$Vh,111:177,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,380:302,417:539,428:299,429:300},o($Vy2,$Vz2,{423:540,240:$VA2}),o($Vf2,[2,899]),o($Vf2,[2,900]),{235:[1,542]},o($Vf2,[2,902]),{235:[1,543]},o($Vf2,[2,905]),{235:[1,544]},{235:[1,545]},o($Vf2,[2,908]),{235:[1,546]},o($Vf2,[2,910]),{235:[1,547]},{235:[1,548]},o($Vf2,[2,913]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:549,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{73:[1,550]},{73:[1,551],77:$Va2},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:552,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs1,[2,695]),o($Vs1,[2,696]),o([28,53,54,73,77,105,121,142,177,181,186,187,188,200,202,204,205,212,216,219,220,225,226,227,228,232,235,236,237,241,242,243,247,250,252,258,262,269,270,382],[2,698],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($Vg2,[2,950]),o($Vs1,[2,1168]),o($VO1,[2,1189],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($Vb2,[2,796],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),{73:[1,553]},{73:[2,1035],121:[1,558],250:[1,557],475:554,477:555,478:556},{118:[1,559]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:335,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,381:560,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{73:[1,561]},o($VB2,[2,530]),o($VB2,[2,531]),o($VB2,$VC2,{316:562,71:$VD2}),o($VB2,[2,544],{317:564,71:[1,565]}),o($VB2,[2,534]),o($VB2,[2,535]),o($VB2,[2,536]),o($VB2,[2,537]),o($VB2,[2,538]),o($VB2,[2,539]),o($VB2,[2,540]),o($VB2,$VC2,{316:566,71:$VD2}),o($Vz1,[2,1087]),o($Vz1,[2,1106]),o($Vz1,[2,1092]),{29:567,183:16,318:15,323:$Va,333:$Vb},o($VU1,[2,156]),{71:[1,569],122:568},o($VV1,[2,76]),{43:64,76:570,79:450,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($VR1,[2,92],{81:571,84:572,85:573,49:576,50:$VT1,87:$VE2,88:$VF2}),o($VB2,[2,104]),o($VB2,[2,105]),o($VB2,[2,106]),o($VB2,[2,107]),o($VB2,[2,108]),o($VB2,[2,109]),o($VB2,[2,110]),{100:[1,577]},{100:[1,578]},{100:[1,579]},{29:580,183:16,318:15,323:$Va,333:$Vb},o($VX1,[2,208]),{43:64,79:129,105:$Vh,111:140,141:581,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,310:199},o($VR1,[2,210]),{71:$Vd2,171:582},{73:[1,583],77:[1,584]},o($VR1,[2,808]),o($Vs,[2,669],{353:585,363:586,237:[1,587]}),o($Vx2,[2,652]),o($Ve2,[2,1070],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($VY1,[2,624],{77:[1,588]}),o($VG2,[2,639],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($Vy2,$Vz2,{423:589,240:$VA2}),o($Vy2,[2,886]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:590,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vf2,[2,901]),o($Vf2,[2,904]),o($Vf2,[2,906]),o($Vf2,[2,907]),o($Vf2,[2,909]),o($Vf2,[2,911]),o($Vf2,[2,912]),o($VL1,[2,686],{383:220}),o($Vs1,[2,693]),o($Vs1,[2,694]),o($VK1,[2,697],{383:220,69:$Vc1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,201:$Vl1,231:$Vn1,234:$Vo1,246:$Vq1,248:$Vr1}),o($Vs1,[2,1019]),{73:[2,1031]},{73:[2,1036]},{205:[1,591],482:[1,592]},o($VH2,[2,1053]),o($VH2,[2,1054]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:595,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,372:593,374:594,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vc2,[2,1026],{77:$Va2}),o($Vs1,[2,1073]),o($VB2,[2,532]),{263:[1,596]},o($VB2,[2,533]),{263:[1,597]},o($VB2,[2,541]),o($V2,[2,193]),{71:[1,599],123:598},{43:64,79:601,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm,300:600},o($VR1,[2,79]),o($VR1,[2,88]),o($VR1,[2,93],{49:576,85:602,50:$VT1,87:$VE2,88:$VF2}),o($VI2,[2,94]),{88:[1,603]},o($VI2,[2,101]),o($VI2,[2,102]),{80:604,89:517,90:518,91:519,92:520,93:521,94:522,95:523,99:$Vu2,101:[1,605],104:$Vv2,105:$Vw2,206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},{89:606,101:[1,607],206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},{43:64,101:[1,609],105:$Vh,106:608,108:610,111:611,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($V2,[2,197]),o($VR1,$VS1,{49:362,46:612,50:$VT1}),o($V2,[2,269]),o($V2,[2,270]),{43:64,53:$Vw,54:$Vx,79:129,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,193:$VH,199:$VJ,203:$VK,204:$Vm,209:$VM,211:$VN,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:613,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vs,[2,606]),o($Vs,[2,670]),{188:[1,615],193:$VH,263:$VX,264:$VY,377:614,406:135,407:136},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:616,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($Vy2,[2,887]),o($Vy2,[2,929],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($VJ2,$VK2,{479:617}),o($VJ2,$VK2,{479:618}),o([73,121,177,181,237,250,262],[2,653],{77:[1,619]}),o($VL2,[2,656]),o($VL2,[2,666],{383:220,376:620,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,202:[1,621],205:$Vm1,216:[1,622],231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),{73:[1,623]},{73:[1,624],77:[1,625]},o($VU1,[2,160]),{117:$VM2,126:626,128:627},{73:[1,629],77:[1,630]},o($VR1,[2,473]),o($VI2,[2,95]),o($VI2,[2,100]),{101:[1,631]},o($VB2,[2,115]),{77:[1,632]},o($VB2,[2,119]),{77:[1,634],101:[1,633]},o($VB2,[2,125]),o($VN2,[2,127]),{112:[1,635]},o($VR1,[2,211]),o($VR1,[2,809]),o($Vs,[2,671],{77:[1,636]}),o($Vs,[2,673],{77:[1,637]}),o($VG2,[2,640],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),o($VO2,$VP2,{480:638,490:639,213:$VQ2,263:$VR2,482:$VS2}),o($VO2,$VP2,{490:639,480:643,213:$VQ2,263:$VR2,482:$VS2}),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:595,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,374:644,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VL2,[2,663]),o($VL2,[2,667]),o($VL2,[2,668]),o($VB2,[2,543]),o($VB2,[2,545]),{263:[1,645]},{73:[1,646],77:[1,647]},o($VR1,[2,169]),{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:648,132:[1,649],142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{71:[2,470]},{43:64,79:650,105:$Vh,111:140,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},o($VB2,[2,114]),{80:651,89:517,90:518,91:519,92:520,93:521,94:522,95:523,99:$Vu2,104:$Vv2,105:$Vw2,206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},o($VB2,[2,124]),{43:64,105:$Vh,108:652,111:611,142:$Vi,185:54,186:$Vj,187:$Vk,188:$Vl,204:$Vm},{80:653,89:517,90:518,91:519,92:520,93:521,94:522,95:523,99:$Vu2,104:$Vv2,105:$Vw2,206:$Vi2,207:$Vj2,210:$Vk2,215:$Vl2,218:$Vm2,223:$Vn2,233:$Vo2,253:$Vp2,256:$Vq2,259:$Vr2,260:$Vs2,267:$Vt2},{193:$VH,263:$VX,264:$VY,377:654,406:135,407:136},{188:[1,655]},{73:$VT2,200:$VU2,481:656},{245:[1,658]},{249:[1,659]},o($VV2,[2,1066]),o($VV2,[2,1067]),{73:$VT2,200:$VU2,481:660},o($VL2,[2,657]),{73:[1,661]},o($VU1,[2,166]),{117:$VM2,128:662},{69:$Vc1,87:$Vd1,100:[1,664],101:$Vf1,131:663,134:[1,665],191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1,383:220},{100:$VW2,131:666,134:$VX2},o($VR1,[2,474]),{101:[1,669]},o($VN2,[2,128]),o($VN2,$VS1,{49:362,46:670,50:$VT1}),o($Vs,[2,672]),o($Vs,[2,674]),{73:[2,1037]},{213:[1,671],263:$VR2,482:$VS2,490:672},o($VO2,[2,1056]),o($VO2,[2,1057]),{73:[2,1038]},o($VB2,[2,546]),o($VR1,[2,170]),{132:[1,673]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:306,132:$VY2,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:308,132:$VZ2,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:674,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VP1,$VY2),o($VP1,$VZ2),o($VB2,[2,118]),o($VN2,[2,134]),{249:[1,675]},{224:[1,676]},o($VR1,[2,178],{131:677,100:$VW2,134:$VX2}),o($VR1,[2,177],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1}),{73:[2,1061]},{73:[2,1062]},{43:64,53:$Vw,54:$Vx,71:$Vy,79:129,87:$Vz,88:$VA,99:$VB,104:$VC,105:$Vh,111:140,130:678,142:$Vi,158:$VD,185:54,186:$Vj,187:$Vk,188:$Vl,190:$VE,192:$VG,193:$VH,197:$VI,199:$VJ,203:$VK,204:$Vm,208:$VL,209:$VM,211:$VN,221:$VO,222:$VP,230:$VQ,238:$VR,239:$VS,254:$VT,255:$VU,257:$VV,261:$VW,263:$VX,264:$VY,265:$VZ,266:$V_,268:$V$,273:137,276:138,290:113,310:119,377:127,378:105,392:114,394:115,395:116,402:118,404:128,406:135,407:136,408:139,450:124,452:125,454:126,462:130,463:131,464:132,491:143},o($VR1,[2,176],{383:220,69:$Vc1,87:$Vd1,100:$Ve1,101:$Vf1,134:$Vg1,191:$Vh1,192:$Vi1,194:$Vj1,200:$Vk1,201:$Vl1,205:$Vm1,231:$Vn1,234:$Vo1,241:$Vp1,246:$Vq1,248:$Vr1})], +defaultActions: {41:[2,273],60:[2,1132],61:[2,1134],97:[2,511],120:[2,993],121:[2,994],122:[2,995],123:[2,996],151:[2,1096],152:[2,1097],153:[2,1098],154:[2,1099],155:[2,1100],156:[2,1101],157:[2,1102],158:[2,1103],176:[2,21],178:[2,30],198:[2,1146],341:[2,1008],417:[2,953],418:[2,955],419:[2,957],420:[2,959],421:[2,961],422:[2,963],423:[2,965],424:[2,967],432:[2,1009],554:[2,1031],555:[2,1036],629:[2,470],656:[2,1037],660:[2,1038],675:[2,1061],676:[2,1062]}, +parseError: function parseError (str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } +}, +parse: function parse (input) { + var self = this, + stack = [0], + tstack = [], // token stack + vstack = [null], // semantic value stack + lstack = [], // location stack + table = this.table, + yytext = '', + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + + var args = lstack.slice.call(arguments, 1); + + //this.reductionCount = this.shiftCount = 0; + + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + // copy state + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + + var ranges = lexer.options && lexer.options.ranges; + + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + + function popStack (n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + +_token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + // if token isn't its numeric value, convert + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + } + + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + // retreive state number from top of stack + state = stack[stack.length - 1]; + + // use default actions if available + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + // read action for current state and first input + action = table[state] && table[state][symbol]; + } + +_handle_error: + // handle parse error + if (typeof action === 'undefined' || !action.length || !action[0]) { + var error_rule_depth; + var errStr = ''; + + // Return the rule stack depth where the nearest error rule can be found. + // Return FALSE when no error recovery rule was found. + function locateNearestErrorRecoveryRule(state) { + var stack_probe = stack.length - 1; + var depth = 0; + + // try to recover from error + for(;;) { + // check for error recovery rule in this state + if ((TERROR.toString()) in table[state]) { + return depth; + } + if (state === 0 || stack_probe < 2) { + return false; // No suitable error recovery rule available. + } + stack_probe -= 2; // popStack(1): [symbol, action] + state = stack[stack_probe]; + ++depth; + } + } + + if (!recovering) { + // first see if there's any chance at hitting an error recovery rule: + error_rule_depth = locateNearestErrorRecoveryRule(state); + + // Report error + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'"+this.terminals_[p]+"'"); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; + } else { + errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + + (symbol == EOF ? "end of input" : + ("'"+(this.terminals_[symbol] || symbol)+"'")); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), + expected: expected, + recoverable: (error_rule_depth !== false) + }); + } else if (preErrorSymbol !== EOF) { + error_rule_depth = locateNearestErrorRecoveryRule(state); + } + + // just recovered from another error + if (recovering == 3) { + if (symbol === EOF || preErrorSymbol === EOF) { + throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); + } + + // discard current lookahead and grab another + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + symbol = lex(); + } + + // try to recover from error + if (error_rule_depth === false) { + throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); + } + popStack(error_rule_depth); + + preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token + symbol = TERROR; // insert generic error symbol as new lookahead + state = stack[stack.length-1]; + action = table[state] && table[state][TERROR]; + recovering = 3; // allow 3 real symbols to be shifted before reporting a new error + } + + // this shouldn't happen, unless resolve defaults are off + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); + } + + switch (action[0]) { + case 1: // shift + //this.shiftCount++; + + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); // push state + symbol = null; + if (!preErrorSymbol) { // normal execution/no error + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + // error just occurred, resume old lookahead f/ before error + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + + case 2: + // reduce + //this.reductionCount++; + + len = this.productions_[action[1]][1]; + + // perform semantic action + yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 + // default location, uses first token for firsts, last for lasts + yyval._$ = { + first_line: lstack[lstack.length-(len||1)].first_line, + last_line: lstack[lstack.length-1].last_line, + first_column: lstack[lstack.length-(len||1)].first_column, + last_column: lstack[lstack.length-1].last_column + }; + if (ranges) { + yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; + } + r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); + + if (typeof r !== 'undefined') { + return r; + } + + // pop off stack + if (len) { + stack = stack.slice(0,-1*len*2); + vstack = vstack.slice(0, -1*len); + lstack = lstack.slice(0, -1*len); + } + + stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) + vstack.push(yyval.$); + lstack.push(yyval._$); + // goto new state = table[STATE][NONTERMINAL] + newState = table[stack[stack.length-2]][stack[stack.length-1]]; + stack.push(newState); + break; + + case 3: + // accept + return true; + } + + } + + return true; +}}; + + +SqlParseSupport.initSyntaxParser(parser);/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function(match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex () { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin (condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState () { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules () { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState (n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState (condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {"case-insensitive":true,"flex":true}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0: /* skip whitespace */ +break; +case 1: /* skip comments */ +break; +case 2: /* skip comments */ +break; +case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 14; +break; +case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 271; +break; +case 5: this.popState(); return 382; +break; +case 6: return 198; +break; +case 7: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 20; +break; +case 8: return 200; +break; +case 9: return 28; +break; +case 10: return 202; +break; +case 11: this.begin('between'); return 205; +break; +case 12: return 206; +break; +case 13: return 207; +break; +case 14: return 118; +break; +case 15: return 283; +break; +case 16: return 208; +break; +case 17: return 210; +break; +case 18: return 50; +break; +case 19: parser.determineCase(yy_.yytext); return 40; +break; +case 20: return 212; +break; +case 21: return 213; +break; +case 22: return 214; +break; +case 23: return 215; +break; +case 24: return 216; +break; +case 25: return 217; +break; +case 26: return 201; +break; +case 27: return 218; +break; +case 28: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 152; +break; +case 29: return 219; +break; +case 30: return 220; +break; +case 31: parser.yy.correlatedSubQuery = true; return 221; +break; +case 32: return 222; +break; +case 33: return 223; +break; +case 34: return 224; +break; +case 35: parser.determineCase(yy_.yytext); return 225; +break; +case 36: return 226; +break; +case 37: return 227; +break; +case 38: return 228; +break; +case 39: return 230; +break; +case 40: return 231; +break; +case 41: return 232; +break; +case 42: return 167; +break; +case 43: return 233; +break; +case 44: return 168; +break; +case 45: return 234; +break; +case 46: return 235; +break; +case 47: return 236; +break; +case 48: return 69; +break; +case 49: return 237; +break; +case 50: return 87; +break; +case 51: return 88; +break; +case 52: return 240; +break; +case 53: return 186; +break; +case 54: return 241; +break; +case 55: return 242; +break; +case 56: return 243; +break; +case 57: return 117; +break; +case 58: return 245; +break; +case 59: return 157; +break; +case 60: return 121; +break; +case 61: return 246; +break; +case 62: return 247; +break; +case 63: return 248; +break; +case 64: return 249; +break; +case 65: return 142; +break; +case 66: return 250; +break; +case 67: return 251; +break; +case 68: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 323; +break; +case 69: return 252; +break; +case 70: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 13; +break; +case 71: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 'SHOW'; +break; +case 72: return 253; +break; +case 73: return 256; +break; +case 74: return 24; +break; +case 75: return 258; +break; +case 76: return 259; +break; +case 77: return 260; +break; +case 78: return 'TO'; +break; +case 79: return 261; +break; +case 80: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 158; +break; +case 81: return 482; +break; +case 82: return 262; +break; +case 83: parser.determineCase(yy_.yytext); return 495; +break; +case 84: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 509; +break; +case 85: return 132; +break; +case 86: return 267; +break; +case 87: return 32; +break; +case 88: return 269; +break; +case 89: return 270; +break; +case 90: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 333; +break; +case 91: return 244; +break; +case 92: return 142; +break; +case 93: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 203; +break; +case 94: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 209; +break; +case 95: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 211; +break; +case 96: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 238; +break; +case 97: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 239; +break; +case 98: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 254; +break; +case 99: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 255; +break; +case 100: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 257; +break; +case 101: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 265; +break; +case 102: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 266; +break; +case 103: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 268; +break; +case 104: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; +break; +case 105: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; +break; +case 106: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; +break; +case 107: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; +break; +case 108: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; +break; +case 109: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; +break; +case 110: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; +break; +case 111: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 199; +break; +case 112: return 263; +break; +case 113: return 263; +break; +case 114: return 264; +break; +case 115: return 187; +break; +case 116: parser.yy.cursorFound = true; return 14; +break; +case 117: parser.yy.cursorFound = true; return 271; +break; +case 118: return 229; +break; +case 119: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 487; +break; +case 120: this.popState(); return 488; +break; +case 121: return 177; +break; +case 122: return 200; +break; +case 123: return 241; +break; +case 124: return 194; +break; +case 125: return 100; +break; +case 126: return 101; +break; +case 127: return 134; +break; +case 128: return 134; +break; +case 129: return 134; +break; +case 130: return 134; +break; +case 131: return 134; +break; +case 132: return 192; +break; +case 133: return 191; +break; +case 134: return 201; +break; +case 135: return 201; +break; +case 136: return 201; +break; +case 137: return 201; +break; +case 138: return 201; +break; +case 139: return 201; +break; +case 140: return 77; +break; +case 141: return 193; +break; +case 142: return 112; +break; +case 143: return 181; +break; +case 144: return 197; +break; +case 145: return 190; +break; +case 146: return 71; +break; +case 147: return 73; +break; +case 148: return 195; +break; +case 149: return 196; +break; +case 150: return 188; +break; +case 151: this.begin('backtickedValue'); return 204; +break; +case 152: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { + return 275; + } + return 55; + +break; +case 153: this.popState(); return 204; +break; +case 154: this.begin('singleQuotedValue'); return 53; +break; +case 155: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { + return 275; + } + return 55; + +break; +case 156: this.popState(); return 53; +break; +case 157: this.begin('doubleQuotedValue'); return 54; +break; +case 158: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { + return 275; + } + return 55; + +break; +case 159: this.popState(); return 54; +break; +case 160: return 177; +break; +case 161: /* To prevent console logging of unknown chars */ +break; +case 162: +break; +case 163: +break; +case 164: +break; +case 165: +break; +case 166: +break; +case 167:console.log(yy_.yytext); +break; +} +}, +rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:AND)/i,/^(?:ALL)/i,/^(?:ALTER)/i,/^(?:AND)/i,/^(?:AS)/i,/^(?:ASC)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BOOLEAN)/i,/^(?:BY)/i,/^(?:CASCADE)/i,/^(?:CASE)/i,/^(?:CHAR)/i,/^(?:COMMENT)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CURRENT)/i,/^(?:DATABASE)/i,/^(?:DECIMAL)/i,/^(?:DESC)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:ELSE)/i,/^(?:END)/i,/^(?:EXISTS)/i,/^(?:FALSE)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:GROUP)/i,/^(?:HAVING)/i,/^(?:IF)/i,/^(?:IN)/i,/^(?:INNER)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTO)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIMIT)/i,/^(?:NOT)/i,/^(?:NULL)/i,/^(?:ON)/i,/^(?:OPTION)/i,/^(?:OR)/i,/^(?:ORDER)/i,/^(?:OUTER)/i,/^(?:PARTITION)/i,/^(?:PRECEDING)/i,/^(?:PURGE)/i,/^(?:RANGE)/i,/^(?:REGEXP)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROW)/i,/^(?:ROLE)/i,/^(?:ROWS)/i,/^(?:SCHEMA)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SET)/i,/^(?:SHOW)/i,/^(?:SMALLINT)/i,/^(?:STRING)/i,/^(?:TABLE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TINYINT)/i,/^(?:TO)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UNBOUNDED)/i,/^(?:UNION)/i,/^(?:UPDATE)/i,/^(?:USE)/i,/^(?:VALUES)/i,/^(?:VARCHAR)/i,/^(?:VIEW)/i,/^(?:WHEN)/i,/^(?:WHERE)/i,/^(?:WITH)/i,/^(?:OVER)/i,/^(?:ROLE)/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], +conditions: {"hdfs":{"rules":[116,117,118,119,120,121,163],"inclusive":false},"doubleQuotedValue":{"rules":[158,159,166],"inclusive":false},"singleQuotedValue":{"rules":[155,156,165],"inclusive":false},"backtickedValue":{"rules":[152,153,164],"inclusive":false},"between":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,154,157,160,161,162,167],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,154,157,160,161,167],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); +export default genericSyntaxParser; diff --git a/src/core/parse/generic/sqlParseSupport.js b/src/core/parse/generic/sqlParseSupport.js new file mode 100644 index 0000000..7fba8c6 --- /dev/null +++ b/src/core/parse/generic/sqlParseSupport.js @@ -0,0 +1,2221 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { SqlFunctions } from '../sqlFunctions'; +import stringDistance from '../stringDistance'; + +const identifierEquals = (a, b) => + a && + b && + a + .replace(/^\s*`/, '') + .replace(/`\s*$/, '') + .toLowerCase() === + b + .replace(/^\s*`/, '') + .replace(/`\s*$/, '') + .toLowerCase(); + +// endsWith polyfill from hue_utils.js, needed as workers live in their own js environment +if (!String.prototype.endsWith) { + String.prototype.endsWith = function(searchString, position) { + const subjectString = this.toString(); + if ( + typeof position !== 'number' || + !isFinite(position) || + Math.floor(position) !== position || + position > subjectString.length + ) { + position = subjectString.length; + } + position -= searchString.length; + const lastIndex = subjectString.lastIndexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; + }; +} + +const equalIgnoreCase = (a, b) => a && b && a.toLowerCase() === b.toLowerCase(); + +const SIMPLE_TABLE_REF_SUGGESTIONS = [ + 'suggestJoinConditions', + 'suggestAggregateFunctions', + 'suggestFilters', + 'suggestGroupBys', + 'suggestOrderBys' +]; + +const initSqlParser = function(parser) { + parser.prepareNewStatement = function() { + linkTablePrimaries(); + parser.commitLocations(); + + delete parser.yy.latestCommonTableExpressions; + delete parser.yy.correlatedSubQuery; + parser.yy.subQueries = []; + parser.yy.selectListAliases = []; + parser.yy.latestTablePrimaries = []; + + prioritizeSuggestions(); + }; + + parser.yy.parseError = function(message, error) { + parser.yy.errors.push(error); + return message; + }; + + parser.addCommonTableExpressions = function(identifiers) { + parser.yy.result.commonTableExpressions = identifiers; + parser.yy.latestCommonTableExpressions = identifiers; + }; + + parser.isInSubquery = function() { + return !!parser.yy.primariesStack.length; + }; + + parser.pushQueryState = function() { + parser.yy.resultStack.push(parser.yy.result); + parser.yy.locationsStack.push(parser.yy.locations); + parser.yy.selectListAliasesStack.push(parser.yy.selectListAliases); + parser.yy.primariesStack.push(parser.yy.latestTablePrimaries); + parser.yy.subQueriesStack.push(parser.yy.subQueries); + + parser.yy.result = {}; + parser.yy.locations = []; + parser.yy.selectListAliases = []; // Not allowed in correlated sub-queries + + if (parser.yy.correlatedSubQuery) { + parser.yy.latestTablePrimaries = parser.yy.latestTablePrimaries.concat(); + parser.yy.subQueries = parser.yy.subQueries.concat(); + } else { + parser.yy.latestTablePrimaries = []; + parser.yy.subQueries = []; + } + }; + + parser.popQueryState = function(subQuery) { + linkTablePrimaries(); + parser.commitLocations(); + + if (Object.keys(parser.yy.result).length === 0) { + parser.yy.result = parser.yy.resultStack.pop(); + } else { + parser.yy.resultStack.pop(); + } + const oldSubQueries = parser.yy.subQueries; + parser.yy.subQueries = parser.yy.subQueriesStack.pop(); + if (subQuery) { + if (oldSubQueries.length > 0) { + subQuery.subQueries = oldSubQueries; + } + parser.yy.subQueries.push(subQuery); + } + + parser.yy.latestTablePrimaries = parser.yy.primariesStack.pop(); + parser.yy.locations = parser.yy.locationsStack.pop(); + parser.yy.selectListAliases = parser.yy.selectListAliasesStack.pop(); + }; + + parser.suggestSelectListAliases = function() { + if ( + parser.yy.selectListAliases && + parser.yy.selectListAliases.length > 0 && + parser.yy.result.suggestColumns && + (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || + parser.yy.result.suggestColumns.identifierChain.length === 0) + ) { + parser.yy.result.suggestColumnAliases = parser.yy.selectListAliases; + } + }; + + parser.mergeSuggestKeywords = function() { + let result = []; + Array.prototype.slice.call(arguments).forEach(suggestion => { + if (typeof suggestion !== 'undefined' && typeof suggestion.suggestKeywords !== 'undefined') { + result = result.concat(suggestion.suggestKeywords); + } + }); + if (result.length > 0) { + return { suggestKeywords: result }; + } + return {}; + }; + + parser.suggestValueExpressionKeywords = function(valueExpression, extras) { + const expressionKeywords = parser.getValueExpressionKeywords(valueExpression, extras); + parser.suggestKeywords(expressionKeywords.suggestKeywords); + if (expressionKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(expressionKeywords.suggestColRefKeywords); + } + if (valueExpression.lastType) { + parser.addColRefIfExists(valueExpression.lastType); + } else { + parser.addColRefIfExists(valueExpression); + } + }; + + parser.getSelectListKeywords = function(excludeAsterisk) { + const keywords = [{ value: 'CASE', weight: 450 }, 'FALSE', 'TRUE', 'NULL']; + if (!excludeAsterisk) { + keywords.push({ value: '*', weight: 10000 }); + } + return keywords; + }; + + parser.getValueExpressionKeywords = function(valueExpression, extras) { + const types = valueExpression.lastType ? valueExpression.lastType.types : valueExpression.types; + // We could have valueExpression.columnReference to suggest based on column type + let keywords = [ + '<', + '<=', + '<=>', + '<>', + '=', + '>', + '>=', + 'BETWEEN', + 'IN', + 'IS NOT NULL', + 'IS NULL', + 'IS NOT TRUE', + 'IS TRUE', + 'IS NOT FALSE', + 'IS FALSE', + 'NOT BETWEEN', + 'NOT IN' + ]; + if (extras) { + keywords = keywords.concat(extras); + } + if (valueExpression.suggestKeywords) { + keywords = keywords.concat(valueExpression.suggestKeywords); + } + if (types.length === 1 && types[0] === 'COLREF') { + return { + suggestKeywords: keywords, + suggestColRefKeywords: { + BOOLEAN: ['AND', 'OR'], + NUMBER: ['+', '-', '*', '/', '%', 'DIV'], + STRING: ['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] + } + }; + } + if ( + typeof SqlFunctions === 'undefined' || + SqlFunctions.matchesType(parser.yy.activeDialect, ['BOOLEAN'], types) + ) { + keywords = keywords.concat(['AND', 'OR']); + } + if ( + typeof SqlFunctions === 'undefined' || + SqlFunctions.matchesType(parser.yy.activeDialect, ['NUMBER'], types) + ) { + keywords = keywords.concat(['+', '-', '*', '/', '%', 'DIV']); + } + if ( + typeof SqlFunctions === 'undefined' || + SqlFunctions.matchesType(parser.yy.activeDialect, ['STRING'], types) + ) { + keywords = keywords.concat(['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE']); + } + return { suggestKeywords: keywords }; + }; + + parser.getTypeKeywords = function() { + return [ + 'BIGINT', + 'BOOLEAN', + 'CHAR', + 'DECIMAL', + 'DOUBLE', + 'FLOAT', + 'INT', + 'SMALLINT', + 'TIMESTAMP', + 'STRING', + 'TINYINT', + 'VARCHAR' + ]; + }; + + parser.getColumnDataTypeKeywords = function() { + return parser.getTypeKeywords(); + }; + + parser.addColRefIfExists = function(valueExpression) { + if (valueExpression.columnReference) { + parser.yy.result.colRef = { identifierChain: valueExpression.columnReference }; + } + }; + + parser.selectListNoTableSuggest = function(selectListEdit, hasDistinctOrAll) { + if (selectListEdit.cursorAtStart) { + let keywords = parser.getSelectListKeywords(); + if (!hasDistinctOrAll) { + keywords = keywords.concat([{ value: 'ALL', weight: 2 }, { value: 'DISTINCT', weight: 2 }]); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForKeywords(selectListEdit); + } + if (selectListEdit.suggestFunctions) { + parser.suggestFunctions(); + } + if (selectListEdit.suggestColumns) { + parser.suggestColumns(); + } + if ( + selectListEdit.suggestAggregateFunctions && + (!hasDistinctOrAll || hasDistinctOrAll === 'ALL') + ) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + }; + + parser.suggestJoinConditions = function(details) { + parser.yy.result.suggestJoinConditions = details || {}; + if (parser.yy.latestTablePrimaries && !parser.yy.result.suggestJoinConditions.tablePrimaries) { + parser.yy.result.suggestJoinConditions.tablePrimaries = parser.yy.latestTablePrimaries.concat(); + } + }; + + parser.suggestJoins = function(details) { + parser.yy.result.suggestJoins = details || {}; + }; + + parser.valueExpressionSuggest = function(oppositeValueExpression, operator) { + if (oppositeValueExpression && oppositeValueExpression.columnReference) { + parser.suggestValues(); + parser.yy.result.colRef = { identifierChain: oppositeValueExpression.columnReference }; + } + parser.suggestColumns(); + parser.suggestFunctions(); + let keywords = [ + { value: 'CASE', weight: 450 }, + { value: 'FALSE', weight: 450 }, + { value: 'NULL', weight: 450 }, + { value: 'TRUE', weight: 450 } + ]; + if (typeof oppositeValueExpression === 'undefined' || typeof operator === 'undefined') { + keywords = keywords.concat(['EXISTS', 'NOT']); + } + if (oppositeValueExpression && oppositeValueExpression.types[0] === 'NUMBER') { + parser.applyTypeToSuggestions(['NUMBER']); + } + parser.suggestKeywords(keywords); + }; + + parser.applyTypeToSuggestions = function(types) { + if (types[0] === 'BOOLEAN') { + return; + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.yy.result.suggestFunctions.types = types; + } + if (parser.yy.result.suggestColumns && !parser.yy.result.suggestColumns.types) { + parser.yy.result.suggestColumns.types = types; + } + }; + + parser.findCaseType = function(whenThenList) { + const types = {}; + whenThenList.caseTypes.forEach(valueExpression => { + valueExpression.types.forEach(type => { + types[type] = true; + }); + }); + if (Object.keys(types).length === 1) { + return { types: [Object.keys(types)[0]] }; + } + return { types: ['T'] }; + }; + + parser.findReturnTypes = function(functionName) { + return typeof SqlFunctions === 'undefined' + ? ['T'] + : SqlFunctions.getReturnTypes(parser.yy.activeDialect, functionName.toLowerCase()); + }; + + parser.applyArgumentTypesToSuggestions = function(functionName, position) { + const foundArguments = + typeof SqlFunctions === 'undefined' + ? ['T'] + : SqlFunctions.getArgumentTypes( + parser.yy.activeDialect, + functionName.toLowerCase(), + position + ); + if (foundArguments.length === 0 && parser.yy.result.suggestColumns) { + delete parser.yy.result.suggestColumns; + delete parser.yy.result.suggestKeyValues; + delete parser.yy.result.suggestValues; + delete parser.yy.result.suggestFunctions; + delete parser.yy.result.suggestIdentifiers; + delete parser.yy.result.suggestKeywords; + } else { + parser.applyTypeToSuggestions(foundArguments); + } + }; + + parser.commitLocations = function() { + if (parser.yy.locations.length === 0) { + return; + } + + const tablePrimaries = parser.yy.latestTablePrimaries; + + let i = parser.yy.locations.length; + + while (i--) { + const location = parser.yy.locations[i]; + if (location.type === 'variable' && location.colRef) { + parser.expandIdentifierChain({ + wrapper: location.colRef, + tablePrimaries: tablePrimaries, + isColumnWrapper: true + }); + delete location.colRef.linked; + } + + if (location.type === 'unknown') { + if ( + typeof location.identifierChain !== 'undefined' && + location.identifierChain.length > 0 && + location.identifierChain.length <= 2 && + tablePrimaries + ) { + let found = tablePrimaries.filter(primary => { + return ( + equalIgnoreCase(primary.alias, location.identifierChain[0].name) || + (primary.identifierChain && + equalIgnoreCase(primary.identifierChain[0].name, location.identifierChain[0].name)) + ); + }); + if (!found.length && location.firstInChain) { + found = tablePrimaries.filter(primary => { + return ( + !primary.alias && + primary.identifierChain && + equalIgnoreCase( + primary.identifierChain[primary.identifierChain.length - 1].name, + location.identifierChain[0].name + ) + ); + }); + } + + if (found.length) { + if ( + found[0].identifierChain.length > 1 && + location.identifierChain.length === 1 && + equalIgnoreCase(found[0].identifierChain[0].name, location.identifierChain[0].name) + ) { + location.type = 'database'; + } else if ( + found[0].alias && + equalIgnoreCase(location.identifierChain[0].name, found[0].alias) && + location.identifierChain.length > 1 + ) { + location.type = 'column'; + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true + }); + } else if ( + !found[0].alias && + found[0].identifierChain && + equalIgnoreCase( + location.identifierChain[0].name, + found[0].identifierChain[found[0].identifierChain.length - 1].name + ) && + location.identifierChain.length > 1 + ) { + location.type = 'column'; + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true + }); + } else { + location.type = 'table'; + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true + }); + } + } else if (parser.yy.subQueries) { + found = parser.yy.subQueries.filter(subQuery => { + return equalIgnoreCase(subQuery.alias, location.identifierChain[0].name); + }); + if (found.length > 0) { + location.type = 'subQuery'; + location.identifierChain = [{ subQuery: found[0].alias }]; + } + } + } + } + + if (location.type === 'asterisk' && !location.linked) { + if (tablePrimaries && tablePrimaries.length > 0) { + location.tables = []; + location.linked = false; + if (!location.identifierChain) { + location.identifierChain = [{ asterisk: true }]; + } + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: false + }); + if (location.tables.length === 0) { + parser.yy.locations.splice(i, 1); + } + } else { + parser.yy.locations.splice(i, 1); + } + } + + if ( + location.type === 'table' && + typeof location.identifierChain !== 'undefined' && + location.identifierChain.length === 1 && + location.identifierChain[0].name + ) { + // Could be a cte reference + parser.yy.locations.some(otherLocation => { + if ( + otherLocation.type === 'alias' && + otherLocation.source === 'cte' && + identifierEquals(otherLocation.alias, location.identifierChain[0].name) + ) { + // TODO: Possibly add the other location if we want to show the link in the future. + // i.e. highlight select definition on hover over alias, also for subquery references. + location.type = 'alias'; + location.target = 'cte'; + location.alias = location.identifierChain[0].name; + delete location.identifierChain; + return true; + } + }); + } + + if ( + location.type === 'table' && + (typeof location.identifierChain === 'undefined' || location.identifierChain.length === 0) + ) { + parser.yy.locations.splice(i, 1); + } + + if (location.type === 'unknown') { + location.type = 'column'; + } + + // A column location might refer to a previously defined alias, i.e. last 'foo' in "SELECT cast(id AS int) foo FROM tbl ORDER BY foo;" + if (location.type === 'column') { + for (let j = i - 1; j >= 0; j--) { + const otherLocation = parser.yy.locations[j]; + if ( + otherLocation.type === 'alias' && + otherLocation.source === 'column' && + location.identifierChain && + location.identifierChain.length === 1 && + location.identifierChain[0].name && + otherLocation.alias && + location.identifierChain[0].name.toLowerCase() === otherLocation.alias.toLowerCase() + ) { + location.type = 'alias'; + location.source = 'column'; + location.alias = location.identifierChain[0].name; + delete location.identifierChain; + location.parentLocation = otherLocation.parentLocation; + break; + } + } + } + + if (location.type === 'column') { + const initialIdentifierChain = location.identifierChain + ? location.identifierChain.concat() + : undefined; + + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true, + isColumnWrapper: true, + isColumnLocation: true + }); + + if (typeof location.identifierChain === 'undefined') { + parser.yy.locations.splice(i, 1); + } else if ( + location.identifierChain.length === 0 && + initialIdentifierChain && + initialIdentifierChain.length === 1 + ) { + // This is for the case "SELECT tblOrColName FROM db.tblOrColName"; + location.identifierChain = initialIdentifierChain; + } + } + if (location.type === 'column' && location.identifierChain) { + if (location.identifierChain.length > 1 && location.tables && location.tables.length > 0) { + location.type = 'complex'; + } + } + delete location.firstInChain; + if (location.type !== 'column' && location.type !== 'complex') { + delete location.qualified; + } else if (typeof location.qualified === 'undefined') { + location.qualified = false; + } + } + + if (parser.yy.locations.length > 0) { + parser.yy.allLocations = parser.yy.allLocations.concat(parser.yy.locations); + parser.yy.locations = []; + } + }; + + const prioritizeSuggestions = function() { + parser.yy.result.lowerCase = parser.yy.lowerCase || false; + + const cteIndex = {}; + + if (typeof parser.yy.latestCommonTableExpressions !== 'undefined') { + parser.yy.latestCommonTableExpressions.forEach(cte => { + cteIndex[cte.alias.toLowerCase()] = cte; + }); + } + + SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { + if ( + suggestionType !== 'suggestAggregateFunctions' && + typeof parser.yy.result[suggestionType] !== 'undefined' && + parser.yy.result[suggestionType].tables.length === 0 + ) { + delete parser.yy.result[suggestionType]; + } else if ( + typeof parser.yy.result[suggestionType] !== 'undefined' && + typeof parser.yy.result[suggestionType].tables !== 'undefined' + ) { + for (let i = parser.yy.result[suggestionType].tables.length - 1; i >= 0; i--) { + const table = parser.yy.result[suggestionType].tables[i]; + if ( + table.identifierChain.length === 1 && + typeof table.identifierChain[0].name !== 'undefined' && + typeof cteIndex[table.identifierChain[0].name.toLowerCase()] !== 'undefined' + ) { + parser.yy.result[suggestionType].tables.splice(i, 1); + } + } + } + }); + + if (typeof parser.yy.result.colRef !== 'undefined') { + if ( + !parser.yy.result.colRef.linked || + typeof parser.yy.result.colRef.identifierChain === 'undefined' || + parser.yy.result.colRef.identifierChain.length === 0 + ) { + delete parser.yy.result.colRef; + if (typeof parser.yy.result.suggestColRefKeywords !== 'undefined') { + Object.keys(parser.yy.result.suggestColRefKeywords).forEach(type => { + parser.yy.result.suggestKeywords = parser.yy.result.suggestKeywords.concat( + parser.createWeightedKeywords(parser.yy.result.suggestColRefKeywords[type], -1) + ); + }); + delete parser.yy.result.suggestColRefKeywords; + } + if ( + parser.yy.result.suggestColumns && + parser.yy.result.suggestColumns.types.length === 1 && + parser.yy.result.suggestColumns.types[0] === 'COLREF' + ) { + parser.yy.result.suggestColumns.types = ['T']; + } + delete parser.yy.result.suggestValues; + } + } + + if (typeof parser.yy.result.colRef !== 'undefined') { + if ( + !parser.yy.result.suggestValues && + !parser.yy.result.suggestColRefKeywords && + (!parser.yy.result.suggestColumns || parser.yy.result.suggestColumns.types[0] !== 'COLREF') + ) { + delete parser.yy.result.colRef; + } + } + if ( + typeof parser.yy.result.suggestIdentifiers !== 'undefined' && + parser.yy.result.suggestIdentifiers.length > 0 + ) { + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + } + if (typeof parser.yy.result.suggestColumns !== 'undefined') { + const suggestColumns = parser.yy.result.suggestColumns; + if (typeof suggestColumns.tables === 'undefined' || suggestColumns.tables.length === 0) { + delete parser.yy.result.suggestColumns; + delete parser.yy.result.subQueries; + } else { + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + + suggestColumns.tables.forEach(table => { + if ( + typeof table.identifierChain !== 'undefined' && + table.identifierChain.length === 1 && + typeof table.identifierChain[0].name !== 'undefined' + ) { + const cte = cteIndex[table.identifierChain[0].name.toLowerCase()]; + if (typeof cte !== 'undefined') { + delete table.identifierChain[0].name; + table.identifierChain[0].cte = cte.alias; + } + } else if (typeof table.identifierChain === 'undefined' && table.subQuery) { + table.identifierChain = [{ subQuery: table.subQuery }]; + delete table.subQuery; + } + }); + + if ( + typeof suggestColumns.identifierChain !== 'undefined' && + suggestColumns.identifierChain.length === 0 + ) { + delete suggestColumns.identifierChain; + } + } + } else { + delete parser.yy.result.subQueries; + } + + if (typeof parser.yy.result.suggestJoinConditions !== 'undefined') { + if ( + typeof parser.yy.result.suggestJoinConditions.tables === 'undefined' || + parser.yy.result.suggestJoinConditions.tables.length === 0 + ) { + delete parser.yy.result.suggestJoinConditions; + } + } + + if ( + typeof parser.yy.result.suggestTables !== 'undefined' && + typeof parser.yy.result.commonTableExpressions !== 'undefined' + ) { + const ctes = []; + parser.yy.result.commonTableExpressions.forEach(cte => { + const suggestion = { name: cte.alias }; + if (parser.yy.result.suggestTables.prependFrom) { + suggestion.prependFrom = true; + } + if (parser.yy.result.suggestTables.prependQuestionMark) { + suggestion.prependQuestionMark = true; + } + ctes.push(suggestion); + }); + if (ctes.length > 0) { + parser.yy.result.suggestCommonTableExpressions = ctes; + } + } + }; + + parser.identifyPartials = function(beforeCursor, afterCursor) { + const beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); + const afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); + return { + left: beforeMatch ? beforeMatch[0].length : 0, + right: afterMatch ? afterMatch[0].length : 0 + }; + }; + + const addCleanTablePrimary = function(tables, tablePrimary) { + if (tablePrimary.alias) { + tables.push({ alias: tablePrimary.alias, identifierChain: tablePrimary.identifierChain }); + } else { + tables.push({ identifierChain: tablePrimary.identifierChain }); + } + }; + + parser.expandIdentifierChain = function(options) { + const wrapper = options.wrapper; + const anyOwner = options.anyOwner; + const isColumnWrapper = options.isColumnWrapper; + const isColumnLocation = options.isColumnLocation; + let tablePrimaries = options.tablePrimaries || parser.yy.latestTablePrimaries; + + if (typeof wrapper.identifierChain === 'undefined' || typeof tablePrimaries === 'undefined') { + return; + } + let identifierChain = wrapper.identifierChain.concat(); + + if (tablePrimaries.length === 0) { + delete wrapper.identifierChain; + return; + } + + if (!anyOwner) { + tablePrimaries = filterTablePrimariesForOwner(tablePrimaries, wrapper.owner); + } + + if (identifierChain.length > 0 && identifierChain[identifierChain.length - 1].asterisk) { + const tables = []; + tablePrimaries.forEach(tablePrimary => { + if (identifierChain.length > 1 && !tablePrimary.subQueryAlias) { + if ( + identifierChain.length === 2 && + equalIgnoreCase(tablePrimary.alias, identifierChain[0].name) + ) { + addCleanTablePrimary(tables, tablePrimary); + } else if ( + identifierChain.length === 2 && + equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) + ) { + addCleanTablePrimary(tables, tablePrimary); + } else if ( + identifierChain.length === 3 && + tablePrimary.identifierChain.length > 1 && + equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) && + equalIgnoreCase(tablePrimary.identifierChain[1].name, identifierChain[1].name) + ) { + addCleanTablePrimary(tables, tablePrimary); + } + } else if (tablePrimary.subQueryAlias) { + tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); + } else { + addCleanTablePrimary(tables, tablePrimary); + } + }); + // Possible Joins + if (tables.length > 0) { + wrapper.tables = tables; + delete wrapper.identifierChain; + return; + } + } + + // IdentifierChain contains a possibly started identifier or empty, example: a.b.c = ['a', 'b', 'c'] + // Reduce the tablePrimaries to the one that matches the first identifier if found + let foundPrimary; + let doubleMatch = false; + let aliasMatch = false; + if (identifierChain.length > 0) { + for (let i = 0; i < tablePrimaries.length; i++) { + if (tablePrimaries[i].subQueryAlias) { + if (equalIgnoreCase(tablePrimaries[i].subQueryAlias, identifierChain[0].name)) { + foundPrimary = tablePrimaries[i]; + } + } else if (equalIgnoreCase(tablePrimaries[i].alias, identifierChain[0].name)) { + foundPrimary = tablePrimaries[i]; + aliasMatch = true; + break; + } else if ( + tablePrimaries[i].identifierChain.length > 1 && + identifierChain.length > 1 && + equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && + equalIgnoreCase(tablePrimaries[i].identifierChain[1].name, identifierChain[1].name) + ) { + foundPrimary = tablePrimaries[i]; + doubleMatch = true; + break; + } else if ( + !foundPrimary && + equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && + identifierChain.length > (isColumnLocation ? 1 : 0) + ) { + foundPrimary = tablePrimaries[i]; + // No break as first two can still match. + } else if ( + !foundPrimary && + tablePrimaries[i].identifierChain.length > 1 && + !tablePrimaries[i].alias && + equalIgnoreCase( + tablePrimaries[i].identifierChain[tablePrimaries[i].identifierChain.length - 1].name, + identifierChain[0].name + ) + ) { + // This is for the case SELECT baa. FROM bla.baa, blo.boo; + foundPrimary = tablePrimaries[i]; + break; + } + } + } + + if (foundPrimary) { + identifierChain.shift(); + if (doubleMatch) { + identifierChain.shift(); + } + } else if (tablePrimaries.length === 1 && !isColumnWrapper) { + foundPrimary = tablePrimaries[0]; + } + + if (foundPrimary) { + if (isColumnWrapper) { + wrapper.identifierChain = identifierChain; + if (foundPrimary.subQueryAlias) { + wrapper.tables = [{ subQuery: foundPrimary.subQueryAlias }]; + } else if (foundPrimary.alias) { + if (!isColumnLocation && isColumnWrapper && aliasMatch) { + // TODO: add alias on table in suggestColumns (needs support in sqlAutocomplete3.js) + // the case is: SELECT cu.| FROM customers cu; + // This prevents alias from being added automatically in sqlAutocompleter.js + wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; + } else { + wrapper.tables = [ + { identifierChain: foundPrimary.identifierChain, alias: foundPrimary.alias } + ]; + } + } else { + wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; + } + } else { + if (foundPrimary.subQueryAlias) { + identifierChain.unshift({ subQuery: foundPrimary.subQueryAlias }); + } else { + identifierChain = foundPrimary.identifierChain.concat(identifierChain); + } + if (wrapper.tables) { + wrapper.tables.push({ identifierChain: identifierChain }); + delete wrapper.identifierChain; + } else { + wrapper.identifierChain = identifierChain; + } + } + } else { + if (isColumnWrapper) { + wrapper.tables = []; + } + tablePrimaries.forEach(tablePrimary => { + const targetTable = tablePrimary.subQueryAlias + ? { subQuery: tablePrimary.subQueryAlias } + : { identifierChain: tablePrimary.identifierChain }; + if (tablePrimary.alias) { + targetTable.alias = tablePrimary.alias; + } + if (wrapper.tables) { + wrapper.tables.push(targetTable); + } + }); + } + delete wrapper.owner; + wrapper.linked = true; + }; + + const filterTablePrimariesForOwner = function(tablePrimaries, owner) { + const result = []; + tablePrimaries.forEach(primary => { + if (typeof owner === 'undefined' && typeof primary.owner === 'undefined') { + result.push(primary); + } else if (owner === primary.owner) { + result.push(primary); + } + }); + return result; + }; + + const convertTablePrimariesToSuggestions = function(tablePrimaries) { + const tables = []; + const identifiers = []; + tablePrimaries.forEach(tablePrimary => { + if (tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { + const table = { identifierChain: tablePrimary.identifierChain }; + if (tablePrimary.alias) { + table.alias = tablePrimary.alias; + identifiers.push({ name: table.alias + '.', type: 'alias' }); + } else { + const lastIdentifier = + tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1]; + if (typeof lastIdentifier.name !== 'undefined') { + identifiers.push({ name: lastIdentifier.name + '.', type: 'table' }); + } else if (typeof lastIdentifier.subQuery !== 'undefined') { + identifiers.push({ name: lastIdentifier.subQuery + '.', type: 'sub-query' }); + } + } + tables.push(table); + } else if (tablePrimary.subQueryAlias) { + identifiers.push({ name: tablePrimary.subQueryAlias + '.', type: 'sub-query' }); + tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); + } + }); + if (identifiers.length > 0) { + if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { + parser.yy.result.suggestIdentifiers = identifiers; + } else { + parser.yy.result.suggestIdentifiers = identifiers.concat( + parser.yy.result.suggestIdentifiers + ); + } + } + parser.yy.result.suggestColumns.tables = tables; + if ( + parser.yy.result.suggestColumns.identifierChain && + parser.yy.result.suggestColumns.identifierChain.length === 0 + ) { + delete parser.yy.result.suggestColumns.identifierChain; + } + parser.yy.result.suggestColumns.linked = true; + }; + + const linkTablePrimaries = function() { + if (!parser.yy.cursorFound || typeof parser.yy.latestTablePrimaries === 'undefined') { + return; + } + + SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { + if ( + typeof parser.yy.result[suggestionType] !== 'undefined' && + parser.yy.result[suggestionType].tablePrimaries && + !parser.yy.result[suggestionType].linked + ) { + parser.yy.result[suggestionType].tables = []; + parser.yy.result[suggestionType].tablePrimaries.forEach(tablePrimary => { + if (!tablePrimary.subQueryAlias) { + parser.yy.result[suggestionType].tables.push( + tablePrimary.alias + ? { + identifierChain: tablePrimary.identifierChain.concat(), + alias: tablePrimary.alias + } + : { identifierChain: tablePrimary.identifierChain.concat() } + ); + } + }); + delete parser.yy.result[suggestionType].tablePrimaries; + parser.yy.result[suggestionType].linked = true; + } + }); + + if ( + typeof parser.yy.result.suggestColumns !== 'undefined' && + !parser.yy.result.suggestColumns.linked + ) { + const tablePrimaries = filterTablePrimariesForOwner( + parser.yy.latestTablePrimaries, + parser.yy.result.suggestColumns.owner + ); + if (!parser.yy.result.suggestColumns.tables) { + parser.yy.result.suggestColumns.tables = []; + } + if (parser.yy.subQueries.length > 0) { + parser.yy.result.subQueries = parser.yy.subQueries; + } + if ( + typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || + parser.yy.result.suggestColumns.identifierChain.length === 0 + ) { + if (tablePrimaries.length > 1) { + convertTablePrimariesToSuggestions(tablePrimaries); + } else { + if ( + tablePrimaries.length === 1 && + (tablePrimaries[0].alias || tablePrimaries[0].subQueryAlias) + ) { + convertTablePrimariesToSuggestions(tablePrimaries); + } + parser.expandIdentifierChain({ + wrapper: parser.yy.result.suggestColumns, + anyOwner: false, + isColumnWrapper: true + }); + } + } else { + parser.expandIdentifierChain({ + wrapper: parser.yy.result.suggestColumns, + anyOwner: false, + isColumnWrapper: true + }); + } + } + + if (typeof parser.yy.result.colRef !== 'undefined' && !parser.yy.result.colRef.linked) { + parser.expandIdentifierChain({ wrapper: parser.yy.result.colRef }); + + const primaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries); + if ( + primaries.length === 0 || + (primaries.length > 1 && parser.yy.result.colRef.identifierChain.length === 1) + ) { + parser.yy.result.colRef.identifierChain = []; + } + } + if ( + typeof parser.yy.result.suggestKeyValues !== 'undefined' && + !parser.yy.result.suggestKeyValues.linked + ) { + parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestKeyValues }); + } + }; + + parser.getSubQuery = function(cols) { + const columns = []; + cols.selectList.forEach(col => { + const result = {}; + if (col.alias) { + result.alias = col.alias; + } + if (col.valueExpression && col.valueExpression.columnReference) { + result.identifierChain = col.valueExpression.columnReference; + } else if (col.asterisk) { + result.identifierChain = [{ asterisk: true }]; + } + if ( + col.valueExpression && + col.valueExpression.types && + col.valueExpression.types.length === 1 + ) { + result.type = col.valueExpression.types[0]; + } + + columns.push(result); + }); + + return { + columns: columns + }; + }; + + parser.addTablePrimary = function(ref) { + if (typeof parser.yy.latestTablePrimaries === 'undefined') { + parser.yy.latestTablePrimaries = []; + } + parser.yy.latestTablePrimaries.push(ref); + }; + + parser.suggestFileFormats = function() { + parser.suggestKeywords([ + 'AVRO', + 'KUDU', + 'ORC', + 'PARQUET', + 'RCFILE', + 'SEQUENCEFILE', + 'TEXTFILE' + ]); + }; + + parser.getKeywordsForOptionalsLR = function(optionals, keywords, override) { + let result = []; + + for (let i = 0; i < optionals.length; i++) { + if (!optionals[i] && (typeof override === 'undefined' || override[i])) { + if (keywords[i] instanceof Array) { + result = result.concat(keywords[i]); + } else { + result.push(keywords[i]); + } + } else if (optionals[i]) { + break; + } + } + return result; + }; + + parser.suggestDdlAndDmlKeywords = function(extraKeywords) { + let keywords = [ + 'ALTER', + 'CREATE', + 'DESCRIBE', + 'DROP', + 'GRANT', + 'INSERT', + 'REVOKE', + 'SELECT', + 'SET', + 'SHOW', + 'TRUNCATE', + 'UPDATE', + 'USE', + 'WITH' + ]; + + if (extraKeywords) { + keywords = keywords.concat(extraKeywords); + } + + parser.suggestKeywords(keywords); + }; + + parser.checkForSelectListKeywords = function(selectList) { + if (selectList.length === 0) { + return; + } + const last = selectList[selectList.length - 1]; + if (!last || !last.valueExpression) { + return; + } + const valueExpressionKeywords = parser.getValueExpressionKeywords(last.valueExpression); + let keywords = []; + if (last.suggestKeywords) { + keywords = keywords.concat(last.suggestKeywords); + } + if (valueExpressionKeywords.suggestKeywords) { + keywords = keywords.concat(valueExpressionKeywords.suggestKeywords); + } + if (valueExpressionKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(valueExpressionKeywords.suggestColRefKeywords); + parser.addColRefIfExists(last.valueExpression); + } + if (!last.alias) { + keywords.push('AS'); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + }; + + parser.checkForKeywords = function(expression) { + if (expression) { + if (expression.suggestKeywords && expression.suggestKeywords.length > 0) { + parser.suggestKeywords(expression.suggestKeywords); + } + if (expression.suggestColRefKeywords) { + parser.suggestColRefKeywords(expression.suggestColRefKeywords); + parser.addColRefIfExists(expression); + } + } + }; + + parser.createWeightedKeywords = function(keywords, weight) { + const result = []; + keywords.forEach(keyword => { + if (typeof keyword.weight !== 'undefined') { + keyword.weight = weight + keyword.weight / 10; + result.push(keyword); + } else { + result.push({ value: keyword, weight: weight }); + } + }); + return result; + }; + + parser.suggestKeywords = function(keywords) { + const weightedKeywords = []; + if (keywords.length === 0) { + return; + } + keywords.forEach(keyword => { + if (typeof keyword.weight !== 'undefined') { + weightedKeywords.push(keyword); + } else { + weightedKeywords.push({ value: keyword, weight: -1 }); + } + }); + weightedKeywords.sort((a, b) => { + if (a.weight !== b.weight) { + return b.weight - a.weight; + } + return a.value.localeCompare(b.value); + }); + parser.yy.result.suggestKeywords = weightedKeywords; + }; + + parser.suggestColRefKeywords = function(colRefKeywords) { + parser.yy.result.suggestColRefKeywords = colRefKeywords; + }; + + parser.suggestTablesOrColumns = function(identifier) { + if (typeof parser.yy.latestTablePrimaries == 'undefined') { + parser.suggestTables({ identifierChain: [{ name: identifier }] }); + return; + } + const tableRef = parser.yy.latestTablePrimaries.filter(tablePrimary => { + return equalIgnoreCase(tablePrimary.alias, identifier); + }); + if (tableRef.length > 0) { + parser.suggestColumns({ identifierChain: [{ name: identifier }] }); + } else { + parser.suggestTables({ identifierChain: [{ name: identifier }] }); + } + }; + + parser.suggestFunctions = function(details) { + parser.yy.result.suggestFunctions = details || {}; + }; + + parser.suggestAggregateFunctions = function() { + const primaries = []; + const aliases = {}; + parser.yy.latestTablePrimaries.forEach(primary => { + if (typeof primary.alias !== 'undefined') { + aliases[primary.alias] = true; + } + // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...) + if ( + typeof primary.identifierChain !== 'undefined' && + !aliases[primary.identifierChain[0].name] && + typeof primary.owner === 'undefined' + ) { + primaries.push(primary); + } + }); + parser.yy.result.suggestAggregateFunctions = { tablePrimaries: primaries }; + }; + + parser.suggestAnalyticFunctions = function() { + parser.yy.result.suggestAnalyticFunctions = true; + }; + + parser.suggestSetOptions = function() { + parser.yy.result.suggestSetOptions = true; + }; + + parser.suggestIdentifiers = function(identifiers) { + parser.yy.result.suggestIdentifiers = identifiers; + }; + + parser.suggestColumns = function(details) { + if (typeof details === 'undefined') { + details = { identifierChain: [] }; + } else if (typeof details.identifierChain === 'undefined') { + details.identifierChain = []; + } + parser.yy.result.suggestColumns = details; + }; + + parser.suggestGroupBys = function(details) { + parser.yy.result.suggestGroupBys = details || {}; + }; + + parser.suggestOrderBys = function(details) { + parser.yy.result.suggestOrderBys = details || {}; + }; + + parser.suggestFilters = function(details) { + parser.yy.result.suggestFilters = details || {}; + }; + + parser.suggestKeyValues = function(details) { + parser.yy.result.suggestKeyValues = details || {}; + }; + + parser.suggestTables = function(details) { + parser.yy.result.suggestTables = details || {}; + }; + + const adjustLocationForCursor = function(location) { + // columns are 0-based and lines not, so add 1 to cols + const newLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column + 1, + last_column: location.last_column + 1 + }; + if (parser.yy.cursorFound) { + if ( + parser.yy.cursorFound.first_line === newLocation.first_line && + parser.yy.cursorFound.last_column <= newLocation.first_column + ) { + let additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; + additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. + newLocation.first_column = newLocation.first_column + additionalSpace; + newLocation.last_column = newLocation.last_column + additionalSpace; + } + } + return newLocation; + }; + + parser.addFunctionLocation = function(location, functionName) { + // Remove trailing '(' from location + const adjustedLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column, + last_column: location.last_column - 1 + }; + parser.yy.locations.push({ + type: 'function', + location: adjustLocationForCursor(adjustedLocation), + function: functionName.toLowerCase() + }); + }; + + parser.addStatementLocation = function(location) { + // Don't report lonely cursor as a statement + if ( + location.first_line === location.last_line && + Math.abs(location.last_column - location.first_column) === 1 + ) { + return; + } + let adjustedLocation; + if ( + parser.yy.cursorFound && + parser.yy.cursorFound.last_line === location.last_line && + parser.yy.cursorFound.first_column >= location.first_column && + parser.yy.cursorFound.last_column <= location.last_column + ) { + const additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; + adjustedLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column + 1, + last_column: location.last_column + additionalSpace - (parser.yy.partialCursor ? 0 : 2) + }; + } else { + adjustedLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column + 1, + last_column: location.last_column + 1 + }; + } + + parser.yy.locations.push({ + type: 'statement', + location: adjustedLocation + }); + }; + + parser.firstDefined = function() { + for (let i = 0; i + 1 < arguments.length; i += 2) { + if (arguments[i]) { + return arguments[i + 1]; + } + } + }; + + parser.addClauseLocation = function(type, precedingLocation, locationIfPresent, isCursor) { + let location; + if (isCursor) { + if (parser.yy.partialLengths.left === 0 && parser.yy.partialLengths.right === 0) { + location = { + type: type, + missing: true, + location: adjustLocationForCursor({ + first_line: precedingLocation.last_line, + first_column: precedingLocation.last_column, + last_line: precedingLocation.last_line, + last_column: precedingLocation.last_column + }) + }; + } else { + location = { + type: type, + missing: false, + location: { + first_line: locationIfPresent.last_line, + first_column: locationIfPresent.last_column - 1, + last_line: locationIfPresent.last_line, + last_column: + locationIfPresent.last_column - + 1 + + parser.yy.partialLengths.right + + parser.yy.partialLengths.left + } + }; + } + } else { + location = { + type: type, + missing: !locationIfPresent, + location: adjustLocationForCursor( + locationIfPresent || { + first_line: precedingLocation.last_line, + first_column: precedingLocation.last_column, + last_line: precedingLocation.last_line, + last_column: precedingLocation.last_column + } + ) + }; + } + if (parser.isInSubquery()) { + location.subquery = true; + } + parser.yy.locations.push(location); + }; + + parser.addStatementTypeLocation = function(identifier, location, additionalText) { + // Don't add if already there except for SELECT + if (identifier !== 'SELECT' && parser.yy.allLocations) { + for (let i = parser.yy.allLocations.length - 1; i >= 0; i--) { + if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statement') { + break; + } + if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statementType') { + return; + } + } + } + const loc = { + type: 'statementType', + location: adjustLocationForCursor(location), + identifier: identifier + }; + if (typeof additionalText !== 'undefined') { + switch (identifier) { + case 'ALTER': + if (/ALTER\s+VIEW/i.test(additionalText)) { + loc.identifier = 'ALTER VIEW'; + } else { + loc.identifier = 'ALTER TABLE'; + } + break; + case 'COMPUTE': + loc.identifier = 'COMPUTE STATS'; + break; + case 'CREATE': + if (/CREATE\s+VIEW/i.test(additionalText)) { + loc.identifier = 'CREATE VIEW'; + } else if (/CREATE\s+TABLE/i.test(additionalText)) { + loc.identifier = 'CREATE TABLE'; + } else if (/CREATE\s+DATABASE/i.test(additionalText)) { + loc.identifier = 'CREATE DATABASE'; + } else if (/CREATE\s+ROLE/i.test(additionalText)) { + loc.identifier = 'CREATE ROLE'; + } else if (/CREATE\s+FUNCTION/i.test(additionalText)) { + loc.identifier = 'CREATE FUNCTION'; + } else { + loc.identifier = 'CREATE TABLE'; + } + break; + case 'DROP': + if (/DROP\s+VIEW/i.test(additionalText)) { + loc.identifier = 'DROP VIEW'; + } else if (/DROP\s+TABLE/i.test(additionalText)) { + loc.identifier = 'DROP TABLE'; + } else if (/DROP\s+DATABASE/i.test(additionalText)) { + loc.identifier = 'DROP DATABASE'; + } else if (/DROP\s+ROLE/i.test(additionalText)) { + loc.identifier = 'DROP ROLE'; + } else if (/DROP\s+STATS/i.test(additionalText)) { + loc.identifier = 'DROP STATS'; + } else if (/DROP\s+FUNCTION/i.test(additionalText)) { + loc.identifier = 'DROP FUNCTION'; + } else { + loc.identifier = 'DROP TABLE'; + } + break; + case 'INVALIDATE': + loc.identifier = 'INVALIDATE METADATA'; + break; + case 'LOAD': + loc.identifier = 'LOAD DATA'; + break; + case 'TRUNCATE': + loc.identifier = 'TRUNCATE TABLE'; + break; + default: + } + } + parser.yy.locations.push(loc); + }; + + parser.addFileLocation = function(location, path) { + parser.yy.locations.push({ + type: 'file', + location: adjustLocationForCursor(location), + path: path + }); + }; + + parser.addDatabaseLocation = function(location, identifierChain) { + parser.yy.locations.push({ + type: 'database', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addTableLocation = function(location, identifierChain) { + parser.yy.locations.push({ + type: 'table', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addColumnAliasLocation = function(location, alias, parentLocation) { + const aliasLocation = { + type: 'alias', + source: 'column', + alias: alias, + location: adjustLocationForCursor(location), + parentLocation: adjustLocationForCursor(parentLocation) + }; + if ( + parser.yy.locations.length && + parser.yy.locations[parser.yy.locations.length - 1].type === 'column' + ) { + const closestColumn = parser.yy.locations[parser.yy.locations.length - 1]; + if ( + closestColumn.location.first_line === aliasLocation.parentLocation.first_line && + closestColumn.location.last_line === aliasLocation.parentLocation.last_line && + closestColumn.location.first_column === aliasLocation.parentLocation.first_column && + closestColumn.location.last_column === aliasLocation.parentLocation.last_column + ) { + parser.yy.locations[parser.yy.locations.length - 1].alias = alias; + } + } + parser.yy.locations.push(aliasLocation); + }; + + parser.addTableAliasLocation = function(location, alias, identifierChain) { + parser.yy.locations.push({ + type: 'alias', + source: 'table', + alias: alias, + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addSubqueryAliasLocation = function(location, alias) { + parser.yy.locations.push({ + type: 'alias', + source: 'subquery', + alias: alias, + location: adjustLocationForCursor(location) + }); + }; + + parser.addAsteriskLocation = function(location, identifierChain) { + parser.yy.locations.push({ + type: 'asterisk', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addVariableLocation = function(location, value) { + if (/\${[^}]*}/.test(value)) { + parser.yy.locations.push({ + type: 'variable', + location: adjustLocationForCursor(location), + value: value + }); + } + }; + + parser.addColumnLocation = function(location, identifierChain) { + const isVariable = + identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); + if (isVariable) { + parser.yy.locations.push({ + type: 'variable', + location: adjustLocationForCursor(location), + value: identifierChain[identifierChain.length - 1].name + }); + } else { + parser.yy.locations.push({ + type: 'column', + location: adjustLocationForCursor(location), + identifierChain: identifierChain, + qualified: identifierChain.length > 1 + }); + } + }; + + parser.addCteAliasLocation = function(location, alias) { + parser.yy.locations.push({ + type: 'alias', + source: 'cte', + alias: alias, + location: adjustLocationForCursor(location) + }); + }; + + parser.addUnknownLocation = function(location, identifierChain) { + const isVariable = + identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); + let loc; + if (isVariable) { + loc = { + type: 'variable', + location: adjustLocationForCursor(location), + value: identifierChain[identifierChain.length - 1].name + }; + } else { + loc = { + type: 'unknown', + location: adjustLocationForCursor(location), + identifierChain: identifierChain, + qualified: identifierChain.length > 1 + }; + } + parser.yy.locations.push(loc); + return loc; + }; + + parser.addNewDatabaseLocation = function(location, identifierChain) { + parser.yy.definitions.push({ + type: 'database', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addNewTableLocation = function(location, identifierChain, colSpec) { + const columns = []; + if (colSpec) { + colSpec.forEach(col => { + columns.push({ + identifierChain: [col.identifier], // TODO: Complex + type: col.type, + location: adjustLocationForCursor(col.location) + }); + }); + } + parser.yy.definitions.push({ + type: 'table', + location: adjustLocationForCursor(location), + identifierChain: identifierChain, + columns: columns + }); + }; + + parser.addColRefToVariableIfExists = function(left, right) { + if ( + left && + left.columnReference && + left.columnReference.length && + right && + right.columnReference && + right.columnReference.length && + parser.yy.locations.length > 1 + ) { + const addColRefToVariableLocation = function(variableValue, colRef) { + // See if colref is actually an alias + if (colRef.length === 1 && colRef[0].name) { + parser.yy.locations.some(location => { + if (location.type === 'column' && location.alias === colRef[0].name) { + colRef = location.identifierChain; + return true; + } + }); + } + + for (let i = parser.yy.locations.length - 1; i > 0; i--) { + const location = parser.yy.locations[i]; + if (location.type === 'variable' && location.value === variableValue) { + location.colRef = { identifierChain: colRef }; + break; + } + } + }; + + if (/\${[^}]*}/.test(left.columnReference[0].name)) { + // left is variable + addColRefToVariableLocation(left.columnReference[0].name, right.columnReference); + } else if (/\${[^}]*}/.test(right.columnReference[0].name)) { + // right is variable + addColRefToVariableLocation(right.columnReference[0].name, left.columnReference); + } + } + }; + + parser.suggestDatabases = function(details) { + parser.yy.result.suggestDatabases = details || {}; + }; + + parser.suggestHdfs = function(details) { + parser.yy.result.suggestHdfs = details || {}; + }; + + parser.suggestValues = function(details) { + parser.yy.result.suggestValues = details || {}; + }; + + parser.determineCase = function(text) { + if (!parser.yy.caseDetermined) { + parser.yy.lowerCase = text.toLowerCase() === text; + parser.yy.caseDetermined = true; + } + }; + + parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { + if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { + parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; + const cursorIndex = parser.yy.partialCursor + ? yytext.indexOf('\u2021') + : yytext.indexOf('\u2020'); + parser.yy.cursorFound = { + first_line: yylloc.first_line, + last_line: yylloc.last_line, + first_column: yylloc.first_column + cursorIndex, + last_column: yylloc.first_column + cursorIndex + 1 + }; + const remainder = yytext.substring(cursorIndex + 1); + const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) + .length; + if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { + parser.yy.missingEndQuote = false; + lexer.input(); + } else { + parser.yy.missingEndQuote = true; + lexer.unput(remainder); + } + lexer.popState(); + return true; + } + return false; + }; + + let lexerModified = false; + + /** + * Main parser function + */ + parser.parseSql = function(beforeCursor, afterCursor, debug) { + // Jison counts CRLF as two lines in the locations + beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); + afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); + parser.yy.result = { locations: [] }; + parser.yy.lowerCase = false; + parser.yy.locations = []; + parser.yy.definitions = []; + parser.yy.allLocations = []; + parser.yy.subQueries = []; + parser.yy.errors = []; + parser.yy.selectListAliases = []; + parser.yy.activeDialect = 'generic'; + + parser.yy.locationsStack = []; + parser.yy.primariesStack = []; + parser.yy.subQueriesStack = []; + parser.yy.resultStack = []; + parser.yy.selectListAliasesStack = []; + + delete parser.yy.caseDetermined; + delete parser.yy.cursorFound; + delete parser.yy.partialCursor; + + // Fix for parser bug when switching lexer states + if (!lexerModified) { + const originalSetInput = parser.lexer.setInput; + parser.lexer.setInput = function(input, yy) { + return originalSetInput.bind(parser.lexer)(input, yy); + }; + lexerModified = true; + } + + parser.prepareNewStatement(); + + const REASONABLE_SURROUNDING_LENGTH = 150000; // About 3000 lines before and after + + if (beforeCursor.length > REASONABLE_SURROUNDING_LENGTH) { + if (beforeCursor.length - beforeCursor.lastIndexOf(';') > REASONABLE_SURROUNDING_LENGTH) { + // Bail out if the last complete statement is more than 150000 chars before + return {}; + } + // Cut it at the first statement found within 150000 chars before + const lastReasonableChunk = beforeCursor.substring( + beforeCursor.length - REASONABLE_SURROUNDING_LENGTH + ); + beforeCursor = lastReasonableChunk.substring(lastReasonableChunk.indexOf(';') + 1); + } + + if (afterCursor.length > REASONABLE_SURROUNDING_LENGTH) { + if (afterCursor.length - afterCursor.indexOf(';') > REASONABLE_SURROUNDING_LENGTH) { + // No need to bail out for what's comes after, we can still get keyword completion + afterCursor = ''; + } else { + // Cut it at the last statement found within 150000 chars after + const firstReasonableChunk = afterCursor.substring(0, REASONABLE_SURROUNDING_LENGTH); + afterCursor = firstReasonableChunk.substring(0, firstReasonableChunk.lastIndexOf(';')); + } + } + + parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); + + if (parser.yy.partialLengths.left > 0) { + beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); + } + + if (parser.yy.partialLengths.right > 0) { + afterCursor = afterCursor.substring(parser.yy.partialLengths.right); + } + + let result; + try { + // Add |CURSOR| or |PARTIAL_CURSOR| to represent the different cursor states in the lexer + result = parser.parse( + beforeCursor + + (beforeCursor.length === 0 || /[\s(]$/.test(beforeCursor) ? ' \u2020 ' : '\u2021') + + afterCursor + ); + } catch (err) { + // On any error try to at least return any existing result + if (typeof parser.yy.result === 'undefined') { + throw err; + } + if (debug) { + console.warn(err); + console.warn(err.stack); + } + result = parser.yy.result; + } + if (parser.yy.errors.length > 0) { + parser.yy.result.errors = parser.yy.errors; + if (debug) { + console.warn(parser.yy.errors); + } + } + try { + linkTablePrimaries(); + parser.commitLocations(); + // Clean up and prioritize + prioritizeSuggestions(); + } catch (err) { + if (debug) { + console.warn(err); + console.warn(err.stack); + } + } + + parser.yy.allLocations.sort((a, b) => { + if (a.location.first_line !== b.location.first_line) { + return a.location.first_line - b.location.first_line; + } + if (a.location.first_column !== b.location.first_column) { + return a.location.first_column - b.location.first_column; + } + if (a.location.last_column !== b.location.last_column) { + return b.location.last_column - a.location.last_column; + } + return b.type.localeCompare(a.type); + }); + parser.yy.result.locations = parser.yy.allLocations; + parser.yy.result.definitions = parser.yy.definitions; + + parser.yy.result.locations.forEach(location => { + delete location.linked; + }); + if (typeof parser.yy.result.suggestColumns !== 'undefined') { + delete parser.yy.result.suggestColumns.linked; + } + + SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { + if (typeof parser.yy.result[suggestionType] !== 'undefined') { + delete parser.yy.result[suggestionType].linked; + } + }); + + if (typeof parser.yy.result.colRef !== 'undefined') { + delete parser.yy.result.colRef.linked; + } + if (typeof parser.yy.result.suggestKeyValues !== 'undefined') { + delete parser.yy.result.suggestKeyValues.linked; + } + + if (typeof result.error !== 'undefined' && typeof result.error.expected !== 'undefined') { + // Remove the cursor from expected tokens + result.error.expected = result.error.expected.filter(token => token.indexOf('CURSOR') === -1); + } + + if (typeof result.error !== 'undefined' && result.error.recoverable) { + delete result.error; + } + + // Adjust all the statement locations to include white space surrounding them + let lastStatementLocation = null; + result.locations.forEach(location => { + if (location.type === 'statement') { + if (lastStatementLocation === null) { + location.location.first_line = 1; + location.location.first_column = 1; + } else { + location.location.first_line = lastStatementLocation.location.last_line; + location.location.first_column = lastStatementLocation.location.last_column + 1; + } + lastStatementLocation = location; + } + }); + + return result; + }; +}; + +const SYNTAX_PARSER_NOOP_FUNCTIONS = [ + 'addAsteriskLocation', + 'addClauseLocation', + 'addColRefIfExists', + 'addColRefToVariableIfExists', + 'addColumnAliasLocation', + 'addColumnLocation', + 'addCommonTableExpressions', + 'addCteAliasLocation', + 'addDatabaseLocation', + 'addFileLocation', + 'addFunctionLocation', + 'addNewDatabaseLocation', + 'addNewTableLocation', + 'addStatementLocation', + 'addStatementTypeLocation', + 'addSubqueryAliasLocation', + 'addTableAliasLocation', + 'addTableLocation', + 'addTablePrimary', + 'addUnknownLocation', + 'addVariableLocation', + 'applyArgumentTypesToSuggestions', + 'applyTypeToSuggestions', + 'checkForKeywords', + 'checkForSelectListKeywords', + 'commitLocations', + 'firstDefined', + 'getSelectListKeywords', + 'getSubQuery', + 'getValueExpressionKeywords', + 'identifyPartials', + 'popQueryState', + 'prepareNewStatement', + 'pushQueryState', + 'selectListNoTableSuggest', + 'suggestAggregateFunctions', + 'suggestAnalyticFunctions', + 'suggestColRefKeywords', + 'suggestColumns', + 'suggestDatabases', + 'suggestDdlAndDmlKeywords', + 'suggestFileFormats', + 'suggestFilters', + 'suggestFunctions', + 'suggestGroupBys', + 'suggestHdfs', + 'suggestIdentifiers', + 'suggestJoinConditions', + 'suggestJoins', + 'suggestKeyValues', + 'suggestKeywords', + 'suggestOrderBys', + 'suggestSelectListAliases', + 'suggestTables', + 'suggestTablesOrColumns', + 'suggestValueExpressionKeywords', + 'suggestValues', + 'valueExpressionSuggest' +]; + +const SYNTAX_PARSER_NOOP = function() {}; + +const initSyntaxParser = function(parser) { + // Noop functions for compatibility with the autocomplete parser as the grammar is shared + SYNTAX_PARSER_NOOP_FUNCTIONS.forEach(noopFn => { + parser[noopFn] = SYNTAX_PARSER_NOOP; + }); + + parser.yy.locations = [{}]; + + parser.determineCase = function(text) { + if (!parser.yy.caseDetermined) { + parser.yy.lowerCase = text.toLowerCase() === text; + parser.yy.caseDetermined = true; + } + }; + + parser.getKeywordsForOptionalsLR = function() { + return []; + }; + + parser.mergeSuggestKeywords = function() { + return {}; + }; + + parser.getTypeKeywords = function() { + return []; + }; + + parser.getColumnDataTypeKeywords = function() { + return []; + }; + + parser.findCaseType = function() { + return { types: ['T'] }; + }; + + parser.findReturnTypes = function() { + return ['T']; + }; + + parser.expandIdentifierChain = function() { + return []; + }; + + parser.createWeightedKeywords = function() { + return []; + }; + + parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { + if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { + parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; + const cursorIndex = parser.yy.partialCursor + ? yytext.indexOf('\u2021') + : yytext.indexOf('\u2020'); + parser.yy.cursorFound = { + first_line: yylloc.first_line, + last_line: yylloc.last_line, + first_column: yylloc.first_column + cursorIndex, + last_column: yylloc.first_column + cursorIndex + 1 + }; + const remainder = yytext.substring(cursorIndex + 1); + const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) + .length; + if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { + parser.yy.missingEndQuote = false; + lexer.input(); + } else { + parser.yy.missingEndQuote = true; + lexer.unput(remainder); + } + lexer.popState(); + return true; + } + return false; + }; + + parser.yy.parseError = function(str, hash) { + parser.yy.error = hash; + }; + + const IGNORED_EXPECTED = { + ';': true, + '.': true, + EOF: true, + UNSIGNED_INTEGER: true, + UNSIGNED_INTEGER_E: true, + REGULAR_IDENTIFIER: true, + CURSOR: true, + PARTIAL_CURSOR: true, + HDFS_START_QUOTE: true, + HDFS_PATH: true, + HDFS_END_QUOTE: true, + COMPARISON_OPERATOR: true, // TODO: Expand in results when found + ARITHMETIC_OPERATOR: true, // TODO: Expand in results when found + VARIABLE_REFERENCE: true, + BACKTICK: true, + VALUE: true, + PARTIAL_VALUE: true, + SINGLE_QUOTE: true, + DOUBLE_QUOTE: true + }; + + const CLEAN_EXPECTED = { + BETWEEN_AND: 'AND', + OVERWRITE_DIRECTORY: 'OVERWRITE', + STORED_AS_DIRECTORIES: 'STORED', + LIKE_PARQUET: 'LIKE', + PARTITION_VALUE: 'PARTITION' + }; + + parser.parseSyntax = function(beforeCursor, afterCursor, debug) { + parser.yy.caseDetermined = false; + parser.yy.error = undefined; + + parser.yy.latestTablePrimaries = []; + parser.yy.subQueries = []; + parser.yy.selectListAliases = []; + parser.yy.latestTablePrimaries = []; + + parser.yy.activeDialect = 'generic'; + + // TODO: Find a way around throwing an exception when the parser finds a syntax error + try { + parser.yy.error = false; + parser.parse(beforeCursor + afterCursor); + } catch (err) { + if (debug) { + console.warn(err); + console.warn(err.stack); + console.warn(parser.yy.error); + } + } + + if ( + parser.yy.error && + (parser.yy.error.loc.last_column < beforeCursor.length || + !beforeCursor.endsWith(parser.yy.error.text)) + ) { + const weightedExpected = []; + + const addedExpected = {}; + + const isLowerCase = + (parser.yy.caseDetermined && parser.yy.lowerCase) || + parser.yy.error.text.toLowerCase() === parser.yy.error.text; + + if ( + parser.yy.error.expected.length === 2 && + parser.yy.error.expected.indexOf("';'") !== -1 && + parser.yy.error.expected.indexOf("'EOF'") !== -1 + ) { + parser.yy.error.expected = []; + parser.yy.error.expectedStatementEnd = true; + return parser.yy.error; + } + for (let i = 0; i < parser.yy.error.expected.length; i++) { + let expected = parser.yy.error.expected[i]; + // Strip away the surrounding ' chars + expected = expected.substring(1, expected.length - 1); + // TODO: Only suggest alphanumeric? + if (expected === 'REGULAR_IDENTIFIER') { + parser.yy.error.expectedIdentifier = true; + if (/^<[a-z]+>/.test(parser.yy.error.token)) { + const text = '`' + parser.yy.error.text + '`'; + weightedExpected.push({ + text: text, + distance: stringDistance(parser.yy.error.text, text, true) + }); + parser.yy.error.possibleReserved = true; + } + } else if (!IGNORED_EXPECTED[expected] && /[a-z_]+/i.test(expected)) { + if (/^<[a-z]+>/.test(expected)) { + continue; + } + expected = CLEAN_EXPECTED[expected] || expected; + if (expected === parser.yy.error.text.toUpperCase()) { + // Can happen when the lexer entry for a rule contains multiple words like 'stored' in 'stored as parquet' + return false; + } + const text = isLowerCase ? expected.toLowerCase() : expected; + if (text && !addedExpected[text]) { + addedExpected[text] = true; + weightedExpected.push({ + text: text, + distance: stringDistance(parser.yy.error.text, text, true) + }); + } + } + } + if (weightedExpected.length === 0) { + parser.yy.error.expected = []; + parser.yy.error.incompleteStatement = true; + return parser.yy.error; + } + weightedExpected.sort((a, b) => { + if (a.distance === b.distance) { + return a.text.localeCompare(b.text); + } + return a.distance - b.distance; + }); + parser.yy.error.expected = weightedExpected; + parser.yy.error.incompleteStatement = true; + return parser.yy.error; + } else if (parser.yy.error) { + parser.yy.error.expected = []; + parser.yy.error.incompleteStatement = true; + return parser.yy.error; + } + return false; + }; +}; + +export default { + initSqlParser: initSqlParser, + initSyntaxParser: initSyntaxParser +}; diff --git a/src/core/parse/hive/hiveAutocompleteParser.js b/src/core/parse/hive/hiveAutocompleteParser.js new file mode 100644 index 0000000..621d385 --- /dev/null +++ b/src/core/parse/hive/hiveAutocompleteParser.js @@ -0,0 +1,5883 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +/* parser generated by jison 0.4.18 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +import SqlParseSupport from './sqlParseSupport'; + +var hiveAutocompleteParser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,26,27,44,47,50,54,55,58,62,71,78,79,85,88,89,107,108,116,118,123,126,129,130,132,150,151,152,153,154,158,161,166,198,202,205,206,208,216,217,218,219,227,228,229,230,231,233,235,238,239,240,266,277,279,280,307,317,318,333,347,348,349,351,352,359,371,372,373,374,376,381,382,384,385,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,491,532,533,534,535,538,539,544,547,561,563,568,569,570,571,572,573,574,575,596,610,615,616,617,618,619,620,621,622,623,626,637,639,640,657,664,666,668,674,675,677,682,687,688,689,691,695,697,698,699,700,701,702,703,704,705,706,707,708,709,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,851],$V1=[2,1295],$V2=[544,691],$V3=[2,915],$V4=[1,5],$V5=[1,200],$V6=[1,281],$V7=[1,368],$V8=[1,69],$V9=[1,164],$Va=[1,112],$Vb=[1,154],$Vc=[1,179],$Vd=[1,240],$Ve=[1,55],$Vf=[1,204],$Vg=[1,39],$Vh=[1,168],$Vi=[1,148],$Vj=[1,211],$Vk=[1,210],$Vl=[1,27],$Vm=[1,10],$Vn=[1,11],$Vo=[1,13],$Vp=[1,17],$Vq=[1,218],$Vr=[1,198],$Vs=[1,199],$Vt=[1,24],$Vu=[1,242],$Vv=[1,283],$Vw=[1,163],$Vx=[1,49],$Vy=[1,215],$Vz=[1,166],$VA=[1,385],$VB=[1,406],$VC=[1,184],$VD=[1,407],$VE=[1,100],$VF=[1,151],$VG=[1,259],$VH=[1,311],$VI=[1,53],$VJ=[1,207],$VK=[1,94],$VL=[1,40],$VM=[1,141],$VN=[1,147],$VO=[1,260],$VP=[1,97],$VQ=[1,29],$VR=[1,74],$VS=[1,87],$VT=[1,136],$VU=[1,376],$VV=[1,50],$VW=[1,203],$VX=[1,82],$VY=[1,130],$VZ=[1,173],$V_=[1,125],$V$=[1,149],$V01=[1,26],$V11=[1,16],$V21=[1,18],$V31=[1,138],$V41=[1,213],$V51=[1,229],$V61=[1,95],$V71=[1,180],$V81=[1,183],$V91=[1,146],$Va1=[1,167],$Vb1=[1,52],$Vc1=[1,45],$Vd1=[1,119],$Ve1=[1,230],$Vf1=[1,38],$Vg1=[1,79],$Vh1=[1,206],$Vi1=[1,191],$Vj1=[1,96],$Vk1=[1,31],$Vl1=[1,116],$Vm1=[1,161],$Vn1=[1,124],$Vo1=[1,157],$Vp1=[1,165],$Vq1=[1,178],$Vr1=[1,197],$Vs1=[1,221],$Vt1=[1,73],$Vu1=[1,90],$Vv1=[1,220],$Vw1=[1,85],$Vx1=[1,48],$Vy1=[1,121],$Vz1=[1,126],$VA1=[1,132],$VB1=[1,72],$VC1=[1,219],$VD1=[1,233],$VE1=[1,91],$VF1=[1,122],$VG1=[1,188],$VH1=[1,71],$VI1=[1,109],$VJ1=[1,111],$VK1=[1,137],$VL1=[1,175],$VM1=[1,409],$VN1=[1,352],$VO1=[1,98],$VP1=[1,329],$VQ1=[1,226],$VR1=[1,360],$VS1=[1,22],$VT1=[1,128],$VU1=[1,99],$VV1=[1,129],$VW1=[1,186],$VX1=[1,60],$VY1=[1,123],$VZ1=[1,160],$V_1=[1,114],$V$1=[1,196],$V02=[1,102],$V12=[1,64],$V22=[1,410],$V32=[1,135],$V42=[1,202],$V52=[1,359],$V62=[1,232],$V72=[1,103],$V82=[1,155],$V92=[1,21],$Va2=[1,330],$Vb2=[1,174],$Vc2=[1,234],$Vd2=[1,133],$Ve2=[1,76],$Vf2=[1,411],$Vg2=[1,244],$Vh2=[1,139],$Vi2=[1,222],$Vj2=[1,356],$Vk2=[1,63],$Vl2=[1,115],$Vm2=[1,357],$Vn2=[1,88],$Vo2=[1,358],$Vp2=[1,185],$Vq2=[1,37],$Vr2=[1,51],$Vs2=[1,65],$Vt2=[1,67],$Vu2=[1,68],$Vv2=[1,81],$Vw2=[1,101],$Vx2=[1,108],$Vy2=[1,127],$Vz2=[1,134],$VA2=[1,143],$VB2=[1,144],$VC2=[1,169],$VD2=[1,176],$VE2=[1,189],$VF2=[1,194],$VG2=[1,195],$VH2=[1,201],$VI2=[1,386],$VJ2=[1,212],$VK2=[1,216],$VL2=[1,224],$VM2=[1,225],$VN2=[1,351],$VO2=[1,243],$VP2=[1,247],$VQ2=[1,182],$VR2=[1,238],$VS2=[1,9],$VT2=[1,12],$VU2=[1,14],$VV2=[1,15],$VW2=[1,19],$VX2=[1,20],$VY2=[1,23],$VZ2=[1,25],$V_2=[1,28],$V$2=[1,30],$V03=[1,32],$V13=[1,33],$V23=[1,34],$V33=[1,35],$V43=[1,36],$V53=[1,41],$V63=[1,42],$V73=[1,43],$V83=[1,44],$V93=[1,46],$Va3=[1,47],$Vb3=[1,54],$Vc3=[1,56],$Vd3=[1,57],$Ve3=[1,58],$Vf3=[1,59],$Vg3=[1,61],$Vh3=[1,62],$Vi3=[1,66],$Vj3=[1,70],$Vk3=[1,75],$Vl3=[1,77],$Vm3=[1,78],$Vn3=[1,80],$Vo3=[1,83],$Vp3=[1,84],$Vq3=[1,86],$Vr3=[1,89],$Vs3=[1,92],$Vt3=[1,93],$Vu3=[1,104],$Vv3=[1,105],$Vw3=[1,106],$Vx3=[1,107],$Vy3=[1,110],$Vz3=[1,113],$VA3=[1,117],$VB3=[1,118],$VC3=[1,120],$VD3=[1,131],$VE3=[1,140],$VF3=[1,142],$VG3=[1,145],$VH3=[1,150],$VI3=[1,152],$VJ3=[1,153],$VK3=[1,156],$VL3=[1,158],$VM3=[1,159],$VN3=[1,162],$VO3=[1,170],$VP3=[1,171],$VQ3=[1,172],$VR3=[1,177],$VS3=[1,181],$VT3=[1,187],$VU3=[1,190],$VV3=[1,192],$VW3=[1,193],$VX3=[1,205],$VY3=[1,208],$VZ3=[1,209],$V_3=[1,214],$V$3=[1,217],$V04=[1,223],$V14=[1,227],$V24=[1,228],$V34=[1,231],$V44=[1,235],$V54=[1,236],$V64=[1,237],$V74=[1,239],$V84=[1,241],$V94=[1,245],$Va4=[1,246],$Vb4=[1,248],$Vc4=[1,282],$Vd4=[1,331],$Ve4=[2,1535],$Vf4=[1,421],$Vg4=[1,477],$Vh4=[1,535],$Vi4=[1,544],$Vj4=[1,517],$Vk4=[1,586],$Vl4=[1,553],$Vm4=[1,448],$Vn4=[1,548],$Vo4=[1,564],$Vp4=[1,545],$Vq4=[1,538],$Vr4=[1,578],$Vs4=[1,568],$Vt4=[1,563],$Vu4=[1,459],$Vv4=[1,550],$Vw4=[1,567],$Vx4=[1,440],$Vy4=[1,496],$Vz4=[1,573],$VA4=[1,559],$VB4=[1,560],$VC4=[1,468],$VD4=[1,465],$VE4=[1,587],$VF4=[1,533],$VG4=[1,463],$VH4=[1,490],$VI4=[1,450],$VJ4=[1,497],$VK4=[1,488],$VL4=[1,485],$VM4=[1,523],$VN4=[1,527],$VO4=[1,452],$VP4=[1,581],$VQ4=[1,522],$VR4=[1,549],$VS4=[1,546],$VT4=[1,451],$VU4=[1,467],$VV4=[1,566],$VW4=[1,519],$VX4=[1,525],$VY4=[1,491],$VZ4=[1,453],$V_4=[1,458],$V$4=[1,482],$V05=[1,515],$V15=[1,585],$V25=[1,469],$V35=[1,506],$V45=[1,528],$V55=[1,483],$V65=[1,493],$V75=[1,529],$V85=[1,571],$V95=[1,464],$Va5=[1,508],$Vb5=[1,583],$Vc5=[1,478],$Vd5=[1,460],$Ve5=[1,512],$Vf5=[1,472],$Vg5=[1,470],$Vh5=[1,471],$Vi5=[1,526],$Vj5=[1,570],$Vk5=[1,582],$Vl5=[1,547],$Vm5=[1,524],$Vn5=[1,537],$Vo5=[1,461],$Vp5=[1,456],$Vq5=[1,486],$Vr5=[1,565],$Vs5=[1,498],$Vt5=[1,454],$Vu5=[1,503],$Vv5=[1,532],$Vw5=[1,507],$Vx5=[1,531],$Vy5=[1,536],$Vz5=[1,543],$VA5=[1,558],$VB5=[1,576],$VC5=[1,481],$VD5=[1,494],$VE5=[1,575],$VF5=[1,489],$VG5=[1,462],$VH5=[1,504],$VI5=[1,509],$VJ5=[1,511],$VK5=[1,480],$VL5=[1,574],$VM5=[1,495],$VN5=[1,505],$VO5=[1,554],$VP5=[1,479],$VQ5=[1,501],$VR5=[1,541],$VS5=[1,447],$VT5=[1,580],$VU5=[1,530],$VV5=[1,449],$VW5=[1,540],$VX5=[1,484],$VY5=[1,534],$VZ5=[1,518],$V_5=[1,516],$V$5=[1,513],$V06=[1,473],$V16=[1,502],$V26=[1,492],$V36=[1,551],$V46=[1,455],$V56=[1,457],$V66=[1,466],$V76=[1,474],$V86=[1,475],$V96=[1,476],$Va6=[1,487],$Vb6=[1,499],$Vc6=[1,500],$Vd6=[1,510],$Ve6=[1,514],$Vf6=[1,520],$Vg6=[1,521],$Vh6=[1,539],$Vi6=[1,542],$Vj6=[1,552],$Vk6=[1,555],$Vl6=[1,556],$Vm6=[1,557],$Vn6=[1,561],$Vo6=[1,562],$Vp6=[1,569],$Vq6=[1,572],$Vr6=[1,577],$Vs6=[1,579],$Vt6=[1,584],$Vu6=[1,588],$Vv6=[1,589],$Vw6=[1,444],$Vx6=[1,445],$Vy6=[1,443],$Vz6=[2,1539],$VA6=[1,593],$VB6=[1,601],$VC6=[1,605],$VD6=[1,604],$VE6=[1,602],$VF6=[1,592],$VG6=[1,603],$VH6=[1,608],$VI6=[1,600],$VJ6=[1,606],$VK6=[1,607],$VL6=[1,609],$VM6=[1,610],$VN6=[1,599],$VO6=[2,1637],$VP6=[1,611],$VQ6=[1,612],$VR6=[1,614],$VS6=[1,625],$VT6=[1,636],$VU6=[1,648],$VV6=[1,641],$VW6=[1,654],$VX6=[1,651],$VY6=[1,652],$VZ6=[1,631],$V_6=[1,653],$V$6=[1,655],$V07=[1,638],$V17=[1,658],$V27=[1,632],$V37=[1,647],$V47=[1,633],$V57=[1,657],$V67=[1,646],$V77=[1,634],$V87=[1,659],$V97=[1,643],$Va7=[1,644],$Vb7=[1,645],$Vc7=[1,656],$Vd7=[1,637],$Ve7=[1,635],$Vf7=[1,664],$Vg7=[26,27,44,152,166,198,205,217,266,533,534,535,538,547,596,615,618,623,657,674,682,688,715,720,851],$Vh7=[2,345],$Vi7=[1,669],$Vj7=[1,670],$Vk7=[1,671],$Vl7=[1,672],$Vm7=[1,673],$Vn7=[1,674],$Vo7=[1,675],$Vp7=[118,499,544,691],$Vq7=[2,1907],$Vr7=[1,682],$Vs7=[2,1688],$Vt7=[2,1904],$Vu7=[1,689],$Vv7=[2,118,544,691],$Vw7=[1,693],$Vx7=[1,696],$Vy7=[27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735],$Vz7=[2,1712],$VA7=[1,710],$VB7=[1,709],$VC7=[1,711],$VD7=[1,712],$VE7=[2,1126],$VF7=[1,728],$VG7=[2,1264],$VH7=[2,1932],$VI7=[1,756],$VJ7=[1,757],$VK7=[27,158,687,719],$VL7=[2,1729],$VM7=[1,768],$VN7=[1,776],$VO7=[1,806],$VP7=[1,799],$VQ7=[1,783],$VR7=[1,802],$VS7=[1,788],$VT7=[1,794],$VU7=[1,803],$VV7=[1,784],$VW7=[1,807],$VX7=[1,812],$VY7=[1,840],$VZ7=[1,841],$V_7=[1,837],$V$7=[1,846],$V08=[1,847],$V18=[1,835],$V28=[1,836],$V38=[1,833],$V48=[27,158],$V58=[2,284],$V68=[1,852],$V78=[1,853],$V88=[1,884],$V98=[1,883],$Va8=[1,886],$Vb8=[1,881],$Vc8=[1,879],$Vd8=[1,880],$Ve8=[1,878],$Vf8=[2,26,44,47,50,54,55,58,62,71,78,79,85,88,89,107,108,116,118,123,126,129,130,132,150,151,152,153,154,158,161,166,198,202,205,206,208,217,218,219,227,228,229,230,231,233,235,238,239,240,266,277,279,280,307,317,318,333,347,348,349,351,352,359,371,372,373,374,376,381,382,384,385,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,491,532,533,534,535,538,539,544,547,561,563,568,569,570,571,572,573,574,575,596,610,615,616,617,618,619,620,621,622,623,626,637,639,640,657,664,666,668,674,675,677,682,687,688,689,691,695,697,698,699,700,701,702,703,704,705,706,707,708,709,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,851],$Vg8=[27,118,499,544,547,563,615,620,691,743,757,766,774,782,801,808,809,894],$Vh8=[2,2354],$Vi8=[2,118,544,547,615,620,691,743,757,766,774,782,801,808,809,894],$Vj8=[2,118,544,547,563,615,620,691,743,757,766,774,782,801,808,809,894],$Vk8=[2,27,118,123,499,544,547,563,615,620,691,743,757,766,774,782,801,808,809,894],$Vl8=[2,118,123,544,547,563,615,620,691,743,757,766,774,782,801,808,809,894],$Vm8=[27,118,123,499,544,547,563,615,620,691,743,757,766,774,782,801,808,809,894],$Vn8=[2,2256],$Vo8=[1,899],$Vp8=[1,902],$Vq8=[1,904],$Vr8=[1,898],$Vs8=[1,901],$Vt8=[1,903],$Vu8=[1,900],$Vv8=[1,905],$Vw8=[1,910],$Vx8=[1,912],$Vy8=[1,914],$Vz8=[1,909],$VA8=[1,913],$VB8=[1,911],$VC8=[1,915],$VD8=[2,2307],$VE8=[2,2344],$VF8=[1,923],$VG8=[1,930],$VH8=[1,931],$VI8=[2,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,774,782,801,808,809,894],$VJ8=[1,933],$VK8=[2,55,118,123,544,547,563,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,808,809,894],$VL8=[1,935],$VM8=[1,936],$VN8=[1,937],$VO8=[2,27,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,774,782,801,808,809,894],$VP8=[2,1789],$VQ8=[152,547],$VR8=[2,2322],$VS8=[1,944],$VT8=[2,26,47,50,55,58,61,62,64,66,71,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,127,129,130,132,134,135,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,774,782,798,801,808,809,894],$VU8=[2,26,27,47,50,55,58,61,62,64,66,71,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,317,318,320,321,323,328,329,330,331,333,347,348,349,351,352,358,359,371,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,637,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,728,729,730,732,733,735,736,737,738,739,742,743,753,754,755,757,758,759,760,763,765,766,769,771,772,773,774,779,781,782,788,789,790,792,794,798,799,801,805,808,809,811,894,902],$VV8=[1,946],$VW8=[1,947],$VX8=[2,26,27,47,50,55,58,61,62,64,66,71,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,317,318,320,321,323,328,329,330,331,333,347,348,349,351,352,358,359,371,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,637,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,728,729,730,732,733,735,736,737,738,739,742,743,753,754,755,757,758,759,760,763,765,766,769,771,772,773,774,779,781,782,788,789,790,792,794,798,799,801,805,808,809,811,894,902],$VY8=[2,1302],$VZ8=[2,1407],$V_8=[27,75],$V$8=[2,1032],$V09=[1,952],$V19=[1,951],$V29=[1,955],$V39=[1,957],$V49=[1,959],$V59=[27,55,75,123,535,544,691],$V69=[27,75,123,535,544,691],$V79=[55,544,691],$V89=[2,1772],$V99=[1,964],$Va9=[27,55,75,116,123,535,544,691],$Vb9=[2,1054],$Vc9=[126,728],$Vd9=[1,966],$Ve9=[1,967],$Vf9=[1,972],$Vg9=[2,118,499,544,691],$Vh9=[1,976],$Vi9=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735],$Vj9=[1,987],$Vk9=[1,998],$Vl9=[1,997],$Vm9=[158,687,719],$Vn9=[26,44,152,166,198,205,217,266,533,534,535,538,547,596,615,618,623,657,674,682,688,715,720,851],$Vo9=[2,342],$Vp9=[1,1066],$Vq9=[2,354],$Vr9=[1,1068],$Vs9=[1,1069],$Vt9=[26,27,44,152,166,198,205,217,247,248,249,250,266,533,534,535,538,547,596,615,618,623,657,674,682,688,715,720,851],$Vu9=[2,1908],$Vv9=[2,118,499,544,691,801],$Vw9=[2,1920],$Vx9=[2,116,118,535,544,547,615,691],$Vy9=[2,27,116,118,123,535,544,547,615,691],$Vz9=[1,1091],$VA9=[1,1092],$VB9=[1,1093],$VC9=[27,535],$VD9=[27,123,535],$VE9=[1,1104],$VF9=[2,1710],$VG9=[1,1110],$VH9=[27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724],$VI9=[27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,769],$VJ9=[2,1128],$VK9=[544,620,691,743,757,766,774,782,809,894],$VL9=[2,1947],$VM9=[1,1122],$VN9=[1,1126],$VO9=[544,615,691],$VP9=[1,1137],$VQ9=[1,1142],$VR9=[1,1149],$VS9=[1,1155],$VT9=[1,1158],$VU9=[1,1159],$VV9=[1,1138],$VW9=[1,1140],$VX9=[1,1176],$VY9=[1,1195],$VZ9=[1,1156],$V_9=[1,1143],$V$9=[1,1177],$V0a=[1,1196],$V1a=[1,1197],$V2a=[1,1198],$V3a=[1,1188],$V4a=[1,1199],$V5a=[1,1200],$V6a=[1,1141],$V7a=[1,1194],$V8a=[1,1201],$V9a=[1,1157],$Vaa=[1,1202],$Vba=[1,1203],$Vca=[1,1204],$Vda=[1,1205],$Vea=[1,1206],$Vfa=[1,1207],$Vga=[1,1208],$Vha=[1,1189],$Via=[1,1193],$Vja=[1,1209],$Vka=[1,1210],$Vla=[1,1211],$Vma=[1,1139],$Vna=[1,1178],$Voa=[27,677],$Vpa=[2,1248],$Vqa=[1,1213],$Vra=[2,2427],$Vsa=[535,544,691],$Vta=[2,1265],$Vua=[26,27,544,691],$Vva=[26,544,691],$Vwa=[26,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735],$Vxa=[2,1820],$Vya=[26,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735],$Vza=[1,1240],$VAa=[1,1241],$VBa=[1,1243],$VCa=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,547,558,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,811,1011],$VDa=[27,158,687],$VEa=[2,1731],$VFa=[1,1258],$VGa=[2,1736],$VHa=[1,1261],$VIa=[2,1730],$VJa=[27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735],$VKa=[2,1733],$VLa=[1,1274],$VMa=[1,1295],$VNa=[1,1294],$VOa=[1,1302],$VPa=[1,1301],$VQa=[1,1303],$VRa=[1,1305],$VSa=[2,2621],$VTa=[27,279,307,544,691],$VUa=[2,1740],$VVa=[1,1326],$VWa=[27,307,544,691],$VXa=[2,2695],$VYa=[1,1334],$VZa=[1,1335],$V_a=[27,307],$V$a=[27,55,544,691],$V0b=[27,161],$V1b=[2,213],$V2b=[1,1350],$V3b=[2,1743],$V4b=[1,1357],$V5b=[1,1361],$V6b=[1,1362],$V7b=[1,1369],$V8b=[1,1371],$V9b=[1,1372],$Vab=[1,1373],$Vbb=[1,1375],$Vcb=[1,1383],$Vdb=[2,214],$Veb=[1,1402],$Vfb=[2,221],$Vgb=[1,1404],$Vhb=[1,1405],$Vib=[27,64,178,180],$Vjb=[1,1406],$Vkb=[2,1177],$Vlb=[1,1417],$Vmb=[1,1422],$Vnb=[152,544,547,615,691],$Vob=[1,1427],$Vpb=[1,1437],$Vqb=[1,1438],$Vrb=[1,1439],$Vsb=[1,1443],$Vtb=[2,470],$Vub=[1,1445],$Vvb=[1,1451],$Vwb=[27,154],$Vxb=[1,1462],$Vyb=[1,1464],$Vzb=[1,1460],$VAb=[1,1461],$VBb=[2,1942],$VCb=[1,1471],$VDb=[2,2260],$VEb=[1,1477],$VFb=[1,1479],$VGb=[1,1481],$VHb=[1,1484],$VIb=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,118,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,568,569,570,571,572,573,574,575,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,801],$VJb=[1,1487],$VKb=[1,1491],$VLb=[1,1494],$VMb=[1,1498],$VNb=[2,118,123,544,547,563,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,808,809,894],$VOb=[2,27,55,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,808,809,894],$VPb=[2,27,55,118,123,499,535,544,547,552,563,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,808,809,894],$VQb=[2,55,118,123,535,544,547,563,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,808,809,894],$VRb=[2,27,55,78,107,108,118,123,126,129,130,150,152,161,174,175,277,349,376,382,396,409,419,487,488,499,535,544,547,552,563,568,569,570,571,572,573,574,575,615,620,691,696,705,710,743,757,766,774,782,801,808,809,894],$VSb=[2,55,107,118,123,129,152,277,409,487,488,535,544,547,563,568,569,570,571,572,573,574,575,615,620,691,705,743,757,766,774,782,801,808,809,894],$VTb=[1,1519],$VUb=[1,1518],$VVb=[1,1522],$VWb=[1,1521],$VXb=[1,1528],$VYb=[1,1534],$VZb=[1,1533],$V_b=[1,1573],$V$b=[1,1571],$V0c=[1,1572],$V1c=[1,1599],$V2c=[1,1602],$V3c=[123,535],$V4c=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724],$V5c=[1,1614],$V6c=[1,1617],$V7c=[1,1622],$V8c=[1,1618],$V9c=[1,1620],$Vac=[1,1629],$Vbc=[1,1623],$Vcc=[1,1630],$Vdc=[1,1633],$Vec=[1,1621],$Vfc=[1,1634],$Vgc=[1,1619],$Vhc=[1,1631],$Vic=[307,544,691],$Vjc=[1,1689],$Vkc=[1,1690],$Vlc=[1,1695],$Vmc=[2,118,499,544,547,563,615,620,691,743,757,766,774,782,801,808,809,894],$Vnc=[1,1697],$Voc=[2,118,123,499,544,547,563,615,620,691,743,757,766,774,782,801,808,809,894],$Vpc=[26,44,152,166,198,205,217,266,533,534,535,538,544,547,596,615,618,623,657,674,682,688,691,715,720,851],$Vqc=[2,349],$Vrc=[2,116,118,123,535,544,547,615,691],$Vsc=[218,544,691],$Vtc=[123,544,691],$Vuc=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,773,774,779,781,782,788,789,790,792,801,808,809,894,902],$Vvc=[2,2211],$Vwc=[1,1724],$Vxc=[1,1738],$Vyc=[1,1740],$Vzc=[1,1751],$VAc=[118,499,544,615,691,743,757,766,774,782,801,809,894],$VBc=[2,1952],$VCc=[1,1770],$VDc=[2,1948],$VEc=[2,118,544,568,569,570,571,572,573,574,575,615,691,743,757,766,774,782,801,809,894],$VFc=[1,1775],$VGc=[2,118,499,544,568,569,570,571,572,573,574,575,615,691,743,757,766,774,782,801,809,894],$VHc=[2,27,118,499,544,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,809,894],$VIc=[544,615,620,691,743,757,766,774,782,809,894],$VJc=[1,1798],$VKc=[1,1794],$VLc=[1,1802],$VMc=[1,1810],$VNc=[1,1795],$VOc=[1,1796],$VPc=[1,1797],$VQc=[1,1799],$VRc=[1,1813],$VSc=[1,1804],$VTc=[1,1803],$VUc=[1,1805],$VVc=[1,1800],$VWc=[1,1793],$VXc=[1,1801],$VYc=[1,1812],$VZc=[1,1811],$V_c=[1,1823],$V$c=[1,1814],$V0d=[1,1819],$V1d=[1,1824],$V2d=[1,1815],$V3d=[1,1816],$V4d=[1,1817],$V5d=[1,1820],$V6d=[1,1821],$V7d=[1,1818],$V8d=[1,1826],$V9d=[1,1825],$Vad=[1,1831],$Vbd=[1,1827],$Vcd=[1,1835],$Vdd=[1,1828],$Ved=[1,1829],$Vfd=[1,1830],$Vgd=[1,1832],$Vhd=[1,1837],$Vid=[1,1836],$Vjd=[1,1838],$Vkd=[1,1833],$Vld=[1,1834],$Vmd=[1,1846],$Vnd=[1,1850],$Vod=[1,1869],$Vpd=[1,1866],$Vqd=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,789,790,801,808,809,894,902],$Vrd=[2,2188],$Vsd=[1,1872],$Vtd=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,773,774,779,781,782,788,789,790,792,801,808,809,894,902],$Vud=[2,2198],$Vvd=[2,2394],$Vwd=[1,1880],$Vxd=[1,1885],$Vyd=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,728,730,732,733,735,736,743,755,757,759,760,765,766,773,774,779,781,782,788,789,790,792,801,808,809,894,902],$Vzd=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,773,774,779,781,782,784,788,789,790,792,801,808,809,894,902],$VAd=[2,1849],$VBd=[1,1914],$VCd=[2,920],$VDd=[1,1925],$VEd=[2,118,544,691,801],$VFd=[1,1937],$VGd=[1,1935],$VHd=[1,1936],$VId=[2,932],$VJd=[2,27,118,123,499,535,544,552,615,620,691,743,757,766,774,782,801,808,809,894],$VKd=[2,118,535,544,615,620,691,743,757,766,774,782,801,808,809,894],$VLd=[2,2228],$VMd=[2,118,123,535,544,615,620,691,743,757,766,774,782,801,808,809,894],$VNd=[1,1944],$VOd=[26,66,71,74,78,84,86,88,92,99,134,135,156,161,166,176,177,181,182,382,544,691],$VPd=[2,1715],$VQd=[1,1953],$VRd=[2,1794],$VSd=[1,1975],$VTd=[544,691,728],$VUd=[2,2610],$VVd=[2,2622],$VWd=[2,2643],$VXd=[1,2014],$VYd=[2,2656],$VZd=[1,2028],$V_d=[1,2029],$V$d=[2,2682],$V0e=[1,2032],$V1e=[1,2036],$V2e=[2,1721],$V3e=[27,544,691],$V4e=[2,2700],$V5e=[1,2045],$V6e=[1,2047],$V7e=[1,2074],$V8e=[1,2072],$V9e=[1,2073],$Vae=[1,2078],$Vbe=[1,2079],$Vce=[1,2080],$Vde=[1,2081],$Vee=[1,2082],$Vfe=[1,2083],$Vge=[1,2084],$Vhe=[1,2085],$Vie=[1,2087],$Vje=[1,2094],$Vke=[78,107,108,129,152,409,544,691,705],$Vle=[27,152,544,691],$Vme=[2,176],$Vne=[2,1724],$Voe=[1,2119],$Vpe=[2,222],$Vqe=[1,2124],$Vre=[27,107,152,544,547,646,691],$Vse=[2,1179],$Vte=[1,2144],$Vue=[107,152,544,547,615,691],$Vve=[1,2146],$Vwe=[1,2156],$Vxe=[2,472],$Vye=[1,2162],$Vze=[152,544,691],$VAe=[1,2173],$VBe=[1,2172],$VCe=[1,2174],$VDe=[1,2176],$VEe=[1,2177],$VFe=[2,27,118,499,544,547,563,615,620,691,743,757,766,774,782,801,808,809,894],$VGe=[1,2183],$VHe=[27,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,808,809,894],$VIe=[2,2291],$VJe=[1,2191],$VKe=[1,2193],$VLe=[2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,774,782,801,808,809,894],$VMe=[1,2195],$VNe=[1,2199],$VOe=[1,2201],$VPe=[1,2203],$VQe=[1,2207],$VRe=[1,2209],$VSe=[1,2211],$VTe=[2,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,808,809,894],$VUe=[1,2221],$VVe=[1,2219],$VWe=[1,2222],$VXe=[1,2223],$VYe=[2,27,47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,351,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,646,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,773,774,779,781,782,788,789,790,792,801,808,809,894,902],$VZe=[2,47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,789,790,801,808,809,894,902],$V_e=[1,2224],$V$e=[2,27,47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,773,774,779,781,782,788,789,790,792,801,808,809,894,902],$V0f=[2,26,47,50,55,58,61,62,64,66,71,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,728,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,789,790,798,801,808,809,894,902],$V1f=[2,27,47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,773,774,779,781,782,788,789,790,792,801,808,809,894,902],$V2f=[2,47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,789,790,801,808,809,894,902],$V3f=[2,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,347,348,349,351,352,359,373,374,376,381,382,384,385,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,533,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,730,731,732,733,734,735,736,738,740,741,743,744,745,747,748,749,750,755,757,759,760,761,762,765,766,768,769,774,775,776,778,779,781,782,784,785,786,789,790,795,796,797,800,801,802,803,804,806,808,809,810,894,902,1011],$V4f=[2,118],$V5f=[27,75,535,544,691],$V6f=[2,1082],$V7f=[1,2241],$V8f=[1,2242],$V9f=[1,2243],$Vaf=[27,123,152,544,691],$Vbf=[1,2252],$Vcf=[1,2253],$Vdf=[2,118,544,568,569,570,571,572,573,574,575,615,691,774,801,894],$Vef=[2,27,118,123,499,544,568,569,570,571,572,573,574,575,615,691,774,801,894],$Vff=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724],$Vgf=[1,2275],$Vhf=[1,2271],$Vif=[1,2279],$Vjf=[1,2272],$Vkf=[1,2273],$Vlf=[1,2274],$Vmf=[1,2276],$Vnf=[1,2284],$Vof=[1,2281],$Vpf=[1,2280],$Vqf=[1,2282],$Vrf=[1,2277],$Vsf=[1,2270],$Vtf=[1,2278],$Vuf=[1,2292],$Vvf=[1,2293],$Vwf=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,347,348,349,351,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,728,730,732,733,735,736,737,738,739,742,743,753,754,755,757,758,759,760,763,765,766,771,772,773,774,779,781,782,788,789,790,792,794,799,801,805,808,809,894,902],$Vxf=[107,152,544,547,691],$Vyf=[2,2212],$Vzf=[1,2358],$VAf=[2,1088],$VBf=[27,161,544,691,728],$VCf=[161,544,691],$VDf=[161,544,691,728],$VEf=[2,1765],$VFf=[118,499,544,615,691,743,757,774,782,801,809,894],$VGf=[2,2449],$VHf=[1,2390],$VIf=[2,1953],$VJf=[2,118,544,568,569,570,571,572,573,574,575,615,691,743,757,774,782,801,809,894],$VKf=[1,2395],$VLf=[2,118,544,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,809,894],$VMf=[2,2053],$VNf=[2,118,499,544,568,569,570,571,572,573,574,575,615,691,743,757,774,782,801,809,894],$VOf=[544,615,620,691,743,757,766,774,782,808,809,894],$VPf=[2,1184],$VQf=[1,2406],$VRf=[208,756,762,800],$VSf=[2,2225],$VTf=[2,1211],$VUf=[1,2455],$VVf=[1,2463],$VWf=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,730,733,735,736,743,755,757,759,760,765,766,774,779,781,782,788,792,801,808,809,894,902],$VXf=[2,2056],$VYf=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,730,733,735,736,743,755,757,759,760,765,766,774,779,781,782,801,808,809,894,902],$VZf=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,727,730,733,735,736,743,755,757,759,760,765,766,774,779,781,782,801,808,809,894,902],$V_f=[2,2057],$V$f=[2,2058],$V0g=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,788,792,801,808,809,894,902],$V1g=[2,2059],$V2g=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,801,808,809,894,902],$V3g=[1,2490],$V4g=[1,2502],$V5g=[1,2500],$V6g=[1,2498],$V7g=[1,2501],$V8g=[1,2505],$V9g=[2,27,664,759,760],$Vag=[2,759,760],$Vbg=[1,2518],$Vcg=[1,2524],$Vdg=[1,2525],$Veg=[1,2532],$Vfg=[1,2533],$Vgg=[1,2534],$Vhg=[1,2539],$Vig=[1,2545],$Vjg=[1,2546],$Vkg=[1,2547],$Vlg=[1,2548],$Vmg=[1,2549],$Vng=[1,2550],$Vog=[1,2551],$Vpg=[1,2552],$Vqg=[1,2553],$Vrg=[1,2556],$Vsg=[1,2560],$Vtg=[1,2559],$Vug=[1,2563],$Vvg=[27,535,544,691],$Vwg=[27,544,691,808],$Vxg=[2,2730],$Vyg=[1,2581],$Vzg=[544,691,808],$VAg=[1,2584],$VBg=[27,123,535,544,664,691,808],$VCg=[535,544,691,808],$VDg=[123,535,544,691,808],$VEg=[2,27,118,123,126,277],$VFg=[2,1828],$VGg=[1,2590],$VHg=[1,2603],$VIg=[1,2608],$VJg=[1,2610],$VKg=[1,2612],$VLg=[2,390],$VMg=[1,2632],$VNg=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,615,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724],$VOg=[27,108,129,277],$VPg=[2,746],$VQg=[108,129,277],$VRg=[1,2640],$VSg=[78,107,108,116,129,152,277,307,376,382,409,544,691,705],$VTg=[1,2652],$VUg=[2,1726],$VVg=[1,2656],$VWg=[1,2657],$VXg=[2,874],$VYg=[1,2666],$VZg=[2,2585],$V_g=[1,2677],$V$g=[2,2625],$V0h=[2,2645],$V1h=[1,2686],$V2h=[2,2691],$V3h=[27,161,544,691],$V4h=[2,1813],$V5h=[1,2718],$V6h=[1,2717],$V7h=[1,2736],$V8h=[2,152],$V9h=[27,108,129,152,277,499,544,547,615,691,705],$Vah=[2,690],$Vbh=[1,2749],$Vch=[2,27,108,129,152,161,277,499,544,691],$Vdh=[27,384],$Veh=[2,608],$Vfh=[78,107,108,129,152,384,409,544,691,705],$Vgh=[1,2757],$Vhh=[1,2766],$Vih=[1,2767],$Vjh=[2,118,123,544,691],$Vkh=[2,1808],$Vlh=[27,123,532,544,691],$Vmh=[532,544,691],$Vnh=[2,179],$Voh=[1,2779],$Vph=[1,2780],$Vqh=[2,225],$Vrh=[2,286],$Vsh=[1,2795],$Vth=[1,2796],$Vuh=[1,2797],$Vvh=[2,896],$Vwh=[116,152,544,547,615,691],$Vxh=[27,152,544,547,691],$Vyh=[2,645],$Vzh=[1,2811],$VAh=[1,2817],$VBh=[2,107,108,129,152,153,161,227,277,384,409,544,547,615,691,705],$VCh=[1,2826],$VDh=[2,561],$VEh=[1,2830],$VFh=[1,2831],$VGh=[2,27,88,118,123,174,175,277,317,320,321,323,373,374,544,691,696,710],$VHh=[1,2838],$VIh=[2,27,118,123,177,333,373,374,544,691],$VJh=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,738,769],$VKh=[2,2530],$VLh=[1,2851],$VMh=[2,27,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,808,809,894],$VNh=[1,2860],$VOh=[1,2861],$VPh=[27,708,792],$VQh=[2,1078],$VRh=[2,1013],$VSh=[2,55,78,107,108,118,123,129,152,177,333,373,374,382,384,396,397,409,544,547,615,691,705],$VTh=[1,2887],$VUh=[1,2888],$VVh=[1,2890],$VWh=[1,2896],$VXh=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,1011],$VYh=[1,2935],$VZh=[1,2941],$V_h=[152,544,547,691],$V$h=[2,1086],$V0i=[2,1089],$V1i=[118,499,544,615,691,743,757,774,782,801,894],$V2i=[2,2454],$V3i=[1,2985],$V4i=[2,2450],$V5i=[2,118,544,568,569,570,571,572,573,574,575,615,691,743,757,774,782,801,894],$V6i=[1,2990],$V7i=[743,757,774,782,809,894],$V8i=[2,118,499,544,568,569,570,571,572,573,574,575,615,691,743,757,774,782,801,894],$V9i=[1,3013],$Vai=[1,3014],$Vbi=[1,3016],$Vci=[1,3015],$Vdi=[2,2226],$Vei=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,730,733,735,736,743,755,757,759,760,765,766,774,779,781,782,788,792,801,808,809,894,902],$Vfi=[2,2066],$Vgi=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,730,733,735,736,743,755,757,759,760,765,766,774,779,781,782,801,808,809,894,902],$Vhi=[2,2067],$Vii=[2,2068],$Vji=[2,2069],$Vki=[2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,727,730,733,735,736,743,755,757,759,760,765,766,774,779,781,782,801,808,809,894,902],$Vli=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,730,733,735,743,755,757,759,760,765,766,774,779,781,782,788,792,801,808,809,894,902],$Vmi=[2,2076],$Vni=[2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,730,733,735,743,755,757,759,760,765,766,774,779,781,782,801,808,809,894,902],$Voi=[2,2077],$Vpi=[2,2078],$Vqi=[2,2079],$Vri=[2,2080],$Vsi=[2,1212],$Vti=[2,2739],$Vui=[2,2740],$Vvi=[2,2741],$Vwi=[1,3048],$Vxi=[2,664,759,760],$Vyi=[1,3067],$Vzi=[1,3069],$VAi=[1,3071],$VBi=[27,118,123,782],$VCi=[2,2172],$VDi=[2,118,782],$VEi=[118,782],$VFi=[2,2405],$VGi=[1,3083],$VHi=[27,784],$VIi=[1,3084],$VJi=[1,3099],$VKi=[1,3100],$VLi=[1,3103],$VMi=[1,3102],$VNi=[1,3112],$VOi=[2,1246],$VPi=[1,3117],$VQi=[1,3143],$VRi=[2,1939],$VSi=[2,933],$VTi=[1,3158],$VUi=[2,935],$VVi=[1,3165],$VWi=[2,380],$VXi=[2,27,78,107,108,118,123,129,152,161,174,175,349,376,382,396,409,499,544,691,696,705,710],$VYi=[2,152,705],$VZi=[27,108,129],$V_i=[129,544,691],$V$i=[108,129],$V0j=[27,107,108,129,277,376,382,396,409,705],$V1j=[2,715],$V2j=[2,737],$V3j=[1,3203],$V4j=[2,868],$V5j=[2,2638],$V6j=[2,239],$V7j=[1,3249],$V8j=[1,3252],$V9j=[1,3254],$Vaj=[118,123],$Vbj=[2,118,123],$Vcj=[1,3259],$Vdj=[2,155],$Vej=[27,108,129,499,544,691,705],$Vfj=[1,3274],$Vgj=[1,3287],$Vhj=[1,3289],$Vij=[2,202],$Vjj=[2,159],$Vkj=[27,544,691,696,710],$Vlj=[2,215],$Vmj=[1,3309],$Vnj=[1,3310],$Voj=[544,691,696,710],$Vpj=[1,3345],$Vqj=[1,3346],$Vrj=[1,3347],$Vsj=[1,3348],$Vtj=[1,3336],$Vuj=[1,3341],$Vvj=[1,3343],$Vwj=[1,3329],$Vxj=[1,3330],$Vyj=[1,3331],$Vzj=[1,3332],$VAj=[1,3333],$VBj=[1,3334],$VCj=[1,3335],$VDj=[1,3337],$VEj=[1,3338],$VFj=[1,3339],$VGj=[1,3340],$VHj=[1,3342],$VIj=[1,3344],$VJj=[2,183],$VKj=[1,3350],$VLj=[2,436],$VMj=[2,278],$VNj=[1,3356],$VOj=[27,85],$VPj=[1,3358],$VQj=[1,3371],$VRj=[1,3375],$VSj=[1,3376],$VTj=[1,3383],$VUj=[2,542],$VVj=[2,27,88,118,123,174,175,277,317,320,321,323,544,691,696,710],$VWj=[1,3389],$VXj=[1,3390],$VYj=[1,3391],$VZj=[1,3392],$V_j=[1,3398],$V$j=[2,2292],$V0k=[2,1012],$V1k=[1,3416],$V2k=[2,1014],$V3k=[1,3437],$V4k=[2,118,123,782],$V5k=[228,230,544,691],$V6k=[2,332],$V7k=[1,3473],$V8k=[118,499,544,615,691,743,757,774,801,894],$V9k=[2,1991],$Vak=[1,3488],$Vbk=[2,2455],$Vck=[2,118,544,568,569,570,571,572,573,574,575,615,691,743,757,774,801,894],$Vdk=[1,3493],$Vek=[743,757,774,782,894],$Vfk=[2,2451],$Vgk=[2,1959],$Vhk=[1,3514],$Vik=[1,3515],$Vjk=[2,27,118,123,152,499,544,615,691,743,757,765,766,774,782,801,809,894],$Vkk=[2,1979],$Vlk=[2,118,152,544,568,569,570,571,572,573,574,575,615,691,743,757,765,766,774,782,801,809,894],$Vmk=[1,3527],$Vnk=[2,118,123,152,499,544,568,569,570,571,572,573,574,575,615,691,743,757,765,766,774,782,801,809,894],$Vok=[2,118,499,544,568,569,570,571,572,573,574,575,615,691,743,757,774,801,894],$Vpk=[1,3538],$Vqk=[1,3537],$Vrk=[27,668],$Vsk=[2,1225],$Vtk=[1,3557],$Vuk=[1,3571],$Vvk=[2,2411],$Vwk=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,784,789,790,801,808,809,894,902],$Vxk=[2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,728,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,789,790,801,808,809,894,902],$Vyk=[1,3606],$Vzk=[1,3610],$VAk=[1,3614],$VBk=[2,1254],$VCk=[2,2703],$VDk=[2,2728],$VEk=[1,3640],$VFk=[2,398],$VGk=[1,3651],$VHk=[27,108],$VIk=[2,695],$VJk=[1,3658],$VKk=[1,3661],$VLk=[27,118,123],$VMk=[1,3666],$VNk=[1,3670],$VOk=[2,728],$VPk=[1,3677],$VQk=[1,3678],$VRk=[1,3679],$VSk=[1,3684],$VTk=[2,797],$VUk=[27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,1011],$VVk=[1,3685],$VWk=[2,2668],$VXk=[2,61],$VYk=[2,240],$VZk=[2,118,177,333,373,374,544,691],$V_k=[2,264],$V$k=[1,3709],$V0l=[1,3713],$V1l=[108,129,544,691,705],$V2l=[27,152],$V3l=[1,3741],$V4l=[2,1807],$V5l=[1,3745],$V6l=[2,27,118,123,174,175,277,544,691,696,710],$V7l=[2,449],$V8l=[1,3758],$V9l=[1,3756],$Val=[1,3757],$Vbl=[1,3759],$Vcl=[1,3760],$Vdl=[2,118,123,174,175,277,544,691,696,710],$Vel=[2,27,88,118,123,174,175,277,317,320,321,323,349,544,691,696,710],$Vfl=[2,88,118,123,174,175,277,317,320,321,323,349,544,691,696,710],$Vgl=[2,1874],$Vhl=[1,3764],$Vil=[27,78,107,108,129,152,161,277,376,382,409,499,544,691,696,705,710],$Vjl=[1,3774],$Vkl=[1,3785],$Vll=[78,107,108,129,152,277,376,382,409,544,691,696,705,710],$Vml=[1,3791],$Vnl=[1,3790],$Vol=[27,107,108,129,152,208,277,351,443,446,499,544,547,646,691,705],$Vpl=[2,666],$Vql=[107,108,129,152,208,277,351,443,446,499,544,547,615,691,705],$Vrl=[1,3823],$Vsl=[1,3826],$Vtl=[1,3837],$Vul=[1,3867],$Vvl=[230,544,691],$Vwl=[2,336],$Vxl=[2,333],$Vyl=[1,3878],$Vzl=[1,3879],$VAl=[2,1090],$VBl=[118,499,544,615,691,774,801],$VCl=[2,2015],$VDl=[1,3901],$VEl=[1,3902],$VFl=[1,3903],$VGl=[2,1992],$VHl=[2,118,544,568,569,570,571,572,573,574,575,615,691,774,801],$VIl=[1,3909],$VJl=[1,3910],$VKl=[1,3911],$VLl=[743,757,774,894],$VMl=[2,27,118,499,544,568,569,570,571,572,573,574,575,615,691,743,757,766,774,782,801,809,894],$VNl=[1,3939],$VOl=[1,3940],$VPl=[2,118,499,544,568,569,570,571,572,573,574,575,615,691,774,801],$VQl=[1,3961],$VRl=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,730,733,735,736,743,755,757,759,760,765,766,774,779,781,782,788,792,801,808,809,894,902],$VSl=[2,2075],$VTl=[2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,730,733,735,736,743,755,757,759,760,765,766,774,779,781,782,801,808,809,894,902],$VUl=[2,2770],$VVl=[2,2173],$VWl=[2,2416],$VXl=[1,3986],$VYl=[1,3985],$VZl=[1,4000],$V_l=[2,1275],$V$l=[2,936],$V0m=[2,934],$V1m=[27,78,107,108,129,152,161,277,376,382,409,499,544,691,705],$V2m=[2,425],$V3m=[78,107,108,129,152,277,376,382,409,544,691,705],$V4m=[1,4030],$V5m=[2,27,544,691],$V6m=[27,108,277,499,544,691],$V7m=[129,277,544,691],$V8m=[2,750],$V9m=[2,575],$Vam=[107,129,382,396,409,544,691,705],$Vbm=[1,4046],$Vcm=[27,123,544,691],$Vdm=[2,66],$Vem=[1,4075],$Vfm=[27,78,107,108,129,152,384,409,544,691,705],$Vgm=[2,161],$Vhm=[2,27,118,123,174,175,544,691,696,710],$Vim=[2,27,88,118,123,174,175,277,317,320,321,323,333,373,374,544,691,696,710],$Vjm=[2,467],$Vkm=[1,4099],$Vlm=[1,4100],$Vmm=[2,118,123,174,175,544,691,696,710],$Vnm=[1,4114],$Vom=[1,4120],$Vpm=[1,4118],$Vqm=[1,4128],$Vrm=[1,4122],$Vsm=[1,4130],$Vtm=[2,437],$Vum=[2,530],$Vvm=[2,531],$Vwm=[1,4143],$Vxm=[1,4149],$Vym=[27,152,544,547,664,691],$Vzm=[2,672],$VAm=[107,108,129,152,208,277,351,446,544,547,615,691,705],$VBm=[1,4157],$VCm=[1,4174],$VDm=[2,953],$VEm=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735],$VFm=[2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,118,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,563,615,620,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,774,782,801,808,809,894],$VGm=[2,340],$VHm=[1,4199],$VIm=[2,337],$VJm=[1,4202],$VKm=[2,1087],$VLm=[2,1091],$VMm=[118,499,544,615,691,801],$VNm=[2,2046],$VOm=[2,2016],$VPm=[2,118,544,568,569,570,571,572,573,574,575,615,691,801],$VQm=[1,4218],$VRm=[2,27,118,499,544,568,569,570,571,572,573,574,575,615,691,774,801],$VSm=[2,27,118,499,544,615,691,774,801],$VTm=[2,2018],$VUm=[2,1980],$VVm=[2,118,123,152,544,568,569,570,571,572,573,574,575,615,691,743,757,765,766,774,782,801,809,894],$VWm=[2,118,499,544,568,569,570,571,572,573,574,575,615,691,801],$VXm=[2,2063],$VYm=[2,2074],$VZm=[1,4285],$V_m=[27,736,1005],$V$m=[2,2407],$V0n=[1,4301],$V1n=[27,78,107,108,129,152,382,409,499,544,691,705],$V2n=[2,566],$V3n=[78,107,108,129,152,382,409,544,691,705],$V4n=[1,4317],$V5n=[2,592],$V6n=[107,129,409,544,691,705],$V7n=[1,4340],$V8n=[1,4341],$V9n=[27,107,108,129,382,396,409,544,691,705],$Van=[1,4353],$Vbn=[1,4358],$Vcn=[27,78,107,108,129,152,409,499,544,691,705],$Vdn=[1,4370],$Ven=[2,2007],$Vfn=[1,4375],$Vgn=[1,4376],$Vhn=[1,4379],$Vin=[1,4381],$Vjn=[2,27,88,118,123,174,175,176,177,277,317,320,321,323,333,373,374,544,691,696,710],$Vkn=[1,4397],$Vln=[1,4396],$Vmn=[1,4403],$Vnn=[1,4402],$Von=[2,123,349],$Vpn=[1,4408],$Vqn=[2,27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,347,349,351,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,737,738,739,742,753,754,758,763,771,772,794,799,805,811],$Vrn=[1,4410],$Vsn=[1,4409],$Vtn=[1,4415],$Vun=[1,4416],$Vvn=[1,4417],$Vwn=[1,4418],$Vxn=[1,4422],$Vyn=[2,677],$Vzn=[107,108,129,152,208,277,446,544,547,615,691,705],$VAn=[1,4438],$VBn=[107,108,129,152,208,277,351,443,446,544,547,615,691,705],$VCn=[1,4453],$VDn=[1,4455],$VEn=[1,4458],$VFn=[2,2532],$VGn=[27,118],$VHn=[2,2318],$VIn=[118,123,544,691],$VJn=[2,2047],$VKn=[1,4481],$VLn=[1,4480],$VMn=[1,4500],$VNn=[2,1993],$VOn=[2,27,118,123,499,544,568,569,570,571,572,573,574,575,615,691,743,757,774,788,792,801,894],$VPn=[2,118,123,544,568,569,570,571,572,573,574,575,615,691,743,757,774,779,801,894],$VQn=[1,4515],$VRn=[2,1968],$VSn=[1,4533],$VTn=[1,4538],$VUn=[27,544,664,691],$VVn=[1,4549],$VWn=[27,118,150,385,752,1005],$VXn=[2,2426],$VYn=[2,118,150,385,752,1005],$VZn=[418,544,691],$V_n=[2,582],$V$n=[2,751],$V0o=[2,633],$V1o=[1,4583],$V2o=[107,129,544,691,705],$V3o=[1,4585],$V4o=[27,107,108,129,409,544,691,705],$V5o=[27,107,129,277,409,487,488,544,691,705],$V6o=[2,778],$V7o=[107,129,277,409,487,488,544,691,705],$V8o=[1,4605],$V9o=[108,544,691],$Vao=[2,550],$Vbo=[2,620],$Vco=[2,27,118,123,499,544,568,569,570,571,572,573,574,575,615,691,743,757,774,779,788,792,801,894],$Vdo=[2,532],$Veo=[2,118,177,333,373,374],$Vfo=[2,682],$Vgo=[107,108,129,152,208,277,544,547,615,691,705],$Vho=[1,4651],$Vio=[1,4666],$Vjo=[2,27,118,499,544,568,569,570,571,572,573,574,575,615,691,801],$Vko=[2,2026],$Vlo=[2,2030],$Vmo=[2,2034],$Vno=[2,27,118,123,499,544,568,569,570,571,572,573,574,575,615,691,774,801],$Voo=[2,118,123,544,568,569,570,571,572,573,574,575,615,691,774,801],$Vpo=[1,4688],$Vqo=[2,2010],$Vro=[2,118,123,544,568,569,570,571,572,573,574,575,615,691,743,757,774,801,894],$Vso=[1,4696],$Vto=[1,4700],$Vuo=[1,4701],$Vvo=[1,4706],$Vwo=[27,118,150],$Vxo=[2,2436],$Vyo=[1,4716],$Vzo=[1,4715],$VAo=[1,4717],$VBo=[2,118,150],$VCo=[1,4722],$VDo=[2,1250],$VEo=[1,4730],$VFo=[27,107,108,129,152,409,499,544,691,705],$VGo=[2,624],$VHo=[107,108,129,152,409,544,691,705],$VIo=[1,4743],$VJo=[2,639],$VKo=[1,4755],$VLo=[129,544,691,705],$VMo=[1,4759],$VNo=[27,107,108,129,152,277,499,544,691,705],$VOo=[27,107,129,277,409,488,544,691,705],$VPo=[2,782],$VQo=[1,4774],$VRo=[107,129,277,409,488,544,691,705],$VSo=[2,686],$VTo=[107,108,129,152,277,544,547,615,691,705],$VUo=[1,4804],$VVo=[1,4813],$VWo=[2,667],$VXo=[2,2319],$VYo=[1,4832],$VZo=[1,4833],$V_o=[1,4836],$V$o=[2,1228],$V0p=[2,2441],$V1p=[1,4843],$V2p=[1,4844],$V3p=[1,4846],$V4p=[27,764,787],$V5p=[2,1234],$V6p=[107,108,129,152,544,691,705],$V7p=[27,108,129,152,277,499,544,691,705],$V8p=[1,4874],$V9p=[108,129,152,277,544,691,705],$Vap=[107,108,129,152,277,544,691,705],$Vbp=[1,4882],$Vcp=[27,107,129,277,409,544,691,705],$Vdp=[2,784],$Vep=[107,129,277,409,544,691,705],$Vfp=[1,4893],$Vgp=[1,4894],$Vhp=[27,107,108,129,152,277,499,544,547,615,646,691,705],$Vip=[1,4908],$Vjp=[1,4910],$Vkp=[1,4913],$Vlp=[2,2418],$Vmp=[2,27,118,150],$Vnp=[1,4928],$Vop=[108,129,152,544,691,705],$Vpp=[107,129,277,544,691,705],$Vqp=[1,4961],$Vrp=[1,4971],$Vsp=[1,4973],$Vtp=[1,4982],$Vup=[1,4990],$Vvp=[129,277,544,691,705],$Vwp=[1,5004],$Vxp=[2,27,118],$Vyp=[108,129,544,691],$Vzp=[2,703],$VAp=[277,544,691],$VBp=[499,544,691],$VCp=[2,698],$VDp=[2,757]; +var parser = {trace: function trace () { }, +yy: {}, +symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"AnalyzeStatement":5,"CreateStatement":6,"DropStatement":7,"AbortStatement":8,"GrantStatement":9,"RevokeStatement":10,"DescribeStatement":11,"SetRoleStatement":12,"SetSpecification":13,"ShowStatement":14,"UseStatement":15,"DataDefinition_EDIT":16,"AlterStatement_EDIT":17,"AnalyzeStatement_EDIT":18,"CreateStatement_EDIT":19,"DropStatement_EDIT":20,"AbortStatement_EDIT":21,"GrantStatement_EDIT":22,"RevokeStatement_EDIT":23,"DescribeStatement_EDIT":24,"SetRoleStatement_EDIT":25,"SET":26,"CURSOR":27,"ShowStatement_EDIT":28,"UseStatement_EDIT":29,"AlterDatabase":30,"AlterIndex":31,"AlterMaterializedView":32,"AlterTable":33,"AlterView":34,"Msck":35,"ReloadFunction":36,"AlterDatabase_EDIT":37,"AlterIndex_EDIT":38,"AlterMaterializedView_EDIT":39,"AlterTable_EDIT":40,"AlterView_EDIT":41,"Msck_EDIT":42,"ReloadFunction_EDIT":43,"ALTER":44,"DatabaseOrSchema":45,"RegularOrBacktickedIdentifier":46,"DBPROPERTIES":47,"ParenthesizedPropertyAssignmentList":48,"HdfsLocation":49,"OWNER":50,"PrincipalSpecification":51,"HdfsLocation_EDIT":52,"PrincipalSpecification_EDIT":53,"INDEX":54,"ON":55,"SchemaQualifiedTableIdentifier":56,"OptionalPartitionSpec":57,"REBUILD":58,"SchemaQualifiedTableIdentifier_EDIT":59,"OptionalPartitionSpec_EDIT":60,"MATERIALIZED":61,"VIEW":62,"EnableOrDisable":63,"REWRITE":64,"AlterTableLeftSide":65,"ADD":66,"OptionalIfNotExists":67,"PartitionSpec":68,"OptionalHdfsLocation":69,"OptionalPartitionSpecs":70,"CONSTRAINT":71,"PrimaryKeySpecification":72,"TableConstraint":73,"RENAME":74,"TO":75,"RegularOrBackTickedSchemaQualifiedName":76,"ClusteredBy":77,"SKEWED":78,"BY":79,"ParenthesizedColumnList":80,"ParenthesizedSkewedValueList":81,"OptionalStoredAsDirectories":82,"ExchangeSpecification":83,"RECOVER":84,"PARTITIONS":85,"TOUCH":86,"ArchiveOrUnArchive":87,"NOT":88,"STORED_AS_DIRECTORIES":89,"SKEWED_LOCATION":90,"ParenthesizedSkewedLocationList":91,"CHANGE":92,"COLUMN":93,"ParenthesizedColumnSpecificationList":94,"OptionalCascadeOrRestrict":95,"DropOperations":96,"OptionalPartitionOperations":97,"AlterTableLeftSide_EDIT":98,"REPLACE":99,"OptionalIfNotExists_EDIT":100,"OptionalPartitionSpecs_EDIT":101,"PartitionSpec_EDIT":102,"PrimaryKeySpecification_EDIT":103,"ForeignKeySpecification_EDIT":104,"ClusteredBy_EDIT":105,"ExchangeSpecification_EDIT":106,"STORED":107,"AS":108,"ParenthesizedSkewedLocationList_EDIT":109,"ParenthesizedColumnList_EDIT":110,"OptionalStoredAsDirectories_EDIT":111,"OptionalPartitionOperations_EDIT":112,"DropOperations_EDIT":113,"AddOrReplace":114,"ParenthesizedStatsList":115,"(":116,"StatsList":117,")":118,"ParenthesizedStatsList_EDIT":119,"StatsList_EDIT":120,"RightParenthesisOrError":121,"StatsAssignment":122,",":123,"StatsAssignment_EDIT":124,"QuotedValue":125,"=":126,"FILEFORMAT":127,"FileFormat":128,"TBLPROPERTIES":129,"SERDE":130,"OptionalWithSerdeproperties":131,"SERDEPROPERTIES":132,"AddReplaceColumns":133,"CONCATENATE":134,"COMPACT":135,"OptionalAndWait":136,"OptionalWithOverwriteTblProperties":137,"NoDropOrOffline":138,"OptionalColumn":139,"ColumnIdentifier":140,"ColumnSpecification":141,"OptionalAfterOrFirst":142,"AddReplaceColumns_EDIT":143,"ColumnSpecification_EDIT":144,"OptionalAfterOrFirst_EDIT":145,"AndWait_EDIT":146,"WithOverwriteTblProperties_EDIT":147,"NoDropOrOffline_EDIT":148,"WithSerdeproperties_EDIT":149,"AND":150,"WAIT":151,"WITH":152,"OVERWRITE":153,"COLUMNS":154,"ParenthesizedColumnSpecificationList_EDIT":155,"EXCHANGE":156,"ExchangePartitionSpec":157,"TABLE":158,"RegularOrBackTickedSchemaQualifiedName_EDIT":159,"ExchangePartitionSpec_EDIT":160,"PARTITION":161,"OneOrMorePartitionSpecLists":162,"PartitionSpecList":163,"OneOrMorePartitionSpecLists_EDIT":164,"PartitionSpecList_EDIT":165,"DROP":166,"OptionalIfExists":167,"OneOrMorePartitionSpecs":168,"OptionalPurge":169,"OneOrMorePartitionSpecs_EDIT":170,"OptionalIfExists_EDIT":171,"ColumnIdentifier_EDIT":172,"AfterOrFirst":173,"AFTER":174,"FIRST":175,"ENABLE":176,"DISABLE":177,"NO_DROP":178,"OptionalCascade":179,"OFFLINE":180,"ARCHIVE":181,"UNARCHIVE":182,"AnyCursor":183,"PartitionSpecWithLocationList":184,"PartitionSpecWithLocation":185,"PartitionSpecWithLocation_EDIT":186,"SkewedLocationList":187,"SkewedLocationList_EDIT":188,"SkewedLocation":189,"SkewedLocation_EDIT":190,"ColumnReference":191,"ColumnReference_EDIT":192,"ColumnReferences":193,"AlterViewLeftSide":194,"QuerySpecification":195,"AlterViewLeftSide_EDIT":196,"QuerySpecification_EDIT":197,"MSCK":198,"OptionalRepair":199,"OptionalAddDropSyncPartitions":200,"AddDropSyncPartitions_EDIT":201,"REPAIR":202,"AddDropOrSync":203,"SYNC":204,"RELOAD":205,"FUNCTION":206,"NullableComment":207,"NULL":208,"SqlStatement":209,"ExplainClause":210,"DataManipulation":211,"SqlStatement_EDIT":212,"ExplainClause_EDIT":213,"DataManipulation_EDIT":214,"CommonTableExpression":215,"SetSpecification_EDIT":216,"ANALYZE":217,"COMPUTE":218,"STATISTICS":219,"OptionalForColumns":220,"OptionalCacheMetadata":221,"OptionalNoscan":222,"ForColumns":223,"CacheMetadata":224,"ForColumns_EDIT":225,"CacheMetadata_EDIT":226,"FOR":227,"CACHE":228,"METADATA":229,"NOSCAN":230,"EXPLAIN":231,"OptionalExplainTypes":232,"FORMATTED":233,"AST":234,"AUTHORIZATION":235,"CBO":236,"OptionalCostOrJoincost":237,"DEPENDENCY":238,"EXTENDED":239,"LOCKS":240,"VECTORIZATION":241,"OptionalOnly":242,"OptionalVectorizationTypes":243,"COST":244,"JOINCOST":245,"ONLY":246,"DETAIL":247,"EXPRESSION":248,"OPERATOR":249,"SUMMARY":250,"DatabaseDefinition":251,"TableDefinition":252,"ViewDefinition":253,"MaterializedViewDefinition":254,"RoleDefinition":255,"FunctionDefinition":256,"IndexDefinition":257,"MacroDefinition":258,"DatabaseDefinition_EDIT":259,"TableDefinition_EDIT":260,"ViewDefinition_EDIT":261,"MaterializedViewDefinition_EDIT":262,"FunctionDefinition_EDIT":263,"IndexDefinition_EDIT":264,"MacroDefinition_EDIT":265,"CREATE":266,"OptionalTemporary":267,"OptionalTransactional":268,"OptionalExternal":269,"RegularIdentifier":270,"DatabaseDefinitionOptionals":271,"DatabaseDefinitionOptionals_EDIT":272,"OptionalComment":273,"OptionalDbProperties":274,"OptionalComment_INVALID":275,"Comment":276,"COMMENT":277,"Comment_INVALID":278,"SINGLE_QUOTE":279,"DOUBLE_QUOTE":280,"VALUE":281,"DbProperties":282,"PropertyAssignmentList":283,"PropertyAssignment":284,"UnsignedValueSpecification":285,"TableDefinitionRightPart":286,"LifeCyclePart":287,"TableDefinitionRightPart_EDIT":288,"TableIdentifierAndOptionalColumnSpecification":289,"OptionalPartitionedBy":290,"OptionalClusteredBy":291,"OptionalSkewedBy":292,"OptionalRowFormat":293,"OptionalStoredAsOrBy":294,"OptionalTblproperties":295,"OptionalAsSelectStatement":296,"TableIdentifierAndOptionalColumnSpecification_EDIT":297,"PartitionedBy_EDIT":298,"SkewedBy_EDIT":299,"RowFormat_EDIT":300,"StoredAsOrBy_EDIT":301,"AsSelectStatement_EDIT":302,"SchemaQualifiedIdentifier":303,"OptionalColumnSpecificationsOrLike":304,"OptionalColumnSpecificationsOrLike_EDIT":305,"SchemaQualifiedIdentifier_EDIT":306,"LIKE":307,"ColumnSpecificationList":308,"TableConstraints":309,"ColumnSpecificationList_EDIT":310,"TableConstraints_EDIT":311,"ColumnDataType":312,"OptionalColumnOptions":313,"ColumnDataType_EDIT":314,"ColumnOptions":315,"ColumnOption":316,"PRIMARY":317,"KEY":318,"ColumnOptionOptionals":319,"UNIQUE":320,"DEFAULT":321,"DefaultValue":322,"CHECK":323,"ValueExpression":324,"OptionalEnableOrDisable":325,"OptionalNovalidate":326,"OptionalRelyOrNorely":327,"LITERAL":328,"CURRENT_USER":329,"CURRENT_DATE":330,"CURRENT_TIMESTAMP":331,"OptionalDisable":332,"NOVALIDATE":333,"PrimitiveType":334,"ArrayType":335,"MapType":336,"StructType":337,"UnionType":338,"ArrayType_INVALID":339,"MapType_INVALID":340,"StructType_INVALID":341,"UnionType_INVALID":342,"ArrayType_EDIT":343,"MapType_EDIT":344,"StructType_EDIT":345,"UnionType_EDIT":346,"ARRAY":347,"<":348,">":349,"GreaterThanOrError":350,"MAP":351,"STRUCT":352,"StructDefinitionList":353,"StructDefinitionList_EDIT":354,"StructDefinition":355,"StructDefinition_EDIT":356,"Commas":357,":":358,"UNIONTYPE":359,"ColumnDataTypeList":360,"ColumnDataTypeList_EDIT":361,"ColumnDataTypeListInner_EDIT":362,"ConstraintList":363,"ConstraintList_EDIT":364,"TableConstraint_EDIT":365,"TableConstraintLeftPart":366,"TableConstraintLeftPart_EDIT":367,"ForeignKeySpecification":368,"PrimaryKey":369,"PrimaryKey_EDIT":370,"FOREIGN":371,"REFERENCES":372,"RELY":373,"NORELY":374,"PartitionedBy":375,"PARTITIONED":376,"OptionalPartitionedOn":377,"PartitionedOn":378,"PartitionedOn_EDIT":379,"LessThanOrEqualTo":380,"COMPARISON_OPERATOR":381,"CLUSTERED":382,"OptionalSortedBy":383,"INTO":384,"UNSIGNED_INTEGER":385,"BUCKETS":386,"OptionalSortedBy_EDIT":387,"OptionalClusteredOrDistributedOn":388,"ClusteredOn":389,"DistributedOn":390,"SortedOn":391,"ClusteredOrDistributedOn_EDIT":392,"ClusteredOn_EDIT":393,"DistributedOn_EDIT":394,"SortedOn_EDIT":395,"DISTRIBUTED":396,"SORTED":397,"ParenthesizedSortList":398,"ParenthesizedSortList_EDIT":399,"SortList":400,"SortList_EDIT":401,"SortIdentifier":402,"SortIdentifier_EDIT":403,"OptionalAscOrDesc":404,"SkewedBy":405,"SkewedValueList":406,"ParenthesizedSimpleValueList":407,"RowFormat":408,"ROW":409,"FORMAT":410,"RowFormatSpec":411,"RowFormatSpec_EDIT":412,"StoredAsOrBy":413,"StoredAs":414,"StoredAs_EDIT":415,"OptionalStoredAs":416,"AVRO":417,"INPUTFORMAT":418,"OUTPUTFORMAT":419,"JSONFILE":420,"ORC":421,"PARQUET":422,"RCFILE":423,"SEQUENCEFILE":424,"TEXTFILE":425,"DelimitedRowFormat":426,"DelimitedRowFormat_EDIT":427,"DELIMITED":428,"OptionalFieldsTerminatedBy":429,"OptionalCollectionItemsTerminatedBy":430,"OptionalMapKeysTerminatedBy":431,"OptionalLinesTerminatedBy":432,"OptionalNullDefinedAs":433,"OptionalFieldsTerminatedBy_EDIT":434,"OptionalCollectionItemsTerminatedBy_EDIT":435,"OptionalMapKeysTerminatedBy_EDIT":436,"OptionalLinesTerminatedBy_EDIT":437,"OptionalNullDefinedAs_EDIT":438,"FIELDS":439,"TERMINATED":440,"SingleQuotedValue":441,"ESCAPED":442,"COLLECTION":443,"ITEMS":444,"KEYS":445,"LINES":446,"DEFINED":447,"WithSerdeproperties":448,"TblProperties":449,"AsSelectStatement":450,"CommitLocations":451,"OptionalDisableRewrite":452,"DisableRewrite_EDIT":453,"OptionalParenthesizedViewColumnList":454,"ParenthesizedViewColumnList_EDIT":455,"TemporaryFunction":456,"OptionalUsing":457,"TemporaryFunction_EDIT":458,"OptionalUsing_EDIT":459,"TEMPORARY":460,"FunctionReference":461,"FunctionReference_EDIT":462,"SingleQuotedValue_EDIT":463,"USING":464,"OneOrMoreFunctionResources":465,"FunctionResource":466,"FunctionResourceType":467,"FILE":468,"JAR":469,"ParenthesizedViewColumnList":470,"ViewColumnList":471,"ViewColumnList_EDIT":472,"ROLE":473,"ExistingTable":474,"ParenthesizedIndexColumnList":475,"IndexType":476,"OptionalWithDeferredRebuild":477,"OptionalIdxProperties":478,"OptionalInTable":479,"ExistingTable_EDIT":480,"ParenthesizedIndexColumnList_EDIT":481,"IndexType_EDIT":482,"OptionalWithDeferredRebuild_EDIT":483,"OptionalInTable_EDIT":484,"QuotedValue_EDIT":485,"DEFERRED":486,"IDXPROPERTIES":487,"IN":488,"IndexColumnList":489,"IndexColumnList_EDIT":490,"MACRO":491,"MacroArguments":492,"MacroArguments_EDIT":493,"ValueExpression_EDIT":494,"MacroArgumentList":495,"MacroArgumentList_EDIT":496,"MacroArgument":497,"MacroArgument_EDIT":498,"LIFECYCLE":499,"DeleteStatement":500,"InsertStatement":501,"MergeStatement":502,"LoadStatement":503,"ImportStatement":504,"ExportStatement":505,"UpdateStatement":506,"DeleteStatement_EDIT":507,"InsertStatement_EDIT":508,"CommonTableExpression_EDIT":509,"MergeStatement_EDIT":510,"LoadStatement_EDIT":511,"ImportStatement_EDIT":512,"ExportStatement_EDIT":513,"UpdateStatement_EDIT":514,"DropDatabaseStatement":515,"DropFunctionStatement":516,"DropRoleStatement":517,"DropTableStatement":518,"DropIndexStatement":519,"DropMacroStatement":520,"DropMaterializedViewStatement":521,"DropViewStatement":522,"TruncateTableStatement":523,"DropDatabaseStatement_EDIT":524,"DropFunctionStatement_EDIT":525,"DropTableStatement_EDIT":526,"DropIndexStatement_EDIT":527,"DropMacroStatement_EDIT":528,"DropMaterializedViewStatement_EDIT":529,"DropViewStatement_EDIT":530,"TruncateTableStatement_EDIT":531,"PURGE":532,"TRUNCATE":533,"DELETE":534,"FROM":535,"OptionalWhereClause":536,"WhereClause_EDIT":537,"ABORT":538,"TRANSACTIONS":539,"TransactionIdList":540,"UnsignedNumericLiteral":541,"SqlStatements":542,"NonStartingToken":543,";":544,"NewStatement":545,"SelectStatement":546,"SELECT":547,"OptionalAllOrDistinct":548,"SelectList_ERROR":549,"TableExpression":550,"SelectList":551,"TableExpression_ERROR":552,"SelectStatement_EDIT":553,"SelectList_ERROR_EDIT":554,"TableExpression_EDIT":555,"SelectList_EDIT":556,"ErrorList":557,"Errors":558,"SetOption":559,"SetValue":560,"ALL":561,"LateralView":562,"LATERAL":563,"OptionalOuter":564,"ArbitraryFunction":565,"LateralViewColumnAliases":566,"JoinType_EDIT":567,"FULL":568,"LEFT":569,"RIGHT":570,"CROSS":571,"JOIN":572,"OUTER":573,"INNER":574,"SEMI":575,"OptionalSelectConditions_EDIT":576,"WhereClause":577,"OptionalGroupByClause":578,"OptionalHavingClause":579,"OptionalWindowClause":580,"OptionalOrderByClause":581,"OptionalClusterOrDistributeBy":582,"OptionalLimitClause":583,"HavingClause":584,"WindowClause":585,"OrderByClause":586,"ClusterOrDistributeBy":587,"LimitClause":588,"GroupByClause_EDIT":589,"HavingClause_EDIT":590,"WindowClause_EDIT":591,"OrderByClause_EDIT":592,"ClusterOrDistributeBy_EDIT":593,"LimitClause_EDIT":594,"GroupByClause":595,"GRANT":596,"PrivilegeTypeList":597,"OptionalOnSpecification":598,"PrincipalSpecificationList":599,"OptionalWithGrantOption":600,"UserOrRoleList":601,"OptionalWithAdminOption":602,"PrivilegeTypeList_EDIT":603,"OnSpecification_EDIT":604,"PrincipalSpecificationList_EDIT":605,"WithGrantOption_EDIT":606,"WithAdminOption_EDIT":607,"ObjectSpecification":608,"ObjectSpecification_EDIT":609,"DATABASE":610,"PrivilegeTypeWithOptionalColumn":611,"PrivilegeTypeWithOptionalColumn_EDIT":612,"PrivilegeType":613,"OptionalParenthesizedColumnList":614,"INSERT":615,"LOCK":616,"SHOW_DATABASE":617,"UPDATE":618,"USER":619,"GROUP":620,"OPTION":621,"ADMIN":622,"REVOKE":623,"PrivilegesOrGrantOption":624,"PrivilegesOrGrantOption_EDIT":625,"PRIVILEGES":626,"InsertWithoutQuery":627,"FromClause":628,"Inserts":629,"SelectWithoutTableExpression":630,"OptionalSelectConditions":631,"InsertWithoutQuery_EDIT":632,"Inserts_EDIT":633,"FromClause_EDIT":634,"SelectWithoutTableExpression_EDIT":635,"OptionalTable":636,"VALUES":637,"InsertValuesList":638,"LOCAL":639,"DIRECTORY":640,"HdfsPath":641,"OptionalInsertRowFormat":642,"OVERWRITE_DIRECTORY":643,"HdfsPath_EDIT":644,"OptionalInsertRowFormat_EDIT":645,"OptionalStoredAs_EDIT":646,"OptionalParenthesizedColumnList_EDIT":647,"GenericInsert":648,"GenericInsert_EDIT":649,"ParenthesizedRowValuesList":650,"RowValuesList":651,"InValueList":652,"MergeStatementLeftPart":653,"WhenList":654,"MergeStatementLeftPart_EDIT":655,"WhenList_EDIT":656,"MERGE":657,"MergeSource":658,"MergeSource_EDIT":659,"TableSubQueryInner":660,"TableSubQueryInner_EDIT":661,"WhenClause":662,"WhenClause_EDIT":663,"WHEN":664,"OptionalNot":665,"MATCHED":666,"OptionalMatchCondition":667,"THEN":668,"UpdateDeleteOrInsert":669,"MatchCondition_EDIT":670,"UpdateDeleteOrInsert_EDIT":671,"SetClauseList":672,"SetClauseList_EDIT":673,"LOAD":674,"DATA":675,"OptionalLocal":676,"INPATH":677,"OptionalOverwrite":678,"OptionalInputFormat":679,"InputFormat_EDIT":680,"InputFormat":681,"IMPORT":682,"OptionalTableWithPartition":683,"PushHdfsLexerState":684,"TableWithPartition":685,"TableWithPartition_EDIT":686,"EXTERNAL":687,"EXPORT":688,"REPLICATION":689,"SqlSyntax":690,"EOF":691,"SqlAutocomplete":692,"SqlStatements_EDIT":693,"NonReservedKeyword":694,"BUCKET":695,"CASCADE":696,"COMPACTIONS":697,"DATABASES":698,"DAY":699,"DAYOFWEEK":700,"DOUBLE_PRECISION":701,"FUNCTIONS":702,"HOUR":703,"LAST":704,"LOCATION":705,"MINUTE":706,"MONTH":707,"PERCENT":708,"QUARTER":709,"RESTRICT":710,"ROLES":711,"SCHEMAS":712,"SECOND":713,"SETS":714,"SHOW":715,"STRING":716,"TABLES":717,"TINYINT":718,"TRANSACTIONAL":719,"USE":720,"WEEK":721,"YEAR":722,"REGULAR_IDENTIFIER":723,"VARIABLE_REFERENCE":724,"!":725,"*":726,"-":727,".":728,"[":729,"]":730,"ANALYTIC":731,"ARITHMETIC_OPERATOR":732,"ASC":733,"AVG":734,"BACKTICK":735,"BETWEEN":736,"BIGINT":737,"BINARY":738,"BOOLEAN":739,"CASE":740,"CAST":741,"CHAR":742,"CLUSTER":743,"COLLECT_LIST":744,"COLLECT_SET":745,"CONF":746,"CORR":747,"COUNT":748,"COVAR_POP":749,"COVAR_SAMP":750,"CUBE":751,"CURRENT":752,"DATE":753,"DECIMAL":754,"DESC":755,"DISTINCT":756,"DISTRIBUTE":757,"DOUBLE":758,"ELSE":759,"END":760,"EXISTS":761,"FALSE":762,"FLOAT":763,"FOLLOWING":764,"GROUPING":765,"HAVING":766,"HDFS_START_QUOTE":767,"HISTOGRAM_NUMERIC":768,"IF":769,"INDEXES":770,"INT":771,"INTEGER":772,"IS":773,"LIMIT":774,"MAX":775,"MIN":776,"NONE":777,"NTILE":778,"NULLS":779,"OF":780,"OR":781,"ORDER":782,"OUT":783,"OVER":784,"PERCENTILE":785,"PERCENTILE_APPROX":786,"PRECEDING":787,"RANGE":788,"REGEXP":789,"RLIKE":790,"ROLLUP":791,"ROWS":792,"SCHEMA":793,"SMALLINT":794,"STDDEV_POP":795,"STDDEV_SAMP":796,"SUM":797,"TABLESAMPLE":798,"TIMESTAMP":799,"TRUE":800,"UNION":801,"UNSIGNED_INTEGER_E":802,"VAR_POP":803,"VAR_SAMP":804,"VARCHAR":805,"VARIANCE":806,"VIEWS":807,"WHERE":808,"WINDOW":809,"~":810,"PARTIAL_CURSOR":811,"FromOrIn":812,"IndexOrIndexes":813,"DatabasesOrSchemas":814,"RoleOrUser":815,"PARTIAL_VALUE":816,"DoubleQuotedValue":817,"DoubleQuotedValue_EDIT":818,"OptionalExtended":819,"OptionalExtendedOrFormatted":820,"OptionallyFormattedIndex":821,"OptionallyFormattedIndex_EDIT":822,"OptionalFromDatabase":823,"DatabaseIdentifier":824,"OptionalFromDatabase_EDIT":825,"DatabaseIdentifier_EDIT":826,"OptionalInDatabase":827,"RangePartitionSpec":828,"RangePartitionComparisonOperator":829,"RangePartitionSpec_EDIT":830,"ConfigurationName":831,"PartialBacktickedOrAnyCursor":832,"PartialBacktickedIdentifier":833,"PartialBacktickedOrCursor":834,"PartialBacktickedOrPartialCursor":835,"ColumnList":836,"ColumnList_EDIT":837,"SimpleValueList":838,"PartitionExpression":839,"PartitionExpression_EDIT":840,"LocalOrSchemaQualifiedName":841,"LocalOrSchemaQualifiedName_EDIT":842,"BasicIdentifierChain":843,"BasicIdentifierChain_EDIT":844,"DerivedColumnChain":845,"DerivedColumnChain_EDIT":846,"PartialBacktickedIdentifierOrPartialCursor":847,"RightSquareBracketOrError":848,"OptionalTypeLength":849,"OptionalTypePrecision":850,"DESCRIBE":851,"OptionalUnions":852,"OptionalUnions_EDIT":853,"Unions":854,"Unions_EDIT":855,"UnionClause":856,"UnionClause_EDIT":857,"WithQueries":858,"WithQueries_EDIT":859,"WithQuery":860,"WithQuery_EDIT":861,"OptionalJoins":862,"Joins":863,"Joins_INVALID":864,"TableReferenceList":865,"OptionalLateralViews":866,"TableReferenceList_EDIT":867,"OptionalLateralViews_EDIT":868,"SearchCondition":869,"SearchCondition_EDIT":870,"GroupByColumnList":871,"OptionalGroupingSetsCubeOrRollup":872,"GroupByColumnList_EDIT":873,"OptionalGroupingSetsCubeOrRollup_EDIT":874,"GroupingSets":875,"GroupingSets_EDIT":876,"ColumnGroupingSets":877,"ColumnGroupingSets_EDIT":878,"ColumnGroupingSet_EDIT":879,"GroupByColumnListPartTwo_EDIT":880,"OrderByColumnList":881,"OrderByColumnList_EDIT":882,"OrderByIdentifier":883,"OrderByIdentifier_EDIT":884,"OptionalNullsFirstOrLast":885,"NullsFirstOrLast_EDIT":886,"NullsFirstOrLast":887,"ClusterByClause":888,"DistributeByClause":889,"SortByClause":890,"ClusterByClause_EDIT":891,"DistributeByClause_EDIT":892,"SortByClause_EDIT":893,"SORT":894,"SortByList":895,"SortByList_EDIT":896,"SortByIdentifier":897,"SortByIdentifier_EDIT":898,"NonParenthesizedValueExpressionPrimary":899,"TableSubQuery":900,"ValueExpressionList":901,"BETWEEN_AND":902,"LikeRightPart":903,"CaseRightPart":904,"NonParenthesizedValueExpressionPrimary_EDIT":905,"TableSubQuery_EDIT":906,"ValueExpressionInSecondPart_EDIT":907,"LikeRightPart_EDIT":908,"CaseRightPart_EDIT":909,"EndOrError":910,"ValueExpressionList_EDIT":911,"ColumnOrArbitraryFunctionRef":912,"ArbitraryFunctionRightPart":913,"ArbitraryFunctionName":914,"UserDefinedFunction":915,"UnsignedValueSpecification_EDIT":916,"ColumnOrArbitraryFunctionRef_EDIT":917,"ArbitraryFunctionRightPart_EDIT":918,"UserDefinedFunction_EDIT":919,"SignedInteger":920,"+":921,"UnsignedLiteral":922,"UnsignedLiteral_EDIT":923,"GeneralLiteral":924,"GeneralLiteral_EDIT":925,"ExactNumericLiteral":926,"ApproximateNumericLiteral":927,"TruthValue":928,"SelectSpecification":929,"OptionalCorrelationName":930,"SelectSpecification_EDIT":931,"OptionalCorrelationName_EDIT":932,"TableReference":933,"TableReference_EDIT":934,"TablePrimaryOrJoinedTable":935,"TablePrimaryOrJoinedTable_EDIT":936,"TablePrimary":937,"JoinedTable":938,"TablePrimary_EDIT":939,"JoinedTable_EDIT":940,"Joins_EDIT":941,"JoinType":942,"OptionalJoinCondition":943,"Join_EDIT":944,"JoinCondition_EDIT":945,"UsingColList":946,"TableOrQueryName":947,"OptionalTableSample":948,"DerivedTable":949,"TableOrQueryName_EDIT":950,"OptionalTableSample_EDIT":951,"DerivedTable_EDIT":952,"OptionalOnColumn":953,"OptionalOnColumn_EDIT":954,"PushQueryState":955,"PopQueryState":956,"SubQuery":957,"SubQuery_EDIT":958,"QueryExpression":959,"QueryExpression_EDIT":960,"QueryExpressionBody":961,"QueryExpressionBody_EDIT":962,"NonJoinQueryExpression":963,"NonJoinQueryExpression_EDIT":964,"NonJoinQueryTerm":965,"NonJoinQueryTerm_EDIT":966,"NonJoinQueryPrimary":967,"NonJoinQueryPrimary_EDIT":968,"SimpleTable":969,"SimpleTable_EDIT":970,"LateralView_EDIT":971,"AggregateFunction":972,"OptionalOverClause":973,"AnalyticFunction":974,"OverClause":975,"CastFunction":976,"ExtractFunction":977,"AggregateFunction_EDIT":978,"OptionalOverClause_EDIT":979,"AnalyticFunction_EDIT":980,"OverClause_EDIT":981,"CastFunction_EDIT":982,"ExtractFunction_EDIT":983,"ArbitraryFunction_EDIT":984,"CountFunction":985,"SumFunction":986,"OtherAggregateFunction":987,"CountFunction_EDIT":988,"SumFunction_EDIT":989,"OtherAggregateFunction_EDIT":990,"WindowExpression":991,"WindowExpression_EDIT":992,"OptionalPartitionBy":993,"OptionalOrderByAndWindow":994,"PartitionBy_EDIT":995,"OptionalOrderByAndWindow_EDIT":996,"PartitionBy":997,"OptionalWindowSpec":998,"WindowSpec_EDIT":999,"WindowSpec":1000,"RowsOrRange":1001,"PopLexerState":1002,"OptionalCurrentOrPreceding":1003,"OptionalAndFollowing":1004,"UNBOUNDED":1005,"OptionalCurrentOrPreceding_EDIT":1006,"OptionalAndFollowing_EDIT":1007,"HDFS_PATH":1008,"HDFS_END_QUOTE":1009,"IntegerOrUnbounded":1010,"EXTRACT":1011,"DateField":1012,"OtherAggregateFunction_Type":1013,"FromOrComma":1014,"LateralViewColumnAliases_EDIT":1015,"ShowColumnsStatement":1016,"ShowCompactionsStatement":1017,"ShowConfStatement":1018,"ShowCreateTableStatement":1019,"ShowCurrentRolesStatement":1020,"ShowDatabasesStatement":1021,"ShowFunctionsStatement":1022,"ShowGrantStatement":1023,"ShowIndexStatement":1024,"ShowLocksStatement":1025,"ShowMaterializedViewsStatement":1026,"ShowPartitionsStatement":1027,"ShowRolesStatement":1028,"ShowRoleStatement":1029,"ShowTablesStatement":1030,"ShowTableStatement":1031,"ShowTblPropertiesStatement":1032,"ShowTransactionsStatement":1033,"ShowViewsStatement":1034,"ShowColumnsStatement_EDIT":1035,"ShowCreateTableStatement_EDIT":1036,"ShowCurrentRolesStatement_EDIT":1037,"ShowDatabasesStatement_EDIT":1038,"ShowGrantStatement_EDIT":1039,"ShowIndexStatement_EDIT":1040,"ShowLocksStatement_EDIT":1041,"ShowMaterializedViewsStatement_EDIT":1042,"ShowPartitionsStatement_EDIT":1043,"ShowRoleStatement_EDIT":1044,"ShowTablesStatement_EDIT":1045,"ShowTableStatement_EDIT":1046,"ShowTblPropertiesStatement_EDIT":1047,"ShowViewsStatement_EDIT":1048,"TableOrView":1049,"OptionalPrincipalName":1050,"OptionalPrincipalName_EDIT":1051,"OptionalInOrFromDatabase":1052,"OptionalLike":1053,"InOrFromDatabase_EDIT":1054,"Like_EDIT":1055,"TargetTable":1056,"OptionalFromJoinedTable":1057,"TargetTable_EDIT":1058,"FromJoinedTable_EDIT":1059,"TableName":1060,"TableName_EDIT":1061,"SetClause":1062,"SetClause_EDIT":1063,"SetTarget":1064,"UpdateSource":1065,"UpdateSource_EDIT":1066,"CaseWhenThenList":1067,"CaseWhenThenList_EDIT":1068,"CaseWhenThenListPartTwo":1069,"CaseWhenThenListPartTwo_EDIT":1070,"$accept":0,"$end":1}, +terminals_: {2:"error",26:"SET",27:"CURSOR",44:"ALTER",47:"DBPROPERTIES",50:"OWNER",54:"INDEX",55:"ON",58:"REBUILD",61:"MATERIALIZED",62:"VIEW",64:"REWRITE",66:"ADD",71:"CONSTRAINT",74:"RENAME",75:"TO",78:"SKEWED",79:"BY",84:"RECOVER",85:"PARTITIONS",86:"TOUCH",88:"NOT",89:"STORED_AS_DIRECTORIES",90:"SKEWED_LOCATION",92:"CHANGE",93:"COLUMN",99:"REPLACE",107:"STORED",108:"AS",116:"(",118:")",123:",",126:"=",127:"FILEFORMAT",129:"TBLPROPERTIES",130:"SERDE",132:"SERDEPROPERTIES",134:"CONCATENATE",135:"COMPACT",150:"AND",151:"WAIT",152:"WITH",153:"OVERWRITE",154:"COLUMNS",156:"EXCHANGE",158:"TABLE",161:"PARTITION",166:"DROP",174:"AFTER",175:"FIRST",176:"ENABLE",177:"DISABLE",178:"NO_DROP",180:"OFFLINE",181:"ARCHIVE",182:"UNARCHIVE",193:"ColumnReferences",198:"MSCK",202:"REPAIR",204:"SYNC",205:"RELOAD",206:"FUNCTION",208:"NULL",216:"SetSpecification_EDIT",217:"ANALYZE",218:"COMPUTE",219:"STATISTICS",227:"FOR",228:"CACHE",229:"METADATA",230:"NOSCAN",231:"EXPLAIN",233:"FORMATTED",234:"AST",235:"AUTHORIZATION",236:"CBO",238:"DEPENDENCY",239:"EXTENDED",240:"LOCKS",241:"VECTORIZATION",244:"COST",245:"JOINCOST",246:"ONLY",247:"DETAIL",248:"EXPRESSION",249:"OPERATOR",250:"SUMMARY",266:"CREATE",277:"COMMENT",279:"SINGLE_QUOTE",280:"DOUBLE_QUOTE",281:"VALUE",307:"LIKE",317:"PRIMARY",318:"KEY",320:"UNIQUE",321:"DEFAULT",323:"CHECK",328:"LITERAL",329:"CURRENT_USER",330:"CURRENT_DATE",331:"CURRENT_TIMESTAMP",333:"NOVALIDATE",347:"ARRAY",348:"<",349:">",351:"MAP",352:"STRUCT",358:":",359:"UNIONTYPE",371:"FOREIGN",372:"REFERENCES",373:"RELY",374:"NORELY",376:"PARTITIONED",381:"COMPARISON_OPERATOR",382:"CLUSTERED",384:"INTO",385:"UNSIGNED_INTEGER",386:"BUCKETS",396:"DISTRIBUTED",397:"SORTED",409:"ROW",410:"FORMAT",417:"AVRO",418:"INPUTFORMAT",419:"OUTPUTFORMAT",420:"JSONFILE",421:"ORC",422:"PARQUET",423:"RCFILE",424:"SEQUENCEFILE",425:"TEXTFILE",428:"DELIMITED",439:"FIELDS",440:"TERMINATED",442:"ESCAPED",443:"COLLECTION",444:"ITEMS",445:"KEYS",446:"LINES",447:"DEFINED",460:"TEMPORARY",464:"USING",468:"FILE",469:"JAR",473:"ROLE",486:"DEFERRED",487:"IDXPROPERTIES",488:"IN",491:"MACRO",499:"LIFECYCLE",532:"PURGE",533:"TRUNCATE",534:"DELETE",535:"FROM",538:"ABORT",539:"TRANSACTIONS",544:";",547:"SELECT",552:"TableExpression_ERROR",558:"Errors",561:"ALL",563:"LATERAL",568:"FULL",569:"LEFT",570:"RIGHT",571:"CROSS",572:"JOIN",573:"OUTER",574:"INNER",575:"SEMI",596:"GRANT",610:"DATABASE",615:"INSERT",616:"LOCK",617:"SHOW_DATABASE",618:"UPDATE",619:"USER",620:"GROUP",621:"OPTION",622:"ADMIN",623:"REVOKE",626:"PRIVILEGES",637:"VALUES",639:"LOCAL",640:"DIRECTORY",643:"OVERWRITE_DIRECTORY",646:"OptionalStoredAs_EDIT",651:"RowValuesList",657:"MERGE",664:"WHEN",666:"MATCHED",668:"THEN",674:"LOAD",675:"DATA",677:"INPATH",682:"IMPORT",687:"EXTERNAL",688:"EXPORT",689:"REPLICATION",691:"EOF",695:"BUCKET",696:"CASCADE",697:"COMPACTIONS",698:"DATABASES",699:"DAY",700:"DAYOFWEEK",701:"DOUBLE_PRECISION",702:"FUNCTIONS",703:"HOUR",704:"LAST",705:"LOCATION",706:"MINUTE",707:"MONTH",708:"PERCENT",709:"QUARTER",710:"RESTRICT",711:"ROLES",712:"SCHEMAS",713:"SECOND",714:"SETS",715:"SHOW",716:"STRING",717:"TABLES",718:"TINYINT",719:"TRANSACTIONAL",720:"USE",721:"WEEK",722:"YEAR",723:"REGULAR_IDENTIFIER",724:"VARIABLE_REFERENCE",725:"!",726:"*",727:"-",728:".",729:"[",730:"]",731:"ANALYTIC",732:"ARITHMETIC_OPERATOR",733:"ASC",734:"AVG",735:"BACKTICK",736:"BETWEEN",737:"BIGINT",738:"BINARY",739:"BOOLEAN",740:"CASE",741:"CAST",742:"CHAR",743:"CLUSTER",744:"COLLECT_LIST",745:"COLLECT_SET",746:"CONF",747:"CORR",748:"COUNT",749:"COVAR_POP",750:"COVAR_SAMP",751:"CUBE",752:"CURRENT",753:"DATE",754:"DECIMAL",755:"DESC",756:"DISTINCT",757:"DISTRIBUTE",758:"DOUBLE",759:"ELSE",760:"END",761:"EXISTS",762:"FALSE",763:"FLOAT",764:"FOLLOWING",765:"GROUPING",766:"HAVING",767:"HDFS_START_QUOTE",768:"HISTOGRAM_NUMERIC",769:"IF",770:"INDEXES",771:"INT",772:"INTEGER",773:"IS",774:"LIMIT",775:"MAX",776:"MIN",777:"NONE",778:"NTILE",779:"NULLS",780:"OF",781:"OR",782:"ORDER",783:"OUT",784:"OVER",785:"PERCENTILE",786:"PERCENTILE_APPROX",787:"PRECEDING",788:"RANGE",789:"REGEXP",790:"RLIKE",791:"ROLLUP",792:"ROWS",793:"SCHEMA",794:"SMALLINT",795:"STDDEV_POP",796:"STDDEV_SAMP",797:"SUM",798:"TABLESAMPLE",799:"TIMESTAMP",800:"TRUE",801:"UNION",802:"UNSIGNED_INTEGER_E",803:"VAR_POP",804:"VAR_SAMP",805:"VARCHAR",806:"VARIANCE",807:"VIEWS",808:"WHERE",809:"WINDOW",810:"~",811:"PARTIAL_CURSOR",816:"PARTIAL_VALUE",851:"DESCRIBE",894:"SORT",902:"BETWEEN_AND",921:"+",1005:"UNBOUNDED",1008:"HDFS_PATH",1009:"HDFS_END_QUOTE",1011:"EXTRACT"}, +productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,2],[16,1],[16,1],[4,1],[4,1],[4,1],[4,1],[4,1],[4,1],[4,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,2],[30,6],[30,5],[30,6],[37,3],[37,4],[37,5],[37,5],[37,6],[37,6],[31,7],[38,4],[38,5],[38,5],[38,6],[38,7],[32,6],[39,3],[39,4],[39,4],[39,5],[39,6],[33,6],[33,5],[33,3],[33,4],[33,2],[33,7],[33,2],[33,3],[33,3],[33,3],[33,3],[33,3],[33,4],[33,4],[33,5],[33,6],[33,2],[33,2],[33,3],[40,1],[40,6],[40,2],[40,4],[40,2],[40,7],[40,2],[40,3],[40,3],[40,3],[40,3],[40,3],[40,4],[40,4],[40,5],[40,6],[40,2],[40,2],[40,3],[40,4],[40,3],[40,3],[40,6],[40,6],[40,7],[40,6],[40,4],[40,5],[40,5],[40,5],[40,3],[40,3],[40,2],[40,2],[40,3],[40,4],[40,5],[40,4],[40,5],[40,3],[40,4],[40,4],[40,3],[40,4],[40,4],[40,4],[40,7],[40,5],[40,8],[40,7],[40,3],[40,3],[40,2],[40,2],[40,2],[40,3],[40,4],[40,4],[40,3],[40,3],[40,3],[40,4],[115,3],[119,3],[117,1],[117,3],[120,1],[120,3],[120,5],[120,3],[122,3],[124,1],[97,3],[97,2],[97,3],[97,4],[97,3],[97,1],[97,1],[97,4],[97,2],[97,6],[112,1],[112,3],[112,6],[112,7],[112,6],[112,5],[112,4],[112,4],[112,2],[112,2],[112,3],[112,2],[112,5],[112,4],[136,0],[136,2],[146,2],[137,0],[137,4],[147,2],[147,3],[133,4],[143,4],[143,5],[83,5],[106,2],[106,3],[106,4],[106,5],[106,5],[106,2],[106,5],[157,4],[157,4],[160,4],[160,4],[162,3],[162,5],[164,3],[164,5],[96,4],[96,3],[113,3],[113,4],[113,5],[113,3],[113,2],[113,2],[65,3],[98,3],[98,3],[114,1],[114,1],[142,0],[142,2],[173,1],[173,1],[145,2],[145,2],[139,0],[139,1],[63,1],[63,1],[138,2],[138,1],[148,3],[87,1],[87,1],[168,1],[168,3],[170,1],[170,3],[170,5],[170,3],[170,3],[170,3],[170,5],[70,0],[70,1],[184,1],[184,2],[101,1],[101,2],[101,2],[101,3],[186,2],[186,2],[185,2],[91,3],[109,3],[187,1],[187,3],[188,1],[188,3],[188,5],[188,3],[189,3],[190,1],[190,1],[190,3],[190,3],[190,3],[82,0],[82,1],[111,2],[111,3],[34,4],[34,3],[41,1],[41,2],[41,3],[41,3],[41,3],[194,3],[196,3],[196,3],[35,5],[42,3],[42,4],[42,4],[42,5],[42,6],[199,0],[199,1],[200,0],[200,2],[201,2],[203,1],[203,1],[203,1],[36,2],[43,2],[207,1],[207,1],[209,2],[209,2],[209,2],[209,1],[209,1],[209,1],[212,1],[212,2],[212,2],[212,2],[212,2],[212,2],[212,2],[212,2],[212,1],[212,2],[212,1],[212,1],[212,1],[212,1],[5,9],[18,2],[18,3],[18,4],[18,4],[18,5],[18,6],[18,10],[18,10],[18,10],[18,4],[18,9],[18,9],[18,9],[18,9],[18,9],[220,0],[220,1],[223,2],[225,2],[221,0],[221,1],[224,2],[226,2],[222,0],[222,1],[210,2],[213,3],[213,3],[232,0],[232,1],[232,1],[232,3],[232,2],[232,1],[232,1],[232,1],[232,3],[237,0],[237,1],[237,1],[242,0],[242,1],[243,0],[243,1],[243,1],[243,1],[243,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,5],[251,5],[259,4],[259,3],[259,5],[259,4],[259,6],[259,6],[271,3],[272,3],[272,3],[273,0],[273,1],[276,2],[275,1],[278,2],[278,2],[278,3],[278,3],[274,0],[274,1],[282,3],[282,2],[282,2],[48,3],[283,1],[283,3],[284,3],[252,8],[260,7],[260,7],[260,6],[286,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[289,2],[297,2],[297,2],[304,0],[304,1],[304,2],[305,1],[305,2],[305,2],[94,3],[94,5],[155,3],[155,5],[155,5],[308,1],[308,3],[310,1],[310,3],[310,3],[310,5],[310,2],[310,4],[310,4],[310,6],[141,4],[144,4],[144,4],[313,0],[313,1],[315,1],[315,2],[316,3],[316,1],[316,2],[316,3],[316,1],[316,3],[316,5],[316,1],[319,3],[322,1],[322,3],[322,3],[322,3],[322,1],[325,0],[325,1],[325,1],[332,0],[332,1],[326,0],[326,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[314,1],[314,1],[314,1],[314,1],[335,4],[339,3],[343,4],[343,4],[336,6],[340,3],[344,6],[344,4],[344,6],[344,5],[337,4],[341,3],[345,4],[353,1],[353,3],[354,1],[354,2],[354,3],[354,3],[354,5],[355,4],[356,5],[356,4],[356,4],[356,4],[356,3],[356,3],[338,4],[342,3],[346,4],[360,1],[360,3],[361,1],[361,2],[361,3],[361,3],[361,5],[362,2],[362,2],[362,1],[362,1],[350,1],[350,1],[309,1],[309,1],[309,3],[311,1],[311,3],[311,1],[311,3],[311,3],[363,1],[363,3],[364,1],[364,3],[73,4],[365,4],[365,5],[366,3],[366,6],[366,4],[367,3],[367,3],[72,5],[103,1],[103,2],[103,6],[368,6],[104,2],[104,3],[104,4],[104,5],[104,5],[104,6],[327,0],[327,1],[327,1],[369,2],[370,2],[290,0],[290,1],[375,3],[298,2],[298,3],[298,3],[298,2],[298,2],[298,3],[377,0],[377,1],[378,3],[379,2],[379,3],[380,1],[380,1],[291,0],[291,1],[77,7],[105,2],[105,4],[105,7],[105,5],[105,7],[105,7],[105,4],[388,0],[388,1],[388,2],[392,1],[392,1],[392,2],[392,2],[389,3],[393,2],[393,3],[390,3],[394,2],[394,3],[391,3],[395,2],[395,3],[383,0],[383,3],[387,2],[387,3],[398,3],[399,3],[400,1],[400,3],[401,1],[401,3],[401,3],[401,5],[402,2],[403,3],[403,2],[403,2],[292,0],[292,1],[405,5],[405,6],[299,2],[299,4],[81,3],[406,1],[406,3],[293,0],[293,1],[408,3],[300,2],[300,3],[300,3],[294,0],[294,1],[413,1],[413,3],[301,2],[301,1],[416,0],[416,1],[414,3],[415,3],[128,1],[128,4],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[411,1],[411,2],[412,1],[426,6],[427,6],[427,6],[427,6],[427,6],[427,6],[429,0],[429,4],[429,7],[434,2],[434,3],[434,6],[430,0],[430,5],[435,2],[435,3],[435,4],[431,0],[431,5],[436,2],[436,3],[436,4],[432,0],[432,4],[437,2],[437,3],[433,0],[433,4],[438,2],[438,3],[131,0],[131,1],[448,3],[149,2],[149,3],[295,0],[295,1],[449,2],[296,0],[296,1],[450,3],[302,3],[302,3],[451,0],[254,14],[262,3],[262,5],[262,14],[262,13],[262,13],[262,13],[262,13],[262,13],[262,13],[262,14],[452,0],[452,2],[453,2],[253,9],[261,4],[261,10],[261,3],[261,7],[261,8],[261,9],[261,9],[261,9],[256,1],[256,6],[263,1],[263,4],[263,6],[263,7],[456,6],[458,5],[461,1],[462,1],[457,0],[457,2],[459,2],[465,1],[465,3],[466,2],[467,1],[467,1],[467,1],[454,0],[454,1],[470,3],[455,3],[471,2],[471,4],[472,3],[472,5],[472,5],[472,7],[255,3],[257,17],[264,4],[264,5],[264,6],[264,6],[264,7],[264,8],[264,9],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,18],[474,1],[480,1],[476,1],[482,1],[477,0],[477,3],[483,2],[483,3],[478,0],[478,2],[479,0],[479,3],[484,2],[484,3],[484,3],[475,3],[481,3],[489,1],[489,3],[490,1],[490,3],[490,3],[490,5],[258,6],[265,5],[265,6],[265,6],[265,6],[492,2],[492,3],[493,3],[495,1],[495,3],[496,1],[496,3],[496,3],[496,5],[497,2],[498,2],[498,2],[287,0],[287,2],[211,1],[211,1],[211,2],[211,1],[211,1],[211,1],[211,1],[211,1],[214,1],[214,1],[214,2],[214,2],[214,1],[214,1],[214,1],[214,1],[214,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,2],[515,5],[524,3],[524,3],[524,4],[524,5],[524,5],[524,6],[516,4],[516,5],[525,4],[525,5],[525,3],[525,4],[525,4],[525,5],[525,4],[517,3],[518,5],[526,3],[526,4],[526,5],[526,5],[526,6],[169,0],[169,1],[519,6],[527,4],[527,3],[527,5],[527,6],[527,6],[520,5],[528,3],[528,5],[528,4],[521,4],[529,3],[529,4],[529,4],[522,4],[530,4],[530,5],[530,3],[530,4],[530,4],[523,4],[531,2],[531,4],[531,4],[531,5],[531,4],[531,5],[500,4],[507,2],[507,3],[507,5],[507,4],[507,4],[8,3],[21,2],[540,1],[540,3],[542,1],[542,2],[542,0],[542,1],[542,4],[546,4],[546,4],[546,3],[546,4],[553,4],[553,4],[553,3],[553,3],[553,4],[553,4],[553,4],[553,5],[553,6],[553,4],[549,1],[549,3],[549,5],[549,3],[549,5],[554,3],[554,5],[554,7],[554,3],[554,5],[554,7],[13,4],[13,4],[13,2],[557,1],[557,3],[562,7],[562,5],[562,4],[562,2],[562,6],[562,5],[562,5],[567,3],[567,3],[567,3],[567,2],[567,3],[567,3],[567,2],[567,3],[567,3],[567,3],[567,3],[567,2],[567,3],[567,3],[567,3],[567,3],[567,2],[576,9],[576,9],[576,9],[576,9],[576,9],[576,9],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,7],[576,7],[576,7],[576,7],[576,7],[576,7],[576,7],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[576,8],[9,6],[9,5],[9,6],[22,2],[22,3],[22,3],[22,4],[22,5],[22,5],[22,7],[22,6],[22,3],[22,4],[22,4],[22,6],[22,5],[22,5],[22,5],[22,7],[22,6],[598,0],[598,2],[604,2],[604,2],[608,2],[608,2],[608,1],[609,2],[609,2],[609,2],[609,1],[597,1],[597,3],[603,1],[603,3],[603,3],[603,5],[603,3],[603,3],[603,5],[611,2],[612,2],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[613,1],[599,1],[599,3],[605,3],[605,3],[605,5],[51,2],[51,2],[51,2],[53,2],[53,2],[53,2],[601,1],[601,3],[600,0],[600,3],[606,2],[606,3],[602,0],[602,3],[607,2],[607,3],[10,5],[10,8],[10,4],[10,5],[10,7],[10,8],[10,5],[23,2],[23,2],[23,3],[23,4],[23,5],[23,5],[23,3],[23,4],[23,5],[23,5],[23,6],[23,7],[23,8],[23,8],[23,3],[23,4],[23,4],[23,4],[23,5],[23,5],[23,4],[23,5],[23,6],[23,7],[23,7],[23,7],[23,8],[23,8],[23,3],[23,4],[624,1],[624,2],[625,2],[501,1],[501,2],[501,2],[501,3],[508,1],[508,2],[508,2],[508,2],[508,2],[508,1],[508,2],[508,3],[508,2],[508,3],[508,3],[627,7],[627,6],[627,7],[627,5],[627,6],[632,2],[632,4],[632,6],[632,6],[632,6],[632,4],[632,7],[632,7],[632,7],[632,5],[632,5],[632,5],[632,4],[632,6],[632,6],[632,6],[629,1],[629,2],[633,1],[633,2],[633,2],[633,3],[648,3],[649,1],[649,3],[649,2],[649,3],[649,3],[638,1],[638,3],[650,3],[636,0],[636,1],[642,0],[642,3],[645,2],[645,3],[645,3],[630,3],[635,4],[635,3],[635,3],[502,4],[510,1],[510,2],[510,3],[510,3],[510,4],[510,4],[653,9],[655,2],[655,3],[655,3],[655,4],[655,5],[655,6],[655,7],[655,7],[655,8],[655,9],[658,3],[658,1],[659,3],[659,3],[659,1],[654,1],[654,2],[654,3],[656,1],[656,2],[656,2],[656,3],[656,3],[662,6],[663,3],[663,5],[663,4],[663,6],[663,6],[667,0],[667,2],[670,2],[669,3],[669,1],[669,3],[671,2],[671,3],[671,2],[503,11],[511,2],[511,4],[511,6],[511,7],[511,8],[511,9],[511,11],[511,12],[511,11],[511,11],[511,11],[678,0],[678,1],[676,0],[676,1],[679,0],[679,1],[681,4],[680,3],[504,6],[512,3],[512,3],[512,2],[512,6],[512,6],[512,7],[512,7],[512,6],[512,7],[683,0],[683,1],[685,4],[685,3],[686,2],[686,3],[686,4],[686,4],[686,2],[686,3],[686,3],[505,7],[505,12],[513,2],[513,3],[513,3],[513,5],[513,4],[513,7],[513,8],[513,9],[513,7],[513,12],[513,8],[513,13],[513,7],[513,12],[513,12],[690,3],[692,3],[692,3],[545,0],[693,1],[693,4],[693,4],[693,7],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[694,1],[270,1],[270,1],[270,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[543,1],[357,1],[357,2],[183,1],[183,1],[812,1],[812,1],[45,1],[45,1],[813,1],[813,1],[814,1],[814,1],[815,1],[815,1],[441,3],[441,2],[463,2],[817,3],[817,2],[818,2],[125,1],[125,1],[485,1],[485,1],[819,0],[819,1],[820,0],[820,1],[820,1],[269,0],[269,1],[821,2],[821,1],[822,2],[822,2],[823,0],[823,2],[825,2],[179,0],[179,1],[95,0],[95,1],[95,1],[267,0],[267,1],[268,0],[268,1],[167,0],[167,2],[171,2],[67,0],[67,3],[100,2],[100,3],[827,0],[827,2],[827,2],[57,0],[57,1],[60,1],[68,4],[102,4],[828,5],[830,2],[830,3],[830,4],[830,5],[830,5],[830,5],[829,1],[829,1],[829,1],[829,1],[831,1],[831,1],[831,3],[831,3],[832,1],[832,1],[834,1],[834,1],[835,1],[835,1],[833,2],[121,1],[121,1],[614,0],[614,1],[647,1],[80,3],[110,3],[110,3],[836,1],[836,3],[837,1],[837,3],[837,3],[837,3],[837,5],[837,5],[407,3],[838,1],[838,3],[56,1],[56,3],[59,1],[59,3],[59,3],[303,1],[303,3],[306,1],[306,3],[306,3],[824,1],[826,1],[163,1],[163,3],[165,1],[165,3],[165,3],[165,5],[839,3],[839,1],[840,3],[840,3],[840,3],[840,1],[69,0],[69,1],[49,2],[52,2],[46,1],[46,3],[46,2],[76,1],[76,3],[159,1],[159,3],[841,1],[841,2],[842,1],[842,2],[191,1],[191,3],[192,1],[843,1],[843,3],[844,1],[844,3],[844,5],[844,3],[844,3],[844,5],[845,1],[845,3],[846,1],[846,3],[846,5],[846,3],[846,1],[846,3],[846,5],[846,3],[140,1],[140,4],[140,3],[172,4],[172,4],[847,1],[847,1],[848,1],[848,1],[334,1],[334,1],[334,1],[334,2],[334,1],[334,2],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,2],[849,0],[849,3],[850,0],[850,3],[850,5],[11,5],[11,4],[11,4],[11,4],[24,4],[24,5],[24,6],[24,5],[24,5],[24,6],[24,5],[24,4],[24,3],[24,4],[24,5],[24,4],[24,5],[195,2],[195,3],[195,5],[197,2],[197,2],[197,4],[197,3],[197,3],[197,1],[197,4],[197,3],[852,0],[852,1],[853,1],[854,1],[854,2],[855,1],[855,2],[855,2],[855,3],[856,4],[857,3],[857,4],[857,4],[215,2],[509,2],[858,1],[858,3],[859,1],[859,3],[859,3],[859,5],[860,5],[861,2],[861,5],[861,5],[548,0],[548,1],[548,1],[550,2],[555,2],[555,4],[555,3],[862,0],[862,1],[862,1],[628,3],[634,2],[634,3],[634,3],[631,7],[536,0],[536,1],[577,2],[537,2],[537,2],[578,0],[578,1],[595,4],[589,4],[589,4],[589,2],[589,4],[872,0],[872,1],[872,2],[872,2],[874,1],[874,2],[875,5],[876,2],[876,5],[877,0],[877,1],[877,3],[877,3],[878,1],[878,3],[878,3],[878,5],[878,3],[879,1],[879,1],[871,1],[871,3],[873,1],[873,2],[873,3],[873,3],[873,3],[873,4],[873,5],[880,1],[880,2],[880,1],[581,0],[581,1],[586,3],[592,3],[592,2],[881,1],[881,3],[882,1],[882,2],[882,3],[882,4],[882,5],[883,3],[884,3],[884,3],[884,3],[404,0],[404,1],[404,1],[885,0],[885,1],[887,2],[887,2],[886,2],[582,0],[582,1],[587,1],[587,1],[587,2],[587,1],[593,1],[593,1],[593,2],[593,2],[593,1],[888,3],[891,2],[891,3],[891,3],[889,3],[892,2],[892,3],[892,3],[890,3],[893,2],[893,3],[895,1],[895,3],[896,1],[896,3],[896,3],[896,5],[897,2],[898,2],[898,2],[583,0],[583,1],[588,2],[588,4],[588,2],[588,4],[594,2],[869,1],[870,1],[324,1],[324,2],[324,2],[324,2],[324,2],[324,4],[324,4],[324,4],[324,6],[324,2],[324,3],[324,3],[324,3],[324,3],[324,3],[324,6],[324,6],[324,5],[324,5],[324,6],[324,5],[324,3],[324,3],[324,3],[324,3],[324,3],[324,2],[324,3],[324,2],[324,3],[494,1],[494,3],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,3],[494,4],[494,5],[494,4],[494,4],[494,4],[494,6],[494,6],[494,2],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,4],[494,3],[494,6],[494,6],[494,5],[494,5],[494,6],[494,6],[494,6],[494,6],[494,5],[494,4],[494,5],[494,5],[494,5],[494,5],[494,4],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,2],[494,3],[494,2],[494,3],[494,2],[494,3],[494,2],[494,3],[494,3],[494,4],[494,3],[494,3],[494,3],[901,1],[901,3],[911,1],[911,3],[911,3],[911,5],[911,3],[911,5],[911,4],[911,3],[911,2],[911,2],[911,4],[652,1],[652,3],[899,1],[899,1],[899,2],[899,2],[899,1],[899,1],[905,1],[905,1],[905,2],[905,2],[905,1],[912,1],[912,3],[917,1],[920,1],[920,2],[920,2],[285,1],[916,1],[922,1],[922,1],[923,1],[541,1],[541,1],[926,1],[926,2],[926,3],[926,2],[927,2],[927,3],[927,4],[924,1],[924,1],[924,1],[925,1],[925,1],[928,1],[928,1],[665,0],[665,1],[929,2],[929,1],[931,2],[931,3],[931,2],[551,1],[551,3],[556,1],[556,2],[556,3],[556,3],[556,3],[556,4],[556,3],[556,3],[556,4],[556,4],[556,4],[556,5],[556,5],[865,1],[865,3],[867,1],[867,3],[867,3],[867,5],[867,3],[933,1],[934,1],[935,1],[935,1],[936,1],[936,1],[938,2],[940,2],[940,2],[863,3],[863,4],[864,1],[864,2],[944,3],[944,1],[944,3],[944,3],[944,3],[941,1],[941,2],[941,2],[941,3],[942,2],[942,2],[942,3],[942,2],[942,1],[942,3],[942,2],[942,3],[942,3],[942,2],[942,3],[942,2],[942,3],[942,3],[942,2],[943,0],[943,2],[946,1],[946,3],[945,2],[945,2],[937,3],[937,2],[939,3],[939,3],[939,2],[939,2],[947,1],[950,1],[949,1],[952,1],[948,0],[948,9],[948,5],[948,5],[948,4],[951,4],[951,6],[951,7],[951,10],[951,9],[951,5],[953,0],[953,2],[954,2],[954,2],[955,0],[956,0],[900,3],[900,4],[906,3],[906,3],[660,2],[661,3],[957,1],[958,1],[959,1],[960,1],[961,1],[962,1],[963,1],[964,1],[965,1],[966,1],[967,1],[968,1],[969,1],[970,1],[930,0],[930,1],[930,1],[930,2],[930,2],[932,1],[932,1],[932,2],[932,2],[932,2],[866,0],[866,2],[868,3],[915,2],[915,2],[915,1],[915,1],[919,1],[919,2],[919,1],[919,2],[919,2],[919,2],[919,1],[919,1],[565,2],[565,2],[984,2],[984,2],[914,1],[914,1],[914,1],[914,1],[914,1],[913,2],[913,3],[918,3],[918,4],[918,3],[972,1],[972,1],[972,1],[978,1],[978,1],[978,1],[974,3],[974,4],[980,4],[980,5],[980,4],[973,0],[973,1],[979,1],[975,2],[975,2],[981,2],[991,4],[992,4],[992,4],[992,5],[992,7],[993,0],[993,1],[997,3],[995,2],[995,3],[995,3],[994,0],[994,2],[996,1],[996,3],[996,2],[998,0],[998,1],[1000,5],[1000,5],[999,2],[999,6],[999,5],[999,5],[999,5],[999,4],[1002,0],[684,0],[641,3],[644,5],[644,4],[644,3],[644,3],[644,2],[1001,1],[1001,1],[1003,0],[1003,2],[1003,2],[1006,2],[1006,2],[1004,0],[1004,3],[1004,3],[1007,2],[1007,3],[1007,3],[1010,1],[1010,1],[579,0],[579,1],[584,2],[590,2],[590,2],[580,0],[580,1],[585,4],[591,3],[591,4],[976,6],[976,3],[982,6],[982,5],[982,4],[982,6],[982,5],[982,4],[982,6],[982,5],[982,6],[982,5],[985,4],[985,3],[985,5],[988,5],[988,6],[988,5],[977,6],[983,4],[983,5],[983,6],[983,6],[983,6],[983,6],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[1012,1],[987,4],[987,5],[990,5],[990,6],[990,5],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1013,1],[1014,1],[1014,1],[986,5],[986,3],[989,5],[989,6],[989,5],[971,4],[971,5],[971,6],[971,6],[971,5],[971,6],[971,4],[971,2],[564,0],[564,1],[566,2],[566,4],[1015,2],[1015,4],[559,1],[559,3],[560,1],[560,1],[560,2],[560,1],[560,1],[560,1],[560,1],[12,3],[12,3],[12,3],[25,3],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[28,2],[28,3],[28,4],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[1016,4],[1016,6],[1035,3],[1035,4],[1035,4],[1035,5],[1035,6],[1035,5],[1035,6],[1035,6],[1017,2],[1018,3],[1019,4],[1036,3],[1036,4],[1036,4],[1036,4],[1049,1],[1049,1],[1020,3],[1037,3],[1021,4],[1038,3],[1022,2],[1022,3],[1023,3],[1023,5],[1023,5],[1023,6],[1039,3],[1039,5],[1039,5],[1039,5],[1039,6],[1039,6],[1039,6],[1050,0],[1050,1],[1051,1],[1051,2],[1024,4],[1024,6],[1040,2],[1040,2],[1040,4],[1040,6],[1040,3],[1040,4],[1040,4],[1040,5],[1040,6],[1040,6],[1040,6],[1026,5],[1042,3],[1042,6],[1042,5],[1042,5],[1025,3],[1025,4],[1025,4],[1025,5],[1025,4],[1041,3],[1041,3],[1041,4],[1041,4],[1041,4],[1041,5],[1041,5],[1041,4],[1027,3],[1027,4],[1043,3],[1043,3],[1043,4],[1043,4],[1029,5],[1044,3],[1044,5],[1044,4],[1044,5],[1028,2],[1031,6],[1031,7],[1046,3],[1046,4],[1046,4],[1046,5],[1046,6],[1046,6],[1046,6],[1046,7],[1046,7],[1046,7],[1046,7],[1046,8],[1030,3],[1030,4],[1030,5],[1045,4],[1032,3],[1032,6],[1047,3],[1047,3],[1033,2],[1034,4],[1048,5],[1048,4],[1048,4],[1052,0],[1052,2],[1052,2],[1054,2],[1054,2],[1053,0],[1053,2],[1055,2],[506,6],[514,6],[514,6],[514,6],[514,6],[514,7],[514,3],[514,2],[514,2],[514,2],[1056,1],[1058,1],[1060,1],[1061,1],[672,1],[672,3],[673,1],[673,3],[673,3],[673,5],[1062,3],[1063,3],[1063,2],[1063,1],[1064,1],[1065,1],[1066,1],[1057,0],[1057,2],[1059,2],[1059,2],[15,2],[29,2],[907,3],[907,3],[907,3],[903,2],[903,2],[903,2],[908,2],[908,2],[908,2],[908,2],[908,2],[908,2],[904,2],[904,4],[909,2],[909,4],[909,4],[909,3],[909,4],[909,3],[909,4],[909,4],[909,3],[909,4],[909,3],[910,1],[910,1],[1067,1],[1067,2],[1068,1],[1068,2],[1068,3],[1068,3],[1068,2],[1069,4],[1070,2],[1070,3],[1070,4],[1070,4],[1070,3],[1070,3],[1070,4],[1070,2],[1070,3],[1070,2],[1070,3],[1070,3],[1070,4],[1070,3],[1070,4],[1070,4],[1070,5],[1070,4],[1070,3]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 22: + + parser.suggestSetOptions(); + parser.suggestKeywords(['ROLE']); + +break; +case 39: + + parser.suggestKeywords(['DATABASE', 'INDEX', 'MATERIALIZED VIEW', 'SCHEMA', 'TABLE', 'VIEW']); + +break; +case 40: case 42: + + parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); + +break; +case 41: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + +break; +case 43: case 1039: case 1800: case 2594: case 2636: case 2655: case 2698: case 2699: case 2735: + + parser.suggestDatabases(); + +break; +case 44: + + parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); + parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); + +break; +case 45: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); + +break; +case 46: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + +break; +case 47: + + parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + +break; +case 48: + + parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); + +break; +case 49: case 55: case 1234: case 1243: case 1244: case 1245: case 1884: case 2646: + + parser.addTablePrimary($$[$0-2]); + +break; +case 50: case 127: case 578: case 600: case 603: case 606: case 629: case 879: case 1190: case 2614: case 2631: case 2633: + + parser.suggestKeywords(['ON']); + +break; +case 51: case 190: case 429: case 558: case 760: case 787: case 880: case 898: case 905: case 1040: case 1240: case 1269: case 1272: case 1278: case 1791: case 2712: case 2732: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 53: case 278: case 282: case 320: case 554: case 560: case 868: case 896: case 901: case 902: case 903: case 908: case 1271: case 1281: case 1880: case 2644: case 2645: case 2657: + + parser.addTablePrimary($$[$0-1]); + +break; +case 54: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PARTITION', 'REBUILD']); + } else { + parser.suggestKeywords(['REBUILD']); + } + +break; +case 56: case 705: case 887: case 2529: + + parser.suggestKeywords(['VIEW']); + +break; +case 57: case 277: case 888: + + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 58: case 276: case 281: case 889: case 895: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + +break; +case 59: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['DISABLE REWRITE', 'ENABLE REWRITE']); + +break; +case 60: + + parser.addTablePrimary($$[$0-2]); + parser.suggestKeywords(['REWRITE']); + +break; +case 99: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); + } else { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 100: case 136: case 335: + + parser.suggestKeywords(['COLUMNS']); + +break; +case 104: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['LOCATION', 'PARTITION']); + } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { + var keywords = parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2); + keywords.push({ value: 'PARTITION', weight: 1 }); + parser.suggestKeywords(keywords); + } else { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 107: + + parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'PRIMARY KEY', 'UNIQUE']); + +break; +case 110: case 118: case 130: case 187: case 233: case 234: case 235: case 2681: + + parser.suggestKeywords(['PARTITION']); + +break; +case 114: + + parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); + +break; +case 115: case 266: + + parser.suggestKeywords(['AS DIRECTORIES']); + +break; +case 116: case 267: + + parser.suggestKeywords(['DIRECTORIES']); + +break; +case 117: + + parser.suggestKeywords(['TO PARTITION']); + +break; +case 119: case 288: + + parser.suggestKeywords(['PARTITIONS']); + +break; +case 120: + + parser.suggestKeywords(['LOCATION']); + +break; +case 122: case 569: case 570: case 573: case 585: case 610: case 628: case 670: case 671: case 676: case 681: case 685: case 2408: + + parser.suggestKeywords(['BY']); + +break; +case 123: case 1019: case 1024: case 1028: case 1067: case 1068: case 1069: case 1097: case 1105: case 1108: case 1111: case 1116: case 1119: + + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + +break; +case 128: + + if (!$$[$0-1]) { + parser.suggestKeywords(['STORED AS DIRECTORIES']); + } + +break; +case 134: + + parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', + 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', + 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', + 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', + 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); + +break; +case 135: + + parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', + 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', + 'SET SERDE', 'SET SERDEPROPERTIES']); + +break; +case 137: + + parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); + +break; +case 138: + + parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); + +break; +case 140: case 1023: + + parser.suggestKeywords(['TO']); + +break; +case 141: case 1796: + + parser.suggestDatabases({ appendDot: true }); + +break; +case 151: + + parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); + +break; +case 161: case 164: case 166: + + parser.addColumnLocation($$[$0-3].location, [ $$[$0-3].identifier ]); + +break; +case 163: + + if (!$$[$0-1]) { + parser.suggestKeywords(['COLUMN']); + } + parser.suggestColumns(); + +break; +case 165: + + if (!$$[$0-2] && !$$[$0-1]) { + if ($$[$0-3].suggestKeywords) { + var keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); + keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); + parser.suggestKeywords(keywords); + } else { + parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); + } + } else if ($$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + parser.addColumnLocation($$[$0-4].location, [ $$[$0-4].identifier ]); + +break; +case 167: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); + } + +break; +case 170: + + parser.suggestKeywords(['NO_DROP', 'OFFLINE']); + +break; +case 172: case 648: + + parser.suggestFileFormats(); + +break; +case 174: + + if (!$$[$0-1]) { + parser.suggestKeywords(['WITH SERDEPROPERTIES']); + } + +break; +case 178: + + parser.suggestKeywords(['WAIT']); + +break; +case 181: + + parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); + +break; +case 182: case 272: + + parser.suggestKeywords(['TBLPROPERTIES']); + +break; +case 185: + + if (!$$[$0-1]) { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + +break; +case 188: + + parser.suggestKeywords(['WITH TABLE']); + +break; +case 189: case 317: case 759: case 786: case 897: case 1268: case 1277: case 2598: case 2619: + + parser.suggestKeywords(['TABLE']); + +break; +case 204: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); + } else { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 206: + + if (!$$[$0-1]) { + parser.suggestKeywords(['PURGE']); + } + +break; +case 210: case 275: case 774: case 876: case 886: case 890: case 894: case 1037: case 1038: case 1207: case 1274: case 2597: case 2643: case 2656: case 2686: case 2715: + + parser.addTablePrimary($$[$0]); + +break; +case 211: case 319: case 871: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + +break; +case 212: case 280: case 318: + + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 219: case 259: case 261: case 623: case 790: case 1777: case 1781: case 1785: case 1811: case 1812: case 1845: case 1848: case 1977: case 2045: case 2726: + + parser.suggestColumns(); + +break; +case 227: + + if (!$$[$0-1]) { + parser.suggestKeywords(['CASCADE']); + } + +break; +case 242: case 453: case 455: case 456: case 458: case 459: case 937: case 938: case 939: case 1226: case 1920: case 1949: case 1980: case 1993: case 1997: case 2034: case 2038: case 2058: case 2083: case 2084: case 2165: case 2167: case 2231: case 2241: case 2248: case 2260: case 2407: case 2731: case 2769: case 2770: +this.$ = $$[$0]; +break; +case 249: + + if (!$$[$0]) { + this.$ = { suggestKeywords: ['LOCATION'] }; + } + +break; +case 271: + + parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); + +break; +case 273: case 701: case 724: case 1208: case 1930: case 2327: + + parser.suggestKeywords(['SELECT']); + +break; +case 279: + + if (!$$[$0-1]) { + parser.suggestKeywords(['TABLE', 'REPAIR TABLE']); + } else { + parser.suggestKeywords(['TABLE']); + } + +break; +case 283: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['ADD PARTITIONS', 'DROP PARTITIONS', 'SYNC PARTITIONS']); + } + +break; +case 293: + + parser.suggestKeywords(['FUNCTION']); + +break; +case 309: case 310: + + parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); + +break; +case 311: + + parser.suggestKeywords(['INSERT', 'SELECT']); + +break; +case 316: + + parser.addTablePrimary($$[$0-6]); + +break; +case 321: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); + } else { + parser.suggestKeywords(['COMPUTE STATISTICS']); + } + +break; +case 322: + + parser.addTablePrimary($$[$0-3]); + parser.suggestKeywords(['STATISTICS']); + +break; +case 323: + + parser.addTablePrimary($$[$0-7]); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); + +break; +case 324: + + parser.addTablePrimary($$[$0-7]); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); + +break; +case 325: + + parser.addTablePrimary($$[$0-7]); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'NOSCAN', weight: 1 }])); + +break; +case 326: + + parser.suggestKeywords(['TABLE']); + parser.addTablePrimary($$[$0-1]); + +break; +case 327: + + parser.suggestKeywords(['TABLE']); + parser.addTablePrimary($$[$0-6]); + +break; +case 339: + + parser.suggestKeywords(['METADATA']); + +break; +case 343: + + if (!$$[$0-1]) { + parser.suggestDdlAndDmlKeywords([ + { value: 'AST', weight: 2 }, + { value: 'AUTHORIZATION', weight: 2 }, + { value: 'CBO', weight: 2 }, + { value: 'DEPENDENCY', weight: 2 }, + { value: 'EXTENDED', weight: 2 }, + { value: 'FORMATTED CBO', weight: 2 }, + { value: 'LOCKS', weight: 2 }, + { value: 'VECTORIZATION', weight: 2 } + ]); + } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { + parser.suggestDdlAndDmlKeywords($$[$0-1].suggestKeywords); + } else { + parser.suggestDdlAndDmlKeywords(); + } + +break; +case 344: + + parser.suggestKeywords(['CBO']); + +break; +case 348: case 349: + + if (!$$[$0]) { + this.$ = { suggestKeywords: ['COST', 'JOINCOST'] }; + } + +break; +case 353: + + var keywords = []; + if (!$$[$0]) { + keywords = keywords.concat([ + { weight: 1, value: 'DETAIL' }, + { weight: 1, value: 'EXPRESSION' }, + { weight: 1, value: 'OPERATOR' }, + { weight: 1, value: 'SUMMARY' } + ]); + } + if (!$$[$0-1]) { + keywords.push({ weight: 2, value: 'ONLY' }); + } + if (keywords.length) { + this.$ = { suggestKeywords: keywords }; + } + +break; +case 379: + + if ($$[$0-1]) { + parser.suggestKeywords(['TABLE']); + } else { + if ($$[$0-3] && !$$[$0-2]) { + parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); + } else if (!$$[$0-3] && !$$[$0-2]) { + parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'TRANSACTIONAL TABLE', 'VIEW']); + } else if ($$[$0-2]) { + parser.suggestKeywords(['TABLE']); + } + } + +break; +case 380: + + parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); + +break; +case 381: case 409: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 383: + + if (!$$[$0-2]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 384: + + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 385: + + parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); + +break; +case 387: + + var keywords = []; + if (!$$[$0]) { + keywords.push('WITH DBPROPERTIES'); + } + if (!$$[$0-1] && !$$[$0]) { + keywords.push('LOCATION'); + } + if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + +break; +case 402: + + parser.suggestKeywords(['DBPROPERTIES']); + +break; +case 421: + + var keywords = []; + if (!$$[$0-10] && !$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'COMMENT', weight: 10 }); + } + if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'PARTITIONED BY', weight: 9 }); + } + if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'CLUSTERED BY', weight: 8 }); + } + if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'SKEWED BY', weight: 7 }); + } else if ($$[$0-6] && $$[$0-6].suggestKeywords && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 7)); // Get the last optional from SKEWED BY + } + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'ROW FORMAT', weight: 6 }); + } else if ($$[$0-5] && $$[$0-5].suggestKeywords && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 6)); + } + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'STORED AS', weight: 5 }); + keywords.push({ value: 'STORED BY', weight: 5 }); + } else if ($$[$0-4] && $$[$0-4].storedBy && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 4 }); + } + if (!$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'LOCATION', weight: 3 }); + } + if (!$$[$0-1]) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + parser.suggestKeywords(keywords); + +break; +case 422: + + parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); + this.$ = $$[$0]; + +break; +case 427: +this.$ = []; +break; +case 431: case 752: case 754: case 1206: case 1700: case 1703: case 1818: case 1896: case 2065: case 2244: case 2324: case 2382: +this.$ = $$[$0-1]; +break; +case 432: case 753: case 755: +this.$ = $$[$0-3]; +break; +case 435: + + parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); + +break; +case 436: case 1922: +this.$ = [$$[$0]]; +break; +case 437: +this.$ = $$[$0-2].concat($$[$0]); +break; +case 442: case 444: case 621: + + parser.checkForKeywords($$[$0-1]); + +break; +case 443: case 445: + + parser.checkForKeywords($$[$0-3]); + +break; +case 446: + + this.$ = $$[$0-3]; + this.$.type = $$[$0-2]; + var keywords = []; + if (!$$[$0]) { + keywords = keywords.concat([ + { value: 'COMMENT', weight: 1 }, + { value: 'CHECK', weight: 2 }, + { value: 'PRIMARY KEY', weight: 2 }, + { value: 'UNIQUE', weight: 2 }, + { value: 'NOT NULL', weight: 2 }, + { value: 'DEFAULT', weight: 2 } + ]); + if (!$$[$0-1] && $$[$0-2].toLowerCase() === 'double') { + keywords.push({ value: 'PRECISION', weight: 3 }); + } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { + keywords = keywords.concat($$[$0-1].suggestKeywords) + } + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 447: case 489: case 495: case 496: case 509: case 512: case 524: case 526: case 812: + + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + +break; +case 454: +this.$ = { suggestKeywords: [{ value: 'KEY', weight: 3 }] }; +break; +case 457: +this.$ = { suggestKeywords: [{ value: 'NULL', weight: 3 }] }; +break; +case 460: + + this.$ = { + suggestKeywords: [ + { value: 'LITERAL', weight: 3 }, + { value: 'CURRENT_USER()', weight: 3 }, + { value: 'CURRENT_DATE()', weight: 3 }, + { value: 'CURRENT_TIMESTAMP()', weight: 3 }, + { value: 'NULL', weight: 3 } + ] + } + +break; +case 461: + + var keywords = []; + if (!$$[$0]) { + keywords.push({ value: 'RELY', weight: 3 }); + keywords.push({ value: 'NORELY', weight: 3 }); + if (!$$[$0-1]) { + keywords.push({ value: 'NOVALIDATE', weight: 3 }); + if (!$$[$0-2]) { + keywords.push({ value: 'RELY', weight: 3 }); + keywords.push({ value: 'NORELY', weight: 3 }); + } + } + } + if (keywords.length) { + this.$ = { suggestKeywords: keywords }; + } + +break; +case 494: + + parser.suggestKeywords(parser.getTypeKeywords()); + +break; +case 508: case 511: + + parser.suggestKeywords(['COMMENT']); + +break; +case 534: + + parser.suggestKeywords(['CONSTRAINT']); + +break; +case 544: + + parser.suggestKeywordsForOptionalsLR([$$[$0-1], $$[$0-2], $$[$0-3]], [ + [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], + { value: 'NOVALIDATE', weight: 2 }, + { value: 'DISABLE', weight: 3 } + ]); + +break; +case 548: + + parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'UNIQUE']); + +break; +case 553: + + parser.suggestKeywordsForOptionalsLR([$$[$0-1], $$[$0-2], $$[$0-3]], [ + [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], + { value: 'NOVALIDATE', weight: 2 }, + { value: 'DISABLE', weight: 1 }]); + +break; +case 555: case 565: + + parser.suggestKeywords(['KEY']); + +break; +case 557: + + parser.suggestKeywords(['REFERENCES']); + +break; +case 574: + + parser.suggestKeywords(['HASH', 'RANGE']); + +break; +case 588: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); + } else { + parser.suggestKeywords(['INTO']); + } + +break; +case 589: + + parser.suggestKeywords(['BUCKETS']); + +break; +case 597: + + parser.suggestKeywords(['SORTED ON']); + +break; +case 626: +this.$ = { suggestKeywords: ['STORED AS DIRECTORIES'] }; +break; +case 635: + + this.$ = $$[$0] + +break; +case 636: + + parser.suggestKeywords(['FORMAT']); + +break; +case 637: + + parser.suggestKeywords(['DELIMITED', 'SERDE']); + +break; +case 642: + + this.$ = { storedBy: true } + +break; +case 643: + + parser.suggestKeywords(['AS', 'BY']); + +break; +case 645: +this.$ = { suggestKeywords: ['STORED AS'] }; +break; +case 660: + + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; + } else if ($$[$0-4] && $$[$0-4].suggestKeywords && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-4].suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; + } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; + } + +break; +case 667: +this.$ = { suggestKeywords: ['ESCAPED BY'] }; +break; +case 669: case 675: case 680: case 684: + + parser.suggestKeywords(['TERMINATED BY']); + +break; +case 674: + + parser.suggestKeywords(['ITEMS TERMINATED BY']); + +break; +case 679: + + parser.suggestKeywords(['KEYS TERMINATED BY']); + +break; +case 688: + + parser.suggestKeywords(['DEFINED AS']); + +break; +case 689: case 730: case 734: case 763: case 1929: case 2457: + + parser.suggestKeywords(['AS']); + +break; +case 693: case 694: + + parser.suggestKeywords(['SERDEPROPERTIES']); + +break; +case 703: + + parser.commitLocations(); + +break; +case 706: case 719: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + +break; +case 707: + + parser.suggestKeywordsForOptionalsLR([undefined, $$[$0-2], $$[$0-3], $$[$0-4], $$[$0-5], $$[$0-6], $$[$0-7], $$[$0-8], $$[$0-9]], [ + { value: 'AS SELECT', weight: 1 }, + { value: 'TBLPROPERTIES', weight: 2 }, + { value: 'LOCATION', weight: 3 }, + [{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }], + [{ value: 'CLUSTERED ON', weight: 5 }, { value: 'DISTRIBUTED ON', weight: 5 }], + { value: 'PARTITIONED ON', weight: 6 }, + { value: 'COMMENT', weight: 7 }, + { value: 'DISABLE REWRITE', weight: 8 } + ]); + +break; +case 717: + + parser.suggestKeywords(['REWRITE']); + +break; +case 720: + + if (!$$[$0-7]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 723: + + var keywords = [{value: 'AS', weight: 1 }]; + if (!$$[$0-1]) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + if (!$$[$0-2]) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + } + parser.suggestKeywords(keywords); + +break; +case 732: + + if (!$$[$0-1]) { + parser.suggestKeywords(['USING']); + } else { + parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); + } + +break; +case 736: + + parser.suggestFunctions(); + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + +break; +case 739: + + parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); + +break; +case 749: + + if (!$$[$0-1]) { + parser.suggestKeywords(['COMMENT']); + } + +break; +case 758: + + parser.suggestKeywords(['ON TABLE']); + +break; +case 764: case 777: + + parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); + +break; +case 771: + + if ($$[$0-4] && parser.yy.result.suggestKeywords && parser.yy.result.suggestKeywords.length === 2) { + parser.suggestKeywords(['AS']); + } + +break; +case 773: + + if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if ($$[$0-5] && $$[$0-5].suggestKeywords && !$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { + parser.suggestKeywords(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 5).concat([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); + } else if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); + } + +break; +case 780: + + parser.suggestKeywords(['DEFERRED REBUILD']); + +break; +case 781: + + parser.suggestKeywords(['REBUILD']); + +break; +case 800: + + parser.suggestFunctions(); + +break; +case 826: + + parser.addCommonTableExpressions($$[$0-1]); + +break; +case 850: + + parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); + +break; +case 854: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + +break; +case 855: + + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + +break; +case 857: + + if (!$$[$0-3]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 860: case 865: case 884: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 861: + + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 870: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 873: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PURGE']); + } + +break; +case 877: + + parser.suggestKeywords(['IF EXISTS']); + +break; +case 883: + + parser.suggestKeywords(['FUNCTION', 'MACRO']); + +break; +case 891: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 892: + + parser.addTablePrimary($$[$0]); + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 900: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 904: case 1110: case 1115: case 1118: case 1122: + + parser.suggestKeywords(['FROM']); + +break; +case 906: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0]) { + parser.suggestKeywords(['WHERE']); + } + +break; +case 910: + + parser.suggestKeywords(['TRANSACTIONS']); + +break; +case 916: case 1296: case 1298: + + parser.addStatementLocation(_$[$0]); + +break; +case 920: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); + this.$ = { selectList: $$[$0] }; + +break; +case 921: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } + +break; +case 922: + + parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); + +break; +case 924: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); + if ($$[$0].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($$[$0]); + } + if ($$[$0].suggestFunctions) { + parser.suggestFunctions(); + } + if ($$[$0].suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($$[$0].suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($$[$0].suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($$[$0].suggestAggregateFunctions && (!$$[$0-1] || $$[$0-1] === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + +break; +case 925: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1] || $$[$0-1] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-1]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 926: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + +break; +case 927: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + +break; +case 928: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2] || $$[$0-2] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-2]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 929: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-2]); + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 930: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-3]); + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 931: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + parser.checkForSelectListKeywords($$[$0-1]); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + +break; +case 940: case 941: + + this.$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 942: case 2235: case 2236: + + this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 948: case 949: case 950: case 951: +this.$ = { }; +break; +case 952: +this.$ = { lateralView: { udtf: $$[$0-2], tableAlias: $$[$0-1], columnAliases: $$[$0] }}; +break; +case 953: + + if ($$[$0-1].function.toLowerCase() === 'explode') { + this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; + } else if ($$[$0-1].function.toLowerCase() === 'posexplode') { + this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; + } else { + this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: [] }, suggestKeywords: ['AS'] }; + } + +break; +case 954: +this.$ = { lateralView: { udtf: $$[$0-1], columnAliases: $$[$0] }}; +break; +case 955: case 957: + + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + +break; +case 956: + + parser.suggestKeywords(['JOIN', 'OUTER JOIN', 'SEMI JOIN']); + +break; +case 958: case 960: case 961: case 963: case 964: case 965: case 966: case 968: case 969: case 970: case 971: +this.$ = { suggestKeywords: ['JOIN'] }; +break; +case 959: case 967: +this.$ = { suggestKeywords: ['OUTER'] }; +break; +case 962: +this.$ = { suggestKeywords: ['OUTER', 'SEMI'] }; +break; +case 972: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true, true, true]), + cursorAtEnd: !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] + }; + +break; +case 973: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] + } + +break; +case 974: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true]), + cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] + } + +break; +case 975: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$$[$0-1] && !$$[$0] + } + +break; +case 976: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$$[$0] + } + +break; +case 977: + + this.$ = { + suggestKeywords: [], + cursorAtEnd: true + } + +break; +case 998: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + +break; +case 999: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + +break; +case 1002: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + +break; +case 1005: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true, !$$[$0-2], true]); + if ($$[$0-7].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-7].suggestKeywords, 1)); + } + this.$ = parser.getValueExpressionKeywords($$[$0-7], keywords); + this.$.cursorAtEnd = !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if ($$[$0-7].columnReference) { + this.$.columnReference = $$[$0-7].columnReference; + } + if (!$$[$0-5]) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-7], _$[$0-7]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1006: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], + [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, !$$[$0-2], true]); + if ($$[$0-6].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 8)); + } + if ($$[$0-6].valueExpression) { + this.$ = parser.getValueExpressionKeywords($$[$0-6].valueExpression, keywords); + if ($$[$0-6].valueExpression.columnReference) { + this.$.columnReference = $$[$0-6].valueExpression.columnReference; + } + } else { + this.$ = { suggestKeywords: keywords }; + } + this.$.cursorAtEnd = !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-6], _$[$0-6]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1007: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], + [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, !$$[$0-2], true]); + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + if (!$$[$0-3] && !$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1008: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], + [true, true, true]); + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + if (!$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1009: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-1], $$[$0]], + [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], + [true, true]); + if ($$[$0-3].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].suggestKeywords, 5)); + } + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-3], _$[$0-3]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1010: + + var keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'LIMIT', weight: 3 }], [true]); + if ($$[$0-2].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 4)); + } + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = _$[$0-2]; + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1011: + + this.$ = { suggestKeywords: [], cursorAtEnd: true }; + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6], $$[$0-7], _$[$0-7]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + +break; +case 1015: + + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); + +break; +case 1018: + + if (!$$[$0-1]) { + parser.suggestKeywords(['ON', 'TO']); + } else { + parser.suggestKeywords(['TO']); + } + +break; +case 1021: + + if (!$$[$0-1]) { + parser.suggestKeywords(['WITH GRANT OPTION']); + } + +break; +case 1026: case 1030: + + if (!$$[$0-1]) { + parser.suggestKeywords(['WITH ADMIN OPTION']); + } + +break; +case 1034: + + parser.suggestKeywords(['DATABASE', 'TABLE']); + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 1043: + + if ($$[$0].toUpperCase() === 'ALL') { + this.$ = { singleAll: true }; + } + +break; +case 1049: case 1050: case 1051: case 1101: + + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); + +break; +case 1080: + + parser.suggestKeywords(['GRANT OPTION']); + +break; +case 1081: case 1085: case 1125: + + parser.suggestKeywords(['OPTION']); + +break; +case 1084: + + parser.suggestKeywords(['ADMIN OPTION']); + +break; +case 1093: + + parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); + +break; +case 1096: + + if (!$$[$0-1]) { + if ($$[$0-2].singleAll) { + parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); + } else { + parser.suggestKeywords(['FROM', 'ON']); + } + } else { + parser.suggestKeywords(['FROM']); + } + +break; +case 1099: + + parser.suggestKeywords(['OPTION FOR']); + +break; +case 1100: case 1113: + + parser.suggestKeywords(['FOR']); + +break; +case 1104: + + if (!$$[$0-1]) { + parser.suggestKeywords(['FROM', 'ON']); + } else { + parser.suggestKeywords(['FROM']); + } + +break; +case 1107: + + if ($$[$0-1].toUpperCase() === 'ADMIN') { + parser.suggestKeywords(['FROM', 'OPTION FOR']); + } else { + parser.suggestKeywords(['FROM']); + } + +break; +case 1114: + + parser.suggestKeywords(['ROLE']); + +break; +case 1131: + + var keywords = []; + if ($$[$0-1].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); + } else { + keywords = ['SELECT']; + } + if ($$[$0-1].addValues) { + keywords.push({ weight: 1.1, value: 'VALUES' }); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + +break; +case 1134: + + if (!$$[$0].keepTables) { + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + } + +break; +case 1138: + + parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); + +break; +case 1139: + + if ($$[$0-1].cursorAtEnd) { + parser.checkForSelectListKeywords($$[$0-1]); + var keywords = parser.yy.result.suggestKeywords || []; + if ($$[$0].suggestKeywords) { + keywords = keywords.concat($$[$0].suggestKeywords); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + +break; +case 1140: + + if ($$[$0].cursorAtStart) { + parser.checkForSelectListKeywords($$[$0-1].tableExpression); + } + +break; +case 1141: + + $$[$0-3].owner = 'insert'; + parser.addTablePrimary($$[$0-3]); + +break; +case 1142: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: ['PARTITION'] } + } else if (!$$[$0]) { + this.$ = { suggestKeywords: ['IF NOT EXISTS'] } + } + +break; +case 1143: + + if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; + } else if (!$$[$0]) { + this.$ = { suggestKeywords: ['STORED AS'] }; + } + +break; +case 1144: + + if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; + } else if (!$$[$0]) { + this.$ = { suggestKeywords: ['STORED AS'] }; + } + +break; +case 1145: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: ['PARTITION'], addValues: true }; + } else if (!$$[$0]) { + this.$ = { addValues: true }; + } + +break; +case 1146: + + parser.suggestKeywords(['OVERWRITE', 'INTO']); + +break; +case 1147: + + if (!$$[$0-1]) { + parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + this.$ = { keepTables: true } + +break; +case 1148: case 1159: + + this.$ = { keepTables: true } + +break; +case 1149: case 1160: case 1161: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + +break; +case 1150: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + +break; +case 1151: + + parser.suggestKeywords(['DIRECTORY']); + +break; +case 1158: + + if (!$$[$0-1]) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + this.$ = { keepTables: true } + +break; +case 1171: + + if ($$[$0-1].suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); + } else { + parser.suggestKeywords(['SELECT']); + } + +break; +case 1172: + + if ($$[$0-1].cursorAtEnd) { + parser.checkForSelectListKeywords($$[$0-1]); + var keywords = parser.yy.result.suggestKeywords || []; + if ($$[$0].suggestKeywords) { + keywords = keywords.concat($$[$0].suggestKeywords); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + +break; +case 1181: + + parser.suggestKeywords(['FORMAT DELIMITED']); + +break; +case 1182: + + parser.suggestKeywords(['DELIMITED']); + +break; +case 1184: +this.$ = { selectList: $$[$0] }; +break; +case 1185: + + this.$ = $$[$0-1]; + this.$.cursorAtEnd = true; + +break; +case 1186: + + parser.selectListNoTableSuggest($$[$0], $$[$0-1]); + +break; +case 1187: + + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1] || $$[$0-1] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-1]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns(); + +break; +case 1191: case 1227: case 1810: case 1982: case 1983: case 1989: case 1990: case 2320: case 2409: + + parser.valueExpressionSuggest(); + +break; +case 1193: + + parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'WHEN', weight: 2 }]); + +break; +case 1195: + + $$[$0-6].alias = $$[$0-4]; + parser.addTablePrimary($$[$0-6]); + if ($$[$0-2].subQuery) { + parser.addTablePrimary({ subQueryAlias: $$[$0] }); + } else { + $$[$0-2].alias = $$[$0]; + } + +break; +case 1196: + + parser.suggestKeywords(['INTO']); + +break; +case 1197: + + parser.suggestDatabases({ appendDot: true }); + parser.suggestTables(); + +break; +case 1199: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['AS T USING']); + +break; +case 1200: + + parser.addTablePrimary($$[$0-2]); + parser.suggestKeywords(['T USING']); + +break; +case 1201: + + $$[$0-3].alias = $$[$0-1]; + parser.addTablePrimary($$[$0-3]); + parser.suggestKeywords(['USING']); + +break; +case 1202: + + $$[$0-4].alias = $$[$0-2]; + parser.addTablePrimary($$[$0-4]); + parser.suggestDatabases({ appendDot: true }); + parser.suggestTables(); + +break; +case 1203: + + $$[$0-4].alias = $$[$0-2]; + parser.addTablePrimary($$[$0-4]); + +break; +case 1204: + + $$[$0-5].alias = $$[$0-3]; + parser.addTablePrimary($$[$0-5]); + parser.suggestKeywords(['AS S ON']); + +break; +case 1205: + + $$[$0-6].alias = $$[$0-4]; + parser.addTablePrimary($$[$0-6]); + parser.suggestKeywords(['S ON']); + +break; +case 1214: + + if ($$[$0].suggestThenKeywords) { + parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); + } + +break; +case 1215: case 1217: + + if (!$$[$0-1].notPresent) { + parser.suggestKeywords(['WHEN']); + } + +break; +case 1216: + + if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { + var keywords = []; + if (!$$[$0-1].isDelete) { + keywords.push('DELETE'); + } + if (!$$[$0-1].isInsert) { + keywords.push('INSERT VALUES'); + } + if (!$$[$0-1].isUpdate) { + keywords.push('UPDATE SET'); + } + parser.suggestKeywords(keywords); + } + +break; +case 1218: + + if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { + var keywords = []; + if (!$$[$0-2].isDelete && !$$[$0-1].isDelete) { + keywords.push('DELETE'); + } + if (!$$[$0-2].isInsert && !$$[$0-1].isInsert) { + keywords.push('INSERT VALUES'); + } + if (!$$[$0-2].isUpdate && !$$[$0-1].isUpdate) { + keywords.push('UPDATE SET'); + } + parser.suggestKeywords(keywords); + } + +break; +case 1219: +this.$ = { notPresent: !!$$[$0-4], isDelete: $$[$0].isDelete, isInsert: $$[$0].isInsert, isUpdate: $$[$0].isUpdate }; +break; +case 1220: + + if (!$$[$0-1]) { + parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); + } else { + parser.suggestKeywords(['MATCHED']); + } + +break; +case 1221: + + if (!$$[$0-1]) { + parser.suggestKeywords(['AND', 'THEN']); + } else { + parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'THEN', weight: 2 }]); + } + +break; +case 1223: +this.$ = { suggestThenKeywords: true }; +break; +case 1228: +this.$ = { isUpdate: true }; +break; +case 1229: +this.$ = { isDelete: true }; +break; +case 1230: +this.$ = { isInsert: true }; +break; +case 1231: + + parser.suggestKeywords(['SET']); + +break; +case 1233: case 1750: case 1753: + + parser.suggestKeywords(['VALUES']); + +break; +case 1235: + + parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); + +break; +case 1236: + + if (!$$[$0-1]) { + parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); + } else { + parser.suggestKeywords(['INPATH']); + } + +break; +case 1238: + + if (!$$[$0-1]) { + parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); + } else { + parser.suggestKeywords(['INTO TABLE']); + } + +break; +case 1239: + + parser.suggestKeywords([ 'TABLE' ]); + +break; +case 1242: + + parser.addTablePrimary($$[$0-3]); + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['INPUTFORMAT', 'PARTITION']); + } else if ($$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['INPUTFORMAT']); + } + +break; +case 1253: + + parser.suggestKeywords(['SERDE']); + +break; +case 1255: + + if (!$$[$0]) { + parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); + } else if (!$$[$0].hasExternal) { + parser.suggestKeywords(['EXTERNAL']); + } + +break; +case 1256: + + if ($$[$0-1].suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat(['FROM'])); + } else { + parser.suggestKeywords(['FROM']); + } + +break; +case 1260: + + if (!$$[$0-1]) { + parser.suggestKeywords(['LOCATION']); + } + +break; +case 1261: + + if (!$$[$0-4]) { + parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); + } else if (!$$[$0-4].hasExternal) { + parser.suggestKeywords(['EXTERNAL']); + } + +break; +case 1263: + + if ($$[$0-5].suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 2).concat(['FROM'])); + } + +break; +case 1266: + + parser.addTablePrimary($$[$0-1]); + if (!$$[$0]) { + this.$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; + } else { + this.$ = { hasExternal: true } + } + +break; +case 1267: + + parser.addTablePrimary($$[$0-1]); + if (!$$[$0]) { + this.$ = { suggestKeywords: ['PARTITION'] }; + } + +break; +case 1275: case 1282: case 1289: + + parser.addTablePrimary($$[$0-4]); + +break; +case 1276: case 1290: case 1291: + + parser.addTablePrimary($$[$0-9]); + +break; +case 1280: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); + } else { + parser.suggestKeywords([ 'TO' ]); + } + +break; +case 1283: + + parser.addTablePrimary($$[$0-5]); + parser.suggestKeywords(['FOR replication()']); + +break; +case 1284: + + parser.addTablePrimary($$[$0-6]); + parser.suggestKeywords(['replication()']); + +break; +case 1287: + + parser.addTablePrimary($$[$0-5]); + if (!$$[$0-4]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 1288: + + parser.addTablePrimary($$[$0-10]); + if (!$$[$0-9]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 1293: case 1294: + + return parser.yy.result; + +break; +case 1295: + + parser.prepareNewStatement(); + +break; +case 1297: case 1299: + + parser.addStatementLocation(_$[$0-3]); + +break; +case 1701: case 1704: case 1819: +this.$ = ''; +break; +case 1719: + + parser.suggestKeywords(['INDEX', 'INDEXES']); + +break; +case 1720: + + parser.suggestKeywords(['FORMATTED']); + +break; +case 1734: case 1737: + + parser.yy.correlatedSubQuery = false; + +break; +case 1735: case 1739: + + parser.suggestKeywords(['EXISTS']); + +break; +case 1738: + + parser.suggestKeywords(['NOT EXISTS']); + +break; +case 1749: case 1751: case 1752: case 1754: + + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + +break; +case 1789: case 1820: + + parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0] } ] }; + +break; +case 1790: case 1821: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; + +break; +case 1792: case 1797: + + parser.suggestDatabases(); + this.$ = { identifierChain: [{ name: $$[$0-2] }] }; + +break; +case 1793: case 1823: + + parser.suggestTablesOrColumns($$[$0-2]); + +break; +case 1794: +this.$ = [{ name: $$[$0] }]; +break; +case 1795: +this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; +break; +case 1822: case 2689: + + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + +break; +case 1825: +this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; +break; +case 1828: + + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + +break; +case 1829: case 2199: + + parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); + +break; +case 1831: + + this.$ = [ $$[$0].identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); + +break; +case 1832: + + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $$[$0-2].push($$[$0].identifier); + parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); + +break; +case 1833: case 1841: + + if ($$[$0].insideKey) { + parser.suggestKeyValues({ identifierChain: [ $$[$0].identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1834: case 1842: + + if ($$[$0].insideKey) { + parser.suggestKeyValues({ identifierChain: $$[$0-2].concat([ $$[$0].identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1837: + + parser.suggestColumns({ + identifierChain: $$[$0-2] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 1838: + + parser.suggestColumns({ + identifierChain: $$[$0-4] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 1839: +this.$ = [ $$[$0].identifier ]; +break; +case 1840: + + $$[$0-2].push($$[$0].identifier); + +break; +case 1843: + + if ($$[$0-2].insideKey) { + parser.suggestKeyValues({ identifierChain: $$[$0-4].concat([ $$[$0-2].identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1844: + + if ($$[$0-2].insideKey) { + parser.suggestKeyValues({ identifierChain: [ $$[$0-2].identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1846: + + parser.suggestColumns({ identifierChain: $$[$0-2] }); + +break; +case 1847: + + parser.suggestColumns({ identifierChain: $$[$0-4] }); + +break; +case 1849: +this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; +break; +case 1850: +this.$ = { identifier: { name: $$[$0-3], keySet: true }, location: _$[$0-3] }; +break; +case 1851: +this.$ = { identifier: { name: $$[$0-2], keySet: true }, location: _$[$0-2] }; +break; +case 1852: +this.$ = { identifier: { name: $$[$0-3] }, insideKey: true }; +break; +case 1853: +this.$ = { identifier: { name: $$[$0-3] }}; +break; +case 1879: + + parser.addTablePrimary($$[$0-2]); + parser.addColumnLocation(_$[$0-1], $$[$0-1]); + +break; +case 1881: + + parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 1885: + + if (!$$[$0-4]) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + +break; +case 1886: + + if (!$$[$0-3]) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + +break; +case 1887: + + parser.addTablePrimary($$[$0-2]); + parser.suggestColumns(); + if (!$$[$0]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 1888: + + if (!$$[$0]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 1891: + + if (!$$[$0-1]) { + parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 1892: case 1894: + + if (!$$[$0-1]) { + parser.suggestKeywords(['EXTENDED']); + } + +break; +case 1893: case 1895: + + if (!$$[$0-2]) { + parser.suggestKeywords(['EXTENDED']); + } + +break; +case 1898: case 2246: +this.$ = $$[$0-2]; +break; +case 1901: + + parser.addCommonTableExpressions($$[$0-3]); + +break; +case 1902: case 1903: case 1925: + + parser.addCommonTableExpressions($$[$0-2]); + +break; +case 1917: + + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + +break; +case 1918: + + parser.suggestKeywords(['ALL', 'DISTINCT']); + +break; +case 1923: +this.$ = $$[$0-2].concat([$$[$0]]); +break; +case 1927: + + parser.addCommonTableExpressions($$[$0-4]); + +break; +case 1928: + + parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); + $$[$0-1].alias = $$[$0-4]; + this.$ = $$[$0-1]; + +break; +case 1935: case 1936: + + parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); + +break; +case 1937: + + var keywords = []; + + parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); + + if ($$[$0-3]) { + if (!$$[$0-3].hasLateralViews && typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($$[$0-3].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); + } + if ($$[$0-3].tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); + } + if ($$[$0-3].tableReferenceList.suggestJoins) { + parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); + } + if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { + keyword.weight = 1.1; + } + }); + + if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($$[$0-3].tableReferenceList); + } + } + } + + if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['CROSS', 'FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'LEFT SEMI', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($$[$0-1].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].suggestFilters) { + parser.suggestFilters($$[$0-1].suggestFilters); + } + if ($$[$0-1].suggestGroupBys) { + parser.suggestGroupBys($$[$0-1].suggestGroupBys); + } + if ($$[$0-1].suggestOrderBys) { + parser.suggestOrderBys($$[$0-1].suggestOrderBys); + } + + if ($$[$0-1].empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'CROSS JOIN', weight: 1 }, + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'LEFT SEMI JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + +break; +case 1938: + + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$$[$0-1]) { + parser.addClauseLocation('whereClause', _$[$0-2]); + parser.addClauseLocation('limitClause', _$[$0-2]); + return; + } + parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); + var keywords = []; + + if ($$[$0-1].suggestColRefKeywords) { + parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); + parser.addColRefIfExists($$[$0-1]); + } + + if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + +break; +case 1942: + + this.$ = { tableReferenceList : $$[$0-1], suggestKeywords: ['LATERAL VIEW'] } + if ($$[$0]) { + parser.yy.lateralViews = $$[$0].lateralViews; + this.$.hasLateralViews = true; + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = this.$.suggestKeywords.concat($$[$0].suggestKeywords); + } + } + +break; +case 1943: case 2253: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 1944: + + if ($$[$0]) { + parser.yy.lateralViews = $$[$0].lateralViews; + } + +break; +case 1946: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-6], $$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], + [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true, true, !$$[$0-2], true]); + + if (keywords.length > 0) { + this.$ = { suggestKeywords: keywords, empty: !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + } else { + this.$ = {}; + } + + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + + if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + +break; +case 1950: + + if ($$[$0].suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 1951: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1954: + + this.$ = { valueExpression: $$[$0] ? false : $$[$0-1] }; + if (!$$[$0]) { + this.$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; + } + +break; +case 1955: case 2004: case 2029: case 2033: case 2036: + + parser.suggestSelectListAliases(); + +break; +case 1956: + + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1957: + + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1964: + + parser.suggestKeywords(['CUBE', 'ROLLUP']); + +break; +case 1966: + + parser.suggestKeywords(['SETS']); + +break; +case 1994: + + if ($$[$0].emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 1995: + + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1999: + + this.$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 2000: case 2001: case 2002: +this.$ = { emptyOrderBy: false }; +break; +case 2003: + + if ($$[$0-1].suggestKeywords && $$[$0].suggestKeywords) { + this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]); + } else { + this.$ = parser.mergeSuggestKeywords($$[$0]); + } + +break; +case 2005: + + this.$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 2007: +this.$ = { suggestKeywords: ['ASC', 'DESC'] };; +break; +case 2010: +this.$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; +break; +case 2014: + + parser.suggestKeywords(['FIRST', 'LAST']); + +break; +case 2018: +this.$ = { suggestKeywords: ['SORT BY'] }; +break; +case 2027: case 2031: case 2035: + + suggestKeywords: ['BY']; + +break; +case 2028: case 2032: + + parser.suggestColumns(); + parser.suggestSelectListAliases(); + +break; +case 2043: + + parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); + this.$ = $$[$0]; + +break; +case 2056: case 2057: + + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2059: + + // verifyType($$[$0], 'NUMBER'); + this.$ = $$[$0]; + $$[$0].types = ['NUMBER']; + +break; +case 2060: case 2061: case 2062: case 2063: case 2070: case 2071: case 2072: case 2073: case 2074: case 2075: case 2081: case 2082: case 2103: case 2161: case 2162: case 2220: +this.$ = { types: [ 'BOOLEAN' ] }; +break; +case 2064: + + this.$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + +break; +case 2066: case 2067: case 2068: case 2069: + + parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2076: case 2077: + + // verifyType($$[$0-2], 'BOOLEAN'); + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2078: case 2079: case 2080: + + // verifyType($$[$0-2], 'NUMBER'); + // verifyType($$[$0], 'NUMBER'); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 2086: + + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2087: case 2089: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 2088: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2090: + + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2091: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 2092: + + parser.suggestFunctions(); + parser.suggestColumns(); + this.$ = { types: [ 'T' ] }; + +break; +case 2093: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 2094: + + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 2095: + + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2096: + + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2097: + + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2098: case 2099: case 2100: + + parser.suggestKeywords(['NOT']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2101: + + parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2102: + + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 2104: + + this.$ = $$[$0-1]; + +break; +case 2105: + + parser.valueExpressionSuggest(); + this.$ = { types: ['T'], typeSet: true }; + +break; +case 2106: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2107: case 2108: case 2109: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2110: case 2111: case 2112: case 2113: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0].types); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 2114: case 2116: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2115: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + +break; +case 2117: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; + +break; +case 2118: case 2119: case 2120: case 2121: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 2122: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-3].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2123: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2124: case 2125: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; +break; +case 2126: case 2127: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; +break; +case 2128: + + if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-5].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; + +break; +case 2129: + + if ($$[$0-5].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0-5].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; + +break; +case 2130: + + if ($$[$0-5].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-5].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 2131: + + parser.valueExpressionSuggest($$[$0-5], $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2132: case 2138: + + parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2133: + + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2134: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-4].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; + +break; +case 2135: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; + +break; +case 2136: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 2137: + + parser.valueExpressionSuggest($$[$0-4], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-4].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2139: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2140: case 2142: case 2144: case 2146: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + +break; +case 2141: case 2145: + + parser.addColRefIfExists($$[$0]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 2143: case 2147: + + parser.addColRefIfExists($$[$0-2]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 2148: case 2149: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 2150: case 2151: case 2152: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 2153: case 2154: case 2155: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions(['NUMBER']); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 2156: case 2157: case 2158: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 2159: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 2160: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 2163: + + parser.valueExpressionSuggest(undefined, $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2164: + + parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2166: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 2168: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 2169: + + this.$ = $$[$0]; + this.$.suggestFilters = $$[$0-1].suggestFilters; + +break; +case 2170: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 2171: case 2460: case 2465: case 2466: +this.$ = { types: [ 'T' ] }; +break; +case 2172: case 2174: + + $$[$0].position = 1; + +break; +case 2173: + + $$[$0].position = $$[$0-2].position + 1; + this.$ = $$[$0]; + +break; +case 2175: + + $$[$0-2].position += 1; + +break; +case 2176: + + $$[$0-2].position = 1; + +break; +case 2177: + + $$[$0-4].position += 1; + +break; +case 2178: + + parser.valueExpressionSuggest(); + $$[$0-2].position += 1; + +break; +case 2179: + + parser.valueExpressionSuggest(); + $$[$0-4].position += 1; + +break; +case 2180: + + parser.suggestValueExpressionKeywords($$[$0-3]); + +break; +case 2181: case 2182: + + parser.valueExpressionSuggest(); + this.$ = { cursorAtStart : true, position: 1 }; + +break; +case 2183: case 2184: + + parser.valueExpressionSuggest(); + this.$ = { position: 2 }; + +break; +case 2188: +this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; +break; +case 2189: + + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].expression) { + this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } + } else { + this.$ = { function: fn, types: parser.findReturnTypes(fn) } + } + +break; +case 2190: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 2192: +this.$ = { types: [ 'NULL' ] }; +break; +case 2194: + + if ($$[$0].suggestKeywords) { + this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; + } else { + this.$ = { types: ['COLREF'], columnReference: $$[$0] }; + } + +break; +case 2195: + + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); + } + this.$ = { types: parser.findReturnTypes(fn) }; + +break; +case 2196: case 2371: case 2372: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-1]) }; + +break; +case 2198: + + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; + this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } + +break; +case 2205: + + parser.suggestValues($$[$0]); + +break; +case 2206: +this.$ = { types: [ 'NUMBER' ] }; +break; +case 2212: case 2214: +this.$ = $$[$0-1] + $$[$0]; +break; +case 2213: +this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; +break; +case 2218: case 2219: + + if (/\$\{[^}]*\}/.test($$[$0])) { + parser.addVariableLocation(_$[$0], $$[$0]); + this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } + } else { + this.$ = { types: [ 'STRING' ] } + } + +break; +case 2221: + + this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 2222: + + this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 2227: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); + } else { + this.$ = { valueExpression: $$[$0-1] } + } + +break; +case 2228: + + parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); + this.$ = { asterisk: true } + +break; +case 2229: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + } + +break; +case 2230: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); + this.$ = { suggestAggregateFunctions: true }; + +break; +case 2232: case 2532: +this.$ = [ $$[$0] ]; +break; +case 2233: + + $$[$0-2].push($$[$0]); + +break; +case 2238: + + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 2239: + + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 2240: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 2242: case 2243: case 2245: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + +break; +case 2256: + + this.$ = $$[$0]; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + this.$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + +break; +case 2263: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-2]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 2264: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-3]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 2265: +this.$ = { joinType: $$[$0] }; +break; +case 2266: +this.$ = { joinType: $$[$0-1] }; +break; +case 2267: + + if ($$[$0-2].suggestKeywords) { + parser.suggestKeywords($$[$0-2].suggestKeywords); + } + +break; +case 2268: + + if ($$[$0].suggestKeywords) { + parser.suggestKeywords($$[$0].suggestKeywords); + } + +break; +case 2271: + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $$[$0-2], + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 2276: +this.$ = 'CROSS JOIN'; +break; +case 2277: +this.$ = 'FULL JOIN'; +break; +case 2278: +this.$ = 'FULL OUTER JOIN'; +break; +case 2279: +this.$ = 'INNER JOIN'; +break; +case 2280: +this.$ = 'JOIN'; +break; +case 2281: +this.$ = 'LEFT INNER JOIN'; +break; +case 2282: +this.$ = 'LEFT JOIN'; +break; +case 2283: +this.$ = 'LEFT OUTER JOIN'; +break; +case 2284: +this.$ = 'LEFT SEMI JOIN'; +break; +case 2285: +this.$ = 'OUTER JOIN'; +break; +case 2286: case 2288: +this.$ = 'RIGHT OUTER JOIN'; +break; +case 2287: +this.$ = 'RIGHT JOIN'; +break; +case 2289: +this.$ = 'RIGHT SEMI JOIN'; +break; +case 2290: +this.$ = 'SEMI JOIN'; +break; +case 2291: +this.$ = { noJoinCondition: true, suggestKeywords: ['ON'] }; +break; +case 2292: +this.$ = { valueExpression: $$[$0] }; +break; +case 2296: + + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + +break; +case 2297: + + this.$ = { + primary: $$[$0-2] + } + if ($$[$0-2].identifierChain) { + if ($$[$0]) { + $$[$0-2].alias = $$[$0].alias + parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); + } + parser.addTablePrimary($$[$0-2]); + } + var keywords = []; + // Right-to-left for cursor after TablePrimary + keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1]], [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [true, true]); + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 2298: + + this.$ = { + primary: $$[$0-1] + }; + + if ($$[$0]) { + this.$.primary.alias = $$[$0].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); + parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); + } + + var keywords = []; + keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'AS', weight: 2 }], [true]); + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 2299: + + if ($$[$0]) { + parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); + } + +break; +case 2300: + + if ($$[$0]) { + $$[$0-2].alias = $$[$0].alias; + parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); + } + parser.addTablePrimary($$[$0-2]); + +break; +case 2301: + + if ($$[$0]) { + parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); + parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias); + } + +break; +case 2312: + + parser.suggestKeywords(['BUCKET']); + +break; +case 2313: + + parser.suggestKeywords(['OUT OF']); + +break; +case 2314: + + parser.suggestKeywords(['OF']); + +break; +case 2315: + + if (!$$[$0-2]) { + parser.suggestKeywords(['ON']); + } + +break; +case 2317: + + if ($$[$0-2].indexOf('.') === -1 ) { + parser.suggestKeywords(['PERCENT', 'ROWS']); + } else { + parser.suggestKeywords(['PERCENT']); + } + +break; +case 2322: + + parser.pushQueryState(); + +break; +case 2323: + + parser.popQueryState(); + +break; +case 2325: + + if ($$[$0-1]) { + $$[$0-2].alias = $$[$0-1].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); + parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + this.$ = $$[$0-2]; + +break; +case 2328: + + var subQuery = parser.getSubQuery($$[$0]); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + this.$ = subQuery; + +break; +case 2345: case 2346: case 2347: case 2348: +this.$ = { alias: $$[$0], location: _$[$0] }; +break; +case 2355: + + if ($$[$0-1] && $$[$0].lateralView) { + $$[$0-1].lateralViews.push($$[$0].lateralView); + this.$ = $$[$0-1]; + } else if ($$[$0].lateralView) { + this.$ = { lateralViews: [ $$[$0].lateralView ] }; + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords + } + +break; +case 2357: + + if (!$$[$0]) { + $$[$0-1].suggestKeywords = ['OVER']; + } + +break; +case 2365: + + parser.suggestKeywords(['OVER']); + +break; +case 2369: case 2370: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 2379: +this.$ = { expression: $$[$0-1] }; +break; +case 2380: + + parser.valueExpressionSuggest(); + this.$ = { position: 1 } + +break; +case 2381: + + parser.suggestValueExpressionKeywords($$[$0-1]); + +break; +case 2389: case 2472: case 2518: +this.$ = { types: parser.findReturnTypes($$[$0-2]) }; +break; +case 2390: +this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; +break; +case 2391: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-3], 1); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 2392: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2393: + + parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 2401: case 2402: + + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + +break; +case 2403: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$$[$0-2]) { + parser.suggestKeywords(['PARTITION BY']); + } + +break; +case 2404: + + if (!$$[$0-1]) { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3]); + } + +break; +case 2413: + + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + +break; +case 2414: + + var keywords = []; + if ($$[$0-2].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); + } + if (!$$[$0]) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + +break; +case 2420: + + parser.suggestKeywords(['BETWEEN', 'UNBOUNDED']); + +break; +case 2421: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['AND']); + } + +break; +case 2424: + + if (!$$[$0-1]) { + parser.suggestKeywords(['PRECEDING']); + } + +break; +case 2426: + + lexer.popState(); + +break; +case 2427: + + lexer.begin('hdfs'); + +break; +case 2429: + + parser.suggestHdfs({ path: $$[$0-3] }); + +break; +case 2430: + + parser.suggestHdfs({ path: $$[$0-2] }); + +break; +case 2431: + + parser.suggestHdfs({ path: $$[$0-1] }); + +break; +case 2432: + + parser.suggestHdfs({ path: '' }); + +break; +case 2433: + + parser.suggestHdfs({ path: '' }); + +break; +case 2439: + + parser.suggestKeywords(['PRECEDING']); + +break; +case 2440: case 2445: + + parser.suggestKeywords(['ROW']); + +break; +case 2444: + + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + +break; +case 2446: + + parser.suggestKeywords(['FOLLOWING']); + +break; +case 2452: + + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 2453: + + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 2459: case 2464: +this.$ = { types: [ $$[$0-1].toUpperCase() ] }; +break; +case 2461: + + parser.valueExpressionSuggest(); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 2462: case 2463: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ] }; + +break; +case 2467: + + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 2468: + + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ 'T' ] }; + +break; +case 2469: case 2470: + + parser.suggestKeywords(parser.getTypeKeywords()); + this.$ = { types: [ 'T' ] }; + +break; +case 2471: case 2493: +this.$ = { types: parser.findReturnTypes($$[$0-3]) }; +break; +case 2473: case 2494: case 2517: +this.$ = { types: parser.findReturnTypes($$[$0-4]) }; +break; +case 2474: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2475: case 2496: case 2520: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2476: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2477: case 2481: +this.$ = { types: ['INT', 'INTEGER'] }; +break; +case 2478: + + parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); + this.$ = { types: ['INT', 'INTEGER'] } + +break; +case 2479: case 2483: + + parser.suggestKeywords(['FROM']); + this.$ = { types: ['INT', 'INTEGER'] } + +break; +case 2480: + + parser.valueExpressionSuggest(); + this.$ = { types: ['INT', 'INTEGER'] } + +break; +case 2482: + + parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); + this.$ = { types: ['INT', 'INTEGER'] } + +break; +case 2495: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2497: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2519: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2521: + + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2528: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); + } else { + parser.suggestKeywords(['explode', 'posexplode']); + } + +break; +case 2533: +this.$ = [ $$[$0-2], $$[$0] ]; +break; +case 2548: + + parser.suggestKeywords(['ALL', 'NONE']); + +break; +case 2568: + + parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'MATERIALIZED VIEWS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); + +break; +case 2569: + + // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT + if ($$[$0].identifierChain && $$[$0].identifierChain.length === 1 && $$[$0].identifierChain[0].name.toLowerCase() === 'roles') { + parser.suggestKeywords(['CURRENT']); + parser.yy.locations.pop(); + } else { + parser.addTablePrimary($$[$0]); + } + +break; +case 2570: + + parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); + +break; +case 2587: case 2588: case 2592: case 2593: case 2634: case 2635: + + parser.suggestKeywords(['FROM', 'IN']); + +break; +case 2589: case 2590: case 2591: case 2618: case 2632: + + parser.suggestTables(); + +break; +case 2599: case 2658: + + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 2600: + + if (parser.yy.result.suggestTables && $$[$0-1].isView) { + parser.yy.result.suggestTables.onlyViews = true; + } + +break; +case 2601: + + parser.addTablePrimary($$[$0]); + parser.suggestKeywords(['TABLE']); + +break; +case 2603: +this.$ = { isView: true }; +break; +case 2605: + + parser.suggestKeywords([ 'ROLES' ]); + +break; +case 2607: case 2680: + + parser.suggestKeywords(['LIKE']); + +break; +case 2616: + + parser.suggestKeywords(['ALL', 'TABLE']); + parser.suggestTables(); + +break; +case 2637: + + parser.suggestTables({identifierChain: [{name: $$[$0]}]}); + +break; +case 2639: + + parser.suggestKeywords(['VIEWS']); + +break; +case 2640: case 2692: + + if (!$$[$0-1] && !$$[$0-2]) { + parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['LIKE']); + } + +break; +case 2648: + + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + parser.suggestKeywords(['DATABASE', 'SCHEMA']); + +break; +case 2650: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['EXTENDED', 'PARTITION']); + +break; +case 2653: + + parser.addTablePrimary($$[$0-2]); + parser.suggestKeywords(['EXTENDED']); + +break; +case 2660: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['PARTITION']); + +break; +case 2663: case 2664: + + parser.suggestKeywords(['GRANT']); + +break; +case 2665: case 2666: + + parser.suggestKeywords(['ROLE', 'USER']); + +break; +case 2670: case 2679: + + parser.suggestKeywords(['EXTENDED']); + +break; +case 2673: + + if ($$[$0-1]) { + parser.suggestKeywords(['LIKE']); + } else { + parser.suggestKeywords(['FROM', 'IN', 'LIKE']); + } + +break; +case 2675: + + parser.suggestKeywords(['EXTENDED']); + +break; +case 2676: + + parser.suggestKeywords(['LIKE']); + +break; +case 2677: + + parser.suggestKeywords(['PARTITION']); + +break; +case 2685: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IN', 'LIKE']); + } else { + parser.suggestKeywords(['LIKE']); + } + +break; +case 2687: + + parser.addTablePrimary($$[$0-3]); + +break; +case 2696: case 2697: + + parser.addDatabaseLocation(_$[$0], [ { name: $$[$0] } ]); + +break; +case 2708: + + if (!$$[$0-1]) { + parser.suggestKeywords([ 'WHERE' ]); + } + +break; +case 2709: + + parser.suggestKeywords([ 'SET' ]); + +break; +case 2725: + + parser.suggestKeywords([ '=' ]); + +break; +case 2734: + + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $$[$0]; + } + +break; +case 2737: +this.$ = { inValueEdit: true }; +break; +case 2738: +this.$ = { inValueEdit: true, cursorAtStart: true }; +break; +case 2739: case 2740: case 2741: +this.$ = { suggestKeywords: ['NOT'] }; +break; +case 2745: case 2746: case 2747: + + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + this.$ = { types: ['BOOLEAN'] } + +break; +case 2748: case 2750: +this.$ = parser.findCaseType($$[$0-1]); +break; +case 2749: case 2752: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2751: + + parser.suggestValueExpressionKeywords($$[$0-1], ['END']); + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2753: +this.$ = parser.findCaseType($$[$0-2]); +break; +case 2754: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2755: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-2]); + +break; +case 2756: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + this.$.suggestFilters = $$[$0-1].suggestFilters + +break; +case 2757: + + parser.valueExpressionSuggest(); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2758: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 2759: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = $$[$0-1]; + +break; +case 2760: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ] }; + +break; +case 2763: +this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; +break; +case 2764: + + $$[$0-1].caseTypes.push($$[$0]); + this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; + +break; +case 2768: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + +break; +case 2771: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; +break; +case 2772: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 2773: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 2774: case 2775: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; +break; +case 2776: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2777: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [$$[$0]] }; + +break; +case 2778: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2779: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2780: case 2782: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 2781: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 2783: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; + +break; +case 2784: + + parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2785: + + parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2786: case 2787: case 2788: case 2789: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +} +}, +table: [o($V0,$V1,{692:1,545:2}),{1:[3]},o($V2,$V3,{542:3,693:4,543:6,209:7,212:8,210:249,3:250,211:251,195:252,213:253,183:254,215:255,16:256,214:257,197:258,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,546:280,17:284,18:285,19:286,20:287,21:288,22:289,23:290,24:291,25:292,28:293,29:294,507:295,508:296,509:297,510:298,511:299,512:300,513:301,514:302,553:303,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1016:332,1017:333,1018:334,1019:335,1020:336,1021:337,1022:338,1023:339,1024:340,1025:341,1026:342,1027:343,1028:344,1029:345,1030:346,1031:347,1032:348,1033:349,1034:350,627:353,628:354,653:355,37:361,38:362,39:363,40:364,41:365,42:366,43:367,259:369,260:370,261:371,262:372,263:373,264:374,265:375,524:377,525:378,526:379,527:380,528:381,529:382,530:383,531:384,1035:387,1036:388,1037:389,1038:390,1039:391,1040:392,1041:393,1042:394,1043:395,1044:396,1045:397,1046:398,1047:399,1048:400,632:401,634:402,655:403,65:404,194:405,456:408,98:412,196:413,458:414,2:$V4,26:$V5,27:$V6,44:$V7,47:$V8,50:$V9,54:$Va,55:$Vb,58:$Vc,62:$Vd,71:$Ve,78:$Vf,79:$Vg,85:$Vh,88:$Vi,89:$Vj,107:$Vk,108:$Vl,116:$Vm,118:$Vn,123:$Vo,126:$Vp,129:$Vq,130:$Vr,132:$Vs,150:$Vt,151:$Vu,152:$Vv,153:$Vw,154:$Vx,158:$Vy,161:$Vz,166:$VA,198:$VB,202:$VC,205:$VD,206:$VE,208:$VF,216:$VG,217:$VH,218:$VI,219:$VJ,227:$VK,228:$VL,229:$VM,230:$VN,231:$VO,233:$VP,235:$VQ,238:$VR,239:$VS,240:$VT,266:$VU,277:$VV,279:$VW,280:$VX,307:$VY,317:$VZ,318:$V_,333:$V$,347:$V01,348:$V11,349:$V21,351:$V31,352:$V41,359:$V51,371:$V61,372:$V71,373:$V81,374:$V91,376:$Va1,381:$Vb1,382:$Vc1,384:$Vd1,385:$Ve1,386:$Vf1,396:$Vg1,397:$Vh1,409:$Vi1,410:$Vj1,417:$Vk1,418:$Vl1,419:$Vm1,420:$Vn1,421:$Vo1,422:$Vp1,423:$Vq1,424:$Vr1,425:$Vs1,428:$Vt1,439:$Vu1,440:$Vv1,442:$Vw1,443:$Vx1,444:$Vy1,445:$Vz1,446:$VA1,447:$VB1,460:$VC1,464:$VD1,468:$VE1,469:$VF1,473:$VG1,486:$VH1,487:$VI1,488:$VJ1,491:$VK1,532:$VL1,533:$VM1,534:$VN1,535:$VO1,538:$VP1,539:$VQ1,547:$VR1,561:$VS1,563:$VT1,568:$VU1,569:$VV1,570:$VW1,571:$VX1,572:$VY1,573:$VZ1,574:$V_1,575:$V$1,596:$V02,610:$V12,615:$V22,616:$V32,617:$V42,618:$V52,619:$V62,620:$V72,621:$V82,622:$V92,623:$Va2,626:$Vb2,637:$Vc2,639:$Vd2,640:$Ve2,657:$Vf2,664:$Vg2,666:$Vh2,668:$Vi2,674:$Vj2,675:$Vk2,677:$Vl2,682:$Vm2,687:$Vn2,688:$Vo2,689:$Vp2,695:$Vq2,697:$Vr2,698:$Vs2,699:$Vt2,700:$Vu2,701:$Vv2,702:$Vw2,703:$Vx2,704:$Vy2,705:$Vz2,706:$VA2,707:$VB2,708:$VC2,709:$VD2,711:$VE2,712:$VF2,713:$VG2,714:$VH2,715:$VI2,716:$VJ2,717:$VK2,718:$VL2,719:$VM2,720:$VN2,721:$VO2,722:$VP2,723:$VQ2,724:$VR2,725:$VS2,726:$VT2,727:$VU2,728:$VV2,729:$VW2,730:$VX2,731:$VY2,732:$VZ2,733:$V_2,734:$V$2,735:$V03,736:$V13,737:$V23,738:$V33,739:$V43,740:$V53,741:$V63,742:$V73,743:$V83,744:$V93,745:$Va3,746:$Vb3,747:$Vc3,748:$Vd3,749:$Ve3,750:$Vf3,751:$Vg3,752:$Vh3,753:$Vi3,754:$Vj3,755:$Vk3,756:$Vl3,757:$Vm3,758:$Vn3,759:$Vo3,760:$Vp3,761:$Vq3,762:$Vr3,763:$Vs3,764:$Vt3,765:$Vu3,766:$Vv3,767:$Vw3,768:$Vx3,769:$Vy3,770:$Vz3,771:$VA3,772:$VB3,773:$VC3,774:$VD3,775:$VE3,776:$VF3,777:$VG3,778:$VH3,779:$VI3,780:$VJ3,781:$VK3,782:$VL3,783:$VM3,784:$VN3,785:$VO3,786:$VP3,787:$VQ3,788:$VR3,789:$VS3,790:$VT3,791:$VU3,792:$VV3,793:$VW3,794:$VX3,795:$VY3,796:$VZ3,797:$V_3,798:$V$3,799:$V04,800:$V14,801:$V24,802:$V34,803:$V44,804:$V54,805:$V64,806:$V74,807:$V84,808:$V94,809:$Va4,810:$Vb4,811:$Vc4,851:$Vd4}),{544:[1,416],691:[1,415]},{691:[1,417]},o($V2,[2,913]),{2:[1,418]},o($V2,[2,916]),{544:[1,419],691:[2,1296]},{2:[2,1446]},{2:[2,1447]},{2:[2,1448]},{2:[2,1449]},{2:[2,1450]},{2:[2,1451]},{2:[2,1452]},{2:[2,1453]},{2:[2,1454]},{2:[2,1455]},{2:[2,1456]},{2:[2,1457]},{2:[2,1458]},{2:[2,1459]},{2:[2,1460]},{2:[2,1461]},{2:[2,1462]},{2:[2,1463]},{2:[2,1464]},{2:[2,1465]},{2:[2,1466]},{2:[2,1467]},{2:[2,1468]},{2:[2,1469]},{2:[2,1470]},{2:[2,1471]},{2:[2,1472]},{2:[2,1473]},{2:[2,1474]},{2:[2,1475]},{2:[2,1476]},{2:[2,1477]},{2:[2,1478]},{2:[2,1479]},{2:[2,1480]},{2:[2,1481]},{2:[2,1482]},{2:[2,1483]},{2:[2,1484]},{2:[2,1485]},{2:[2,1486]},{2:[2,1487]},{2:[2,1488]},{2:[2,1489]},{2:[2,1490]},{2:[2,1491]},{2:[2,1492]},{2:[2,1493]},{2:[2,1494]},{2:[2,1495]},{2:[2,1496]},{2:[2,1497]},{2:[2,1498]},{2:[2,1499]},{2:[2,1500]},{2:[2,1501]},{2:[2,1502]},{2:[2,1503]},{2:[2,1504]},{2:[2,1505]},{2:[2,1506]},{2:[2,1507]},{2:[2,1508]},{2:[2,1509]},{2:[2,1510]},{2:[2,1511]},{2:[2,1512]},{2:[2,1513]},{2:[2,1514]},{2:[2,1515]},{2:[2,1516]},{2:[2,1517]},{2:[2,1518]},{2:[2,1519]},{2:[2,1520]},{2:[2,1521]},{2:[2,1522]},{2:[2,1523]},{2:[2,1524]},{2:[2,1525]},{2:[2,1526]},{2:[2,1527]},{2:[2,1528]},{2:[2,1529]},{2:[2,1530]},{2:[2,1531]},{2:[2,1532]},{2:[2,1533]},{2:[2,1534]},{2:$Ve4,27:$Vf4,46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441,865:420,867:422,900:436,906:438,933:423,934:424,935:425,936:426,937:427,938:428,939:429,940:430,947:431,949:432,950:433,952:434},{2:[2,1536]},{2:[2,1537]},{2:[2,1538]},{2:$Vz6,27:$VA6,44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VF6,486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:$VI6,597:590,601:591,603:594,611:595,612:597,613:598,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{2:[2,1540]},{2:[2,1541]},{2:[2,1542]},{2:[2,1543]},{2:[2,1544]},{2:[2,1545]},{2:[2,1546]},{2:[2,1547]},{2:[2,1548]},{2:[2,1549]},{2:[2,1550]},{2:[2,1551]},{2:[2,1552]},{2:[2,1553]},{2:[2,1554]},{2:[2,1555]},{2:[2,1556]},{2:[2,1557]},{2:[2,1558]},{2:[2,1559]},{2:[2,1560]},{2:[2,1561]},{2:[2,1562]},{2:[2,1563]},{2:[2,1564]},{2:[2,1565]},{2:[2,1566]},{2:[2,1567]},{2:[2,1568]},{2:[2,1569]},{2:[2,1570]},{2:[2,1571]},{2:[2,1572]},{2:[2,1573]},{2:[2,1574]},{2:[2,1575]},{2:[2,1576]},{2:[2,1577]},{2:[2,1578]},{2:[2,1579]},{2:[2,1580]},{2:[2,1581]},{2:[2,1582]},{2:[2,1583]},{2:[2,1584]},{2:[2,1585]},{2:[2,1586]},{2:[2,1587]},{2:[2,1588]},{2:[2,1589]},{2:[2,1590]},{2:[2,1591]},{2:[2,1592]},{2:[2,1593]},{2:[2,1594]},{2:[2,1595]},{2:[2,1596]},{2:[2,1597]},{2:[2,1598]},{2:[2,1599]},{2:[2,1600]},{2:[2,1601]},{2:[2,1602]},{2:[2,1603]},{2:[2,1604]},{2:[2,1605]},{2:[2,1606]},{2:[2,1607]},{2:[2,1608]},{2:[2,1609]},{2:[2,1610]},{2:[2,1611]},{2:[2,1612]},{2:[2,1613]},{2:[2,1614]},{2:[2,1615]},{2:[2,1616]},{2:[2,1617]},{2:[2,1618]},{2:[2,1619]},{2:[2,1620]},{2:[2,1621]},{2:[2,1622]},{2:[2,1623]},{2:[2,1624]},{2:[2,1625]},{2:[2,1626]},{2:[2,1627]},{2:[2,1628]},{2:[2,1629]},{2:[2,1630]},{2:[2,1631]},{2:[2,1632]},{2:[2,1633]},{2:[2,1634]},{2:[2,1635]},{2:[2,1636]},{2:$VO6,27:$VP6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:615,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VQ6,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,559:613,561:$VR6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{2:[2,1638]},{2:[2,1639]},{2:[2,1640]},{2:[2,1641]},{2:[2,1642]},{2:[2,1643]},{2:[2,1644]},{2:[2,1645]},{2:[2,1646]},{2:[2,1647]},{2:[2,1648]},{2:[2,1649]},{2:[2,1650]},{2:[2,1651]},{2:[2,1652]},{2:[2,1653]},{2:[2,1654]},{2:[2,1655]},{2:[2,1656]},{2:[2,1657]},{2:[2,1658]},{2:[2,1659]},{2:[2,1660]},{2:[2,1661]},{2:[2,1662]},{2:[2,1663]},{2:[2,1664]},{2:[2,1665]},{2:[2,1666]},{2:[2,1667]},{2:[2,1668]},{2:[2,1669]},{2:[2,1670]},{2:[2,1671]},{2:[2,1672]},{2:[2,1673]},{2:[2,1674]},{2:[2,1675]},{2:[2,1676]},{2:[2,1677]},{2:[2,1678]},{2:[2,1679]},{2:[2,1680]},{2:[2,1681]},{2:[2,1682]},{2:[2,1683]},{2:[2,1684]},{2:[2,1685]},{3:616,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,16:619,17:284,18:285,19:286,20:287,21:288,22:289,23:290,24:291,25:292,26:[1,623],28:293,29:294,30:304,31:305,32:306,33:307,34:308,35:309,36:310,37:361,38:362,39:363,40:364,41:365,42:366,43:367,44:$V7,65:404,98:412,152:$Vv,166:$VA,194:405,195:618,196:413,197:621,198:$VB,205:$VD,211:617,214:620,215:622,217:$VH,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,259:369,260:370,261:371,262:372,263:373,264:374,265:375,266:$VU,456:408,458:414,500:273,501:274,502:275,503:276,504:277,505:278,506:279,507:295,508:296,509:297,510:298,511:299,512:300,513:301,514:302,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,524:377,525:378,526:379,527:380,528:381,529:382,530:383,531:384,533:$VM1,534:$VN1,535:$VS6,538:$VP1,546:280,547:$VR1,553:303,596:[1,624],615:$V22,618:$V52,623:$Va2,627:353,628:354,632:401,634:402,653:355,655:403,657:$Vf2,674:$Vj2,682:$Vm2,688:$Vo2,715:$VI2,720:$VN2,851:$Vd4,1016:332,1017:333,1018:334,1019:335,1020:336,1021:337,1022:338,1023:339,1024:340,1025:341,1026:342,1027:343,1028:344,1029:345,1030:346,1031:347,1032:348,1033:349,1034:350,1035:387,1036:388,1037:389,1038:390,1039:391,1040:392,1041:393,1042:394,1043:395,1044:396,1045:397,1046:398,1047:399,1048:400},o($V2,[2,299]),o($V2,[2,300]),o($V2,[2,301]),o($V2,[2,302],{4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1016:332,1017:333,1018:334,1019:335,1020:336,1021:337,1022:338,1023:339,1024:340,1025:341,1026:342,1027:343,1028:344,1029:345,1030:346,1031:347,1032:348,1033:349,1034:350,456:408,3:626,211:627,195:628,215:629,546:630,627:639,628:640,653:642,65:649,194:650,26:$VT6,44:$VU6,152:$VV6,166:$VW6,198:$VX6,205:$VY6,217:$VZ6,266:$V_6,533:$V$6,534:$V07,535:$V17,538:$V27,547:$V37,596:$V47,615:$V57,618:$V67,623:$V77,657:$V87,674:$V97,682:$Va7,688:$Vb7,715:$Vc7,720:$Vd7,851:$Ve7}),o($V2,[2,310],{2:[1,660]}),{27:[1,661],116:$Vf7,501:662,508:665,535:$VS6,546:663,547:$VR1,553:666,615:$V22,627:353,628:354,632:401,634:402},o($V2,[2,312]),o($V2,[2,313]),o($V2,[2,314]),o($V2,[2,315]),o($Vg7,$Vh7,{232:667,233:[1,668],234:$Vi7,235:$Vj7,236:$Vk7,238:$Vl7,239:$Vm7,240:$Vn7,241:$Vo7}),o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,8]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,816]),o($V2,[2,817]),o($V2,[2,819]),o($V2,[2,820]),o($V2,[2,821]),o($V2,[2,822]),o($V2,[2,823]),o($Vp7,$Vq7,{852:676,853:677,854:678,855:679,856:680,857:681,801:$Vr7}),o([2,118,123,126,161,349,532,535,544,547,563,568,569,570,571,572,573,574,575,615,620,691,733,743,755,757,766,774,782,801,808,809,894],$Vs7),o([2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,347,348,349,351,352,359,373,374,376,381,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,533,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,730,731,732,733,734,735,736,738,740,741,743,744,745,747,748,749,750,755,757,759,760,761,762,765,766,768,769,774,775,776,778,779,781,782,785,786,789,790,795,796,797,800,801,802,803,804,806,808,809,810,894,902,1011],[2,1689]),{46:687,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,858:683,859:684,860:685,861:686},o($V2,[2,13]),o($V2,[2,14]),o($V2,[2,15]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),o($V2,[2,19]),o($V2,[2,20]),o($V2,[2,21]),o($V2,[2,23]),o($V2,[2,24]),o($V2,[2,824]),o($V2,[2,825]),o($V2,$Vt7,{627:639,628:640,501:688,546:690,116:$Vu7,535:$V17,547:$V37,615:$V57}),o($V2,[2,828]),o($V2,[2,829]),o($V2,[2,830]),o($V2,[2,831]),o($V2,[2,832]),o($Vv7,$Vq7,{856:680,852:691,854:692,801:$Vw7}),o($V2,[2,25]),o($V2,[2,26]),o($V2,[2,27]),o($V2,[2,28]),o($V2,[2,29]),o($V2,[2,30]),o($V2,[2,31]),{27:[1,695],158:[1,694]},o($V2,[2,364]),o($V2,[2,365]),o($V2,[2,366]),o($V2,[2,367]),o($V2,[2,368]),o($V2,[2,369]),o($V2,[2,370]),o($V2,[2,371]),o($V2,[2,833]),o($V2,[2,834]),o($V2,[2,835]),o($V2,[2,836]),o($V2,[2,837]),o($V2,[2,838]),o($V2,[2,839]),o($V2,[2,840]),o($V2,[2,841]),{27:[1,697],539:$Vx7},{27:[1,704],44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:[1,701],486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:[1,703],596:[1,699],597:698,601:700,603:705,611:595,612:597,613:598,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:[1,702],626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vy7,$Vz7,{820:706,45:707,206:[1,708],233:$VA7,239:$VB7,610:$VC7,793:$VD7}),o($V2,[2,2549]),o($V2,[2,2550]),o($V2,[2,2551]),o($V2,[2,2552]),o($V2,[2,2553]),o($V2,[2,2554]),o($V2,[2,2555]),o($V2,[2,2556]),o($V2,[2,2557]),o($V2,[2,2558]),o($V2,[2,2559]),o($V2,[2,2560]),o($V2,[2,2561]),o($V2,[2,2562]),o($V2,[2,2563]),o($V2,[2,2564]),o($V2,[2,2565]),o($V2,[2,2566]),o($V2,[2,2567]),{27:[1,714],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:713,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{27:[1,716],535:[1,715]},o($V2,$VE7,{546:280,553:303,195:717,197:719,215:720,509:721,27:[1,718],152:$Vv,547:$VR1}),{27:[1,725],547:$VF7,615:$V22,627:730,629:722,630:723,632:731,633:724,635:726,648:727,649:729},{27:[1,733],55:[1,732]},{27:[1,735],675:[1,734]},{27:[1,737],158:[1,741],535:$VG7,683:736,685:738,686:739,687:[1,740]},{27:[1,743],158:[1,742]},{27:[1,746],46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:751,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:752,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:754,841:749,842:750,1056:744,1058:745,1060:747,1061:748},o([2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,558,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,811,1011],$VH7,{548:755,561:$VI7,756:$VJ7}),o($V2,[2,32]),o($V2,[2,33]),o($V2,[2,34]),o($V2,[2,35]),o($V2,[2,36]),o($V2,[2,37]),o($V2,[2,38]),{27:[1,758],45:759,54:[1,760],61:[1,761],62:[1,763],158:[1,762],610:$VC7,793:$VD7},o($V2,[2,372]),o($V2,[2,373]),o($V2,[2,374]),o($V2,[2,375]),o($V2,[2,376]),o($V2,[2,377]),o($V2,[2,378]),o($VK7,$VL7,{267:764,45:765,54:[1,770],61:[1,767],62:[1,766],206:[1,769],460:[1,771],473:$VM7,610:$VC7,793:$VD7}),o($V2,[2,842]),o($V2,[2,843]),o($V2,[2,844]),o($V2,[2,845]),o($V2,[2,846]),o($V2,[2,847]),o($V2,[2,848]),o($V2,[2,849]),{27:[1,772],45:773,54:[1,778],61:[1,779],62:[1,780],158:[1,777],206:[1,774],460:[1,775],473:$VN7,610:$VC7,793:$VD7},{27:[1,781],54:$VO7,61:[1,792],85:[1,793],129:[1,798],154:[1,782],158:[1,797],233:[1,804],240:[1,791],266:[1,785],473:[1,795],539:$VP7,596:[1,789],697:$VQ7,698:$VR7,702:$VS7,711:$VT7,712:$VU7,717:[1,796],746:$VV7,752:[1,786],770:$VW7,807:[1,800],813:805,814:787,821:790,822:801},o($V2,[2,2571]),o($V2,[2,2572]),o($V2,[2,2573]),o($V2,[2,2574]),o($V2,[2,2575]),o($V2,[2,2576]),o($V2,[2,2577]),o($V2,[2,2578]),o($V2,[2,2579]),o($V2,[2,2580]),o($V2,[2,2581]),o($V2,[2,2582]),o($V2,[2,2583]),o($V2,[2,2584]),o($V2,[2,1130],{546:630,195:808,215:809,152:$VV6,547:$V37}),o($V2,[2,1135],{648:727,629:810,630:811,627:813,547:$VX7,615:$V57}),o($V2,[2,1189]),{26:[1,823],27:[1,832],63:842,66:[1,814],68:824,74:[1,815],77:816,78:[1,817],83:818,84:[1,819],86:[1,820],87:821,88:[1,822],92:[1,843],96:825,97:826,99:[1,827],105:828,106:829,112:830,113:831,114:845,133:839,134:$VY7,135:$VZ7,143:844,156:[1,834],161:$V_7,166:[1,838],176:$V$7,177:$V08,181:$V18,182:$V28,382:$V38},{26:[1,848],27:[1,850],108:[1,849]},o($V48,$V58,{199:851,202:$V68}),{27:[1,854],206:$V78},o($V2,[2,727]),{27:[1,856],158:[1,855]},{27:[1,860],153:[1,858],384:[1,857],643:[1,859]},{27:[1,862],384:[1,861]},o($V2,[2,80],{133:839,73:864,77:866,83:868,87:871,68:874,96:875,97:876,366:877,63:882,114:885,26:[1,873],66:[1,863],71:$V88,74:[1,865],78:[1,867],84:[1,869],86:[1,870],88:[1,872],92:$V98,99:$Va8,134:$VY7,135:$Vb8,156:$Vc8,161:$V_7,166:$Vd8,176:$V$7,177:$V08,181:$V18,182:$V28,382:$Ve8}),o($V2,[2,270]),o($V2,[2,729]),{1:[2,1293]},o($V0,$V1,{545:887}),{1:[2,1294]},o($V2,[2,914]),o($Vf8,$V1,{545:888}),o($Vg8,$Vh8,{866:889,868:890,123:[1,891]}),o($Vi8,[2,1943]),o($Vj8,$Vh8,{866:892}),o($Vk8,[2,2247]),o($Vj8,[2,2249],{123:[1,893]}),o($Vk8,[2,2254]),o($Vl8,[2,2255]),o($Vm8,$Vn8,{863:894,941:895,942:896,944:897,567:906,568:$Vo8,569:$Vp8,570:$Vq8,571:$Vr8,572:$Vs8,573:$Vt8,574:$Vu8,575:$Vv8}),o($Vk8,[2,2257]),o($Vl8,[2,2258],{863:907,942:908,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($Vl8,[2,2259]),o([27,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,774,782,801,808,809,894],$VD8,{948:916,951:917,798:[1,918]}),o([27,55,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,808,809,894],$VE8,{270:442,694:446,930:919,932:920,46:921,125:922,833:924,485:925,441:926,817:927,463:928,818:929,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VF8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VG8,280:$VH8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6}),o($VI8,$VD8,{948:932,798:$VJ8}),o($VK8,$VE8,{270:442,694:446,46:921,125:922,441:926,817:927,930:934,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o([2,27,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,774,782,798,801,808,809,894],[2,2303]),o($VO8,[2,2305]),o([2,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,774,782,798,801,808,809,894],[2,2304]),o($VI8,[2,2306]),o([26,27,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,127,129,130,132,134,135,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,637,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,769,774,782,798,801,808,809,811,894],$VP8,{728:[1,938]}),o($VQ8,$VR8,{900:436,660:939,949:940,661:941,183:942,955:943,27:$V6,116:$VS8,811:$Vc4}),o($VT8,[2,1791],{728:[1,945]}),o($VU8,[2,1817]),{281:$VV8,735:$VW8,816:[1,948]},o($VX8,[2,1443]),o($VX8,[2,1444]),o($VX8,[2,1445]),o($VX8,[2,1300]),o($VX8,[2,1301]),o($VX8,$VY8),o($VX8,[2,1303]),o($VX8,[2,1304]),o($VX8,[2,1305]),o($VX8,[2,1306]),o($VX8,[2,1307]),o($VX8,[2,1308]),o($VX8,[2,1309]),o($VX8,[2,1310]),o($VX8,[2,1311]),o($VX8,[2,1312]),o($VX8,[2,1313]),o($VX8,[2,1314]),o($VX8,[2,1315]),o($VX8,[2,1316]),o($VX8,[2,1317]),o($VX8,[2,1318]),o($VX8,[2,1319]),o($VX8,[2,1320]),o($VX8,[2,1321]),o($VX8,[2,1322]),o($VX8,[2,1323]),o($VX8,[2,1324]),o($VX8,[2,1325]),o($VX8,[2,1326]),o($VX8,[2,1327]),o($VX8,[2,1328]),o($VX8,[2,1329]),o($VX8,[2,1330]),o($VX8,[2,1331]),o($VX8,[2,1332]),o($VX8,[2,1333]),o($VX8,[2,1334]),o($VX8,[2,1335]),o($VX8,[2,1336]),o($VX8,[2,1337]),o($VX8,[2,1338]),o($VX8,[2,1339]),o($VX8,[2,1340]),o($VX8,[2,1341]),o($VX8,[2,1342]),o($VX8,[2,1343]),o($VX8,[2,1344]),o($VX8,[2,1345]),o($VX8,[2,1346]),o($VX8,[2,1347]),o($VX8,[2,1348]),o($VX8,[2,1349]),o($VX8,[2,1350]),o($VX8,[2,1351]),o($VX8,[2,1352]),o($VX8,[2,1353]),o($VX8,[2,1354]),o($VX8,[2,1355]),o($VX8,[2,1356]),o($VX8,[2,1357]),o($VX8,[2,1358]),o($VX8,[2,1359]),o($VX8,[2,1360]),o($VX8,[2,1361]),o($VX8,[2,1362]),o($VX8,[2,1363]),o($VX8,[2,1364]),o($VX8,[2,1365]),o($VX8,[2,1366]),o($VX8,[2,1367]),o($VX8,[2,1368]),o($VX8,[2,1369]),o($VX8,[2,1370]),o($VX8,[2,1371]),o($VX8,[2,1372]),o($VX8,[2,1373]),o($VX8,[2,1374]),o($VX8,[2,1375]),o($VX8,[2,1376]),o($VX8,[2,1377]),o($VX8,[2,1378]),o($VX8,[2,1379]),o($VX8,[2,1380]),o($VX8,[2,1381]),o($VX8,[2,1382]),o($VX8,[2,1383]),o($VX8,[2,1384]),o($VX8,[2,1385]),o($VX8,[2,1386]),o($VX8,[2,1387]),o($VX8,[2,1388]),o($VX8,[2,1389]),o($VX8,[2,1390]),o($VX8,[2,1391]),o($VX8,[2,1392]),o($VX8,[2,1393]),o($VX8,[2,1394]),o($VX8,[2,1395]),o($VX8,[2,1396]),o($VX8,[2,1397]),o($VX8,[2,1398]),o($VX8,[2,1399]),o($VX8,[2,1400]),o($VX8,[2,1401]),o($VX8,[2,1402]),o($VX8,[2,1403]),o($VX8,[2,1404]),o($VX8,[2,1405]),o($VX8,[2,1406]),o($VX8,$VZ8),o($VX8,[2,1408]),o($VX8,[2,1409]),o($VX8,[2,1410]),o($VX8,[2,1411]),o($VX8,[2,1412]),o($VX8,[2,1413]),o($VX8,[2,1414]),o($VX8,[2,1415]),o($VX8,[2,1416]),o($VX8,[2,1417]),o($VX8,[2,1418]),o($VX8,[2,1419]),o($VX8,[2,1420]),o($VX8,[2,1421]),o($VX8,[2,1422]),o($VX8,[2,1423]),o($VX8,[2,1424]),o($VX8,[2,1425]),o($VX8,[2,1426]),o($VX8,[2,1427]),o($VX8,[2,1428]),o($VX8,[2,1429]),o($VX8,[2,1430]),o($VX8,[2,1431]),o($VX8,[2,1432]),o($VX8,[2,1433]),o($VX8,[2,1434]),o($VX8,[2,1435]),o($VX8,[2,1436]),o($VX8,[2,1437]),o($VX8,[2,1438]),o($VX8,[2,1439]),o($VX8,[2,1440]),o($VX8,[2,1441]),o($VX8,[2,1442]),o($V_8,$V$8,{598:949,604:950,55:$V09,123:$V19}),{27:[1,954],75:[1,953],123:$V29},o([27,75,123],$VZ8,{270:442,694:446,46:596,601:956,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,[2,1015],{123:$V39}),o($V2,$V$8,{598:958,55:$V49}),o($V59,[2,1043]),o($V69,[2,1076]),o($V79,[2,1045],{123:[1,960]}),o([27,55,75,123,535],$V89,{614:961,110:962,80:963,116:$V99}),{281:$VV8,735:$VW8},o($Va9,$Vb9),o($Va9,[2,1055]),o($Va9,[2,1056]),o($Va9,[2,1057]),o($Va9,[2,1058]),o($Va9,[2,1059]),o($Va9,[2,1060]),o($Va9,[2,1061]),o($Va9,[2,1062]),o($Va9,[2,1063]),o($Va9,[2,1064]),o($V2,[2,22]),o($Vc9,$VZ8,{694:446,270:965,27:[1,968],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,561:$Vd9,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,777:$Ve9}),{126:[1,969],728:[1,970]},o($V2,[2,945]),o($Vc9,[2,2536]),o($V2,[2,296]),o($V2,[2,297]),o($V2,[2,298]),o($V2,[2,303]),o($V2,[2,304]),o($V2,[2,305]),{116:$Vf7,501:662,508:665,535:$VS6,546:663,547:$VR1,553:666,615:$V22,627:353,628:354,632:401,634:402},{27:$VP6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:615,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VQ6,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,559:613,561:$VR6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{27:$VA6,44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VF6,486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:$VI6,597:590,601:591,603:594,611:595,612:597,613:598,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:$Vf4,46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441,865:420,867:422,900:436,906:438,933:423,934:424,935:425,936:426,937:427,938:428,939:429,940:430,947:431,949:432,950:433,952:434},o($V2,[2,306]),o($V2,[2,307]),o($V2,[2,308]),{116:$Vf9,501:662,535:$V17,546:971,547:$V37,615:$V57,627:639,628:640},o($Vg9,$Vq7,{852:676,856:680,854:692,801:$Vw7}),{158:[1,973]},{539:$Vx7},{44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$Vh9,486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:$VI6,597:974,601:975,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:[1,981],486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:[1,983],596:[1,979],597:978,601:980,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:[1,982],626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vi9,$Vz7,{820:984,45:985,206:[1,986],233:$VA7,239:$VB7,610:$VC7,793:$VD7}),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:615,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$Vj9,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,559:613,561:$VR6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:713,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{535:[1,988]},o($V2,$VE7,{546:630,195:717,215:809,152:$VV6,547:$V37}),{547:$VX7,615:$V57,627:813,629:989,630:990,648:727},{46:992,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,858:991,860:685},{55:[1,993]},{675:[1,994]},{158:$Vk9,535:$VG7,683:995,685:996,687:$Vl9},{158:[1,999]},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:751,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,841:749,1056:1000,1060:747},o([2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,558,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,1011],$VH7,{548:1002,561:$VI7,756:$VJ7}),{45:1003,54:[1,1004],61:[1,1005],62:[1,1007],158:[1,1006],610:$VC7,793:$VD7},{26:[1,1015],63:882,66:[1,1008],68:1016,74:[1,1009],77:816,78:[1,1010],83:818,84:[1,1011],86:[1,1012],87:1013,88:[1,1014],92:$V98,96:825,97:826,99:$Va8,114:885,133:839,134:$VY7,135:$Vb8,156:$Vc8,161:$V_7,166:$Vd8,176:$V$7,177:$V08,181:$V18,182:$V28,382:$Ve8},{26:[1,1017],108:[1,1018]},{158:$V58,199:1019,202:$V68},{206:$V78},o($Vm9,$VL7,{45:1020,267:1021,54:[1,1025],61:[1,1023],62:[1,1022],206:[1,1024],460:[1,1026],473:$VM7,610:$VC7,793:$VD7}),{45:1027,54:[1,1031],61:[1,1032],62:[1,1033],158:[1,1030],206:[1,1028],460:[1,1029],473:$VN7,610:$VC7,793:$VD7},{158:[1,1034]},{54:$VO7,61:[1,1042],85:[1,1043],129:[1,1047],154:[1,1035],158:[1,1046],233:[1,1049],240:[1,1041],266:[1,1036],473:[1,1044],539:$VP7,596:[1,1039],697:$VQ7,698:$VR7,702:$VS7,711:$VT7,712:$VU7,717:[1,1045],746:$VV7,752:[1,1037],770:$VW7,807:[1,1048],813:805,814:1038,821:1040},{153:[1,1051],384:[1,1050],643:[1,1052]},{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,865:1053,900:436,933:423,935:425,937:1054,938:428,947:1055,949:1056},{384:[1,1058]},o($V2,[2,309]),o($V2,[2,311]),o($V2,[2,818]),o($Vp7,$Vq7,{854:678,855:679,856:680,857:681,852:1059,853:1060,801:$Vr7}),{152:$Vv,195:1061,197:1062,215:720,509:721,546:280,547:$VR1,553:303},o($V2,[2,826]),o($Vv7,$Vq7,{856:680,854:692,852:1063,801:$Vw7}),o($Vn9,$Vo9,{27:[1,1064]}),{27:[1,1065],236:$Vp9},o($Vg7,[2,346]),o($Vg7,[2,347]),o($Vg7,$Vq9,{237:1067,244:$Vr9,245:$Vs9}),o($Vg7,[2,350]),o($Vg7,[2,351]),o($Vg7,[2,352]),o($Vt9,[2,357],{242:1070,246:[1,1071]}),o($Vg9,[2,1896]),o($Vv7,[2,1900]),o($Vp7,$Vu9,{856:1072,857:1073,801:$Vr7}),o($Vv7,[2,1909]),o($Vv9,[2,1910]),o($Vv7,[2,1912],{856:680,854:1074,801:$Vw7}),o([27,547,561,756],$V1,{545:1075}),o([27,116,535,547,615],$Vw9,{123:[1,1076]}),o($Vx9,[2,1921]),o($Vy9,[2,1922]),o($Vx9,[2,1924],{123:[1,1077]}),{27:[1,1079],108:[1,1078]},o($V2,[2,827]),{152:$VV6,195:1080,215:809,546:630,547:$V37},o($Vv7,$Vq7,{856:680,854:692,852:1081,801:$Vw7}),o($Vv7,[2,1899]),o($Vg9,$Vu9,{856:1072,801:$Vw7}),o([547,561,756],$V1,{545:1082}),{27:[1,1084],46:439,47:$Vg4,50:$Vh4,56:1083,58:$Vi4,59:1085,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,317],{270:442,694:446,46:1057,56:1086,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{385:$Vz9,540:1087,541:1088,728:$VA9,802:$VB9,926:1089,927:1090},o($V2,[2,910]),o($VC9,$V$8,{598:1094,604:1095,55:$V09,123:$V19}),{27:[1,1097],621:[1,1096]},{27:[1,1099],123:$V29,535:[1,1098]},o($VD9,$VZ8,{270:442,694:446,46:596,601:1100,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($VD9,$VY8,{621:[1,1101]}),o([27,55,116,123,535],$Vb9,{624:1102,625:1103,596:[1,1105],626:$VE9}),o($V2,[2,1093],{123:$V39}),o($V2,[2,1094]),{27:[1,1108],46:439,47:$Vg4,50:$Vh4,56:1106,58:$Vi4,59:1107,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($Vy7,$VF9,{819:1109,239:$VG9}),o($VH9,$VF9,{819:1111,239:$VG9}),o($Vy7,[2,1713]),o($Vy7,[2,1714]),o($VI9,[2,1692]),o($VI9,[2,1693]),o($V2,[2,2734]),o($V2,[2,2735]),{27:[1,1113],46:439,47:$Vg4,50:$Vh4,56:1112,58:$Vi4,59:1114,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,904]),o($V2,[2,1127]),o($V2,[2,1131]),o($V2,[2,1133]),{116:$Vf7,546:663,547:$VR1,553:666},o($Vv7,$Vt7,{546:690,116:$Vu7,547:$V37}),o($V2,$VJ9,{627:730,632:731,648:1115,649:1116,615:$V22}),o($VK9,$VL9,{631:1117,576:1118,536:1119,577:1120,537:1121,808:$VM9}),o($V2,[2,1134]),o($V2,[2,1138]),o($VK9,$VL9,{631:1123,536:1124,577:1125,808:$VN9}),o($VO9,[2,1162]),o([27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,811,1011],$VH7,{548:1127,561:$VI7,756:$VJ7}),o($V2,[2,1164],{648:727,627:813,629:1128,615:$V57}),{27:[1,1130],547:$VF7,630:1129,635:1131},o($VO9,[2,1169],{630:1132,547:$VX7}),{27:[1,1134],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1133,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1135,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($V2,[2,1190]),o($Voa,$Vpa,{676:1212,639:$Vqa}),o($V2,[2,1235]),{535:$Vra,684:1214},o($Vsa,$VG7,{685:996,683:1215,158:$Vk9,687:$Vl9}),{27:[1,1216],535:$Vta},o($V2,[2,1257],{684:1217,535:$Vra}),{27:[1,1219],158:[1,1218]},{27:[1,1221],46:439,47:$Vg4,50:$Vh4,56:1220,58:$Vi4,59:1222,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},{27:[1,1224],46:439,47:$Vg4,50:$Vh4,56:1223,58:$Vi4,59:1225,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,1277]),o($V2,[2,2711],{26:[1,1226],27:[1,1227]}),o($V2,[2,2710],{26:[1,1228]}),o($V2,[2,2712]),o($Vua,[2,2713]),o($Vva,[2,2714]),o($Vua,[2,2715]),o($Vva,[2,2716]),o($Vua,[2,1824],{270:442,694:446,46:1229,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($Vva,[2,1826],{270:442,694:446,46:1230,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($Vwa,$Vxa,{728:[1,1231]}),o($Vya,[2,1822]),{2:$Vza,27:[1,1236],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1245,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,549:1232,551:1233,554:1234,556:1235,557:1237,558:$VAa,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,726:$VBa,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,929:1238,931:1239,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($VCa,[2,1933]),o($VCa,[2,1934]),o($V2,[2,39]),{27:[1,1247],46:1246,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1248,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:[1,1250],62:[1,1249]},{27:[1,1253],46:439,47:$Vg4,50:$Vh4,56:1251,58:$Vi4,59:1252,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},{27:[1,1256],46:439,47:$Vg4,50:$Vh4,56:1254,58:$Vi4,59:1255,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($VDa,$VEa,{268:1257,719:$VFa}),o($VH9,$VGa,{67:1259,100:1260,769:$VHa}),o($Vy7,$VGa,{67:1262,100:1263,769:$VHa}),{27:[1,1265],62:[1,1264]},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1266,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:1267,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1269,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($VK7,$VIa,{206:[1,1271],491:[1,1270]}),o($V2,[2,850]),o($VJa,$VKa,{167:1272,171:1273,769:$VLa}),o($Vy7,$VKa,{167:1275,171:1276,769:$VLa}),{27:[1,1279],206:[1,1277],491:[1,1278]},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1280,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($Vy7,$VKa,{167:1281,171:1282,769:$VLa}),o($Vy7,$VKa,{167:1283,171:1284,769:$VLa}),{27:[1,1286],62:[1,1285]},o($Vy7,$VKa,{167:1287,171:1288,769:$VLa}),o($V2,[2,2568],{270:442,694:446,46:1001,76:1289,813:1291,47:$Vg4,50:$Vh4,54:$VO7,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,307:[1,1290],318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,770:$VW7}),{27:[1,1293],488:$VMa,535:$VNa,812:1292},o($V2,[2,2595]),{27:[1,1298],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1297,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,831:1296},{27:[1,1300],62:$VOa,158:$VPa,1049:1299},{27:[1,1304],711:$VQa},{27:[1,1306],307:$VRa},o($V2,[2,2608],{817:1307,280:$VN8}),o($V79,$VSa,{694:446,1050:1308,1051:1309,270:1310,27:[1,1311],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6}),o($V2,[2,2627],{27:[1,1313],55:[1,1312]}),{27:[1,1316],45:1315,46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1314,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:1317,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,610:$VC7,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,793:$VD7,833:754},{27:[1,1319],807:[1,1318]},{27:[1,1321],46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1320,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:1322,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:754},o($V2,[2,2667]),{27:[1,1324],596:[1,1323]},o($VTa,$VUa,{827:1325,488:$VVa}),{27:[1,1328],239:[1,1327]},{27:[1,1331],46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1329,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:1330,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:754},o($V2,[2,2690]),o($VWa,$VXa,{1052:1332,1054:1333,488:$VYa,535:$VZa}),o($V2,[2,2628],{55:[1,1336]}),o($V_a,[2,1696]),o($V_a,[2,1697]),{27:[1,1338],54:$VO7,770:$VW7,813:1337},o($V$a,[2,1718]),o($V$a,[2,1694]),o($V$a,[2,1695]),o($V2,[2,1132]),{116:$Vf9,546:971,547:$V37},o($V2,[2,1136],{627:813,648:1115,615:$V57}),o($VK9,$VL9,{536:1124,577:1125,631:1339,808:$VN9}),o([47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,1011],$VH7,{548:1340,561:$VI7,756:$VJ7}),{547:$VX7,630:1341},o($V0b,$VGa,{366:877,67:1342,73:1344,100:1345,71:[1,1343],154:$V1b,769:$VHa}),{27:[1,1347],75:[1,1346]},o($V2,[2,65]),{27:[1,1349],79:[1,1348]},o($V2,[2,67]),{27:[1,1351],85:$V2b},o($V2,$V3b,{57:1352,60:1354,68:1355,102:1356,27:[1,1353],161:$V4b}),{27:[1,1359],68:1358,102:1360,161:$V4b},{27:[1,1363],78:$V5b,89:$V6b,107:[1,1364]},{27:[1,1368],49:1370,50:[1,1366],52:1374,78:[1,1367],90:[1,1365],127:$V7b,129:$V8b,130:$V9b,132:$Vab,705:$Vbb},{26:[1,1381],27:[1,1379],63:842,66:$Vcb,74:[1,1376],92:[1,1377],97:1378,99:$Va8,112:1382,114:1380,133:839,134:$VY7,135:$VZ7,143:844,176:$V$7,177:$V08},o($V2,[2,77]),o($V2,[2,78]),{27:[1,1384],154:$Vdb},o($V2,[2,112]),o($V2,[2,113]),o($V2,[2,132]),o($V2,[2,133]),o($V2,[2,134]),{27:[1,1386],79:[1,1385]},{27:[1,1388],157:1387,160:1389,161:[1,1390]},o($V0b,[2,228]),o($V0b,[2,229]),{116:[1,1391]},o([27,161,811],$VKa,{270:442,694:446,167:1392,171:1394,172:1395,46:1396,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,71:[1,1393],74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,769:$VLa}),o($V2,[2,157]),o($V2,[2,158]),{125:1397,279:$VM8,280:$VN8,441:926,817:927},{27:[1,1399],138:1398,148:1400,178:[1,1401],180:$Veb},o($Vy7,$Vfb,{139:1403,93:$Vgb}),o($V2,[2,162]),{154:$Vhb},o($Vib,[2,223]),o($Vib,[2,224]),{27:[1,1407],129:$Vjb},{27:[1,1409],152:$Vv,195:1408,197:1410,215:720,509:721,546:280,547:$VR1,553:303},o($V2,[2,271]),{27:[1,1412],158:[1,1411]},o($V48,[2,285]),o($V2,[2,292]),o($V2,[2,293]),{27:[1,1414],46:439,47:$Vg4,50:$Vh4,56:1413,58:$Vi4,59:1415,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,897]),o($Vy7,$Vkb,{636:1416,158:$Vlb}),o($Vy7,$Vkb,{636:1418,158:$Vlb,639:[1,1419]}),{641:1420,644:1421,767:$Vmb},o($Vnb,[2,1146]),{27:[1,1424],46:439,47:$Vg4,50:$Vh4,56:1423,58:$Vi4,59:1425,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,1196]),{67:1426,154:$V1b,161:$VGa,769:$Vob},o($V2,[2,82]),{75:[1,1428]},o($V2,[2,84]),{79:[1,1429]},o($V2,[2,86]),{85:[1,1430]},o($V2,$V3b,{68:1355,57:1431,161:$V_7}),{68:1432,161:$V_7},{78:[1,1433],89:[1,1434]},{49:1370,50:[1,1436],90:[1,1435],127:$Vpb,129:$V8b,130:$Vqb,132:$Vab,705:$Vrb},{26:$Vsb,63:882,66:$Vcb,74:[1,1440],92:[1,1441],97:1442,99:$Va8,114:885,133:839,134:$VY7,135:$Vb8,176:$V$7,177:$V08},o($V2,[2,96]),o($V2,[2,97]),o([2,118,123,333,373,374,544,691],$Vtb,{332:1444,177:$Vub}),{79:[1,1446]},{157:1447,161:[1,1448]},{71:[1,1450],161:$VKa,167:1449,769:$Vvb},{125:1452,279:$VM8,280:$VN8,441:926,817:927},{138:1398,178:[1,1453],180:$Veb},o($Vi9,$Vfb,{139:1454,93:$Vgb}),{46:1455,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{154:[1,1456]},o($Vwb,$Vdb),o($V2,$V3,{543:6,209:7,210:249,3:250,211:251,195:252,213:253,183:254,215:255,16:256,214:257,197:258,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,546:280,17:284,18:285,19:286,20:287,21:288,22:289,23:290,24:291,25:292,28:293,29:294,507:295,508:296,509:297,510:298,511:299,512:300,513:301,514:302,553:303,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1016:332,1017:333,1018:334,1019:335,1020:336,1021:337,1022:338,1023:339,1024:340,1025:341,1026:342,1027:343,1028:344,1029:345,1030:346,1031:347,1032:348,1033:349,1034:350,627:353,628:354,653:355,37:361,38:362,39:363,40:364,41:365,42:366,43:367,259:369,260:370,261:371,262:372,263:373,264:374,265:375,524:377,525:378,526:379,527:380,528:381,529:382,530:383,531:384,1035:387,1036:388,1037:389,1038:390,1039:391,1040:392,1041:393,1042:394,1043:395,1044:396,1045:397,1046:398,1047:399,1048:400,632:401,634:402,655:403,65:404,194:405,456:408,98:412,196:413,458:414,542:1457,212:1458,2:$V4,26:$V5,27:$V6,44:$V7,47:$V8,50:$V9,54:$Va,55:$Vb,58:$Vc,62:$Vd,71:$Ve,78:$Vf,79:$Vg,85:$Vh,88:$Vi,89:$Vj,107:$Vk,108:$Vl,116:$Vm,118:$Vn,123:$Vo,126:$Vp,129:$Vq,130:$Vr,132:$Vs,150:$Vt,151:$Vu,152:$Vv,153:$Vw,154:$Vx,158:$Vy,161:$Vz,166:$VA,198:$VB,202:$VC,205:$VD,206:$VE,208:$VF,216:$VG,217:$VH,218:$VI,219:$VJ,227:$VK,228:$VL,229:$VM,230:$VN,231:$VO,233:$VP,235:$VQ,238:$VR,239:$VS,240:$VT,266:$VU,277:$VV,279:$VW,280:$VX,307:$VY,317:$VZ,318:$V_,333:$V$,347:$V01,348:$V11,349:$V21,351:$V31,352:$V41,359:$V51,371:$V61,372:$V71,373:$V81,374:$V91,376:$Va1,381:$Vb1,382:$Vc1,384:$Vd1,385:$Ve1,386:$Vf1,396:$Vg1,397:$Vh1,409:$Vi1,410:$Vj1,417:$Vk1,418:$Vl1,419:$Vm1,420:$Vn1,421:$Vo1,422:$Vp1,423:$Vq1,424:$Vr1,425:$Vs1,428:$Vt1,439:$Vu1,440:$Vv1,442:$Vw1,443:$Vx1,444:$Vy1,445:$Vz1,446:$VA1,447:$VB1,460:$VC1,464:$VD1,468:$VE1,469:$VF1,473:$VG1,486:$VH1,487:$VI1,488:$VJ1,491:$VK1,532:$VL1,533:$VM1,534:$VN1,535:$VO1,538:$VP1,539:$VQ1,547:$VR1,561:$VS1,563:$VT1,568:$VU1,569:$VV1,570:$VW1,571:$VX1,572:$VY1,573:$VZ1,574:$V_1,575:$V$1,596:$V02,610:$V12,615:$V22,616:$V32,617:$V42,618:$V52,619:$V62,620:$V72,621:$V82,622:$V92,623:$Va2,626:$Vb2,637:$Vc2,639:$Vd2,640:$Ve2,657:$Vf2,664:$Vg2,666:$Vh2,668:$Vi2,674:$Vj2,675:$Vk2,677:$Vl2,682:$Vm2,687:$Vn2,688:$Vo2,689:$Vp2,695:$Vq2,697:$Vr2,698:$Vs2,699:$Vt2,700:$Vu2,701:$Vv2,702:$Vw2,703:$Vx2,704:$Vy2,705:$Vz2,706:$VA2,707:$VB2,708:$VC2,709:$VD2,711:$VE2,712:$VF2,713:$VG2,714:$VH2,715:$VI2,716:$VJ2,717:$VK2,718:$VL2,719:$VM2,720:$VN2,721:$VO2,722:$VP2,723:$VQ2,724:$VR2,725:$VS2,726:$VT2,727:$VU2,728:$VV2,729:$VW2,730:$VX2,731:$VY2,732:$VZ2,733:$V_2,734:$V$2,735:$V03,736:$V13,737:$V23,738:$V33,739:$V43,740:$V53,741:$V63,742:$V73,743:$V83,744:$V93,745:$Va3,746:$Vb3,747:$Vc3,748:$Vd3,749:$Ve3,750:$Vf3,751:$Vg3,752:$Vh3,753:$Vi3,754:$Vj3,755:$Vk3,756:$Vl3,757:$Vm3,758:$Vn3,759:$Vo3,760:$Vp3,761:$Vq3,762:$Vr3,763:$Vs3,764:$Vt3,765:$Vu3,766:$Vv3,767:$Vw3,768:$Vx3,769:$Vy3,770:$Vz3,771:$VA3,772:$VB3,773:$VC3,774:$VD3,775:$VE3,776:$VF3,777:$VG3,778:$VH3,779:$VI3,780:$VJ3,781:$VK3,782:$VL3,783:$VM3,784:$VN3,785:$VO3,786:$VP3,787:$VQ3,788:$VR3,789:$VS3,790:$VT3,791:$VU3,792:$VV3,793:$VW3,794:$VX3,795:$VY3,796:$VZ3,797:$V_3,798:$V$3,799:$V04,800:$V14,801:$V24,802:$V34,803:$V44,804:$V54,805:$V64,806:$V74,807:$V84,808:$V94,809:$Va4,810:$Vb4,811:$Vc4,851:$Vd4}),o($V2,$V3,{543:6,209:7,3:250,211:251,195:252,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1016:332,1017:333,1018:334,1019:335,1020:336,1021:337,1022:338,1023:339,1024:340,1025:341,1026:342,1027:343,1028:344,1029:345,1030:346,1031:347,1032:348,1033:349,1034:350,456:408,215:629,546:630,627:639,628:640,653:642,65:649,194:650,542:1459,210:1463,2:$V4,26:$Vxb,44:$VU6,47:$V8,50:$V9,54:$Va,55:$Vb,58:$Vc,62:$Vd,71:$Ve,78:$Vf,79:$Vg,85:$Vh,88:$Vi,89:$Vj,107:$Vk,108:$Vl,116:$Vm,118:$Vn,123:$Vo,126:$Vp,129:$Vq,130:$Vr,132:$Vs,150:$Vt,151:$Vu,152:$VV6,153:$Vw,154:$Vx,158:$Vy,161:$Vz,166:$VW6,198:$VX6,202:$VC,205:$VY6,206:$VE,208:$VF,217:$VZ6,218:$VI,219:$VJ,227:$VK,228:$VL,229:$VM,230:$VN,231:$Vyb,233:$VP,235:$VQ,238:$VR,239:$VS,240:$VT,266:$V_6,277:$VV,279:$VW,280:$VX,307:$VY,317:$VZ,318:$V_,333:$V$,347:$V01,348:$V11,349:$V21,351:$V31,352:$V41,359:$V51,371:$V61,372:$V71,373:$V81,374:$V91,376:$Va1,381:$Vb1,382:$Vc1,384:$Vd1,385:$Ve1,386:$Vf1,396:$Vg1,397:$Vh1,409:$Vi1,410:$Vj1,417:$Vk1,418:$Vl1,419:$Vm1,420:$Vn1,421:$Vo1,422:$Vp1,423:$Vq1,424:$Vr1,425:$Vs1,428:$Vt1,439:$Vu1,440:$Vv1,442:$Vw1,443:$Vx1,444:$Vy1,445:$Vz1,446:$VA1,447:$VB1,460:$VC1,464:$VD1,468:$VE1,469:$VF1,473:$VG1,486:$VH1,487:$VI1,488:$VJ1,491:$VK1,532:$VL1,533:$V$6,534:$V07,535:$Vzb,538:$V27,539:$VQ1,547:$V37,561:$VS1,563:$VT1,568:$VU1,569:$VV1,570:$VW1,571:$VX1,572:$VY1,573:$VZ1,574:$V_1,575:$V$1,596:$VAb,610:$V12,615:$V57,616:$V32,617:$V42,618:$V67,619:$V62,620:$V72,621:$V82,622:$V92,623:$V77,626:$Vb2,637:$Vc2,639:$Vd2,640:$Ve2,657:$V87,664:$Vg2,666:$Vh2,668:$Vi2,674:$V97,675:$Vk2,677:$Vl2,682:$Va7,687:$Vn2,688:$Vb7,689:$Vp2,695:$Vq2,697:$Vr2,698:$Vs2,699:$Vt2,700:$Vu2,701:$Vv2,702:$Vw2,703:$Vx2,704:$Vy2,705:$Vz2,706:$VA2,707:$VB2,708:$VC2,709:$VD2,711:$VE2,712:$VF2,713:$VG2,714:$VH2,715:$Vc7,716:$VJ2,717:$VK2,718:$VL2,719:$VM2,720:$Vd7,721:$VO2,722:$VP2,723:$VQ2,724:$VR2,725:$VS2,726:$VT2,727:$VU2,728:$VV2,729:$VW2,730:$VX2,731:$VY2,732:$VZ2,733:$V_2,734:$V$2,735:$V03,736:$V13,737:$V23,738:$V33,739:$V43,740:$V53,741:$V63,742:$V73,743:$V83,744:$V93,745:$Va3,746:$Vb3,747:$Vc3,748:$Vd3,749:$Ve3,750:$Vf3,751:$Vg3,752:$Vh3,753:$Vi3,754:$Vj3,755:$Vk3,756:$Vl3,757:$Vm3,758:$Vn3,759:$Vo3,760:$Vp3,761:$Vq3,762:$Vr3,763:$Vs3,764:$Vt3,765:$Vu3,766:$Vv3,767:$Vw3,768:$Vx3,769:$Vy3,770:$Vz3,771:$VA3,772:$VB3,773:$VC3,774:$VD3,775:$VE3,776:$VF3,777:$VG3,778:$VH3,779:$VI3,780:$VJ3,781:$VK3,782:$VL3,783:$VM3,784:$VN3,785:$VO3,786:$VP3,787:$VQ3,788:$VR3,789:$VS3,790:$VT3,791:$VU3,792:$VV3,793:$VW3,794:$VX3,795:$VY3,796:$VZ3,797:$V_3,798:$V$3,799:$V04,800:$V14,801:$V24,802:$V34,803:$V44,804:$V54,805:$V64,806:$V74,807:$V84,808:$V94,809:$Va4,810:$Vb4,851:$Ve7}),o([27,118,499,544,547,615,620,691,743,757,766,774,782,801,808,809,894],$VBb,{562:1465,971:1466,563:[1,1467]}),o($Vi8,[2,1945]),{27:$V6,46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1470,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$Vc4,833:441,900:436,906:438,933:1468,934:1469,935:425,936:426,937:427,938:428,939:429,940:430,947:431,949:432,950:433,952:434},o($Vi8,[2,1944],{562:1465,563:$VCb}),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,900:436,933:1472,935:425,937:1054,938:428,947:1055,949:1056},o($Vm8,$VDb,{567:906,942:1473,944:1474,568:$Vo8,569:$Vp8,570:$Vq8,571:$Vr8,572:$Vs8,573:$Vt8,574:$Vu8,575:$Vv8}),o($Vl8,[2,2261]),{27:$VEb,46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441,900:436,906:438,937:1475,939:1476,947:431,949:432,950:433,952:434},o($Vl8,[2,2272],{942:908,863:1478,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),{27:[1,1480],572:$VFb},{27:[1,1483],572:$VGb,573:[1,1482]},{27:[1,1485],572:$VHb},o($VIb,[2,2280]),{27:[1,1490],572:$VJb,573:[1,1488],574:[1,1486],575:[1,1489]},{27:[1,1492],572:$VKb},{27:[1,1497],572:$VLb,573:[1,1495],574:[1,1493],575:[1,1496]},{27:[1,1499],572:$VMb},o($VNb,[2,2268],{56:435,900:436,270:442,694:446,947:1055,949:1056,46:1057,937:1500,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($Vl8,[2,2262],{942:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,900:436,937:1502,947:1055,949:1056},{572:$VFb},{572:$VGb,573:[1,1503]},{572:$VHb},{572:$VJb,573:[1,1505],574:[1,1504],575:[1,1506]},{572:$VKb},{572:$VLb,573:[1,1508],574:[1,1507],575:[1,1509]},{572:$VMb},o($VOb,$VE8,{270:442,694:446,46:921,125:922,441:926,817:927,930:1510,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($VK8,$VE8,{270:442,694:446,46:921,125:922,441:926,817:927,930:1511,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{116:[1,1512]},o($VOb,[2,2298]),o($VK8,[2,2302]),o($VPb,[2,2345]),o($VPb,[2,2346]),{27:[1,1517],46:1513,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,125:1514,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:926,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:928,468:$VM5,469:$VN5,473:$VO5,485:1516,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,817:927,818:929,833:1515},o($VQb,[2,2349]),o($VQb,[2,2350]),o($VRb,[2,1706]),o($VRb,[2,1707]),o($VSb,[2,1708]),o($VSb,[2,1709]),{279:$VTb,281:$VUb,816:[1,1520]},{280:$VVb,281:$VWb,816:[1,1523]},o($VK8,$VE8,{270:442,694:446,46:921,125:922,441:926,817:927,930:1524,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{116:[1,1525]},o($VK8,[2,2301]),{46:1513,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,125:1514,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:926,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,817:927},{279:$VTb,281:$VUb},{280:$VVb,281:$VWb},{46:1526,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$VXb,833:1529,835:1527},{118:[1,1530]},{46:921,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,118:$VE8,125:922,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:926,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,817:927,930:1531},{2:$VYb,118:$VZb,121:1532},{2:$VYb,118:$VZb,121:1535},{152:$Vv,195:1550,197:1551,215:720,509:721,546:280,547:$VR1,553:303,957:1536,958:1537,959:1538,960:1539,961:1540,962:1541,963:1542,964:1543,965:1544,966:1545,967:1546,968:1547,969:1548,970:1549},o($VQ8,$VR8,{900:436,660:939,949:940,955:1552,116:$VS8}),{46:1553,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{735:[1,1554]},o($VU8,[2,1819]),o([2,26,27,47,50,55,58,61,62,64,66,71,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,728,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,789,790,798,801,808,809,894,902],[2,1769]),{27:[1,1556],75:[1,1555]},o($V2,[2,1017]),{27:[1,1559],44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,611:1557,612:1558,613:598,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},{27:[1,1561],46:439,47:$Vg4,50:$Vh4,56:1565,58:$Vi4,59:1566,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,158:[1,1564],174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,608:1560,609:1562,610:[1,1563],621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},{27:[1,1568],51:1570,473:$V_b,599:1567,605:1569,619:$V$b,620:$V0c},o($V2,[2,1023]),{46:1574,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{75:[1,1575],123:$V29},{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:1576,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},o($V2,[2,1016]),{46:1057,47:$Vg4,50:$Vh4,56:1565,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,158:[1,1578],174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,608:1560,610:[1,1577],621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:1579,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},o($V59,[2,1052]),o([55,123,544,691],[2,1053]),o([27,55,75,123,152,535,544,547,615,691],[2,1773]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1583,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1581,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4,836:1582,837:1580},o($V2,[2,2545]),o($V2,[2,2546]),o($V2,[2,2547]),o($V2,[2,2548]),{2:[1,1585],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,125:1589,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:[1,1592],217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1587,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:926,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,541:1593,560:1586,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,727:[1,1594],728:$VA9,762:[1,1591],800:[1,1590],802:$VB9,817:927,920:1588,921:[1,1595],926:1089,927:1090},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1596,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($Vg9,$Vq7,{856:680,854:692,852:1059,801:$Vw7}),{152:$VV6,195:1061,215:809,546:630,547:$V37},{46:1057,47:$Vg4,50:$Vh4,56:1597,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{55:$V49,75:$V$8,123:$V1c,598:1598},{75:[1,1600],123:$V29},o([75,123],$VZ8,{270:442,694:446,46:596,601:1601,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o([55,75,123,535,544,691],$V89,{614:961,80:963,116:$V2c}),{55:$V49,123:$V1c,535:$V$8,598:1603},{621:[1,1604]},{123:$V29,535:[1,1605]},o($V3c,$VZ8,{270:442,694:446,46:596,601:1606,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V3c,$VY8,{621:[1,1607]}),o([55,116,123,535],$Vb9,{624:1608,596:[1,1609],626:$VE9}),{46:1057,47:$Vg4,50:$Vh4,56:1610,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vi9,$VF9,{819:1611,239:$VG9}),o($V4c,$VF9,{819:1612,239:$VG9}),o($Vc9,$VZ8,{694:446,270:965,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,561:$Vd9,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,777:$Ve9}),{46:1057,47:$Vg4,50:$Vh4,56:1613,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,$VJ9,{627:813,648:1115,615:$V57}),o($VK9,$VL9,{631:1117,536:1124,577:1125,808:$VN9}),o([116,535,547,615],$Vw9,{123:$V5c}),{108:[1,1615]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1616,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{639:$Vqa,676:1636,677:$Vpa},{535:$Vra,684:1637},o($Vsa,$Vta),{158:[1,1638]},{46:1057,47:$Vg4,50:$Vh4,56:1639,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:1640,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{26:[1,1641]},o([26,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735],$Vxa,{728:[1,1642]}),{2:$Vza,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,549:1643,551:1644,557:1645,558:$VAa,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:1238,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1647,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1648,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{62:[1,1649]},{46:1057,47:$Vg4,50:$Vh4,56:1251,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:1254,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{67:1650,71:[1,1651],73:1344,154:$V1b,161:$VGa,366:877,769:$Vob},{75:[1,1652]},{79:[1,1653]},{85:$V2b},o($V2,$V3b,{57:1352,68:1355,161:$V_7}),{68:1358,161:$V_7},{78:$V5b,89:$V6b},{49:1370,50:[1,1655],90:[1,1654],127:$Vpb,129:$V8b,130:$Vqb,132:$Vab,705:$Vrb},{26:$Vsb,63:882,66:$Vcb,74:[1,1656],92:[1,1657],97:1378,99:$Va8,114:885,133:839,134:$VY7,135:$Vb8,176:$V$7,177:$V08},{129:$Vjb},{152:$VV6,195:1408,215:809,546:630,547:$V37},{158:[1,1658]},o($V4c,$VGa,{67:1659,769:$Vob}),o([158,687],$VEa,{268:1660,719:$VFa}),o($Vi9,$VGa,{67:1661,769:$Vob}),{62:[1,1662]},{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:1663,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1664,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vm9,$VIa,{206:[1,1666],491:[1,1665]}),o($Vi9,$VKa,{167:1667,769:$Vvb}),o($Vi9,$VKa,{167:1668,769:$Vvb}),{206:[1,1669],491:[1,1670]},o($Vi9,$VKa,{167:1671,769:$Vvb}),o($Vi9,$VKa,{167:1672,769:$Vvb}),{62:[1,1673]},o($Vi9,$VKa,{167:1674,769:$Vvb}),{46:1057,47:$Vg4,50:$Vh4,56:1675,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{488:$VMa,535:$VNa,812:1676},{62:$VOa,158:$VPa,1049:1677},{711:$VQa},{307:$VRa},o($V79,$VSa,{694:446,1050:1678,270:1679,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6}),{55:[1,1680]},{45:1682,46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1681,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,610:$VC7,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,793:$VD7},{807:[1,1683]},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1684,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{596:[1,1685]},o([279,307,544,691],$VUa,{827:1686,488:$VVa}),{239:[1,1687]},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:1329,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vic,$VXa,{1052:1688,488:$Vjc,535:$Vkc}),{54:$VO7,770:$VW7,813:1337},o($Vi9,$Vkb,{636:1691,158:$Vlb}),o($Vi9,$Vkb,{636:1692,158:$Vlb,639:[1,1693]}),{641:1694,767:$Vlc},o($Vmc,$Vh8,{866:1696,123:$Vnc}),o($Voc,$Vn8,{942:908,863:1698,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o([2,47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,774,782,801,808,809,894],$VD8,{948:916,798:$VJ8}),o([2,55,118,123,499,544,547,563,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,808,809,894],$VE8,{270:442,694:446,930:919,46:921,125:922,441:926,817:927,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o([2,26,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,127,129,130,132,134,135,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,637,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,769,774,782,798,801,808,809,894],$VP8,{728:[1,1699]}),{46:1057,47:$Vg4,50:$Vh4,56:1700,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vg9,[2,1897]),o($Vv7,[2,1903]),{118:[1,1701]},{118:[1,1702]},o($Vv7,[2,1902]),o($Vpc,[2,343]),o($Vpc,[2,344]),o($Vg7,$Vq9,{237:1703,244:$Vr9,245:$Vs9}),o($Vg7,$Vqc),o($Vg7,[2,355]),o($Vg7,[2,356]),o($Vg7,[2,359],{243:1704,247:[1,1705],248:[1,1706],249:[1,1707],250:[1,1708]}),o($Vt9,[2,358]),o($Vv9,[2,1911]),o($Vv7,[2,1913],{856:680,854:1709,801:$Vw7}),o($Vv7,[2,1914],{856:1072,801:$Vw7}),{27:[1,1711],547:$VH7,548:1710,561:$VI7,756:$VJ7},{46:687,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,860:1712,861:1713},{46:992,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,858:1714,860:685},{116:[1,1715]},o($Vrc,[2,1929]),{118:[1,1716]},o($Vv7,[2,1906]),{547:$VH7,548:1717,561:$VI7,756:$VJ7},o([27,218],$V3b,{68:1355,102:1356,57:1718,60:1719,161:$V4b}),o($V2,[2,318]),o($Vsc,$V3b,{68:1355,57:1720,161:$V_7}),o($Vsc,$V3b,{68:1355,57:1721,161:$V_7}),o($V2,[2,909],{123:[1,1722]}),o($Vtc,[2,911]),o($Vuc,[2,2209]),o($Vuc,[2,2210]),o($Vuc,$Vvc,{728:[1,1723]}),{385:$Vwc,802:[1,1725]},{385:[1,1726]},{27:[1,1728],535:[1,1727]},o($V2,[2,1095]),{27:[1,1730],227:[1,1729]},o($V2,[2,1099]),{27:[1,1732],51:1570,473:$V_b,599:1731,605:1733,619:$V$b,620:$V0c},o($V2,[2,1107]),{27:[1,1735],123:$V29,535:[1,1734]},{27:[1,1737],227:[1,1736]},{27:[1,1739],535:$Vxc},o($V2,[2,1121]),o($VC9,[2,1123]),{27:[1,1741],621:$Vyc},o($V2,$V3b,{270:442,694:446,46:1187,68:1355,102:1356,845:1742,57:1743,846:1744,60:1746,140:1747,172:1748,847:1749,833:1750,27:[1,1745],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,161:$V4b,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$Vzc}),o($V2,$V3b,{68:1355,57:1752,161:$V_7}),o($V2,[2,1891],{270:442,694:446,46:1057,56:1753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{27:[1,1756],46:1757,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,824:1754,826:1755,833:1759,834:1758},o($Vy7,[2,1711]),{27:[1,1761],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1760,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,$VL9,{577:1125,536:1762,537:1764,27:[1,1763],808:$VM9}),o($V2,[2,905]),o($V2,$VL9,{577:1125,536:1765,808:$VN9}),o($VO9,[2,1163]),o($V2,[2,1165],{648:727,627:813,629:1766,615:$V57}),o($V2,[2,1129]),o($V2,[2,1140]),o($VAc,$VBc,{578:1767,595:1768,589:1769,620:$VCc}),o([118,499,544,615,620,691,743,757,766,774,782,801,809,894],$VDc,{2:[1,1771],27:[1,1772]}),o($VEc,$VBc,{578:1773,595:1774,620:$VFc}),{27:[1,1778],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1779,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1780,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,869:1776,870:1777,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($V2,[2,1139]),o($VGc,$VBc,{595:1774,578:1781,620:$VFc}),o($VHc,$VDc),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1782,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,869:1776,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{27:[1,1785],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1245,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:1783,556:1784,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,726:$VBa,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,929:1238,931:1239,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($V2,[2,1166],{627:813,648:1115,615:$V57}),o($VIc,$VL9,{536:1119,577:1120,537:1121,631:1786,576:1787,808:$VM9}),o($VO9,[2,1171]),o($VIc,$VL9,{536:1124,577:1125,631:1788,808:$VN9}),o($VIc,$VL9,{536:1124,577:1125,631:1789,808:$VN9}),{27:[1,1791],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,654:1790,656:1792,662:1808,663:1809,664:$VRc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc,903:1806,908:1807},o($V2,[2,1191],{903:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,781:$V7d,789:$V8d,790:$V9d}),o($V2,[2,1192],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($Vuc,[2,2055]),{27:[1,1842],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1840,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1841,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1845,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1843,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1844,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vnd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1847,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1848,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:[1,1849],817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vnd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1851,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1852,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:[1,1853],817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{116:$Vx4,900:1854,906:1855},{27:[1,1858],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1856,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1857,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:[1,1862],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1860,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1863,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,664:$Vod,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,759:$Vpd,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,904:1859,905:1144,909:1861,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190,1067:1864,1068:1865,1069:1867,1070:1868},o($Vqd,[2,2085]),o($Vuc,[2,2187]),o($Vuc,$Vrd,{913:1870,918:1871,116:$Vsd}),{116:$Vsd,913:1873,918:1874},o($Vuc,[2,2191]),o($Vuc,[2,2192]),o($Vqd,[2,2193]),o($Vqd,[2,2194]),o($Vqd,[2,2197]),o($Vuc,[2,2204]),o($Vtd,$Vud,{728:[1,1875]}),{116:[2,2373]},{116:[2,2374]},{116:[2,2375]},{116:[2,2376]},{116:[2,2377]},o($Vuc,$Vvd,{973:1876,979:1877,975:1878,981:1879,784:$Vwd}),{27:[1,1882],784:$Vwd,975:1881,981:1883},o($Vuc,[2,2359]),o($Vuc,[2,2360]),o($Vqd,[2,2205]),o($Vqd,[2,2200]),o($Vqd,[2,2361]),o($Vqd,[2,2363],{975:1884,784:$Vxd}),o($Vqd,[2,2367]),o($Vqd,[2,2368]),o($Vuc,[2,2206]),o($Vuc,[2,2207]),o($Vyd,[2,1831]),o($Vzd,[2,2383]),o($Vzd,[2,2384]),o($Vzd,[2,2385]),{116:[1,1886]},{116:[1,1887]},{116:[1,1888]},o($Vqd,[2,2208]),o($Vqd,[2,1833],{728:[1,1889]}),o($Vqd,[2,2386]),o($Vqd,[2,2387]),o($Vqd,[2,2388]),o($Vuc,[2,2218]),o($Vuc,[2,2219]),o($Vuc,[2,2220]),o([2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,544,547,552,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,728,730,732,733,735,736,743,755,757,759,760,765,766,773,774,779,781,782,788,789,790,792,801,808,809,894,902],$VAd,{729:[1,1890]}),{116:[1,1891]},{116:[1,1892]},{116:[1,1893]},o($Vqd,[2,2221]),o($Vqd,[2,2222]),o($Vuc,[2,2223]),o($Vuc,[2,2224]),{116:[2,2498]},{116:[2,2499]},{116:[2,2500]},{116:[2,2501]},{116:[2,2502]},{116:[2,2503]},{116:[2,2504]},{116:[2,2505]},{116:[2,2506]},{116:[2,2507]},{116:[2,2508]},{116:[2,2509]},{116:[2,2510]},{116:[2,2511]},{116:[2,2512]},{116:[2,2513]},{116:[2,2514]},{27:[1,1895],677:[1,1894]},o($Voa,[2,1249]),{535:[1,1896]},o($V2,[2,1255],{684:1897,535:$Vra}),o($V2,[2,1256],{684:1898,535:$Vra}),{535:[1,1899]},{27:[1,1901],46:439,47:$Vg4,50:$Vh4,56:1900,58:$Vi4,59:1902,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($Vsa,[2,1268]),o($VC9,$V3b,{68:1355,57:1903,102:1904,161:$V4b}),o($Vsa,[2,1272]),o($Vsa,$V3b,{68:1355,57:1905,161:$V_7}),o($V_8,$V3b,{68:1355,57:1906,102:1907,161:$V4b}),o($V2,[2,1278]),o($V2,[2,1279],{68:1355,57:1908,75:$V3b,161:$V_7}),{27:$VBd,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,672:1909,673:1910,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916,1062:1911,1063:1912,1064:1913},o($V2,[2,2709]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,672:1917,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916,1062:1911,1064:1918},o($Vua,[2,1825]),o($Vva,[2,1827]),{46:1919,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$VXb,833:1529,835:1920},{535:$VS6,550:1921,555:1922,628:1923,634:1924},o([118,499,544,691,801],$VCd,{628:1923,634:1924,550:1926,555:1927,27:[1,1928],123:[1,1929],535:$VS6,552:$VDd}),{535:$V17,550:1930,628:1931},o($VEd,[2,924],{628:1931,550:1932,535:$V17}),o($VEd,[2,925],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,929:1238,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:1646,903:1822,628:1931,550:1933,551:1934,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$Vs7,116:$V7c,123:$VGd,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,535:$V17,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VHd,727:$V9c,728:$VA9,731:$Vac,732:$V6d,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,781:$V7d,785:$Vda,786:$Vea,789:$V8d,790:$V9d,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),{123:[1,1938],535:$VId},o($VJd,[2,2232]),o($VKd,[2,2234],{123:[1,1939]}),o($V3c,[2,946]),{123:[1,1940]},o([27,118,123,499,535,544,552,615,620,691,743,757,766,774,782,801,808,809,894],$VE8,{270:442,694:446,46:921,125:922,833:924,485:925,441:926,817:927,463:928,818:929,903:1806,908:1807,930:1941,932:1942,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VJc,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VF8,126:$VKc,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$VLc,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VG8,280:$VH8,307:$VMc,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,348:$VNc,349:$VOc,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$VPc,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,488:$VQc,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,726:$VSc,727:$VTc,732:$VUc,735:$Vy6,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($VJd,$VLd),o($VMd,$VE8,{270:442,694:446,46:921,125:922,441:926,817:927,903:1839,930:1943,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$Vad,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,126:$Vbd,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$Vcd,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,348:$Vdd,349:$Ved,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$Vfd,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,488:$Vgd,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,726:$Vhd,727:$Vid,732:$Vjd,735:$VN6,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),{108:$VNd},{26:[1,1945],27:[1,1946]},o($V2,[2,43]),{27:[1,1948],55:[1,1947]},{27:[1,1950],46:439,47:$Vg4,50:$Vh4,56:1949,58:$Vi4,59:1951,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,56]),o([26,27,66,74,78,84,86,88,92,99,134,135,156,161,166,176,177,181,182,382],[2,210]),o($VOd,[2,211]),o($VOd,[2,212]),o([26,27,108],[2,275]),o($V2,[2,276]),o($V2,[2,277]),o($V48,$VPd,{269:1952,687:$VQd}),o($VDa,[2,1732]),{27:[1,1955],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1954,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,[2,382],{694:446,270:1956,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6}),{27:[1,1958],88:[1,1957]},{27:[1,1960],46:1962,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:1959,306:1961,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:1963},o($V2,[2,721]),o($Vy7,$VGa,{67:1964,769:$Vob}),o($V2,[2,705]),o($V2,[2,756]),{27:[1,1966],108:[1,1965]},o([27,78,107,108,116,129,152,177,277,307,376,382,396,409,499,544,691,705],$VRd,{728:[1,1967]}),{27:[1,1969],55:[1,1968]},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1970,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1971,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,[2,852],{270:442,694:446,46:1972,27:[1,1973],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,[2,853],{270:442,694:446,46:1974,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{27:[1,1976],761:$VSd},{27:[1,1978],46:1962,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:1977,306:1979,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:1963},o($V2,[2,862],{270:442,694:446,46:1268,303:1980,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($VH9,$VKa,{167:1981,171:1982,769:$VLa}),o($VH9,$VKa,{167:1983,171:1984,769:$VLa}),o($V2,[2,883]),o($V2,[2,867]),{27:[1,1986],46:439,47:$Vg4,50:$Vh4,56:1985,58:$Vi4,59:1987,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,869],{270:442,694:446,46:1057,56:1988,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{27:[1,1990],46:1989,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,878]),{27:[1,1992],46:439,47:$Vg4,50:$Vh4,56:1991,58:$Vi4,59:1993,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,887]),{27:[1,1995],46:439,47:$Vg4,50:$Vh4,56:1994,58:$Vi4,59:1996,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,893],{270:442,694:446,46:1057,56:1997,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,[2,2569]),{279:$VM8,441:1998},o($V79,[2,1720]),{27:[1,2000],46:1999,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,2587],{270:442,694:446,46:2001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($VJa,[2,1690]),o($VJa,[2,1691]),o($V2,[2,2596],{728:[1,2002]}),o($VTd,[2,1759]),o($VTd,[2,1760]),{27:[1,2004],46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:2003,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:2005,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:754},o($V2,[2,2598],{270:442,694:446,46:1001,76:2006,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($Vy7,[2,2602]),o($Vy7,[2,2603]),o($V2,[2,2604]),o($V2,[2,2605]),{279:$VM8,441:2007},o($V2,[2,2607]),o($V2,[2,2609]),o($V2,$VUd,{55:[1,2008]}),o($V2,[2,2614],{55:[1,2009]}),o($V79,$VVd,{27:[1,2010]}),o($V79,[2,2623]),{27:[1,2012],46:2011,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,2631],{270:442,694:446,46:2013,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,$VWd,{68:2015,27:[1,2016],161:$V_7,239:$VXd}),{27:[1,2018],46:2017,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,2648]),o($V2,[2,2649],{68:2020,161:$V_7,239:[1,2019]}),o($VWa,$VXa,{1052:2021,1054:2022,488:$VYa,535:$VZa}),o($V2,[2,2639]),o($V2,$VYd,{68:2023,27:[1,2024],161:$V_7}),o($V2,[2,2658]),o($V2,[2,2659],{68:2025,161:$V_7}),{27:[1,2027],473:$VZd,619:$V_d,815:2026},o($V2,[2,2663],{815:2030,473:$VZd,619:$V_d}),o($V2,$V$d,{441:2031,27:[1,2033],279:$VM8,307:$V0e}),{27:$V1e,46:1757,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,824:2034,826:2035,833:1759,834:1758},o($VWa,$V2e,{823:2037,825:2038,812:2039,488:$VMa,535:$VNa}),o($V2,[2,2670],{823:2040,812:2041,307:$V2e,488:$VMa,535:$VNa}),o($V2,[2,2686],{116:[1,2042]}),o($V2,[2,2688]),o($V2,[2,2689]),o($V3e,$V4e,{1053:2043,1055:2044,307:$V5e}),o($V2,$V4e,{1053:2046,307:$V6e}),{27:[1,2049],46:2048,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:[1,2051],46:2050,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:2052,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V$a,[2,1717]),o($V79,[2,1719]),o($V2,[2,1137]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2053,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:1238,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VIc,$VL9,{536:1124,577:1125,631:1786,808:$VN9}),{27:[1,2055],68:2054,102:2056,161:$V4b},{27:[1,2058],46:2057,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,63]),o($V2,[2,101]),{27:[1,2060],46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:2059,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,140]),{80:2061,110:2062,116:$V99},o($V2,[2,122]),o($V2,[2,68]),o($V2,[2,119]),o($V2,[2,69]),o($V2,[2,130]),o($V2,[2,131]),o([27,58,75,116,152,218,418,535,544,547,615,637,691,769],[2,1744]),o([116,152,218,418,544,547,615,691,769],[2,1745]),{116:[1,2063]},o($V2,[2,70]),o($V2,[2,110]),o($V2,[2,111]),o($V2,[2,71]),o($V2,[2,72]),o($V2,[2,114]),{27:[1,2064],108:[1,2065]},{91:2066,109:2067,116:[1,2068]},{27:[1,2070],51:2069,53:2071,473:$V7e,619:$V8e,620:$V9e},{27:[1,2075]},o($V2,[2,138]),{27:[1,2077],128:2076,417:$Vae,418:$Vbe,420:$Vce,421:$Vde,422:$Vee,423:$Vfe,424:$Vge,425:$Vhe},o($V2,[2,153]),{48:2086,116:$Vie},{125:2088,279:$VM8,280:$VN8,441:926,817:927},{48:2089,116:$Vie},o($V2,[2,173]),{641:2090,644:2091,767:$Vmb},{27:[1,2093],75:[1,2092]},o($Vy7,$Vfb,{139:1403,93:$Vje}),o($V2,[2,79]),o($V2,[2,135]),{27:[1,2095],154:$Vhb},{27:[1,2096],49:1370,52:1374,127:$V7b,129:$V8b,130:$V9b,132:$Vab,705:$Vbb},o($V2,[2,139]),o($Vwb,$V1b),o($V2,[2,100]),{80:2097,110:2098,116:$V99},o($Vke,[2,585]),{27:[1,2100],152:[1,2099]},o($V2,[2,187]),o($V2,[2,192],{152:[1,2101]}),{116:[1,2102]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:2103,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,839:2104},{27:[1,2107],68:2109,102:2110,161:$V4b,168:2106,170:2108,183:2111,811:$Vc4},{27:[1,2113],46:2112,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,208]),o($V2,[2,209]),{729:[1,2114]},o($Vle,$Vme,{136:2115,146:2116,150:[1,2117]}),o($V2,[2,160]),o($V2,[2,170]),o($V2,[2,171]),o($V3e,$Vne,{179:2118,696:$Voe}),o($V2,[2,226]),{27:[1,2121],46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2120,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vy7,$Vpe),{94:2122,116:$Vqe,155:2123},{48:2125,116:$Vie},o($V2,[2,272]),o($V2,[2,269]),o($V2,[2,273]),o($V2,[2,274]),{27:[1,2127],46:439,47:$Vg4,50:$Vh4,56:2126,58:$Vi4,59:2128,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,279]),o($V3e,$V3b,{68:1355,102:1356,57:2129,60:2130,161:$V4b}),o($V2,$V3b,{270:442,694:446,46:1057,68:1355,57:2131,56:2132,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,161:$V_7,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,$V3b,{68:1355,57:2133,161:$V_7}),{27:[1,2135],46:439,47:$Vg4,50:$Vh4,56:2134,58:$Vi4,59:2136,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($Vy7,[2,1178]),{27:[1,2138],46:439,47:$Vg4,50:$Vh4,56:2137,58:$Vi4,59:2139,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},{27:[1,2141],640:[1,2140]},o($Vre,$Vse,{642:2142,645:2143,409:$Vte}),o($Vue,$Vse,{642:2145,409:$Vve}),{811:[1,2148],1008:[1,2147]},{27:[1,2150],108:[1,2149]},o($V2,[2,1197]),o($V2,[2,1198]),{68:2151,161:$V_7},{88:[1,2152]},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:2153,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{80:2154,116:$V2c},o($V2,[2,87]),o($V2,[2,88]),o($V2,[2,89]),o($V2,[2,90]),o($V2,[2,91]),{91:2155,116:$Vwe},{51:2157,473:$V_b,619:$V$b,620:$V0c},{128:2076,417:$Vae,418:$Vbe,420:$Vce,421:$Vde,422:$Vee,423:$Vfe,424:$Vge,425:$Vhe},{125:2158,279:$VM8,280:$VN8,441:926,817:927},{641:2090,767:$Vlc},{75:[1,2159]},o($Vi9,$Vfb,{139:1454,93:[1,2160]}),o($V2,[2,98]),{49:1370,127:$Vpb,129:$V8b,130:$Vqb,132:$Vab,705:$Vrb},o([2,118,123,373,374,544,691],$Vxe,{326:2161,333:$Vye}),o([2,27,118,123,333,373,374,544,691],[2,471]),{80:2163,116:$V2c},{152:[1,2164]},{116:[1,2165]},{68:2109,161:$V_7,168:2166},{46:2112,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{761:$VSd},o($Vze,$Vme,{136:2167,150:[1,2168]}),o($V2,$Vne,{179:2169,696:$Voe}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2170,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{320:$VAe,323:$VBe,368:2171,371:$VCe},{94:2175,116:$VDe},o($V2,[2,917]),{544:[1,2178],691:[2,1298]},{544:$VEe,691:[2,1297]},{2:$Ve4,46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,865:1053,900:436,933:423,935:425,937:1054,938:428,947:1055,949:1056},{2:$Vz6,44:$VB6,46:596,47:$Vg4,50:$Vh4,54:$VC6,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,166:$VD6,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,266:$VE6,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$Vh9,486:$VP5,487:$VQ5,532:$VR5,534:$VG6,538:$VS5,539:$VT5,547:$VH6,561:$VI6,597:974,601:975,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{2:$VO6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:615,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$Vj9,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,559:613,561:$VR6,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{3:616,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,26:$VT6,30:304,31:305,32:306,33:307,34:308,35:309,36:310,44:$VU6,65:649,152:$VV6,166:$VW6,194:650,195:618,198:$VX6,205:$VY6,211:617,215:629,217:$VZ6,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,266:$V_6,456:408,500:273,501:274,502:275,503:276,504:277,505:278,506:279,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,533:$V$6,534:$V07,535:$V17,538:$V27,546:630,547:$V37,596:$V47,615:$V57,618:$V67,623:$V77,627:639,628:640,653:642,657:$V87,674:$V97,682:$Va7,688:$Vb7,715:$Vc7,720:$Vd7,851:$Ve7,1016:332,1017:333,1018:334,1019:335,1020:336,1021:337,1022:338,1023:339,1024:340,1025:341,1026:342,1027:343,1028:344,1029:345,1030:346,1031:347,1032:348,1033:349,1034:350},o($Vn9,$Vh7,{232:2179,233:[1,2180],234:$Vi7,235:$Vj7,236:$Vk7,238:$Vl7,239:$Vm7,240:$Vn7,241:$Vo7}),o($VFe,[2,2355]),o($Vj8,$Vh8,{866:2181}),{2:$VGe,27:[1,2184],62:[1,2182]},o($Vk8,[2,2248]),o($Vj8,[2,2251],{123:[1,2185]}),o($Vj8,[2,2253]),{2:$VGe,62:[1,2186]},o($Vj8,[2,2250]),{27:$VEb,46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441,900:436,906:438,937:2187,939:1476,947:431,949:432,950:433,952:434},o($Vl8,[2,2274],{942:908,863:2188,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VHe,$VIe,{943:2189,945:2190,55:$VJe}),o($VNb,$VIe,{943:2192,55:$VKe}),o($VNb,$VIe,{943:2194,55:$VKe}),o($Vl8,[2,2273],{942:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VIb,[2,2276]),o($VLe,[2,958]),o($VIb,[2,2277]),{27:[1,2196],572:$VMe},{2:[1,2197],572:[1,2198]},o($VIb,[2,2279]),o($VLe,[2,961]),{27:[1,2200],572:$VNe},o($VIb,[2,2282]),{27:[1,2202],572:$VOe},{27:[1,2204],572:$VPe},{2:[1,2205],572:[1,2206]},o($VIb,[2,2285]),o($VLe,[2,966]),{27:[1,2208],572:$VQe},o($VIb,[2,2287]),{27:[1,2210],572:$VRe},{27:[1,2212],572:$VSe},{2:[1,2213],572:[1,2214]},o($VIb,[2,2290]),o($VLe,[2,971]),o($VNb,$VIe,{943:2215,55:$VKe}),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,900:436,937:2216,947:1055,949:1056},o($VTe,$VIe,{943:2189,55:$VKe}),{572:$VMe},{572:$VNe},{572:$VOe},{572:$VPe},{572:$VQe},{572:$VRe},{572:$VSe},o($VOb,[2,2297]),o($VK8,[2,2300]),{27:$V6,183:2220,385:$VUe,695:[1,2217],723:$VVe,728:$VWe,811:$Vc4,926:2218},o($VPb,[2,2347]),o($VPb,[2,2348]),o($VQb,[2,2351]),o($VQb,[2,2352]),o($VQb,[2,2353]),{279:$VXe},o($VYe,[2,1701]),o($VZe,[2,1702]),{280:$V_e},o($V$e,[2,1704]),o($VZe,[2,1705]),o($VK8,[2,2299]),{385:$VUe,695:[1,2225],723:$VVe,728:$VWe,926:2226},o([2,26,27,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,127,129,130,132,134,135,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,637,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,743,757,766,769,774,782,798,801,808,809,811,894],[2,1790]),o($VT8,[2,1793]),o($V0f,[2,1767]),o($V0f,[2,1768]),o($V1f,[2,2324]),{118:[1,2227]},o($V2f,[2,2326]),o($V3f,[2,1770]),o($V3f,[2,1771]),o($V2f,[2,2327]),o($V4f,[2,2328]),o($V4f,[2,2323],{956:2228}),o($V4f,[2,2330]),o($V4f,[2,2331]),o($V4f,[2,2332]),o($V4f,[2,2333]),o($V4f,[2,2334]),o($V4f,[2,2335]),o($V4f,[2,2336]),o($V4f,[2,2337]),o($V4f,[2,2338]),o($V4f,[2,2339]),o($V4f,[2,2340]),o($V4f,[2,2341]),o($V4f,[2,2342]),o($V4f,[2,2343]),{152:$VV6,195:1550,215:809,546:630,547:$V37,957:1536,959:1538,961:1540,963:1542,965:1544,967:1546,969:1548},o($VT8,[2,1792]),o($VU8,[2,1818]),{27:[1,2230],51:1570,473:$V_b,599:2229,605:2231,619:$V$b,620:$V0c},o($V2,[2,1018]),o($V59,[2,1044]),o($V79,[2,1046],{123:[1,2232]}),o($V79,[2,1050],{123:[1,2233]}),o($V5f,[2,1033]),o($V2,[2,1034]),o($V2,[2,1035]),{27:[1,2235],46:2234,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:[1,2237],46:439,47:$Vg4,50:$Vh4,56:2236,58:$Vi4,59:2238,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V5f,[2,1038]),o($V2,[2,1042]),o($V3e,$V6f,{602:2239,607:2240,123:$V7f,152:$V8f}),o($V2,[2,1024],{123:$V9f}),o($V2,[2,1025]),o($Vaf,[2,1065]),{46:2244,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:2245,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:2246,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V69,[2,1077]),{27:[1,2248],51:1570,473:$V_b,599:2247,605:2249,619:$V$b,620:$V0c},o($V79,[2,1049],{123:$V1c}),{46:2234,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:2236,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V79,[2,1047],{123:$V1c}),{2:$VYb,118:$VZb,121:2250},{2:$VYb,118:$VZb,121:2251},{118:$Vbf,123:$Vcf},o($Vdf,[2,1780],{123:[1,2254]}),o($Vef,[2,1778]),o($V2,[2,943]),o($V2,[2,944]),o($V2,[2,2538]),o($V2,[2,2539],{694:446,270:2255,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6}),o($V2,[2,2541]),o($V2,[2,2542]),o($V2,[2,2543]),o($V2,[2,2544]),o($Vff,[2,2201]),{385:$Vz9,541:2256,728:$VA9,802:$VB9,926:1089,927:1090},{385:$Vz9,541:2257,728:$VA9,802:$VB9,926:1089,927:1090},o($Vc9,[2,2537]),{57:2258,68:1355,161:$V_7,218:$V3b},{75:[1,2259]},{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,611:1557,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},{51:1570,473:$V_b,599:2260,619:$V$b,620:$V0c},{75:[1,2261],123:$V29},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,836:2262},{535:[1,2263]},{227:[1,2264]},{51:1570,473:$V_b,599:2265,619:$V$b,620:$V0c},{123:$V29,535:[1,2266]},{227:[1,2267]},{535:$Vxc},{621:$Vyc},o($V2,$V3b,{270:442,694:446,68:1355,46:1632,57:1743,140:1747,845:2268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,161:$V_7,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{46:1757,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,824:1754},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:1760,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,$VL9,{577:1125,536:1762,808:$VN9}),{46:992,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,860:1712},{116:[1,2269]},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,654:1790,662:2283,664:$Vnf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2285,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2286,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2287,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2288,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{116:$VS8,900:1854},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2289,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2290,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,664:$Vuf,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,904:1859,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635,1067:2291,1069:1867},o($Vuc,$Vrd,{913:1870,116:$Vvf}),{116:$Vvf,913:1873},o($Vtd,$Vud,{728:[1,2294]}),o($Vuc,$Vvd,{973:1876,975:1878,784:$Vxd}),{784:$Vxd,975:1881},{116:[1,2295]},{116:[1,2296]},{116:[1,2297]},o($Vwf,$VAd,{729:[1,2298]}),{116:[1,2299]},{116:[1,2300]},{116:[1,2301]},{677:[1,2302]},{535:[1,2303]},{46:1057,47:$Vg4,50:$Vh4,56:2304,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vsa,$V3b,{68:1355,57:1903,161:$V_7}),{57:2305,68:1355,75:$V3b,161:$V_7},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,672:2306,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916,1062:1911,1064:1918},{46:1919,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{535:$V17,550:1921,628:1931},o($Vv9,$VCd,{550:1926,628:1931,123:[1,2307],535:$V17,552:$VDd}),{123:[1,2308],535:$VId},o([2,118,123,499,535,544,552,615,620,691,743,757,766,774,782,801,808,809,894],$VE8,{270:442,694:446,46:921,125:922,441:926,817:927,903:1806,930:1941,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$Vgf,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VL8,126:$Vhf,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$Vif,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,348:$Vjf,349:$Vkf,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$Vlf,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,488:$Vmf,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,726:$Vof,727:$Vpf,732:$Vqf,735:$VN6,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),{26:[1,2309]},{55:[1,2310]},{46:1057,47:$Vg4,50:$Vh4,56:2311,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{68:2312,161:$V_7},{46:2313,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:2059,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{80:2314,116:$V2c},{91:2066,116:$Vwe},{51:2069,473:$V_b,619:$V$b,620:$V0c},{75:[1,2315]},o($Vi9,$Vfb,{139:1454,93:$Vje}),{46:1057,47:$Vg4,50:$Vh4,56:2316,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2317,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{158:$VPd,269:2318,687:$VQd},{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:2319,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vi9,$VGa,{67:2320,769:$Vob}),{108:[1,2321]},{55:[1,2322]},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2323,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2324,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{46:2325,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:1977,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V4c,$VKa,{167:2326,769:$Vvb}),o($V4c,$VKa,{167:2327,769:$Vvb}),{46:1057,47:$Vg4,50:$Vh4,56:2328,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:2329,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:1991,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:1994,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,$V3b,{68:1355,57:2330,161:$V_7}),{46:2331,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:2003,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,$VUd,{55:[1,2332]}),o($V79,$VVd),{46:2333,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,$VWd,{68:2334,161:$V_7,239:$VXd}),{46:2017,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vic,$VXa,{1052:2335,488:$Vjc,535:$Vkc}),o($V2,$VYd,{68:2023,161:$V_7}),{473:$VZd,619:$V_d,815:2026},o($V2,$V$d,{441:2031,279:$VM8,307:$V0e}),{307:$V2e,488:$VMa,535:$VNa,812:2041,823:2336},o($V2,$V4e,{1053:2337,307:$V6e}),{46:2048,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:2050,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:2338,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:2339,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{640:[1,2340]},o($Vxf,$Vse,{642:2341,409:$Vve}),{1008:[1,2342]},o([2,118,499,544,547,615,620,691,743,757,766,774,782,801,808,809,894],$VBb,{562:1465,563:$VCb}),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,900:436,933:1468,935:425,937:1054,938:428,947:1055,949:1056},o($Voc,$VDb,{942:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),{46:1526,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{108:[1,2343]},o($Vg9,$Vq7,{856:680,854:692,852:2344,801:$Vw7}),o($Vv7,[2,1901]),o($Vg7,[2,348]),o($Vg7,[2,353]),o($Vg7,[2,360]),o($Vg7,[2,361]),o($Vg7,[2,362]),o($Vg7,[2,363]),o($Vv7,[2,1915],{856:1072,801:$Vw7}),{546:2345,547:$VR1,553:2346},o($VEd,[2,1917],{546:2347,547:$V37}),o($Vy9,[2,1923]),o($Vx9,[2,1925],{123:[1,2348]}),o($Vx9,[2,1926],{123:$V5c}),o($VQ8,$VR8,{955:943,660:2349,183:2350,661:2351,27:$V6,811:$Vc4}),o($Vv7,[2,1905]),{546:2345,547:$V37},{27:[1,2353],218:[1,2352]},o($V2,[2,320],{218:[1,2354]}),o($V2,[2,319],{218:[1,2355]}),o($V2,[2,326],{218:[1,2356]}),{385:$Vz9,541:2357,728:$VA9,802:$VB9,926:1089,927:1090},o($Vuc,$Vyf,{385:$Vzf,802:[1,2359]}),o($Vuc,[2,2214]),{385:[1,2360]},o($Vuc,[2,2215]),{27:[1,2362],51:1570,473:$V_b,599:2361,605:2363,619:$V$b,620:$V0c},o($V2,[2,1096]),{27:[1,2365],44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:2364,603:2366,611:595,612:597,613:598,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},o($V2,[2,1100]),o($V2,$VAf,{123:$V7f}),o($V2,[2,1108],{123:$V9f}),o($V2,[2,1109]),{27:[1,2368],51:1570,473:$V_b,599:2367,605:2369,619:$V$b,620:$V0c},o($V2,[2,1110]),{27:[1,2372],46:596,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:[1,2371],486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,601:2370,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,1113]),{46:596,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,601:2373,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,1122]),o($VC9,[2,1124]),o($V2,[2,1125]),o($V2,$V3b,{68:1355,102:1356,57:2374,60:2376,27:[1,2375],161:$V4b,728:[1,2377]}),o($V2,[2,1880]),o($V2,$V3b,{68:1355,57:2378,161:$V_7}),o($V2,$V3b,{68:1355,57:2379,161:$V_7}),o($V2,[2,1890]),o($VBf,[2,1839]),o($VCf,[2,1841],{728:[1,2380]}),o($VCf,[2,1845],{728:[1,2381]}),o($VDf,[2,1854]),o($VDf,[2,1855]),o($V2,[2,1883]),o($V2,$V3b,{270:442,694:446,68:1355,46:1632,140:1747,845:2382,57:2383,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,161:$V_7,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,[2,1881]),o($V2,[2,1892]),o($V2,$VEf,{270:442,694:446,46:1757,824:2384,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($VTa,[2,1799]),o($VTa,[2,1800]),o([2,27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,789,790,801,808,809,894,902],[2,1766]),o($V2,[2,1882]),o($V2,[2,1894],{694:446,270:2385,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6}),o($V2,[2,903]),o($V2,$VL9,{577:1125,536:2386,808:$VN9}),o($V2,[2,908]),o($V2,[2,907]),o($V2,[2,1167],{627:813,648:1115,615:$V57}),o($VFf,$VGf,{579:2387,584:2388,590:2389,766:$VHf}),o($VAc,$VIf,{2:[1,2391],27:[1,2392]}),o($VJf,$VGf,{579:2393,584:2394,766:$VKf}),{27:[1,2397],79:[1,2396]},o([743,757,766,774,782,809,894],$VBc,{595:1774,589:2399,578:2400,27:[1,2398],620:$VCc}),o($VEc,$VBc,{595:1774,578:2401,620:$VFc}),o($VJf,$VGf,{584:2394,579:2402,766:$VKf}),o($VGc,$VIf),{79:[1,2403]},o($VHc,[2,1949]),o($VLf,[2,1950]),o($VLf,[2,1951],{903:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,781:$V7d,789:$V8d,790:$V9d}),o([2,27,118,499,544,615,620,691,743,757,766,774,782,801,809,894],$VMf,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($VLf,[2,2054],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($VNf,$VGf,{584:2394,579:2404,766:$VKf}),o([2,118,499,544,568,569,570,571,572,573,574,575,615,620,691,743,757,766,774,782,801,809,894],$VMf,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($VOf,$VPf,{27:[1,2405],123:$VQf}),o($VOf,[2,1186]),o($VOf,[2,1187],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,929:1238,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:1646,903:1822,551:1934,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$Vs7,116:$V7c,123:$VGd,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VHd,727:$V9c,728:$VA9,731:$Vac,732:$V6d,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,781:$V7d,785:$Vda,786:$Vea,789:$V8d,790:$V9d,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($VO9,[2,1168]),o($VO9,[2,1173]),o($VO9,[2,1172]),o($VO9,[2,1170]),o($V2,[2,1188]),o($V2,[2,1193]),o($V2,[2,1194]),o($VRf,$VSf,{665:2407,27:[1,2408],88:[1,2409]}),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2410,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2412,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,832:2411,833:2414,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2415,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2417,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,832:2416,833:2414,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2418,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2420,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,832:2419,833:2414,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2421,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2423,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,832:2422,833:2414,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:[1,2427],307:$VMc,488:[1,2424],736:[1,2425],789:$VYc,790:$VZc,903:2426,908:2428},{116:[1,2429],907:2430},{27:[1,2433],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2431,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2432,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2434,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2436,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,832:2435,833:2414,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2437,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2439,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,832:2438,833:2414,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2440,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2442,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,832:2441,833:2414,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2443,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2445,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,832:2444,833:2414,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2446,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2448,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,832:2447,833:2414,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vuc,[2,2081]),o($Vqd,[2,2161]),o($V2,$VTf,{662:2449,663:2451,27:[1,2450],664:$VRc}),o($V2,[2,1214]),{27:$VUf,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2452,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2453,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,833:1759,834:2454,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$VUf,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2456,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2457,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,833:1759,834:2458,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$VUf,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2459,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2460,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,833:1759,834:2461,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o([27,666],$VSf,{665:2462,88:$VVf}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2464,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2465,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2466,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2467,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2468,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2469,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2470,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2471,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vqd,[2,2163]),{307:$V1d,789:$V8d,790:$V9d,903:2472},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2473,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2474,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2475,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2476,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2477,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2478,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2479,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{307:$V1d,488:[1,2480],736:[1,2481],789:$V8d,790:$V9d,903:2482},{116:[1,2483]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2484,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2485,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2486,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2487,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2488,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2489,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vqd,[2,2159]),o($VWf,$VXf,{903:1806,908:1807,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,773:$VWc,789:$VYc,790:$VZc}),o($VYf,[2,2087],{903:1839,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,789:$V8d,790:$V9d}),o($VZf,[2,2088],{903:1822,126:$V$c,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,789:$V8d,790:$V9d}),o($VWf,$V_f,{903:1806,908:1807,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,773:$VWc,789:$VYc,790:$VZc}),o($VYf,[2,2089],{903:1839,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,789:$V8d,790:$V9d}),o($Vqd,[2,2090]),o([2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,348,349,351,352,359,373,374,376,381,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,533,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,730,731,732,733,734,735,736,738,740,741,743,744,745,747,748,749,750,755,757,759,760,761,762,765,766,768,769,774,775,776,778,779,781,782,785,786,795,796,797,800,801,802,803,804,806,808,809,810,894,902,1011],$Vs7,{903:1822,307:$V1d,789:$V8d,790:$V9d}),o($VWf,$V$f,{903:1806,908:1807,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,773:$VWc,789:$VYc,790:$VZc}),o($VYf,[2,2091],{903:1839,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,789:$V8d,790:$V9d}),o($Vqd,[2,2092]),{88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,781:$V7d,789:$V8d,790:$V9d,903:1822},o($V0g,$V1g,{903:1806,908:1807}),o($V2g,[2,2093],{903:1839}),o($Vqd,[2,2094]),o($Vuc,[2,2064]),o($Vqd,[2,2103]),{88:$VJc,118:$V3g,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc,903:1806,908:1807},{2:$VYb,88:$Vad,118:$VZb,121:2491,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d,903:1839},{2:$VYb,88:$V_c,118:$VZb,121:2492,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,781:$V7d,789:$V8d,790:$V9d,903:1822},o($Vuc,[2,2083]),{27:[1,2495],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,664:$Vod,726:$VSc,727:$VTc,732:$VUc,736:$VVc,759:$Vpd,773:$VWc,781:$VXc,789:$VYc,790:$VZc,903:1806,904:2493,908:1807,909:2494,1067:1864,1068:1865,1069:1867,1070:1868},o($Vqd,[2,2165]),{2:$V4g,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2499,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,664:$Vuf,666:$V_5,668:$V5g,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$V5d,727:$V9c,728:$VA9,731:$Vac,732:$V6d,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,759:$V6g,760:$V7g,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,781:$V7d,785:$Vda,786:$Vea,789:$V8d,790:$V9d,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,903:1822,904:2497,910:2496,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635,1067:2291,1069:1867},{2:$V4g,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,664:$Vuf,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,760:$V7g,781:$Vld,789:$V8d,790:$V9d,903:1839,904:2503,910:2504,1067:2291,1069:1867},{27:[1,2507],664:$Vod,759:[1,2506],760:$V8g,1069:2508,1070:2509},{2:$V4g,759:[1,2511],760:$V7g,910:2510},{27:[1,2512]},o($V9g,[2,2763]),o($Vag,[2,2765],{1069:1867,1067:2513,664:$Vuf}),{27:[1,2517],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2514,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2515,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,668:[1,2516],674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vuc,[2,2189]),o($Vqd,[2,2195]),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,118:$Vbg,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2520,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2522,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2523,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,901:2519,905:1144,911:2521,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vuc,[2,2190]),o($Vqd,[2,2196]),{46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2526,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:2527,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,726:$Vdg,735:$Vy6,811:$VXb,833:1529,835:2528},o($Vuc,[2,2357]),o($Vqd,[2,2362]),o($Vuc,[2,2395]),o($Vqd,[2,2396]),{46:2529,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Veg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,991:2530,992:2531},o($Vuc,[2,2358]),o($Vqd,[2,2365]),o($Vqd,[2,2366]),o($Vqd,[2,2364]),{46:2529,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vfg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,991:2530},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,118:$Vgg,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2536,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2522,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2523,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,901:2535,905:1144,911:2537,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:[1,2542],116:$VQ9,118:$Vhg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2540,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2538,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2541,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$V6,183:2544,699:$Vig,700:$Vjg,703:$Vkg,706:$Vlg,707:$Vmg,709:$Vng,713:$Vog,721:$Vpg,722:$Vqg,811:$Vc4,1012:2543},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:2554},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2557,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2555,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2558,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,730:$Vrg,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o([27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,811,1011],$VH7,{548:2561,118:$Vsg,561:$VI7,726:$Vtg,756:$VJ7}),o([27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,811,1011],$VH7,{548:2562,118:$Vug,561:$VI7,756:$VJ7}),o([27,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,811,1011],$VH7,{548:2564,561:$VI7,756:$VJ7}),{641:2565,644:2566,767:$Vmb},o($V2,[2,1236]),{641:2567,644:2568,767:$Vmb},{535:[1,2569]},{535:[1,2570]},{641:2571,767:$Vlc},o($VC9,$V3b,{68:1355,57:2572,102:2573,161:$V4b}),o($Vsa,[2,1269]),o($Vsa,$V3b,{68:1355,57:2574,161:$V_7}),o($Vvg,[2,1267]),o($Vsa,[2,1274]),o($Vsa,[2,1273]),{27:[1,2576],75:$Vra,684:2575},o($V2,[2,1281],{684:2577,75:$Vra}),{75:$Vra,684:2578},o($Vwg,$Vxg,{1057:2579,1059:2580,123:$Vyg,535:[1,2582]}),o($Vzg,$Vxg,{1057:2583,535:$VAg}),o($VBg,[2,2717]),o($VCg,[2,2719],{123:[1,2585]}),{27:[1,2587],126:[1,2586]},o($VDg,[2,2726]),o([27,126],[2,2727]),o($VEg,$VFg,{728:[1,2588]}),o($Vzg,$Vxg,{1057:2589,123:$VGg,535:$VAg}),{126:[1,2591]},o($Vwa,[2,1821]),o($Vya,[2,1823]),o($Vv9,[2,918]),o($VEd,[2,923]),o([118,499,544,620,691,743,757,766,774,782,801,809,894],$VL9,{536:1119,577:1120,537:1121,631:2592,576:2594,27:[1,2593],808:$VM9}),o([2,118,544,620,691,743,757,766,774,782,801,809,894],$VL9,{536:1124,577:1125,631:2595,808:$VN9}),o($Vv9,[2,919]),o($Vv9,[2,921]),o($VEd,[2,926]),o($VEd,[2,931],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,929:1238,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:1646,628:1931,550:2596,551:2598,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,123:[1,2597],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,535:$V17,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),{2:$Vza,27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2601,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,557:2599,558:$VAa,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,726:$VBa,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,929:2600,931:2602,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($VEd,[2,922]),o([2,118,499,544,620,691,743,757,766,774,782,801,809,894],$VL9,{536:1124,577:1125,631:2592,808:$VN9}),o($VEd,[2,927]),o($VEd,[2,928]),o($VKd,[2,2235],{123:$VHg}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2604,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:1238,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VMd,$VLd,{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:2470,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2285,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,789:$V8d,790:$V9d,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,903:2472,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{27:$VIg,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2607,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2605,556:2606,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,726:$VBa,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,929:1238,931:1239,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2609,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:1238,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{2:$VJg},o($VJd,[2,2227]),o($VMd,[2,2231]),o($VMd,[2,2229]),{46:2611,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:[1,2615],47:$VKg,49:2613,50:[1,2614],52:2616,705:$Vbb},o($V2,[2,44]),{27:[1,2618],46:439,47:$Vg4,50:$Vh4,56:2617,58:$Vi4,59:2619,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,50]),{27:[1,2621],63:2620,176:$V$7,177:$V08},o($V2,[2,57]),o($V2,[2,58]),{27:[1,2622],158:[1,2623]},o($V48,[2,1716]),o([27,152,544,691,705],$VLg,{271:2624,272:2625,273:2626,275:2627,276:2628,278:2629,277:[1,2630]}),o($V2,[2,381],{694:446,270:2631,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6}),o($V2,[2,384]),{27:[1,2633],761:$VMg},o($VNg,[2,1738]),o($VOg,$VPg,{454:2634,455:2635,470:2636,116:[1,2637]}),o($V2,[2,719],{270:442,694:446,46:1268,303:2638,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($VQg,$VPg,{470:2636,454:2639,116:$VRg}),o([27,78,107,108,116,129,152,161,277,307,376,382,409,499,544,691,705],$VRd,{728:[1,2641]}),o($VSg,[2,1796],{728:[1,2642]}),{27:[1,2644],46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:2643,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{279:$VM8,441:2645},o($V2,[2,730]),{46:2646,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:[1,2648],158:[1,2647]},o($V2,[2,758]),{116:[1,2651],492:2649,493:2650},{27:[1,2653],108:$VTg},o($V2,$VUg,{95:2654,27:[1,2655],696:$VVg,710:$VWg}),o($V2,[2,854],{270:442,694:446,46:2658,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,$VUg,{95:2659,696:$VVg,710:$VWg}),o([27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735,811],[2,1734]),o([47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735],[2,1735]),o($V2,[2,858]),o($V2,[2,860],{270:442,694:446,46:1268,303:2660,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,[2,864]),o($V2,[2,863]),{27:[1,2662],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2661,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,[2,866]),{27:[1,2664],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2663,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,[2,885]),o($V3e,$VXg,{169:2665,532:$VYg}),o($V2,[2,870]),o($V2,$VXg,{169:2667,532:$VYg}),o($V2,$VXg,{169:2668,532:$VYg}),{27:[1,2670],55:[1,2669]},o($V2,[2,877]),o($V2,[2,886]),o($V2,[2,888]),o($V2,[2,889]),o($V2,[2,890]),o($V2,[2,891],{270:442,694:446,46:1057,56:2671,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,[2,895]),o($V2,[2,894]),o($V2,[2,2570]),o($V2,$VZg,{812:2672,27:[1,2673],488:$VMa,535:$VNa}),o($V2,[2,2589],{812:2674,488:$VMa,535:$VNa}),o($V2,[2,2588]),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2675,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,811:[1,2676]},o($V2,[2,2597]),o($V2,[2,2599]),o($V2,[2,2600]),o($V2,[2,2601]),o($V2,[2,2606]),{27:[1,2680],46:439,47:$Vg4,50:$Vh4,56:2678,58:$Vi4,59:2681,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,158:[1,2679],174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,561:$V_g,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},{561:[1,2682]},o($V79,[2,2624]),o($V2,$V$g,{812:2683,27:[1,2684],488:$VMa,535:$VNa}),o($V2,[2,2632],{812:2685,488:$VMa,535:$VNa}),o($V2,[2,2633]),o($V2,[2,2644]),o($V2,$V0h,{27:[1,2687],239:$V1h}),o($V2,[2,2650]),o($V2,[2,2647]),o($V2,[2,2655]),o($V2,[2,2651]),o($V2,[2,2652],{239:[1,2688]}),o($V3e,$V4e,{1053:2689,1055:2690,307:$V5e}),o($V2,$V4e,{1053:2691,307:$V6e}),o($V2,[2,2657]),o($V2,[2,2660]),o($V2,[2,2661]),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2692,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,[2,2665],{694:446,270:2693,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6}),o($V4c,[2,1698]),o($V4c,[2,1699]),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2694,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,[2,2683]),{279:$VM8,441:2695},o($V2,[2,2685]),o($VTa,[2,1741]),o($VTa,[2,1742]),o([2,27,108,118,279,307,544,547,563,615,620,691,743,757,766,774,782,801,808,809,894],$VEf),o($V2,[2,2671],{27:[1,2697],307:[1,2696]}),o($V2,[2,2672],{307:[1,2698]}),{27:$V1e,46:1757,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,824:2699,826:2700,833:1759,834:1758},{307:[1,2701]},{46:1757,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,824:2699},{125:2702,279:$VM8,280:$VN8,441:926,817:927},o($V2,$V2h,{27:[1,2703]}),o($V2,[2,2694]),{27:[1,2705],279:$VM8,441:2704},o($V2,[2,2693]),{279:$VM8,441:2704},o($VWa,[2,2696]),o($Vic,[2,2698]),o($VWa,[2,2697]),o($Vic,[2,2699]),o($V2,[2,2629],{812:2706,488:$VMa,535:$VNa}),o($VOf,$VPf,{123:$VHg}),o($V3h,$V4h,{69:2707,52:2708,49:2709,705:$Vbb}),o($V2,[2,99]),o($VCf,$V4h,{49:2709,69:2710,705:$Vrb}),{27:[1,2712],72:2711,103:2713,104:2714,317:$V5h,320:$VAe,323:$VBe,368:2171,369:2715,370:2716,371:$V6h},o($V2,[2,106]),o($V2,[2,64]),o($V2,[2,141]),{27:[1,2720],55:[1,2719]},o($V2,[2,125],{55:[1,2721]}),{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2725,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:2722,165:2723,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2727,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$Vc4,833:2726,839:2104,840:2724},o($V2,[2,115]),{27:[1,2728]},o($V2,[2,73]),o($V2,[2,121]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2734,187:2729,188:2730,189:2731,190:2732,191:2733,192:2735,193:$V7h,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4,843:2737,844:2738},o($V2,[2,74]),o($V2,[2,123]),o($V2,[2,124]),{27:[1,2739],46:2244,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:[1,2740],46:2245,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:[1,2741],46:2246,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,120]),o($V2,$V8h),o($V2,[2,172]),o($V9h,[2,649]),{125:2742,279:$VM8,280:$VN8,441:926,817:927},o($V9h,[2,651]),o($V9h,[2,652]),o($V9h,[2,653]),o($V9h,[2,654]),o($V9h,[2,655]),o($V9h,[2,656]),o($V2,[2,154]),{125:2745,279:$VM8,280:$VN8,283:2743,284:2744,441:926,817:927},o($V3e,$Vah,{131:2746,149:2747,448:2748,152:$Vbh}),o($V2,[2,156]),o($Vch,[2,1815]),o([2,108,129,152,161,277,544,691],[2,1816]),{27:[1,2751],68:2750,161:$V_7},o($V2,[2,117]),o($Vy7,$Vpe,{94:2752,116:$VDe}),o($V2,[2,136]),o($V2,[2,137]),o($Vdh,$Veh,{383:2753,387:2754,397:[1,2755]}),o($Vfh,$Veh,{383:2756,397:$Vgh}),{27:[1,2759],158:[1,2758]},o($V2,[2,188]),{158:[1,2760]},{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:[1,2765],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2725,151:$VE4,153:$VF4,154:$VG4,156:$VH4,162:2761,163:2762,164:2763,165:2764,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2727,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$Vc4,833:2726,839:2104,840:2724},{118:$Vhh,123:$Vih},o($Vjh,[2,1801]),o($Vjh,$Vkh,{126:[1,2768]}),o($V3e,$VXg,{169:2769,123:[1,2770],532:$VYg}),o($V2,[2,204],{123:$Vs7}),o($V2,$VXg,{169:2771,532:$VYg}),o($Vlh,[2,230]),o($Vmh,[2,232],{123:[1,2772]}),{123:[1,2773]},o($V2,[2,203]),o($V2,[2,207]),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2557,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2774,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2558,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($V3e,$Vnh,{137:2775,147:2776,152:[1,2777]}),o($V2,$Vnh,{137:2778,152:$Voh}),{27:[1,2781],151:$Vph},o($V2,$Vqh,{27:[1,2782]}),o($V3e,[2,1725]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2785,141:2783,144:2784,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,163]),o($V3e,$VUg,{95:2786,696:$VVg,710:$VWg}),o($V2,$VUg,{95:2787,696:$VVg,710:$VWg}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2785,141:2790,144:2791,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:2788,310:2789,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,268]),o($V3e,$Vrh,{200:2792,201:2793,203:2794,66:$Vsh,166:$Vth,204:$Vuh}),o($V2,[2,280]),o($V2,[2,281]),o($V2,$Vvh,{27:[1,2798]}),o($V2,[2,901]),o($V2,[2,898]),o($V2,$V3b,{68:1355,57:2799,161:$V_7}),o($V2,[2,899]),o([27,116,152,544,547,637,691],$V3b,{68:1355,102:1356,57:2800,60:2801,161:$V4b}),o($Vnb,[2,1158]),o($Vwh,$V3b,{68:1355,57:2802,161:$V_7}),o([27,152,544,547,691,769],$V3b,{68:1355,102:1356,57:2803,60:2804,161:$V4b}),o($Vnb,[2,1147]),o($Vwh,$V3b,{68:1355,57:2805,161:$V_7}),{641:2806,644:2807,767:$Vmb},o($Vnb,[2,1151]),o($Vxh,$Vyh,{416:2808,414:2810,107:$Vzh,646:[1,2809]}),o($Vnb,$Vyh,{414:2810,416:2812,107:$Vzh}),{27:[1,2814],410:[1,2813]},o($Vnb,$Vyh,{414:2810,416:2815,107:$Vzh}),{410:[1,2816]},{811:[1,2818],1009:$VAh},o($VBh,[2,2433],{1009:[1,2819]}),{27:[1,2821],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2820,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,[2,1199]),o($VCf,$V4h,{49:2709,69:2822,705:$Vrb}),{761:$VMg},o($V2,[2,83]),{55:[1,2823]},o($V2,[2,92]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,187:2824,189:2731,191:2733,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},o($V2,[2,93]),o($V2,$Vah,{448:2748,131:2825,152:$VCh}),{68:2827,161:$V_7},o($Vi9,$Vpe,{94:2828,116:$VDe}),o($Vjh,$VDh,{327:2829,373:$VEh,374:$VFh}),o($VGh,[2,473]),{383:2832,384:$Veh,397:$Vgh},{158:[1,2833]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:[1,2836],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,162:2834,163:2835,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,839:2104},o($V2,$VXg,{169:2837,123:$VHh,532:$VYg}),o($V2,$Vnh,{137:2839,152:$Voh}),{151:$Vph},o($V2,$Vqh),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2840,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($VIh,[2,545]),{116:[1,2842]},{80:2843,116:$V2c},{318:[1,2844]},o($V2,$VUg,{95:2845,696:$VVg,710:$VWg}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2847,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:2846,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vf8,$V1,{545:2848}),o($Vf8,$V1,{545:2849}),o($Vn9,$Vo9),{236:$Vp9},o($Vi8,[2,2356],{562:1465,563:$VCb}),o($VJh,$VKh,{564:2850,573:$VLh}),o($VFe,[2,951]),o($Vj8,[2,2529]),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,865:2852,900:436,933:423,935:425,937:1054,938:428,947:1055,949:1056},o([2,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,738,769],$VKh,{564:2853,573:$VLh}),o($VHe,$VIe,{945:2190,943:2854,55:$VJe}),o($Vl8,[2,2275],{942:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VMh,[2,2263]),o($VNb,[2,2270]),{27:[1,2857],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2855,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2856,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($VNb,[2,2269]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2858,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VNb,[2,2271]),o($VIb,[2,2278]),o($VLe,[2,960]),o($VLe,[2,955]),o($VLe,[2,959]),o($VIb,[2,2281]),o($VLe,[2,963]),o($VIb,[2,2283]),o($VLe,[2,964]),o($VIb,[2,2284]),o($VLe,[2,965]),o($VLe,[2,956]),o($VLe,[2,962]),o($VIb,[2,2286]),o($VLe,[2,968]),o($VIb,[2,2288]),o($VLe,[2,969]),o($VIb,[2,2289]),o($VLe,[2,970]),o($VLe,[2,957]),o($VLe,[2,967]),o($VNb,[2,2267]),o($VTe,$VIe,{943:2854,55:$VKe}),{385:[1,2859]},{27:[1,2862],708:$VNh,792:$VOh},{118:[1,2863]},{2:$VYb,118:$VZb,121:2864},o($VPh,$Vvc,{728:[1,2865]}),{385:$Vwc},o($VYe,[2,1700]),o($V$e,[2,1703]),{385:[1,2866]},{708:$VNh,792:$VOh},o($V1f,[2,2325]),o($V4f,[2,2329]),o($V3e,$VQh,{600:2867,606:2868,123:$V7f,152:[1,2869]}),o($V2,[2,1019],{123:$V9f}),o($V2,[2,1020]),{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:2870,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:2871,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},o($V5f,[2,1036]),o($V2,[2,1039]),o($V5f,[2,1037]),o($V2,[2,1040]),o($V2,[2,1041]),o($V2,$VRh,{27:[1,2872]}),o($V2,[2,1027]),{27:[1,2874],51:2873,473:$V_b,619:$V$b,620:$V0c},{27:[1,2876],622:[1,2875]},{51:1570,473:$V_b,599:2877,619:$V$b,620:$V0c},o($Vaf,[2,1070]),o($Vaf,[2,1071]),o($Vaf,[2,1072]),o($V3e,$V6f,{602:2878,607:2879,123:$V7f,152:$V8f}),o($V2,[2,1028],{123:$V9f}),o($V2,[2,1029]),o($VSh,[2,1776]),o($VSh,[2,1777]),o([2,27,55,75,107,108,118,123,129,152,177,333,372,373,374,382,384,396,397,409,535,544,547,615,691,705],[2,1775]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2882,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:2881,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2880,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,836:2883},o($V2,[2,2540]),o($Vff,[2,2202]),o($Vff,[2,2203]),{218:[1,2884]},{51:1570,473:$V_b,599:2885,619:$V$b,620:$V0c},o($V2,$V6f,{602:2886,123:$VTh,152:$VUh}),{51:1570,473:$V_b,599:2889,619:$V$b,620:$V0c},{118:$Vbf,123:$VVh},{51:1570,473:$V_b,599:2891,619:$V$b,620:$V0c},{44:$VB6,54:$VC6,166:$VD6,266:$VE6,534:$VG6,547:$VH6,561:$VI6,597:2892,611:595,613:977,615:$VJ6,616:$VK6,617:$VL6,618:$VM6},o($V2,$VAf,{123:$VTh}),{51:1570,473:$V_b,599:2893,619:$V$b,620:$V0c},{46:596,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:[1,2895],486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,601:2894,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,$V3b,{68:1355,57:2374,161:$V_7,728:$VWh}),o($VQ8,$VR8,{955:1552,660:2349}),o($VRf,$VSf,{665:2897,88:$VVf}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2898,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2899,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2900,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2901,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{307:$V1d,488:[1,2902],736:[1,2903],789:$V8d,790:$V9d,903:2426},{116:[1,2904]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2905,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2906,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2907,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2908,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2909,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2910,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($V2,$VTf,{662:2911,664:$Vnf}),{88:$VVf,665:2912,666:$VSf},o($VWf,$VXf,{903:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($VWf,$V_f,{903:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($VWf,$V$f,{903:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($V0g,$V1g,{903:1806}),{88:$Vgf,118:$V3g,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,664:$Vuf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806,904:2493,1067:2291,1069:1867},{664:$Vuf,759:[1,2913],760:$V8g,1069:2508},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2914,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,118:$Vbg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,901:2915,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2526,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,726:$Vdg,735:$VN6},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,118:$Vgg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,901:2917,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,118:$Vhg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2918,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{699:$Vig,700:$Vjg,703:$Vkg,706:$Vlg,707:$Vmg,709:$Vng,713:$Vog,721:$Vpg,722:$Vqg,1012:2919},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2920,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,730:$Vrg,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VXh,$VH7,{548:2921,118:$Vsg,561:$VI7,726:$Vtg,756:$VJ7}),o($VXh,$VH7,{548:2922,118:$Vug,561:$VI7,756:$VJ7}),o([47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,118,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,621,622,626,640,643,657,666,674,675,677,688,689,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,1011],$VH7,{548:2923,561:$VI7,756:$VJ7}),{641:2924,767:$Vlc},{641:2925,767:$Vlc},o($Vsa,$V3b,{68:1355,57:2572,161:$V_7}),{75:$Vra,684:2926},o($Vzg,$Vxg,{1057:2927,123:$VGg,535:$VAg}),{2:$Vza,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,557:2928,558:$VAa,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:2600,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2929,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:1238,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{47:$VKg,49:2613,50:[1,2930],705:$Vrb},{46:1057,47:$Vg4,50:$Vh4,56:2931,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{63:2932,176:$V$7,177:$V08},o($VCf,$V4h,{49:2709,69:2933,705:$Vrb}),{72:2711,317:$VYh,320:$VAe,323:$VBe,368:2171,369:2934,371:$VCe},{55:[1,2936]},{68:2750,161:$V_7},o($V2,$Vrh,{200:2937,203:2938,66:$Vsh,166:$Vth,204:$Vuh}),o([152,544,691,705],$VLg,{276:2628,271:2939,273:2940,277:$VZh}),{158:[1,2942]},o($VQg,$VPg,{470:2636,454:2943,116:$VRg}),{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,303:2944,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{279:$VM8,441:2945},{158:[1,2946]},{116:[1,2948],492:2947},{108:$VTg},o($V2,$VUg,{95:2654,696:$VVg,710:$VWg}),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2661,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2663,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,$VXg,{169:2949,532:$VYg}),{55:[1,2950]},o($V2,$Vvh),o($V2,$VZg,{812:2951,488:$VMa,535:$VNa}),{46:1057,47:$Vg4,50:$Vh4,56:2678,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,158:[1,2952],174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,561:$V_g,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,$V$g,{812:2953,488:$VMa,535:$VNa}),o($V2,$V0h,{239:$V1h}),o($V2,$V4e,{1053:2954,307:$V6e}),{307:[1,2955]},o($V2,$V2h),o([116,152,544,547,637,691],$V3b,{68:1355,57:2956,161:$V_7}),o([152,544,547,691,769],$V3b,{68:1355,57:2957,161:$V_7}),{641:2958,767:$Vlc},o($V_h,$Vyh,{416:2808,414:2810,107:$Vzh}),{1009:$VAh},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:2959,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($Vg9,[2,1898]),o($Vv9,[2,1916]),o($VEd,[2,1919]),o($VEd,[2,1918]),{46:992,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,858:2960,860:685},{118:[1,2961]},{2:$VYb,118:$VZb,121:2962},{2:$VYb,118:$VZb,121:2963},{27:[1,2965],219:[1,2964]},o($V2,[2,321]),{219:[1,2966]},{219:[1,2967]},{219:[1,2968]},o($Vtc,[2,912]),o($Vuc,[2,2213]),{385:[1,2969]},o($Vuc,[2,2216]),o($V2,$V$h,{123:$V7f}),o($V2,[2,1097],{123:$V9f}),o($V2,[2,1098]),o($VC9,$V$8,{598:2970,604:2971,55:$V09,123:$V19}),o($V2,[2,1101],{123:$V39}),o($V2,[2,1102]),o($V2,$V0i,{123:$V7f}),o($V2,[2,1111],{123:$V9f}),o($V2,[2,1112]),{27:[1,2973],123:$V29,535:[1,2972]},o($VD9,$VZ8,{270:442,694:446,46:596,601:2974,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,[2,1114]),o($V2,[2,1092],{123:$V29}),o($V2,[2,1879]),o($V2,$V3b,{68:1355,57:2975,161:$V_7}),o($V2,[2,1889]),{46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2976,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:2977,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$Vzc,833:1750,847:2978},o($V2,[2,1884]),o($V2,[2,1887]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1747,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,845:2979},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1747,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,845:2980},o($V2,$V3b,{68:1355,57:2981,161:$V_7,728:$VWh}),o($V2,[2,1886]),o($V2,[2,1893]),o($V2,[2,1895]),o($V2,[2,906]),o($V1i,$V2i,{580:2982,585:2983,591:2984,809:$V3i}),o($VFf,$V4i,{2:[1,2986],27:[1,2987]}),o($V5i,$V2i,{580:2988,585:2989,809:$V6i}),{27:[1,2992],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2991,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2993,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($V7i,$VGf,{584:2394,590:2994,579:2995,766:$VHf}),o($VJf,$VGf,{584:2394,579:2996,766:$VKf}),o($V5i,$V2i,{585:2989,580:2997,809:$V6i}),o($VNf,$V4i),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2998,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{27:[1,3001],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3002,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3003,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,871:2999,873:3000,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($VEc,[2,1957]),o($VEc,$VBc,{595:1774,578:3004,620:$VFc}),o($VJf,$VGf,{584:2394,579:3005,766:$VKf}),o($V7i,$VGf,{584:2394,590:3006,579:3007,766:$VHf}),o($VJf,$VGf,{584:2394,579:3008,766:$VKf}),o($V5i,$V2i,{585:2989,580:3009,809:$V6i}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3011,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,871:3010,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($V8i,$V2i,{585:2989,580:3012,809:$V6i}),o($VOf,[2,1185],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,929:1238,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:1646,551:2598,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,123:$V9i,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2601,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,726:$VBa,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,929:2600,931:2602,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{208:$Vai,756:[1,3017],762:$Vbi,800:$Vci},o($Vqd,[2,2095],{208:[1,3018],762:[1,3019],800:[1,3020]}),o($VRf,$Vdi,{27:[1,3021]}),o($Vei,$Vfi,{903:1806,908:1807,307:$VMc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,773:$VWc,789:$VYc,790:$VZc}),o($Vqd,[2,2114]),o($Vgi,[2,2118],{903:1839,307:$V1d,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,789:$V8d,790:$V9d}),o($Vqd,[2,1763]),o($Vqd,[2,1764]),o($Vei,$Vhi,{903:1806,908:1807,307:$VMc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,773:$VWc,789:$VYc,790:$VZc}),o($Vqd,[2,2115]),o($Vgi,[2,2119],{903:1839,307:$V1d,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,789:$V8d,790:$V9d}),o($Vei,$Vii,{903:1806,908:1807,307:$VMc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,773:$VWc,789:$VYc,790:$VZc}),o($Vqd,[2,2116]),o($Vgi,[2,2120],{903:1839,307:$V1d,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,789:$V8d,790:$V9d}),o($Vei,$Vji,{903:1806,908:1807,307:$VMc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,773:$VWc,789:$VYc,790:$VZc}),o($Vqd,[2,2117]),o($Vgi,[2,2121],{903:1839,307:$V1d,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,789:$V8d,790:$V9d}),{116:[1,3022],907:3023},{27:[1,3026],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3024,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3025,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vuc,[2,2082]),o($Vqd,[2,2086]),o($Vqd,[2,2162]),o($VQ8,$VR8,{270:442,694:446,955:943,926:1089,927:1090,899:1136,905:1144,285:1145,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,843:1154,972:1160,974:1161,976:1162,977:1163,923:1164,844:1165,978:1166,980:1167,982:1168,983:1169,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,925:1179,172:1180,988:1181,989:1182,990:1183,441:1184,817:1185,928:1186,46:1187,1013:1190,463:1191,818:1192,324:2522,494:2523,660:3027,901:3028,661:3029,911:3030,183:3031,27:$Vmd,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VG8,280:$VH8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,1011:$Vna}),o($Vqd,[2,2123]),{27:[1,3033],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc,902:[1,3032],903:1806,908:1807},{88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d,902:[1,3034],903:1839},o($Vki,[2,2139],{903:1822,88:$V_c,126:$V$c,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,789:$V8d,790:$V9d}),o($Vli,$Vmi,{903:1806,908:1807,88:$VJc,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,789:$VYc,790:$VZc}),o($Vqd,[2,2142]),o($Vni,[2,2143],{903:1839,88:$Vad,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,789:$V8d,790:$V9d}),o($Vli,$Voi,{903:1806,908:1807,88:$VJc,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,789:$VYc,790:$VZc}),o($Vqd,[2,2146]),o($Vni,[2,2147],{903:1839,88:$Vad,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,789:$V8d,790:$V9d}),o($V0g,$Vpi,{903:1806,908:1807,307:$VMc,488:$VQc,773:$VWc,789:$VYc,790:$VZc}),o($Vqd,[2,2153]),o($V2g,[2,2156],{903:1839,307:$V1d,488:$Vgd,789:$V8d,790:$V9d}),o($V0g,$Vqi,{903:1806,908:1807,307:$VMc,488:$VQc,773:$VWc,789:$VYc,790:$VZc}),o($Vqd,[2,2154]),o($V2g,[2,2157],{903:1839,307:$V1d,488:$Vgd,789:$V8d,790:$V9d}),o($V0g,$Vri,{903:1806,908:1807,307:$VMc,488:$VQc,773:$VWc,789:$VYc,790:$VZc}),o($Vqd,[2,2155]),o($V2g,[2,2158],{903:1839,307:$V1d,488:$Vgd,789:$V8d,790:$V9d}),o($V2,$Vsi,{662:3035,663:3037,27:[1,3036],664:$VRc}),o($V2,[2,1215]),o($V2,[2,1216]),o($V0g,$Vti,{903:1806,908:1807}),o($V2g,[2,2742],{903:1839}),o($Vqd,[2,2745]),o([2,47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,532,535,538,539,544,547,563,568,569,570,571,572,573,574,575,615,620,621,622,626,640,643,657,664,666,668,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,726,727,730,732,733,735,736,743,755,757,759,760,765,766,774,779,781,782,801,808,809,894,902],$VEf,{903:1822,307:$V1d,789:$V8d,790:$V9d}),o($V0g,$Vui,{903:1806,908:1807}),o($V2g,[2,2743],{903:1839}),o($Vqd,[2,2746]),o($V0g,$Vvi,{903:1806,908:1807}),o($V2g,[2,2744],{903:1839}),o($Vqd,[2,2747]),{27:[1,3039],666:[1,3038]},o([27,208,666,756,762,800],$Vdi),o($V2g,[2,2106],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V2g,[2,2107],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V2g,[2,2108],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V2g,[2,2109],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V2g,[2,2140],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V2g,[2,2144],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V2g,[2,2148],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V2g,[2,2149],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($Vqd,[2,2164]),o($V0g,$Vti,{903:1806}),o($V0g,$Vui,{903:1806}),o($V0g,$Vvi,{903:1806}),o($Vgi,[2,2110],{903:1806,307:$V1d,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($Vgi,[2,2111],{903:1806,307:$V1d,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($Vgi,[2,2112],{903:1806,307:$V1d,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($Vgi,[2,2113],{903:1806,307:$V1d,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),{116:[1,3040]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3041,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vqd,[2,2160]),o($VQ8,$VR8,{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,955:1552,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:2916,901:3042,660:3043,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,902:[1,3044],903:1806},o($Vni,[2,2141],{903:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,789:$V8d,790:$V9d}),o($Vni,[2,2145],{903:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,789:$V8d,790:$V9d}),o($V2g,[2,2150],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V2g,[2,2151],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V2g,[2,2152],{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($Vuc,[2,2065]),o($Vqd,[2,2104]),o($Vqd,[2,2105]),o($Vuc,[2,2084]),o($Vqd,[2,2167]),{2:$V4g,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2499,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,668:$V5g,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,759:$V6g,760:$V7g,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,910:3045,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vqd,[2,2166]),o($Vqd,[2,2171]),{2:$V4g,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3046,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,760:$V7g,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,910:3047,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,668:$Vwi,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},o($Vxi,[2,2778],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:3049,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vqd,[2,2761]),o($Vqd,[2,2762]),o($Vqd,[2,2169]),o($Vqd,[2,2170]),o($Vuc,[2,2748]),{27:[1,3052],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3050,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3051,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{2:$V4g,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3053,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,664:$Vuf,666:$V_5,668:$V5g,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,760:$V7g,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,910:3054,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635,1067:3055,1069:1867},o($V9g,[2,2764]),o($Vag,[2,2766],{1069:1867,1067:3056,664:$Vuf}),o($Vqd,[2,2750]),{2:$V4g,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3057,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,760:$V7g,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,910:3058,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{2:$V4g,760:$V7g,910:3059},o($Vag,[2,2769],{1069:2508,664:$Vuf}),{27:[1,3061],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,668:[1,3060],726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc,903:1806,908:1807},o($Vxi,[2,2771],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,668:[1,3062],726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),{27:[1,3064],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2774,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3063,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vxi,[2,2780],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,903:1822,324:3065,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,668:[1,3066],674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$V5d,727:$V9c,728:$VA9,731:$Vac,732:$V6d,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,781:$V7d,785:$Vda,786:$Vea,789:$V8d,790:$V9d,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vuc,[2,2378]),{27:[1,3068],118:$Vyi,123:$Vzi},{2:$VYb,118:$VZb,121:3070,123:$VAi},{2:$VYb,118:$VZb,121:3072},o($VBi,$VCi,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($VDi,[2,2174],{903:1839,88:$Vad,123:[1,3073],126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),{27:$V6,183:3074,811:$Vc4},o($Vtd,[2,2199]),o($Vyd,[2,1832]),o($Vqd,[2,1834],{728:[1,3075]}),o($Vqd,[2,1837],{728:[1,3076]}),o($Vuc,[2,2397]),o($Vuc,[2,2398]),o($Vqd,[2,2399]),o($VEi,$VFi,{993:3077,995:3078,183:3079,997:3081,27:$V6,161:[1,3080],811:$Vc4}),o($VEi,$VFi,{997:3081,993:3082,161:$VGi}),o($VHi,[2,2389]),{27:[1,3085],118:$VIi,123:$Vzi},{2:$VYb,118:$VZb,121:3086,123:$VAi},{2:$VYb,118:$VZb,121:3087},{27:[1,3089],88:$VJc,108:[1,3088],126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc,903:1806,908:1807},o($Vuc,[2,2460]),{2:$VYb,108:[1,3090],118:$VZb,121:3091},{2:$VYb,88:$Vad,108:[1,3092],118:$VZb,121:3093,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d,903:1839},{27:[1,3094]},{27:[1,3096],535:[1,3095]},{2:$VYb,118:$VZb,121:3097,535:[1,3098]},o($VC9,[2,2484]),o($VC9,[2,2485]),o($VC9,[2,2486]),o($VC9,[2,2487]),o($VC9,[2,2488]),o($VC9,[2,2489]),o($VC9,[2,2490]),o($VC9,[2,2491]),o($VC9,[2,2492]),o($Vqd,[2,1836],{728:$VJi}),{88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,730:$VKi,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc,903:1806,908:1807},o($Vwf,[2,1851]),{2:$VLi,730:$VMi,848:3101},{2:$VLi,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,730:$VMi,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d,848:3104,903:1839},{118:[1,3105]},o($Vzd,[2,2472]),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3107,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2522,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2523,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,901:3106,905:1144,911:3108,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3110,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3109,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3111,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vzd,[2,2518]),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,118:$VNi,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3114,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2522,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2523,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,901:3113,905:1144,911:3115,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vdh,$VOi,{678:3116,153:$VPi}),o([384,544,691],$VOi,{678:3118,153:$VPi}),o($V3e,$V4h,{49:2709,69:3119,52:3120,705:$Vbb}),o($V2,$V4h,{49:2709,69:3121,705:$Vrb}),{641:3122,767:$Vlc},{641:3123,767:$Vlc},o($V2,$V4h,{49:2709,69:3124,705:$Vrb}),o($Vvg,[2,1266]),o($Vsa,[2,1271]),o($Vsa,[2,1270]),{75:[1,3125]},o($V2,[2,1280],{684:3126,75:$Vra}),{75:[1,3127]},{75:[1,3128]},o($V3e,$VL9,{577:1125,536:3129,537:3130,808:$VM9}),o($V2,$VL9,{577:1125,536:3131,808:$VN9}),{27:$VBd,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916,1062:3132,1063:3133,1064:1913},{27:[1,3135],46:439,47:$Vg4,50:$Vh4,56:435,58:$Vi4,59:437,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$Vx4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441,900:436,906:438,933:3134,934:3136,935:425,936:426,937:427,938:428,939:429,940:430,947:431,949:432,950:433,952:434},o($V2,$VL9,{577:1125,536:3137,808:$VN9}),{46:1057,47:$Vg4,50:$Vh4,56:435,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,900:436,933:3134,935:425,937:1054,938:428,947:1055,949:1056},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,672:3138,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916,1062:1911,1064:1918},{27:$Vnd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3141,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3142,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190,1065:3139,1066:3140},o($VDg,[2,2725]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2526,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,726:$VQi,735:$VN6},o($V2,$VL9,{577:1125,536:3144,808:$VN9}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916,1062:3132,1064:1918},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3145,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635,1065:3139},o($Vv9,[2,1935]),o([2,118,544,568,569,570,571,572,573,574,575,620,691,743,757,766,774,782,801,809,894],$VL9,{536:1124,577:1125,631:3146,808:$VN9}),o($VEd,$VRi,{862:3147,863:3148,864:3149,942:3150,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VEd,[2,1936]),o($VEd,[2,929]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,535:$V17,538:$VS5,539:$VT5,541:1170,550:3151,551:3152,621:$VU5,622:$VV5,626:$VW5,628:1931,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:1238,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VKd,[2,2238],{123:$VHg}),{123:[1,3153],535:$VSi},o($VJd,[2,2233]),o($VKd,[2,2240],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,929:1238,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:1646,551:3154,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$VNd,116:$V7c,123:[1,3155],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($VKd,[2,2241],{123:[1,3156]}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:2600,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VKd,[2,2236],{123:$VHg}),{27:$VTi,123:[1,3157],535:$VUi},{535:[2,937]},{108:$VNd,535:[2,940]},o([108,535],$Vs7,{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,929:1238,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:1646,903:1822,551:1934,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,123:$VGd,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VHd,727:$V9c,728:$VA9,731:$Vac,732:$V6d,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,781:$V7d,785:$Vda,786:$Vea,789:$V8d,790:$V9d,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($VKd,[2,2237],{123:$VHg}),o($V3c,[2,947]),o($VMd,[2,2230]),{48:3159,116:$Vie},o($V2,[2,41]),{27:[1,3161],51:3160,53:3162,473:$V7e,619:$V8e,620:$V9e},o($V2,[2,45]),o($V2,[2,46]),o([27,58],$V3b,{68:1355,102:1356,57:3163,60:3164,161:$V4b}),o($V2,[2,51]),o($V2,[2,52]),{27:[1,3166],64:$VVi},o($V2,[2,59]),o($V2,[2,379]),o($Vy7,$VGa,{67:3167,100:3168,769:$VHa}),o($V2,$VWi,{27:[1,3169]}),{2:[1,3170]},o($Vle,$V4h,{49:2709,69:3171,52:3172,705:$Vbb}),o($V8h,$V4h,{49:2709,69:3173,705:$Vrb}),o($VXi,[2,391]),o($VYi,[2,393]),{125:3174,279:[1,3175],280:[1,3176],441:926,817:927},o($V2,[2,383]),o([27,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,544,547,615,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,735],[2,1737]),o($VNg,[2,1739]),o($VZi,$VLg,{276:2628,273:3177,277:$VZh}),o($V_i,$VLg,{276:2628,273:3178,277:$VZh}),o($VOg,[2,747]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:3181,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,471:3180,472:3179,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},o($VQg,$VPg,{470:2636,454:3182,116:$VRg}),o($V$i,$VLg,{276:2628,273:3183,277:$VZh}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:3185,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,471:3184,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},{46:2646,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$VXb,833:1529,835:3186},{46:3187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V0j,$V1j,{452:3188,453:3189,177:[1,3190]}),o($V2,[2,706]),o($V3e,$V2j,{457:3191,459:3192,464:[1,3193]}),o([27,78,107,108,116,129,152,161,177,277,307,376,382,396,409,499,544,691,705],[2,1795]),{27:[1,3195],46:439,47:$Vg4,50:$Vh4,56:3197,58:$Vi4,59:3198,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,474:3194,480:3196,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,759]),{27:[1,3200],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3199,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3201,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($V2,[2,798],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:3202,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,118:$V3j,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3208,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,495:3204,496:3205,497:3206,498:3207,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{279:$VM8,441:3209},o($V2,[2,734]),o($V2,[2,851]),o($V2,[2,855]),o($V3e,[2,1727]),o($V3e,[2,1728]),o($V2,$VUg,{95:3210,696:$VVg,710:$VWg}),o($V2,[2,856]),o($V2,[2,861]),o($V2,[2,859]),o($V2,[2,865]),o($V2,[2,882]),o($V2,[2,884]),o($V2,$V4j,{27:[1,3211]}),o($V3e,[2,875]),o($V2,[2,871]),o($V2,[2,872]),{27:[1,3213],46:439,47:$Vg4,50:$Vh4,56:3212,58:$Vi4,59:3214,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,879]),o($V2,[2,892]),{27:[1,3216],46:3215,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,2592],{270:442,694:446,46:3217,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,[2,2590],{270:442,694:446,46:3218,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($VTd,[2,1761]),o($VTd,[2,1762]),o($V2,[2,2611]),o($V2,[2,2612]),{27:[1,3220],46:1057,47:$Vg4,50:$Vh4,56:3219,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,2616],{46:439,833:441,270:442,694:446,56:3221,59:3222,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6}),o($V2,[2,2617]),o($V2,[2,2615]),{27:[1,3224],46:3223,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,2634],{270:442,694:446,46:3225,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{46:3226,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,2646]),o($V2,[2,2653]),o($V2,[2,2654]),o($V2,$V5j,{27:[1,3227]}),o($V2,[2,2642]),o($V2,[2,2641]),o($V2,[2,2662]),o($V2,[2,2666]),o($V2,[2,2664]),o($V2,[2,2684]),{279:$VM8,441:3228},o($V2,[2,2673],{441:3229,279:$VM8}),{279:$VM8,441:3230},o($VWa,[2,1722]),o($Vic,[2,1723]),{279:$VM8,441:3231},{118:[1,3232]},o($V2,[2,2692]),o($V3e,[2,2701]),o($V2,[2,2702]),{46:3233,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V3e,$V6j,{70:3234,101:3235,184:3236,186:3237,185:3238,68:3239,102:3240,161:$V4b}),o($V2,$V6j,{185:3238,70:3241,184:3242,68:3243,161:$V_7}),o($Vch,[2,1814]),o($V2,$V6j,{185:3238,184:3242,68:3243,70:3244,161:$V_7}),o($V2,[2,62]),o($V2,[2,107]),o($V2,[2,108]),o($V2,[2,109]),{80:3245,110:3246,116:$V99},o($Vjh,[2,551]),{27:[1,3247],318:[1,3248]},{27:[1,3250],318:$V7j},{81:3251,116:$V8j},o($V2,[2,127]),{81:3253,116:$V8j},{118:$Vhh,123:$V9j},{2:$VYb,118:$VZb,121:3255},o($V4f,[2,1803],{123:[1,3256]}),o($Vaj,$Vkh,{126:[1,3257]}),{126:[1,3258]},o($Vbj,[2,1812]),o($V2,[2,116]),{118:$Vcj,123:[1,3260]},{2:$VYb,118:$VZb,121:3261},o($Vbj,[2,252]),o($V4f,[2,254],{123:[1,3262]}),{126:[1,3263]},o($Vbj,[2,259],{126:[1,3264]}),o($Vbj,[2,260],{126:[1,3265]}),{126:[1,3266]},o([118,123,126],$VFg,{728:[1,3267]}),o([2,118,123,126],[2,1830]),o($V2,[2,1073]),o($V2,[2,1074]),o($V2,[2,1075]),{419:[1,3268]},{118:[1,3269],123:[1,3270]},o($Vaj,[2,404]),{126:[1,3271]},o($V2,$Vdj,{27:[1,3272]}),o($V2,[2,175]),o($Vej,[2,691]),{27:[1,3273],132:$Vfj},o($V2,[2,75]),o($V2,$V4f),o($V2,$VUg,{95:3275,696:$VVg,710:$VWg}),{27:[1,3277],384:[1,3276]},o($Vke,[2,591],{384:[1,3278]}),{27:[1,3280],79:[1,3279]},o($Vke,[2,586],{384:[1,3281]}),{79:[1,3282]},{27:[1,3284],46:753,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:3283,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,159:3285,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:754},o($V2,[2,189]),{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:3286,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{118:$Vgj,123:[1,3288]},{118:$Vhj,123:$V9j},{2:$VYb,118:$VZb,121:3290},{2:$VYb,118:$VZb,121:3291},{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2725,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:3292,165:3293,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2727,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$Vc4,833:2726,839:2104,840:2724},o([26,27,58,66,74,75,92,99,116,123,134,135,152,161,176,177,218,239,418,532,535,544,547,615,637,691,705,769],[2,1746]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,839:3294},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3295,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($V2,$Vij,{27:[1,3296]}),{27:$V6,68:3297,102:3299,161:$V4b,183:3298,811:$Vc4},o($V2,[2,205]),{68:2109,161:$V_7,168:3300},{68:2109,161:$V_7,168:3301},{88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc,903:1806,908:1807},o($V2,$Vjj,{27:[1,3302]}),o($V2,[2,169]),{27:[1,3304],153:[1,3303]},o($V2,[2,168]),{153:[1,3305]},o($Vle,[2,177]),o($Vze,[2,178]),o($V2,[2,227]),o($Vkj,$Vlj,{142:3306,145:3307,173:3308,174:$Vmj,175:$Vnj}),o($Voj,$Vlj,{142:3311,173:3312,174:$Vmj,175:$Vnj}),{27:[1,3314],312:3313,314:3315,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,359:$Vsj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},o($V2,$VJj,{27:[1,3349]}),o($V2,[2,184]),{118:$VKj,123:[1,3351]},{2:$VYb,118:$VZb,121:3352},o($Vaj,$VLj,{27:[1,3353]}),o($V4f,[2,438],{123:[1,3354]}),o($V2,$VMj,{27:[1,3355]}),o($V2,[2,282]),{27:[1,3357],85:$VNj},o($VOj,[2,289]),o($VOj,[2,290]),o($VOj,[2,291]),o($V2,[2,900]),o($V2,[2,902]),o($Vxh,$V89,{80:963,614:3359,647:3360,110:3361,116:$V99,637:$VPj}),o($Vnb,$V89,{80:963,614:3362,116:$V2c}),o($Vnb,$V89,{80:963,614:3363,116:$V2c}),o($Vxh,$VGa,{67:3364,100:3365,769:$VHa}),o($Vnb,$VGa,{67:3366,769:$Vob}),o($Vnb,$V89,{80:963,614:3367,116:$V2c}),o($Vre,$Vse,{642:3368,645:3369,409:$Vte}),o($Vue,$Vse,{642:3370,409:$Vve}),o($Vxh,[2,1144]),o($Vnb,[2,1157]),o([27,152,544,547,615,691],[2,646]),{108:$VQj},o($Vnb,[2,1156]),{27:[1,3373],426:3372,427:3374,428:$VRj},o($Vue,[2,1181]),o($Vnb,[2,1155]),{426:3372,428:$VSj},o([2,27,107,108,129,152,153,161,227,277,384,409,499,544,547,646,691,705],[2,2428]),o($VBh,[2,2431],{1008:[1,3377],1009:[1,3378]}),o($VBh,[2,2432]),{27:[1,3380],464:[1,3379]},o($V2,[2,1200]),o($V2,$V6j,{185:3238,184:3242,68:3243,70:3381,161:$V_7}),{81:3382,116:$V8j},{118:$Vcj,123:$VTj},o($V2,$Vdj),{132:$Vfj},o($V2,[2,94]),o($V2,$VUg,{95:3384,696:$VVg,710:$VWg}),o($Vjh,$VUj),o($VVj,[2,562]),o($VVj,[2,563]),{384:[1,3385]},{46:1001,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,76:3283,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{118:$Vgj,123:[1,3386]},{118:$Vhj,123:$Vih},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:3387,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,839:2104},o($V2,$Vij),{68:3297,161:$V_7},o($V2,$Vjj),o($Voj,$Vlj,{173:3312,142:3388,174:$Vmj,175:$Vnj}),{312:3313,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3393,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VIh,[2,547]),{80:3394,116:$V2c},o($V2,$VJj),{118:$VKj,123:[1,3395]},o($Vbj,$VLj),o($V2,$V3,{543:6,209:7,3:250,211:251,195:252,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1016:332,1017:333,1018:334,1019:335,1020:336,1021:337,1022:338,1023:339,1024:340,1025:341,1026:342,1027:343,1028:344,1029:345,1030:346,1031:347,1032:348,1033:349,1034:350,456:408,215:629,546:630,627:639,628:640,653:642,65:649,194:650,542:1457,210:1463,2:$V4,26:$Vxb,44:$VU6,47:$V8,50:$V9,54:$Va,55:$Vb,58:$Vc,62:$Vd,71:$Ve,78:$Vf,79:$Vg,85:$Vh,88:$Vi,89:$Vj,107:$Vk,108:$Vl,116:$Vm,118:$Vn,123:$Vo,126:$Vp,129:$Vq,130:$Vr,132:$Vs,150:$Vt,151:$Vu,152:$VV6,153:$Vw,154:$Vx,158:$Vy,161:$Vz,166:$VW6,198:$VX6,202:$VC,205:$VY6,206:$VE,208:$VF,217:$VZ6,218:$VI,219:$VJ,227:$VK,228:$VL,229:$VM,230:$VN,231:$Vyb,233:$VP,235:$VQ,238:$VR,239:$VS,240:$VT,266:$V_6,277:$VV,279:$VW,280:$VX,307:$VY,317:$VZ,318:$V_,333:$V$,347:$V01,348:$V11,349:$V21,351:$V31,352:$V41,359:$V51,371:$V61,372:$V71,373:$V81,374:$V91,376:$Va1,381:$Vb1,382:$Vc1,384:$Vd1,385:$Ve1,386:$Vf1,396:$Vg1,397:$Vh1,409:$Vi1,410:$Vj1,417:$Vk1,418:$Vl1,419:$Vm1,420:$Vn1,421:$Vo1,422:$Vp1,423:$Vq1,424:$Vr1,425:$Vs1,428:$Vt1,439:$Vu1,440:$Vv1,442:$Vw1,443:$Vx1,444:$Vy1,445:$Vz1,446:$VA1,447:$VB1,460:$VC1,464:$VD1,468:$VE1,469:$VF1,473:$VG1,486:$VH1,487:$VI1,488:$VJ1,491:$VK1,532:$VL1,533:$V$6,534:$V07,535:$Vzb,538:$V27,539:$VQ1,547:$V37,561:$VS1,563:$VT1,568:$VU1,569:$VV1,570:$VW1,571:$VX1,572:$VY1,573:$VZ1,574:$V_1,575:$V$1,596:$VAb,610:$V12,615:$V57,616:$V32,617:$V42,618:$V67,619:$V62,620:$V72,621:$V82,622:$V92,623:$V77,626:$Vb2,637:$Vc2,639:$Vd2,640:$Ve2,657:$V87,664:$Vg2,666:$Vh2,668:$Vi2,674:$V97,675:$Vk2,677:$Vl2,682:$Va7,687:$Vn2,688:$Vb7,689:$Vp2,695:$Vq2,697:$Vr2,698:$Vs2,699:$Vt2,700:$Vu2,701:$Vv2,702:$Vw2,703:$Vx2,704:$Vy2,705:$Vz2,706:$VA2,707:$VB2,708:$VC2,709:$VD2,711:$VE2,712:$VF2,713:$VG2,714:$VH2,715:$Vc7,716:$VJ2,717:$VK2,718:$VL2,719:$VM2,720:$Vd7,721:$VO2,722:$VP2,723:$VQ2,724:$VR2,725:$VS2,726:$VT2,727:$VU2,728:$VV2,729:$VW2,730:$VX2,731:$VY2,732:$VZ2,733:$V_2,734:$V$2,735:$V03,736:$V13,737:$V23,738:$V33,739:$V43,740:$V53,741:$V63,742:$V73,743:$V83,744:$V93,745:$Va3,746:$Vb3,747:$Vc3,748:$Vd3,749:$Ve3,750:$Vf3,751:$Vg3,752:$Vh3,753:$Vi3,754:$Vj3,755:$Vk3,756:$Vl3,757:$Vm3,758:$Vn3,759:$Vo3,760:$Vp3,761:$Vq3,762:$Vr3,763:$Vs3,764:$Vt3,765:$Vu3,766:$Vv3,767:$Vw3,768:$Vx3,769:$Vy3,770:$Vz3,771:$VA3,772:$VB3,773:$VC3,774:$VD3,775:$VE3,776:$VF3,777:$VG3,778:$VH3,779:$VI3,780:$VJ3,781:$VK3,782:$VL3,783:$VM3,784:$VN3,785:$VO3,786:$VP3,787:$VQ3,788:$VR3,789:$VS3,790:$VT3,791:$VU3,792:$VV3,793:$VW3,794:$VX3,795:$VY3,796:$VZ3,797:$V_3,798:$V$3,799:$V04,800:$V14,801:$V24,802:$V34,803:$V44,804:$V54,805:$V64,806:$V74,807:$V84,808:$V94,809:$Va4,810:$Vb4,851:$Ve7}),o($V2,$V3,{543:6,209:7,3:250,211:251,195:252,4:261,5:262,6:263,7:264,8:265,9:266,10:267,11:268,12:269,13:270,14:271,15:272,500:273,501:274,502:275,503:276,504:277,505:278,506:279,30:304,31:305,32:306,33:307,34:308,35:309,36:310,251:312,252:313,253:314,254:315,255:316,256:317,257:318,258:319,515:320,516:321,517:322,518:323,519:324,520:325,521:326,522:327,523:328,1016:332,1017:333,1018:334,1019:335,1020:336,1021:337,1022:338,1023:339,1024:340,1025:341,1026:342,1027:343,1028:344,1029:345,1030:346,1031:347,1032:348,1033:349,1034:350,456:408,215:629,546:630,627:639,628:640,653:642,65:649,194:650,210:1463,542:3396,2:$V4,26:$Vxb,44:$VU6,47:$V8,50:$V9,54:$Va,55:$Vb,58:$Vc,62:$Vd,71:$Ve,78:$Vf,79:$Vg,85:$Vh,88:$Vi,89:$Vj,107:$Vk,108:$Vl,116:$Vm,118:$Vn,123:$Vo,126:$Vp,129:$Vq,130:$Vr,132:$Vs,150:$Vt,151:$Vu,152:$VV6,153:$Vw,154:$Vx,158:$Vy,161:$Vz,166:$VW6,198:$VX6,202:$VC,205:$VY6,206:$VE,208:$VF,217:$VZ6,218:$VI,219:$VJ,227:$VK,228:$VL,229:$VM,230:$VN,231:$Vyb,233:$VP,235:$VQ,238:$VR,239:$VS,240:$VT,266:$V_6,277:$VV,279:$VW,280:$VX,307:$VY,317:$VZ,318:$V_,333:$V$,347:$V01,348:$V11,349:$V21,351:$V31,352:$V41,359:$V51,371:$V61,372:$V71,373:$V81,374:$V91,376:$Va1,381:$Vb1,382:$Vc1,384:$Vd1,385:$Ve1,386:$Vf1,396:$Vg1,397:$Vh1,409:$Vi1,410:$Vj1,417:$Vk1,418:$Vl1,419:$Vm1,420:$Vn1,421:$Vo1,422:$Vp1,423:$Vq1,424:$Vr1,425:$Vs1,428:$Vt1,439:$Vu1,440:$Vv1,442:$Vw1,443:$Vx1,444:$Vy1,445:$Vz1,446:$VA1,447:$VB1,460:$VC1,464:$VD1,468:$VE1,469:$VF1,473:$VG1,486:$VH1,487:$VI1,488:$VJ1,491:$VK1,532:$VL1,533:$V$6,534:$V07,535:$Vzb,538:$V27,539:$VQ1,547:$V37,561:$VS1,563:$VT1,568:$VU1,569:$VV1,570:$VW1,571:$VX1,572:$VY1,573:$VZ1,574:$V_1,575:$V$1,596:$VAb,610:$V12,615:$V57,616:$V32,617:$V42,618:$V67,619:$V62,620:$V72,621:$V82,622:$V92,623:$V77,626:$Vb2,637:$Vc2,639:$Vd2,640:$Ve2,657:$V87,664:$Vg2,666:$Vh2,668:$Vi2,674:$V97,675:$Vk2,677:$Vl2,682:$Va7,687:$Vn2,688:$Vb7,689:$Vp2,695:$Vq2,697:$Vr2,698:$Vs2,699:$Vt2,700:$Vu2,701:$Vv2,702:$Vw2,703:$Vx2,704:$Vy2,705:$Vz2,706:$VA2,707:$VB2,708:$VC2,709:$VD2,711:$VE2,712:$VF2,713:$VG2,714:$VH2,715:$Vc7,716:$VJ2,717:$VK2,718:$VL2,719:$VM2,720:$Vd7,721:$VO2,722:$VP2,723:$VQ2,724:$VR2,725:$VS2,726:$VT2,727:$VU2,728:$VV2,729:$VW2,730:$VX2,731:$VY2,732:$VZ2,733:$V_2,734:$V$2,735:$V03,736:$V13,737:$V23,738:$V33,739:$V43,740:$V53,741:$V63,742:$V73,743:$V83,744:$V93,745:$Va3,746:$Vb3,747:$Vc3,748:$Vd3,749:$Ve3,750:$Vf3,751:$Vg3,752:$Vh3,753:$Vi3,754:$Vj3,755:$Vk3,756:$Vl3,757:$Vm3,758:$Vn3,759:$Vo3,760:$Vp3,761:$Vq3,762:$Vr3,763:$Vs3,764:$Vt3,765:$Vu3,766:$Vv3,767:$Vw3,768:$Vx3,769:$Vy3,770:$Vz3,771:$VA3,772:$VB3,773:$VC3,774:$VD3,775:$VE3,776:$VF3,777:$VG3,778:$VH3,779:$VI3,780:$VJ3,781:$VK3,782:$VL3,783:$VM3,784:$VN3,785:$VO3,786:$VP3,787:$VQ3,788:$VR3,789:$VS3,790:$VT3,791:$VU3,792:$VV3,793:$VW3,794:$VX3,795:$VY3,796:$VZ3,797:$V_3,798:$V$3,799:$V04,800:$V14,801:$V24,802:$V34,803:$V44,804:$V54,805:$V64,806:$V74,807:$V84,808:$V94,809:$Va4,810:$Vb4,851:$Ve7}),{2:$V_j,27:[1,3400],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3401,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,565:3397,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,738:$VZ9,769:$V9a,914:3402,984:3399},o($VJh,[2,2531]),o($Vj8,[2,2252],{123:$Vnc}),{2:$V_j,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3404,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,565:3403,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,738:$VZ9,769:$V9a,914:3405},o($VMh,[2,2264]),o($VHe,$V$j,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($VNb,[2,2295],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($VNb,[2,2296],{903:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,781:$V7d,789:$V8d,790:$V9d}),o($VTe,$V$j,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),{27:[1,3407],783:[1,3406]},{118:[1,3408]},{118:[1,3409]},{2:$VYb,118:$VZb,121:3410},o($VO8,[2,2311]),o($VI8,[2,2312]),o($VPh,$Vyf,{385:$Vzf}),{783:[1,3411]},o($V2,$V0k,{27:[1,3412]}),o($V2,[2,1022]),{27:[1,3414],596:[1,3413]},o($V79,[2,1048],{123:$V1c}),o($V79,[2,1051],{123:$V1c}),o($V2,[2,1026]),o($Vaf,[2,1066]),o($V2,[2,1067],{123:[1,3415]}),{27:[1,3417],621:$V1k},o($V2,[2,1084]),o($V2,[2,1068],{123:$VTh}),o($V2,$V2k,{27:[1,3418]}),o($V2,[2,1031]),o($Vdf,[2,1781],{123:[1,3419]}),o($Vdf,[2,1782],{123:[1,3420]}),o($Vef,[2,1779]),o($Vdf,[2,1783],{123:$VVh}),{219:[1,3421]},o($V2,$VQh,{600:3422,123:$VTh,152:[1,3423]}),o($V2,$VRh),{51:2873,473:$V_b,619:$V$b,620:$V0c},{622:[1,3424]},o($V2,$V6f,{602:3425,123:$VTh,152:$VUh}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2882,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,$V$h,{123:$VTh}),{55:$V49,123:$V1c,535:$V$8,598:3426},o($V2,$V0i,{123:$VTh}),{123:$V29,535:[1,3427]},o($V3c,$VZ8,{270:442,694:446,46:596,601:3428,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2976,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{208:$Vai,756:[1,3429],762:$Vbi,800:$Vci},o($Vei,$Vfi,{903:1806,307:$V1d,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($Vei,$Vhi,{903:1806,307:$V1d,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($Vei,$Vii,{903:1806,307:$V1d,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($Vei,$Vji,{903:1806,307:$V1d,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),{116:[1,3430]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3431,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VQ8,$VR8,{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,955:1552,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:2916,660:3027,901:3432,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,902:[1,3433],903:1806},o($Vli,$Vmi,{903:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,789:$V8d,790:$V9d}),o($Vli,$Voi,{903:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,789:$V8d,790:$V9d}),o($V0g,$Vpi,{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V0g,$Vqi,{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V0g,$Vri,{903:1806,307:$V1d,488:$Vmf,773:$Vsf,789:$V8d,790:$V9d}),o($V2,$Vsi,{662:3035,664:$Vnf}),{666:[1,3434]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3435,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,668:[1,3436],726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{118:$Vyi,123:$V3k},o($V4k,$VCi,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),{118:$VIi,123:$V3k},{88:$Vgf,108:[1,3438],126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{535:[1,3439]},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,730:$VKi,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,901:3440,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3441,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,118:$VNi,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,901:3442,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{153:$VPi,384:$VOi,678:3443},o($V2,$V4h,{49:2709,69:3444,705:$Vrb}),{75:[1,3445]},o($V2,$VL9,{577:1125,536:3446,808:$VN9}),{123:[1,3447],535:$VSi},{123:[1,3448],535:$VUi},{51:3160,473:$V_b,619:$V$b,620:$V0c},{57:3449,58:$V3b,68:1355,161:$V_7},{64:$VVi},o($V2,$V6j,{185:3238,184:3242,68:3243,70:3450,161:$V_7}),{80:3451,116:$V2c},{318:$V7j},{81:3452,116:$V8j},o($V2,$VMj),{85:$VNj},o($V2,$VWi),o($Vze,$V4h,{49:2709,69:3171,705:$Vrb}),{125:3174,279:$VM8,280:$VN8,441:926,817:927},o($Vi9,$VGa,{67:3453,769:$Vob}),o($V$i,$VLg,{276:2628,273:3454,277:$VZh}),o([107,108,129,277,376,382,396,409,705],$V1j,{452:3455,177:[1,3456]}),o($V2,$V2j,{457:3457,464:[1,3458]}),{46:1057,47:$Vg4,50:$Vh4,56:3197,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,474:3459,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3460,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,118:$V3j,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3462,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,495:3461,497:3206,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,$V4j),{46:1057,47:$Vg4,50:$Vh4,56:3212,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:3215,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1057,47:$Vg4,50:$Vh4,56:3219,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:3223,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,$V5j),{279:$VM8,441:3463},o($V_h,$V89,{80:963,614:3359,116:$V2c,637:$VPj}),o($V_h,$VGa,{67:3364,769:$Vob}),o($Vxf,$Vse,{642:3464,409:$Vve}),{464:[1,3465]},o($Vx9,[2,1927],{123:$V5c}),o($Vy9,[2,1928]),o($Vrc,[2,1930]),o($Vrc,[2,1931]),o($V5k,$V6k,{220:3466,223:3468,225:3469,27:[1,3467],227:[1,3470]}),o($V2,[2,322]),o($V5k,$V6k,{220:3471,223:3472,227:$V7k}),o($V5k,$V6k,{223:3472,220:3474,227:$V7k}),o($V5k,$V6k,{223:3472,220:3475,227:$V7k}),o($Vuc,[2,2217]),{27:[1,3477],535:[1,3476]},o($V2,[2,1103]),{27:[1,3479],51:1570,473:$V_b,599:3478,605:3480,619:$V$b,620:$V0c},o($V2,[2,1115]),{27:[1,3482],123:$V29,535:[1,3481]},o($V2,[2,1888]),o($VBf,[2,1840]),o($VCf,[2,1842],{728:[1,3483]}),o($VCf,[2,1846],{728:[1,3484]}),o($VCf,[2,1844],{728:$VWh}),o($VCf,[2,1848],{728:$VWh}),o($V2,[2,1885]),o($V8k,$V9k,{581:3485,586:3486,592:3487,782:$Vak}),o($V1i,$Vbk,{2:[1,3489],27:[1,3490]}),o($Vck,$V9k,{581:3491,586:3492,782:$Vdk}),{46:3494,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vek,$V2i,{585:2989,591:3496,580:3497,27:[1,3495],809:$V3i}),o($V5i,$V2i,{585:2989,580:3498,809:$V6i}),o($Vck,$V9k,{586:3492,581:3499,782:$Vdk}),o($V8i,$Vbk),{46:3500,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o([2,27,118,499,544,615,691,743,757,774,782,801,809,894],$Vfk,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($VJf,[2,2452],{903:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,781:$V7d,789:$V8d,790:$V9d}),o($VJf,[2,2453],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($V5i,$V2i,{585:2989,580:3501,809:$V6i}),o($Vek,$V2i,{585:2989,591:3502,580:3503,809:$V3i}),o($V5i,$V2i,{585:2989,580:3504,809:$V6i}),o($Vck,$V9k,{586:3492,581:3505,782:$Vdk}),o($VNf,$Vfk,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o([2,27,118,499,544,615,691,743,757,766,774,782,801,809,894],$Vgk,{872:3506,874:3507,875:3509,876:3511,123:[1,3508],152:[1,3510],765:[1,3512]}),o($VEc,$Vgk,{875:3509,872:3513,152:$Vhk,765:$Vik}),o($VEc,$Vgk,{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,903:1822,875:3509,872:3516,324:3517,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,123:[1,3518],126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,152:$Vhk,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$V5d,727:$V9c,728:$VA9,731:$Vac,732:$V6d,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,765:$Vik,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,781:$V7d,785:$Vda,786:$Vea,789:$V8d,790:$V9d,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vjk,$Vkk,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($Vlk,[2,1981],{903:1839,88:$Vad,123:[1,3519],126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($VJf,$VGf,{584:2394,579:3520,766:$VKf}),o($V5i,$V2i,{585:2989,580:3521,809:$V6i}),o($V5i,$V2i,{585:2989,580:3522,809:$V6i}),o($Vek,$V2i,{585:2989,591:3523,580:3524,809:$V3i}),o($V5i,$V2i,{585:2989,580:3525,809:$V6i}),o($Vck,$V9k,{586:3492,581:3526,782:$Vdk}),o($VGc,$Vgk,{872:3506,875:3509,123:$Vmk,152:$Vhk,765:$Vik}),o($Vnk,$Vkk,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($Vok,$V9k,{586:3492,581:3528,782:$Vdk}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:3152,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:1238,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vuc,[2,2060]),o($Vuc,[2,2061]),o($Vuc,[2,2062]),{27:[1,3530],535:[1,3529]},o($Vqd,[2,2098]),o($Vqd,[2,2099]),o($Vqd,[2,2100]),o($Vqd,[2,2096]),o($VQ8,$VR8,{270:442,694:446,955:943,926:1089,927:1090,899:1136,905:1144,285:1145,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,843:1154,972:1160,974:1161,976:1162,977:1163,923:1164,844:1165,978:1166,980:1167,982:1168,983:1169,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,925:1179,172:1180,988:1181,989:1182,990:1183,441:1184,817:1185,928:1186,46:1187,1013:1190,463:1191,818:1192,324:2522,494:2523,661:3029,911:3030,183:3031,660:3531,901:3532,27:$Vmd,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VG8,280:$VH8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,1011:$Vna}),o($Vqd,[2,2122]),{27:[1,3534],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc,902:[1,3533],903:1806,908:1807},{88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d,902:[1,3535],903:1839},o($VZf,[2,2133],{903:1822,126:$V$c,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,789:$V8d,790:$V9d}),{118:[1,3536]},{27:$Vpk,118:$Vqk,123:$Vzi},{2:$VYb,118:$VZb,121:3539},{2:$VYb,118:$VZb,121:3540},{2:$VYb,118:$VZb,121:3541,123:$VAi},{27:[1,3544],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3542,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3543,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vqd,[2,2138]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3545,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($V2,[2,1213]),o($V2,[2,1217]),o($V2,[2,1218]),o($Vrk,$Vsk,{667:3546,670:3547,150:[1,3548]}),o($V2,[2,1220]),o($VQ8,$VR8,{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,955:1552,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:2916,901:3549,660:3550,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,902:[1,3551],903:1806},{2:$VYb,118:$VZb,121:3552,123:$V3k},{2:$VYb,118:$VZb,121:3553},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3554,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vqd,[2,2168]),{2:$V4g,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,760:$V7g,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806,910:3555},o($Vqd,[2,2760]),o($Vxi,[2,2776],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:3556,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vxi,[2,2779],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),{27:[1,3558],88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,760:$Vtk,773:$VWc,781:$VXc,789:$VYc,790:$VZc,903:1806,908:1807},{2:$V4g,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,760:$V7g,781:$Vld,789:$V8d,790:$V9d,903:1839,910:3559},{2:$V4g,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,760:$V7g,781:$V7d,789:$V8d,790:$V9d,903:1822,910:3560},{2:$V4g,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,668:$Vwi,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,760:$V7g,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806,910:3561},o($Vqd,[2,2755]),o($Vag,[2,2768],{1069:2508,664:$Vuf}),o($Vag,[2,2767],{1069:2508,664:$Vuf}),{2:$V4g,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,760:$V7g,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806,910:3562},o($Vqd,[2,2753]),o($Vqd,[2,2758]),{27:[1,3565],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3563,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3564,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vxi,[2,2784],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:3566,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vxi,[2,2772],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:3567,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vxi,[2,2775],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($Vxi,[2,2789],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,903:1822,324:3568,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$V5d,727:$V9c,728:$VA9,731:$Vac,732:$V6d,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,781:$V7d,785:$Vda,786:$Vea,789:$V8d,790:$V9d,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vxi,[2,2781],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($Vxi,[2,2782],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:3569,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vuc,[2,2379]),{2:$VYb,118:$VZb,121:3570,123:$Vuk},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3574,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3572,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3573,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vqd,[2,2380]),o($VDi,[2,2182],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:2916,901:3575,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vqd,[2,2382]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,901:3576,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VDi,[2,2183],{123:[1,3577]}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:3578},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:3579},{118:$Vvk,586:3582,592:3583,782:$Vak,994:3580,996:3581},o($V4f,$Vvk,{994:3584,586:3585,782:$Vdk}),o($VDi,$VFi,{997:3081,993:3586,161:$VGi}),{27:[1,3588],79:[1,3587]},o($VDi,[2,2406]),{118:$Vvk,586:3585,782:$Vdk,994:3580},{79:[1,3589]},o($VHi,[2,2390]),{2:$VYb,118:$VZb,121:3590,123:$Vuk},o($Vwk,[2,2391]),o($Vwk,[2,2393]),{27:[1,3592],334:3591,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},{2:$VYb,118:$VZb,121:3594,334:3593,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},{2:$VYb,118:$VZb,121:3596,334:3595,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},o($Vqd,[2,2463]),{2:$VYb,118:$VZb,121:3598,334:3597,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},o($Vqd,[2,2466]),{2:$VYb,118:$VZb,121:3599},{27:[1,3601],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3600,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3602,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{2:$VYb,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,118:$VZb,121:3603,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3604,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vqd,[2,2478]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3605,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2526,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vwf,[2,1850]),o($Vxk,[2,1852]),o($Vxk,[2,1856]),o($Vxk,[2,1857]),o($Vxk,[2,1853]),o($Vzd,[2,2471]),{27:[1,3607],118:$Vyk,123:$Vzi},{2:$VYb,118:$VZb,121:3608,123:$VAi},{2:$VYb,118:$VZb,121:3609},{27:[1,3611],88:$VJc,118:$Vzk,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc,903:1806,908:1807},{2:$VYb,118:$VZb,121:3612},{2:$VYb,88:$Vad,118:$VZb,121:3613,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d,903:1839},o($Vzd,[2,2493]),{27:[1,3615],118:$VAk,123:$Vzi},{2:$VYb,118:$VZb,121:3616,123:$VAi},{2:$VYb,118:$VZb,121:3617},{27:[1,3619],384:[1,3618]},o([27,384,544,691],[2,1247]),o($V2,[2,1237],{384:[1,3620]}),o($V2,$VBk,{27:[1,3621]}),o($V2,[2,1259]),o($V2,[2,1258]),o($V2,$V4h,{49:2709,69:3622,705:$Vrb}),o($V2,$V4h,{49:2709,69:3623,705:$Vrb}),o($V2,[2,1262]),{641:3624,644:3625,767:$Vmb},{75:[1,3626]},{641:3627,767:$Vlc},{641:3628,767:$Vlc},o($V2,$VCk,{27:[1,3629]}),o($V2,[2,2707]),o($V2,[2,2706]),o($VBg,[2,2718]),o($VCg,[2,2720],{123:[1,3630]}),o($Vwg,[2,2731]),o($Vzg,[2,2732]),o($Vzg,[2,2733]),o($V2,[2,2705]),o($VCg,[2,2721],{123:$VGg}),o($VBg,[2,2723]),o($VDg,[2,2724]),o($VBg,$VDk,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($VDg,[2,2729],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($VEg,[2,1829]),o($V2,[2,2704]),o([123,535,544,664,691,808],$VDk,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($VEd,$VRi,{863:3148,864:3149,942:3150,862:3631,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VEd,[2,1938]),o($VEd,[2,1940],{942:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),o($VEd,[2,1941]),o($VEd,[2,2265],{56:435,900:436,270:442,694:446,942:908,947:1055,949:1056,46:1057,937:1502,863:3632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VS8,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($VEd,[2,930]),o($VKd,[2,2239],{123:$VHg}),{27:$VIg,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3635,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:3633,556:3634,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,726:$VBa,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,929:1238,931:1239,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($VKd,[2,2242],{123:$VHg}),o($VKd,[2,2243],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,929:1238,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:1646,551:3636,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($VKd,[2,2244],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,929:1238,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:1646,551:3637,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),{2:$Vza,27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2601,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,557:3638,558:[1,3639],621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,726:$VBa,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,929:2600,931:2602,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,123:$V9i,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:2598,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:1238,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($V2,[2,40]),o($V2,[2,42]),o($V2,[2,47]),o($V2,[2,48]),{27:[1,3641],58:$VEk},o($V2,[2,53]),o($V2,[2,55]),o($V2,[2,60]),{27:[1,3644],46:1962,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,286:3642,288:3643,289:3645,297:3646,303:3647,306:3648,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:1963},o($V2,[2,410]),o($V2,[2,385]),o($V2,[2,386]),o($V3e,$VFk,{274:3649,282:3650,152:$VGk}),{2:$VFk,152:$VGk,274:3652,282:3650},{2:$VFk,152:$VGk,274:3653,282:3650},o($VXi,[2,392]),o($VYi,[2,394],{279:$VTb,281:[1,3654]}),o($VYi,[2,395],{280:$VVb,281:[1,3655]}),o($VHk,$VIk,{295:3656,449:3657,129:$VJk}),o($V2,$VIk,{449:3657,295:3659,129:$VJk}),{2:$VYb,118:$VZb,121:3660},{118:$VKk,123:[1,3662]},o($VLk,$VLg,{276:2628,273:3663,277:$VZh}),o($V$i,$VLg,{276:2628,273:3664,277:$VZh}),{108:$VIk,129:$VJk,295:3665,449:3657},{118:$VKk,123:$VMk},o($Vbj,$VLg,{276:2628,273:3667,277:$VZh}),o($VSg,[2,1798]),o($VSg,[2,1797]),o([27,107,108,129,376,382,396,409,705],$VLg,{276:2628,273:3668,277:$VZh}),o([107,129,376,382,396,409,544,691,705],$VLg,{276:2628,273:3669,277:$VZh}),{27:[1,3671],64:$VNk},o($V2,$VOk,{27:[1,3672]}),o($V2,[2,731]),{27:[1,3674],181:$VPk,465:3673,466:3675,467:3676,468:$VQk,469:$VRk},{116:[1,3682],475:3680,481:3681},o($V2,[2,760]),o($V2,[2,761],{475:3683,116:$VSk}),{116:[2,774]},o([116,544,691],[2,775]),o($V2,$VTk,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($V2,[2,800],{903:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,781:$V7d,789:$V8d,790:$V9d}),o($V2,[2,801],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($V2,[2,799],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($VUk,[2,802]),{118:$VVk,123:[1,3686]},{2:$VYb,118:$VZb,121:3687},o($Vbj,[2,805]),o($V4f,[2,807],{123:[1,3688]}),{27:[1,3690],312:3689,314:3691,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,359:$Vsj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},o($V2,[2,733]),o($V2,[2,857]),o($V2,[2,873]),o($V2,[2,876]),o($V2,[2,880]),o($V2,[2,881]),o($V2,[2,2586]),o($V2,[2,2594]),o($V2,[2,2593]),o($V2,[2,2591]),o($V2,[2,2613]),o($V2,[2,2618]),o($V2,[2,2619]),o($V2,[2,2620]),o($V2,[2,2626]),o($V2,[2,2636]),o($V2,[2,2635]),o($V2,[2,2637]),o($V2,[2,2640]),o($V2,$VWk,{68:3692,27:[1,3693],161:$V_7}),o($V2,[2,2676],{68:3694,161:$V_7}),o($V2,[2,2674],{68:3695,161:$V_7}),o($V2,[2,2675],{68:3696,161:$V_7}),o($V2,[2,2687]),o($V2,[2,2630]),o($V2,$VXk,{27:[1,3697]}),o($V2,[2,103]),o($V3e,$VYk,{68:3239,102:3240,186:3698,185:3699,161:$V4b}),o($V2,[2,243],{185:3238,68:3243,184:3700,161:$V_7}),o($V3h,[2,241]),o($V3h,$V4h,{49:2709,52:3701,69:3702,705:$Vbb}),o($VCf,$V4h,{49:2709,69:3703,705:$Vrb}),o($V2,[2,102]),o($V2,$VYk,{68:3243,185:3699,161:$V_7}),o($VCf,$V4h,{49:2709,69:3702,705:$Vrb}),o($V2,[2,105]),o([27,118,123,333,373,374,544,691],$Vtb,{332:3704,177:$Vub}),o($Vjh,[2,552]),o($VZk,[2,555]),{80:3706,110:3705,116:$V99},{116:[2,564]},o($Vjh,[2,565]),o($V3e,$V_k,{82:3707,111:3708,89:$V$k,107:[1,3710]}),{116:$V0l,406:3711,407:3712},o($V2,$V_k,{82:3714,89:$V$k}),{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2725,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2727,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$Vc4,833:2726,839:3294,840:3715},o([75,116,123,152,161,218,418,532,535,544,547,615,691,705,769],[2,1747]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:3716,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,839:2104},{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3719,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3717,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3718,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3720,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($V2,[2,250]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2734,189:3721,190:3722,191:2733,192:2735,193:$V7h,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4,843:2737,844:2738},o($V2,[2,251]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,187:3723,189:2731,191:2733,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},{125:3724,279:$VM8,280:$VN8,441:926,817:927},{125:3725,279:$VM8,280:$VN8,441:926,817:927},{125:3726,279:$VM8,280:$VN8,441:926,817:927},{125:3727,279:$VM8,280:$VN8,441:926,817:927},{46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2526,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:2527,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,726:$VQi,735:$Vy6,811:$VXb,833:1529,835:2528},{125:3728,279:$VM8,280:$VN8,441:926,817:927},o([2,27,107,108,129,277,409,488,499,544,691,705],[2,403]),{125:2745,279:$VM8,280:$VN8,284:3729,441:926,817:927},{279:$VM8,280:$VN8,285:3730,385:$Vz9,441:1184,541:1170,728:$VA9,762:$V7a,800:$Via,802:$VB9,817:1185,922:1153,924:1171,926:1089,927:1090,928:1186},o($V2,[2,174]),o($V1l,[2,693],{48:3731,116:$Vie}),{48:3732,116:$Vie},o($V2,[2,76]),{385:[1,3733]},o($Vke,[2,588]),{385:[1,3734]},{116:[1,3737],398:3735,399:3736},o($Vfh,[2,610]),{385:[1,3738]},{116:[1,3739],398:3735},o($V2,[2,186]),o($V2,[2,190]),o($V2,[2,191]),o($V2,[2,193]),o($V2l,[2,194]),{116:[1,3740]},o($V2l,[2,195]),o($Vze,[2,196]),o($Vze,[2,197]),{118:$V3l,123:$V9j},{2:$VYb,118:$VZb,121:3742},o($Vjh,[2,1802]),o($Vjh,$V4l,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($V2,[2,206]),o($Vlh,[2,231]),o($Vmh,[2,233],{123:[1,3743]}),o($Vmh,[2,236],{123:[1,3744]}),o($Vmh,[2,237],{123:$VHh}),o($Vmh,[2,235],{123:$VHh}),o($V2,[2,167]),{27:[1,3746],129:$V5l},o($V2,[2,181]),{129:$V5l},o($V3e,$VUg,{95:3747,696:$VVg,710:$VWg}),o($V2,$VUg,{95:3748,696:$VVg,710:$VWg}),{27:[1,3750],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:3749,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:3751,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vy7,[2,217]),o($Vy7,[2,218]),o($V2,$VUg,{95:3752,696:$VVg,710:$VWg}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:3749,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V6l,$V7l,{313:3753,315:3754,316:3755,88:$V8l,317:$V9l,320:$Val,321:$Vbl,323:$Vcl}),o($Vdl,$V7l,{315:3754,316:3755,313:3761,88:$V8l,317:$V9l,320:$Val,321:$Vbl,323:$Vcl}),o($Vdl,$V7l,{315:3754,316:3755,313:3762,88:$V8l,317:$V9l,320:$Val,321:$Vbl,323:$Vcl}),o($Vel,[2,474]),o($Vel,[2,475]),o($Vel,[2,476]),o($Vel,[2,477]),o($Vel,[2,478]),o($Vel,[2,479]),o($Vel,[2,480]),o($Vel,[2,481]),o($Vel,[2,482]),o($Vfl,[2,483]),o($Vfl,[2,484]),o($Vfl,[2,485]),o($Vfl,[2,486]),o($Vel,[2,1858]),o($Vel,[2,1859]),o($Vel,[2,1860]),o($Vel,$Vgl,{849:3763,116:$Vhl}),o($Vel,[2,1862]),o($Vel,[2,1876],{850:3765,116:[1,3766]}),o($Vel,[2,1864]),o($Vel,[2,1865]),o($Vel,[2,1866]),o($Vel,[2,1867]),o($Vel,[2,1868]),o($Vel,[2,1869]),o($Vel,[2,1870]),o($Vel,[2,1871]),o($Vel,[2,1872]),o($Vel,$Vgl,{849:3767,116:$Vhl}),{348:[1,3768]},{348:[1,3769]},{348:[1,3770]},{348:[1,3771]},o($V2,[2,185]),o($Vil,[2,431]),{27:$Vjl,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,71:$Vkl,72:3777,73:3781,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,103:3779,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2785,141:3775,144:3776,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,309:3772,311:3773,317:$V5h,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,363:3778,364:3780,365:3782,366:3783,367:3784,369:2715,370:2716,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vll,[2,433]),o($V4f,[2,442],{123:[1,3786]}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2847,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:3787,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V2,[2,283]),o($V3e,[2,287]),o($V2,[2,288]),{116:$Vml,638:3788,650:3789,651:$Vnl},o($Vxh,[2,1145]),o($Vnb,[2,1161]),o($Vnb,[2,1774]),o($Vnb,[2,1160]),o($Vnb,[2,1159]),o($Vxh,[2,1142]),o($Vnb,[2,1150]),o($Vnb,[2,1149]),o($Vnb,[2,1148]),o($Vxh,$Vyh,{414:2810,416:3792,107:$Vzh,646:[1,3793]}),o($Vnb,$Vyh,{414:2810,416:3794,107:$Vzh}),o($Vnb,$Vyh,{414:2810,416:3795,107:$Vzh}),{128:3796,417:$Vae,418:$Vbe,420:$Vce,421:$Vde,422:$Vee,423:$Vfe,424:$Vge,425:$Vhe},o([27,107,152,544,547,615,646,691],[2,1180]),o($Vue,[2,1182]),o($Vue,[2,1183]),o($Vol,$Vpl,{429:3797,434:3798,439:[1,3799]}),o($Vql,$Vpl,{429:3800,439:[1,3801]}),{1009:[1,3802]},o($VBh,[2,2430]),{27:[1,3804],46:439,47:$Vg4,50:$Vh4,56:3807,58:$Vi4,59:3808,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:[1,3806],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,658:3803,659:3805,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,1201]),o($V2,[2,81]),o($V2,$V_k,{82:3809,89:$V$k}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,189:3721,191:2733,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},o($V2,[2,95]),{385:[1,3810]},{116:[1,3811]},{118:$V3l,123:$Vih},o($V2,$VUg,{95:3812,696:$VVg,710:$VWg}),{348:[1,3813]},{348:[1,3814]},{348:[1,3815]},{348:[1,3816]},{88:$Vgf,118:[1,3817],126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{372:[1,3818]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,71:$V88,72:3820,73:3781,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:3819,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,309:3772,317:$VYh,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,363:3821,366:877,369:2934,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{544:$VEe,691:[2,1299]},{2:$Vrl,27:$V1e,46:3822,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$Vsl,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,566:3824,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:1759,834:3825},o($VFe,[2,950]),o($Vj8,[2,2522],{270:442,694:446,46:3827,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($Vj8,[2,2528]),{116:$Vsd,913:3828,918:3829},{116:$Vsd,913:3830,918:3831},{2:$Vrl,46:3832,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,108:$Vsl,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,566:3824,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{116:$Vvf,913:3828},{116:$Vvf,913:3830},{27:[1,3834],780:[1,3833]},{2:$VYb,118:$VZb,121:3835},o($VO8,[2,2309]),o($VO8,[2,2310]),o($VI8,[2,2317]),{780:[1,3836]},o($V2,[2,1021]),{27:[1,3838],621:$Vtl},o($V2,[2,1080]),{51:1570,473:$V_b,599:3839,619:$V$b,620:$V0c},o($V3e,[2,1083]),o($V2,[2,1085]),o($V2,[2,1030]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,836:3840},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,836:3841},o($V5k,$V6k,{223:3472,220:3842,227:$V7k}),o($V2,$V0k),{596:[1,3843]},{621:$V1k},o($V2,$V2k),{535:[1,3844]},{51:1570,473:$V_b,599:3845,619:$V$b,620:$V0c},{123:$V29,535:[1,3846]},{535:[1,3847]},o($VQ8,$VR8,{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,955:1552,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:2916,660:3531,901:3848,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,902:[1,3849],903:1806},{118:$Vqk,123:$V3k},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3850,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{150:[1,3852],667:3851,668:$Vsk},{88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,760:$Vtk,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3853,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3854,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{334:3591,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3855,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{118:$Vyk,123:$V3k},{88:$Vgf,118:$Vzk,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{118:$VAk,123:$V3k},{384:[1,3856]},o($V2,$VBk),{641:3857,767:$Vlc},o($V2,$VCk),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:3858,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:1238,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{2:$Vza,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1646,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,557:3859,558:$VAa,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$VBa,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,929:2600,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{58:$VEk},o($V2,$VXk),o([118,123,333,373,374,544,691],$Vtb,{332:3860,177:$Vub}),o($V2,$V_k,{82:3861,89:$V$k}),{46:1268,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,286:3642,289:3862,303:3863,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{108:$VIk,129:$VJk,295:3864,449:3657},o([107,108,129,376,382,396,409,705],$VLg,{276:2628,273:3865,277:$VZh}),{64:$VNk},o($V2,$VOk),{181:$VPk,465:3673,466:3675,467:3676,468:$VQk,469:$VRk},{116:$VSk,475:3866},o($V2,$VTk,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),{118:$VVk,123:$Vul},{312:3689,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},o($V2,$VWk,{68:3692,161:$V_7}),o($V_h,$Vyh,{414:2810,416:3792,107:$Vzh}),{46:1057,47:$Vg4,50:$Vh4,56:3807,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:[1,3869],127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,658:3868,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vvl,$Vwl,{221:3870,224:3871,226:3872,228:[1,3873]}),o($V5k,$V6k,{223:3472,220:3874,227:$V7k}),o($V5k,$Vxl,{27:[1,3875]}),o($Vvl,$Vwl,{221:3876,224:3877,228:$Vyl}),{27:[1,3880],154:$Vzl},o($Vvl,$Vwl,{224:3877,221:3881,228:$Vyl}),o($V5k,$Vxl),{154:$Vzl},o($Vvl,$Vwl,{224:3877,221:3882,228:$Vyl}),o($Vvl,$Vwl,{224:3877,221:3883,228:$Vyl}),{27:[1,3885],51:1570,473:$V_b,599:3884,605:3886,619:$V$b,620:$V0c},o($V2,[2,1104]),o($V2,$VAl,{123:$V7f}),o($V2,[2,1116],{123:$V9f}),o($V2,[2,1117]),{27:[1,3888],51:1570,473:$V_b,599:3887,605:3889,619:$V$b,620:$V0c},o($V2,[2,1118]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1747,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,845:3890},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1747,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,845:3891},o($VBl,$VCl,{582:3892,587:3893,593:3894,888:3895,889:3896,890:3897,891:3898,892:3899,893:3900,743:$VDl,757:$VEl,894:$VFl}),o($V8k,$VGl,{2:[1,3904],27:[1,3905]}),o($VHl,$VCl,{888:3895,890:3897,582:3906,587:3907,889:3908,743:$VIl,757:$VJl,894:$VKl}),{27:[1,3913],79:[1,3912]},o($VLl,$V9k,{586:3492,592:3915,581:3916,27:[1,3914],782:$Vak}),o($Vck,$V9k,{586:3492,581:3917,782:$Vdk}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:3918,743:$VIl,757:$VJl,894:$VKl}),o($Vok,$VGl),{79:[1,3919]},{27:[1,3921],108:[1,3920]},o($V5i,$V2i,{585:2989,580:3922,809:$V6i}),o($Vck,$V9k,{586:3492,581:3923,782:$Vdk}),o($VLl,$V9k,{586:3492,592:3924,581:3925,782:$Vak}),o($Vck,$V9k,{586:3492,581:3926,782:$Vdk}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:3927,743:$VIl,757:$VJl,894:$VKl}),{108:[1,3928]},o($Vck,$V9k,{586:3492,581:3929,782:$Vdk}),o($Vck,$V9k,{586:3492,581:3930,782:$Vdk}),o($VLl,$V9k,{586:3492,592:3931,581:3932,782:$Vak}),o($Vck,$V9k,{586:3492,581:3933,782:$Vdk}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:3934,743:$VIl,757:$VJl,894:$VKl}),o($VMl,[2,1954]),o($VEc,[2,1958]),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3938,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3935,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3937,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,880:3936,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($VMl,[2,1960]),{27:[1,3941],751:$VNl,791:$VOl},o($VEc,[2,1963]),{27:[1,3943],714:[1,3942]},o($VEc,[2,1955]),{751:$VNl,791:$VOl},{714:[1,3944]},o($VEc,[2,1956]),o($Vlk,[2,1982],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3011,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,871:3945,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3011,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,871:3946,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($V5i,$V2i,{585:2989,580:3947,809:$V6i}),o($Vck,$V9k,{586:3492,581:3948,782:$Vdk}),o($Vck,$V9k,{586:3492,581:3949,782:$Vdk}),o($Vck,$V9k,{586:3492,581:3950,782:$Vdk}),o($VLl,$V9k,{586:3492,592:3951,581:3952,782:$Vak}),o($Vck,$V9k,{586:3492,581:3953,782:$Vdk}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:3954,743:$VIl,757:$VJl,894:$VKl}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3955,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VPl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:3956,743:$VIl,757:$VJl,894:$VKl}),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3957,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3959,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$Vy6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,832:3958,833:2414,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vqd,[2,2097]),{118:[1,3960]},{27:$Vpk,118:$VQl,123:$Vzi},{27:[1,3964],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3962,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:3963,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vqd,[2,2132]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3965,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vuc,[2,2072]),o($Vuc,[2,2073]),{123:$Vuk},o($Vqd,[2,2736]),o($Vqd,[2,2737]),o($Vqd,[2,2738]),o($VRl,$VSl,{903:1806,908:1807,88:$VJc,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,773:$VWc,789:$VYc,790:$VZc}),o($VTl,[2,2136],{903:1839,88:$Vad,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,789:$V8d,790:$V9d}),o($Vki,[2,2137],{903:1822,88:$V_c,126:$V$c,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,789:$V8d,790:$V9d}),o($VTl,[2,2135],{903:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),{27:[1,3967],668:[1,3966]},o($V2,[2,1222]),{27:[1,3969],46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3968,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{2:$VYb,118:$VZb,121:3970,123:$V3k},{2:$VYb,118:$VZb,121:3971},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3972,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vqd,[2,2126]),o($Vqd,[2,2127]),o($VTl,[2,2134],{903:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($Vqd,[2,2759]),o($Vxi,[2,2777],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($Vuc,[2,2749]),o($Vqd,[2,2751]),o($Vqd,[2,2756]),o($Vqd,[2,2757]),o($Vqd,[2,2754]),o($Vqd,[2,2752]),o([27,664,759,760],$VUl,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($Vxi,[2,2774],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($Vxi,[2,2786],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,903:1822,324:3973,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$V5d,727:$V9c,728:$VA9,731:$Vac,732:$V6d,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,781:$V7d,785:$Vda,786:$Vea,789:$V8d,790:$V9d,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vxi,[2,2785],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($Vxi,[2,2773],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($Vxi,[2,2788],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($Vxi,[2,2783],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($Vqd,[2,2381]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,901:3974,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VBi,$VVl,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($VDi,[2,2175],{903:1839,88:$Vad,123:[1,3975],126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($VDi,[2,2178],{123:[1,3976]}),o($VDi,[2,2181],{123:$V3k}),o($VDi,[2,2176],{123:$V3k}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,901:3977,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vqd,[2,1835],{728:$VJi}),o($Vqd,[2,1838],{728:$VJi}),{118:[1,3978]},{2:$VYb,118:$VZb,121:3979},{27:[1,3981],118:$VWl,788:$VXl,792:$VYl,998:3980,999:3982,1000:3983,1001:3984},o($V4f,[2,2413]),{2:$VYb,118:$VZb,121:3987},o($V4f,$VWl,{998:3980,1000:3983,1001:3988,788:$VXl,792:$VYl}),o($V4f,$Vvk,{586:3585,994:3989,782:$Vdk}),{27:[1,3991],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,123:$Vcg,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:3993,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2522,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:2523,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,901:3990,905:1144,911:3992,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($VDi,[2,2408]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,901:3994,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vwk,[2,2392]),{118:[1,3995]},{2:$VYb,118:$VZb,121:3996},{2:$VYb,118:$VZb,121:3997},o($Vqd,[2,2468]),{2:$VYb,118:$VZb,121:3998},o($Vqd,[2,2462]),{2:$VYb,118:$VZb,121:3999},o($Vqd,[2,2465]),o($Vqd,[2,2470]),{88:$VJc,118:$VZl,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc,903:1806,908:1807},{2:$VYb,88:$V_c,118:$VZb,121:4001,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,781:$V7d,789:$V8d,790:$V9d,903:1822},{2:$VYb,88:$Vad,118:$VZb,121:4002,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d,903:1839},o($Vqd,[2,2479]),{2:$VYb,88:$Vgf,118:$VZb,121:4003,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{2:$VYb,88:$Vgf,118:$VZb,121:4004,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},o($Vzd,[2,2473]),{2:$VYb,118:$VZb,121:4005,123:$Vuk},o($Vqd,[2,2474]),o($Vqd,[2,2476]),o($Vzd,[2,2517]),{2:$VYb,118:$VZb,121:4006},o($Vqd,[2,2519]),o($Vqd,[2,2521]),o($Vzd,[2,2494]),{2:$VYb,118:$VZb,121:4007,123:$Vuk},o($Vqd,[2,2495]),o($Vqd,[2,2497]),{27:[1,4009],158:[1,4008]},o($V2,[2,1238]),{158:[1,4010]},o($V2,[2,1260]),o($V2,[2,1261]),o($V2,[2,1263]),o($V2,$V_l,{27:[1,4012],227:[1,4011]}),o($V2,[2,1282],{227:[1,4013]}),{641:4014,767:$Vlc},o($V2,[2,1289],{227:[1,4015]}),o($V2,[2,1285],{227:[1,4016]}),o($V2,[2,2708]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,672:4017,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916,1062:1911,1064:1918},o($VEd,[2,1937]),o($VEd,[2,2266],{942:1501,568:$Vw8,569:$Vx8,570:$Vy8,571:$Vz8,572:$Vs8,573:$VA8,574:$VB8,575:$VC8}),{27:$VTi,123:$VQf,535:$V$l},{535:[2,938]},{108:$VNd,535:[2,941]},o($VKd,[2,2245],{123:$VHg}),o($VKd,[2,2246],{123:$VHg}),{123:[1,4018],535:$V0m},{123:[1,4019]},o($V2,[2,49]),o($V2,[2,54]),o($V2,[2,814],{287:4020,499:[1,4021]}),o($V2,[2,408]),o($V2,[2,409]),o([27,78,107,108,129,152,161,376,382,409,499,544,691,705],$VLg,{276:2628,273:4022,277:$VZh}),o([78,107,108,129,152,376,382,409,544,691,705],$VLg,{276:2628,273:4023,277:$VZh}),o($V1m,$V2m,{304:4024,305:4025,94:4026,155:4028,116:$Vqe,307:[1,4027]}),o($V3m,$V2m,{94:4026,304:4029,116:$VDe,307:$V4m}),o($V3e,[2,387]),o($V5m,[2,399]),{27:[1,4032],47:[1,4031]},{2:[2,389]},{2:[2,388]},o($VYi,[2,396],{279:$VXe}),o($VYi,[2,397],{280:$V_e}),{27:[1,4034],108:[1,4033]},o($V6m,[2,696]),{48:4035,116:$Vie},o($V2,[2,722]),o($V7m,[2,749]),o($VOg,[2,748]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4036,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},o($Vaj,$V8m,{27:[1,4037]}),{108:$VIk,129:$VJk,295:4038,449:3657},{108:[1,4039]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4040,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},o($Vbj,$V8m),o([27,107,108,129,382,396,409,705],$V9m,{377:4041,379:4042,378:4043,376:[1,4044]}),o($Vam,$V9m,{378:4043,377:4045,376:$Vbm}),o($V0j,[2,716]),o([107,129,277,376,382,396,409,544,691,705],[2,717]),o($V2,[2,732]),o($V3e,[2,738],{123:[1,4047]}),o($V2,[2,739]),o($Vcm,[2,740]),{279:$VM8,441:4048},{279:[2,743]},{279:[2,744]},{279:[2,745]},{27:[1,4050],108:[1,4049]},o($V2,[2,762],{108:[1,4051]}),{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4055,191:4054,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,489:4052,490:4053,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4,843:1916},{108:[1,4056]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4054,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,489:4057,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},o($VUk,[2,803]),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3208,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,497:4058,498:4059,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o([47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,544,621,622,626,640,643,657,666,674,675,677,688,689,691,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,727,728,731,734,735,738,740,741,744,745,747,748,749,750,761,762,768,769,775,776,778,785,786,795,796,797,800,802,803,804,806,810,1011],[2,804]),{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3462,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,495:4060,497:3206,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($Vbj,[2,811]),o($Vbj,[2,812]),o($Vbj,[2,813]),o($V2,[2,2669]),o($V2,[2,2677],{270:442,694:446,46:1632,839:2104,140:2105,163:4061,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V2,[2,2680]),o($V2,[2,2678]),o($V2,[2,2679]),o($V2,[2,104]),o($V2,[2,245],{185:3238,68:3243,184:4062,161:$V_7}),o($V3h,[2,242]),o($V2,[2,244],{68:3243,185:3699,161:$V_7}),o($VCf,[2,247]),o($V3h,[2,249]),o($VCf,[2,248]),o([27,118,123,373,374,544,691],$Vxe,{326:4063,333:$Vye}),o($VZk,[2,556]),{27:[1,4064],372:[1,4065]},o($V2,$Vdm,{27:[1,4066]}),o($V2,[2,129]),o($V3e,[2,265]),{27:[1,4067],108:[1,4068]},{118:[1,4069],123:[1,4070]},o($Vaj,[2,631]),{279:$VM8,280:$VN8,285:4072,385:$Vz9,441:1184,541:1170,728:$VA9,762:$V7a,800:$Via,802:$VB9,817:1185,838:4071,922:1153,924:1171,926:1089,927:1090,928:1186},o($V2,[2,126]),o($V4f,[2,1804],{123:[1,4073]}),o($V4f,[2,1805],{123:$Vih}),o($Vaj,$V4l,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($Vbj,[2,1809],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($Vbj,[2,1810]),o($Vbj,[2,1811],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($Vbj,[2,253]),o($V4f,[2,255],{123:[1,4074]}),o($V4f,[2,257],{123:$VTj}),o($Vbj,[2,258]),o($Vbj,[2,261]),o($Vbj,[2,262]),o($Vbj,[2,263]),o($V9h,[2,650]),o($Vaj,[2,405]),o($Vaj,[2,406]),o($V1l,[2,694]),o($Vej,[2,692]),{27:[1,4076],386:$Vem},{386:[1,4077]},o($Vfm,[2,609]),o($Vfh,[2,611]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4082,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:4083,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4084,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,400:4078,401:4079,402:4080,403:4081,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4},{386:[1,4085]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4087,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,400:4086,402:4080,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2725,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:4088,165:4089,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2727,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$Vc4,833:2726,839:2104,840:2724},o($Vaj,[2,198]),o($V4f,[2,200]),{68:2109,161:$V_7,168:4090},{68:2109,161:$V_7,168:4091},{48:4092,116:$Vie},o($V2,[2,182]),o($V2,$Vgm,{27:[1,4093]}),o($V2,[2,166]),o($Vkj,[2,216]),o($Voj,[2,219]),o($Voj,[2,220]),o($V2,[2,164]),o($Vhm,$VLg,{276:2628,273:4094,277:$VZh}),o($V6l,[2,450],{316:4095,88:$V8l,317:$V9l,320:$Val,321:$Vbl,323:$Vcl}),o($VVj,[2,451]),o($VVj,[2,454],{318:[1,4096]}),o($Vim,$Vjm,{319:4097,325:4098,176:$Vkm,177:$Vlm}),o($VVj,[2,457],{208:[1,4101]}),o($VVj,[2,460],{322:4102,208:[1,4107],328:[1,4103],329:[1,4104],330:[1,4105],331:[1,4106]}),{116:[1,4108]},o($Vmm,$VLg,{276:2628,273:4109,277:$VZh}),o($Vmm,$VLg,{276:2628,273:4110,277:$VZh}),o($Vel,[2,1861]),{385:[1,4111]},o($Vel,[2,1863]),{385:[1,4112]},o($Vel,[2,1873]),{27:$V6,183:4115,312:4113,314:4116,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,349:$Vnm,351:$Vqj,352:$Vrj,359:$Vsj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj,811:$Vc4},{27:$V6,123:$Vom,183:4119,334:4117,349:$Vpm,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj,811:$Vc4},{46:4126,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vqm,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,349:$Vrm,352:$Vj5,353:4121,354:4123,355:4124,356:4125,357:4127,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:$V6,123:$Vqm,183:4135,312:4132,314:4136,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,349:$Vsm,351:$Vqj,352:$Vrj,357:4134,359:$Vsj,360:4129,361:4131,362:4133,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj,811:$Vc4},{118:[1,4137]},{2:$VYb,118:$VZb,121:4138},{2:$VYb,118:$VZb,121:4139},o($Vaj,$Vtm,{27:[1,4140]}),o($V4f,[2,440],{123:[1,4141]}),{118:$Vum,123:[1,4142]},{118:$Vvm,123:$Vwm},o($V4f,[2,533],{123:[1,4144]}),o($V4f,[2,535]),o($Vbj,[2,538]),o($V4f,[2,540]),o([27,118,123,333,373,374],$Vtb,{332:4145,177:$Vub}),o([2,118,333,373,374],$Vtb,{332:4146,177:$Vub}),{46:4147,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2847,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:4148,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V4f,[2,439],{123:$Vxm}),o($Vxh,[2,1141]),o($Vym,[2,1174]),{123:[1,4150]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,652:4151,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,817:1185,843:1626,899:4152,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vxh,[2,1143]),o($Vnb,[2,1154]),o($Vnb,[2,1153]),o($Vnb,[2,1152]),o($V9h,[2,647]),o([27,107,108,129,152,208,277,351,446,499,544,547,646,691,705],$Vzm,{430:4153,435:4154,443:[1,4155]}),o($VAm,$Vzm,{430:4156,443:$VBm}),{27:[1,4159],440:[1,4158]},o([107,108,129,152,208,277,351,446,499,544,547,615,691,705],$Vzm,{430:4160,443:$VBm}),{440:[1,4161]},o($VBh,[2,2429]),{27:[1,4163],108:[1,4162]},o($V2,[2,1202]),o($V2,[2,1203]),o($VQ8,$VR8,{955:943,660:4164,661:4166,27:[1,4165]}),o($VHk,[2,1207]),o($V2,[2,1210]),o($V2,[2,85]),{386:$Vem},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:4167,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,839:2104},o($V2,$Vgm),{312:4113,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,349:$Vnm,351:$VXj,352:$VYj,359:$VZj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},{334:4168,349:$Vpm,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},{46:4170,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,349:$Vrm,352:$Vj5,353:4169,355:4124,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{312:4132,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,349:$Vsm,351:$VXj,352:$VYj,359:$VZj,360:4171,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},o($VIh,[2,546]),{46:1057,47:$Vg4,50:$Vh4,56:4172,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vbj,$Vtm),{118:$Vum,123:[1,4173]},{118:$Vvm,123:$VCm},o($Vg8,$VDm,{566:4176,1015:4177,108:[1,4175]}),o($VFe,[2,949]),o($VFe,[2,954]),o($Vj8,[2,2526],{566:4178,108:$Vsl}),{46:4179,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vj8,[2,2523],{566:4180,108:$Vsl}),o($VEm,[2,2369]),o($VFm,[2,2371]),o($VEm,[2,2370]),o($VFm,[2,2372]),o($Vmc,$VDm,{566:4176,108:[1,4181]}),{385:[1,4182]},{2:$VYb,118:$VZb,121:4183},o($VI8,[2,2313]),{385:[1,4184]},o($V3e,[2,1079]),o($V2,[2,1081]),o($V2,[2,1069],{123:$VTh}),o($Vdf,[2,1785],{123:$VVh}),o($Vdf,[2,1784],{123:$VVh}),o($Vvl,$Vwl,{221:3870,224:3877,228:$Vyl}),{621:$Vtl},{51:1570,473:$V_b,599:4185,619:$V$b,620:$V0c},o($V2,$VAl,{123:$VTh}),{51:1570,473:$V_b,599:4186,619:$V$b,620:$V0c},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4187,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{118:$VQl,123:$V3k},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4188,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VRl,$VSl,{903:1806,88:$Vgf,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),{668:[1,4189]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:3968,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vxi,$VUl,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($V4k,$VVl,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),{88:$Vgf,118:$VZl,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{158:[1,4190]},o($V2,$V_l,{227:[1,4191]}),{123:$VHg,535:$V$l},{535:$V0m},o([118,123,373,374,544,691],$Vxe,{326:4192,333:$Vye}),o($V2,$Vdm),o([78,107,108,129,152,376,382,409,499,544,691,705],$VLg,{276:2628,273:4193,277:$VZh}),o([78,107,108,129,152,277,376,382,409,499,544,691,705],$V2m,{304:4024,94:4026,116:$VDe,307:$V4m}),{108:[1,4194]},o([107,108,129,382,396,409,705],$V9m,{378:4043,377:4195,376:$Vbm}),{108:[1,4196]},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3462,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,497:4058,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},{108:[1,4197]},o($VQ8,$VR8,{955:1552,660:4164}),o($V2,$VGm,{222:4198,230:$VHm}),o($Vvl,$VIm,{27:[1,4200]}),o($V2,$VGm,{222:4201,230:$VHm}),{27:[1,4203],229:$VJm},o($Vvl,$Vwl,{224:3877,221:4204,228:$Vyl}),o($Vvl,$Vwl,{224:3877,221:4205,228:$Vyl}),o($V2,$VGm,{222:4206,230:$VHm}),o($Vvl,$VIm),{229:$VJm},o([27,228,230,544,691],[2,334]),o($V5k,[2,335]),o($V2,$VGm,{222:4207,230:$VHm}),o($V2,$VGm,{222:4208,230:$VHm}),o($V2,$VGm,{222:4209,230:$VHm}),o($V2,$VKm,{123:$V7f}),o($V2,[2,1105],{123:$V9f}),o($V2,[2,1106]),o($V2,$VLm,{123:$V7f}),o($V2,[2,1119],{123:$V9f}),o($V2,[2,1120]),o($VCf,[2,1843],{728:$VWh}),o($VCf,[2,1847],{728:$VWh}),o($VMm,$VNm,{583:4210,588:4211,594:4212,774:[1,4213]}),o($VBl,$VOm,{2:[1,4214],27:[1,4215]}),o($VPm,$VNm,{583:4216,588:4217,774:$VQm}),o($VRm,[2,2017]),o($VSm,$VTm,{890:4219,893:4220,894:$VFl}),o($VRm,[2,2020]),o($VHl,[2,2021]),o($VHl,[2,2022],{890:4221,894:$VKl}),o($VHl,[2,2025]),{27:[1,4223],79:[1,4222]},{27:[1,4225],79:[1,4224]},{27:[1,4227],79:[1,4226]},{27:[1,4228],582:4230,587:3907,593:4229,743:$VDl,757:$VEl,774:$VCl,888:3895,889:3896,890:3897,891:3898,892:3899,893:3900,894:$VFl},o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4231,743:$VIl,757:$VJl,894:$VKl}),o($VPm,$VNm,{588:4217,583:4232,774:$VQm}),o($VPl,$VOm),o($VPl,$VTm,{890:4219,894:$VKl}),{79:[1,4233]},{79:[1,4234]},{79:[1,4235]},{27:[1,4240],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4243,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4241,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:4242,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,881:4236,882:4237,883:4238,884:4239,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vck,[2,1995]),o($Vck,$V9k,{586:3492,581:4244,782:$Vdk}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4245,743:$VIl,757:$VJl,894:$VKl}),{582:4247,587:3907,593:4246,743:$VDl,757:$VEl,774:$VCl,888:3895,889:3896,890:3897,891:3898,892:3899,893:3900,894:$VFl},o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4248,743:$VIl,757:$VJl,894:$VKl}),o($VPm,$VNm,{588:4217,583:4249,774:$VQm}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4251,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,881:4250,883:4238,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{116:$Veg,991:4252,992:4253},o($V5i,[2,2457]),o($Vck,$V9k,{586:3492,581:4254,782:$Vdk}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4255,743:$VIl,757:$VJl,894:$VKl}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4256,743:$VIl,757:$VJl,894:$VKl}),{582:4258,587:3907,593:4257,743:$VDl,757:$VEl,774:$VCl,888:3895,889:3896,890:3897,891:3898,892:3899,893:3900,894:$VFl},o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4259,743:$VIl,757:$VJl,894:$VKl}),o($VPm,$VNm,{588:4217,583:4260,774:$VQm}),{116:$Vfg,991:4252},o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4261,743:$VIl,757:$VJl,894:$VKl}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4262,743:$VIl,757:$VJl,894:$VKl}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4263,743:$VIl,757:$VJl,894:$VKl}),{582:4265,587:3907,593:4264,743:$VDl,757:$VEl,774:$VCl,888:3895,889:3896,890:3897,891:3898,892:3899,893:3900,894:$VFl},o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4266,743:$VIl,757:$VJl,894:$VKl}),o($VPm,$VNm,{588:4217,583:4267,774:$VQm}),o($Vjk,$VUm,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($Vlk,[2,1985],{123:[1,4268]}),o($VVm,[2,1988],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),o($VVm,[2,1990],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:4269,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($VMl,[2,1961]),o($VMl,[2,1962]),o($VEc,[2,1964]),{116:[1,4270]},o($VEc,[2,1966]),{116:[1,4271]},o($Vlk,[2,1983],{123:$Vmk}),o($Vlk,[2,1984],{123:$Vmk}),o($Vck,$V9k,{586:3492,581:4272,782:$Vdk}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4273,743:$VIl,757:$VJl,894:$VKl}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4274,743:$VIl,757:$VJl,894:$VKl}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4275,743:$VIl,757:$VJl,894:$VKl}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4276,743:$VIl,757:$VJl,894:$VKl}),{582:4278,587:3907,593:4277,743:$VDl,757:$VEl,774:$VCl,888:3895,889:3896,890:3897,891:3898,892:3899,893:3900,894:$VFl},o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4279,743:$VIl,757:$VJl,894:$VKl}),o($VPm,$VNm,{588:4217,583:4280,774:$VQm}),o($Vnk,$VUm,{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($VWm,$VNm,{583:4210,588:4217,774:$VQm}),o($V0g,$VXm,{903:1806,908:1807}),o($Vqd,[2,2101]),o($V2g,[2,2102],{903:1839}),o($Vuc,[2,2070]),o($Vuc,[2,2071]),o($VWf,$VYm,{903:1806,908:1807,126:$VKc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,773:$VWc,789:$VYc,790:$VZc}),o($VYf,[2,2130],{903:1839,126:$Vbd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,789:$V8d,790:$V9d}),o($VZf,[2,2131],{903:1822,126:$V$c,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,789:$V8d,790:$V9d}),o($VYf,[2,2129],{903:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),{27:[1,4282],534:$VZm,615:[1,4286],618:[1,4284],669:4281,671:4283},o($V2,[2,1221]),o($Vrk,[2,1226],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($V2,[2,1227]),o($Vqd,[2,2124]),o($Vqd,[2,2125]),o($VYf,[2,2128],{903:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),o($Vxi,[2,2787],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($VDi,[2,2180],{123:$V3k}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,901:4287,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:2916,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,901:4288,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($VDi,[2,2184],{123:$V3k}),o($Vuc,[2,2400]),o($Vqd,[2,2402]),o($V4f,[2,2412]),o($V4f,$VWl,{1000:3983,1001:3988,998:4289,788:$VXl,792:$VYl}),o($V4f,[2,2415]),o($V4f,[2,2417]),{27:[1,4290],736:[1,4291],1005:[1,4292]},o($V_m,[2,2434]),o($V_m,[2,2435]),o($Vqd,[2,2401]),{736:[1,4293],1005:[1,4294]},{2:$VYb,118:$VZb,121:4295},o($VEi,$V$m,{27:[1,4296],123:$Vzi}),o($VDi,[2,2409],{903:1822,88:$V_c,123:$Vs7,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,781:$V7d,789:$V8d,790:$V9d}),o($VDi,[2,2410]),{123:$VAi},o($VDi,$V$m,{123:$V3k}),o($Vuc,[2,2459]),o($Vqd,[2,2469]),o($Vqd,[2,2467]),o($Vqd,[2,2461]),o($Vqd,[2,2464]),o($Vuc,[2,2477]),o($Vqd,[2,2480]),o($Vqd,[2,2481]),o($Vqd,[2,2483]),o($Vqd,[2,2482]),o($Vqd,[2,2475]),o($Vqd,[2,2520]),o($Vqd,[2,2496]),{27:[1,4298],46:439,47:$Vg4,50:$Vh4,56:4297,58:$Vi4,59:4299,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,1239]),{46:1057,47:$Vg4,50:$Vh4,56:4300,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:[1,4302],689:$V0n},o($V2,[2,1283]),{689:[1,4303]},o($V2,[2,1287],{227:[1,4304]}),{689:[1,4305]},{689:[1,4306]},o($VCg,[2,2722],{123:$VGg}),{27:$VIg,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:1245,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:1242,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:1244,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,551:4308,556:4307,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,726:$VBa,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,929:1238,931:1239,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{2:$VJg,27:$V6,183:4309,811:$Vc4},o($V2,[2,407]),{385:[1,4310]},o($V1n,$V2n,{290:4311,298:4312,375:4313,161:[1,4315],376:[1,4314]}),o($V3n,$V2n,{375:4313,290:4316,376:$V4n}),o($V1m,[2,422]),o($V3m,[2,423]),o($V1m,[2,426]),{27:[1,4319],46:439,47:$Vg4,50:$Vh4,56:4318,58:$Vi4,59:4320,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V3m,[2,428]),o($V3m,[2,424]),{46:1057,47:$Vg4,50:$Vh4,56:4318,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V5m,[2,401],{48:4321,116:$Vie}),o($V5m,[2,402]),{27:[1,4323],152:$Vv,195:4322,197:4324,215:720,509:721,546:280,547:$VR1,553:303},o($V2,[2,723]),o($V6m,[2,697]),o($VLk,$VLg,{276:2628,273:4325,277:$VZh}),o($V4f,[2,752],{123:[1,4326]}),{108:[1,4327]},{152:$VV6,195:4328,215:809,546:630,547:$V37},o($Vbj,$VLg,{276:2628,273:4329,277:$VZh}),o([27,107,108,129,409,705],$V5n,{388:4330,392:4331,389:4332,390:4333,393:4334,394:4335,382:[1,4336],396:[1,4337]}),o($V6n,$V5n,{389:4332,388:4338,390:4339,382:$V7n,396:$V8n}),o($V9n,[2,576]),{27:[1,4342],55:[1,4343]},o($V6n,$V5n,{389:4332,390:4339,388:4344,382:$V7n,396:$V8n}),{55:[1,4345]},{181:$VPk,466:4346,467:3676,468:$VQk,469:$VRk},o($Vcm,[2,742]),{27:[1,4348],125:4350,279:$VG8,280:$VH8,441:926,463:928,476:4347,482:4349,485:4351,817:927,818:929},o($V2,[2,763]),{125:4350,279:$VM8,280:$VN8,441:926,476:4352,817:927},{118:$Van,123:[1,4354]},{2:$VYb,118:$VZb,121:4355},o($Vbj,[2,791]),o($V4f,[2,793],{123:[1,4356]}),{125:4350,279:$VM8,280:$VN8,441:926,476:4357,817:927},{118:$Van,123:$Vbn},o($Vbj,[2,806]),o($V4f,[2,808],{123:[1,4359]}),o($V4f,[2,809],{123:$Vul}),o($V2,[2,2681],{123:$Vih}),o($V2,[2,246],{68:3243,185:3699,161:$V_7}),o([27,118,123,544,691],$VDh,{327:4360,373:$VEh,374:$VFh}),o($VZk,[2,557]),{27:[1,4361],46:439,47:$Vg4,50:$Vh4,56:4363,58:$Vi4,59:4362,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($V2,[2,128]),o($V2,[2,266]),{27:[1,4364]},o([27,89,107,108,129,152,409,499,544,691,705],[2,630]),{116:$V0l,407:4365},{118:[1,4366],123:[1,4367]},o($Vaj,[2,1787]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2105,151:$VE4,153:$VF4,154:$VG4,156:$VH4,163:4368,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,839:2104},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,187:4369,189:2731,191:2733,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},o($Vcn,[2,584]),o($Vke,[2,589]),o($Vke,[2,590]),{118:$Vdn,123:[1,4371]},{2:$VYb,118:$VZb,121:4372},o($Vbj,[2,614]),o($V4f,[2,616],{123:[1,4373]}),o($VLk,$Ven,{404:4374,733:$Vfn,755:$Vgn}),o($Vbj,$Ven,{404:4377,733:$Vfn,755:$Vgn}),o($Vbj,$Ven,{404:4378,733:$Vfn,755:$Vgn}),o($Vke,[2,587]),{118:$Vdn,123:$Vhn},o($Vbj,$Ven,{404:4380,733:$Vfn,755:$Vgn}),{118:$Vin,123:$V9j},{2:$VYb,118:$VZb,121:4382},o($Vmh,[2,234],{123:$VHh}),o($Vmh,[2,238],{123:$VHh}),o($V3e,[2,180]),o($V2,[2,165]),o($Vhm,[2,446]),o($VVj,[2,452]),o($Vim,$Vjm,{325:4098,319:4383,176:$Vkm,177:$Vlm}),o($VVj,[2,455]),o($VGh,$Vxe,{326:4384,333:$Vye}),o($Vim,[2,468]),o($Vim,[2,469]),o($Vim,$Vjm,{325:4098,319:4385,176:$Vkm,177:$Vlm}),o($Vim,$Vjm,{325:4098,319:4386,176:$Vkm,177:$Vlm}),o($Vjn,[2,462]),{116:[1,4387]},{116:[1,4388]},{116:[1,4389]},o($Vjn,[2,466]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4390,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o($Vmm,[2,447]),o($Vmm,[2,448]),{118:[1,4391]},{118:[1,4392],123:[1,4393]},{349:[1,4394]},o($Vel,[2,488]),{2:$Vkn,349:$Vln,350:4395},{2:$Vkn,349:$Vln,350:4398},{123:[1,4399]},o($Vel,[2,492]),{2:$Vkn,349:$Vln,350:4400},{27:$V6,183:4401,811:$Vc4},{123:$Vmn,349:$Vnn},o($Vel,[2,498]),{2:$Vkn,349:$Vln,350:4404},o($Von,[2,500]),o($Vqc,[2,502],{357:4405,123:$Vqm}),{358:[1,4406]},{46:4407,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vpn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vqn,[2,1686]),{123:$Vrn,349:$Vsn},o($Vel,[2,515]),{2:$Vkn,349:$Vln,350:4411},o($Von,[2,517]),o($Vqc,[2,519],{357:4412,123:$Vqm}),{27:$V6,123:$Vpn,183:4413,314:4414,343:3325,344:3326,345:3327,346:3328,347:$Vtn,351:$Vun,352:$Vvn,359:$Vwn,811:$Vc4},o($Von,[2,526]),o($Von,[2,527]),o($Vil,[2,432]),o($Vll,[2,434]),o($Vll,[2,435]),o($V4f,[2,444],{123:[1,4419]}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2847,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:4420,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:$Vxn,71:$Vkl,73:3781,363:4421,364:4423,365:3782,366:3783,367:3784},{71:$Vkl,73:4424,365:4425,366:3783,367:3784},{71:$V88,73:3781,363:4426,366:877},o([27,118,123,373,374],$Vxe,{326:4427,333:$Vye}),o([2,118,373,374],$Vxe,{326:4428,333:$Vye}),{27:[1,4429],104:4430,320:$VAe,323:$VBe,368:2171,371:$V6h},o($V4f,[2,443],{123:$Vxm}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:3819,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{116:$Vml,650:4431},{118:[1,4432],123:[1,4433]},o($Vaj,[2,2185]),o([27,107,108,129,152,208,277,446,499,544,547,646,691,705],$Vyn,{431:4434,436:4435,351:[1,4436]}),o($Vzn,$Vyn,{431:4437,351:$VAn}),{27:[1,4440],444:[1,4439]},o($Vzn,$Vyn,{431:4441,351:$VAn}),{444:[1,4442]},{27:[1,4444],79:[1,4443]},o($VBn,[2,669]),o([107,108,129,152,208,277,446,499,544,547,615,691,705],$Vyn,{431:4445,351:$VAn}),{79:[1,4446]},{27:[1,4448],47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:4447,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,[2,1204]),{118:[1,4449]},{2:$VYb,118:$VZb,121:4450},{2:$VYb,118:$VZb,121:4451},{118:$Vin,123:$Vih},{123:[1,4452]},{123:$VCn,349:$Vnn},{358:[1,4454]},{123:$VDn,349:$Vsn},{80:4456,116:$V2c},{71:$V88,73:3781,363:4457,366:877},{71:$V88,73:4424,366:877},{2:$VEn,27:$V1e,46:4459,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:1759,834:4460},o($VFe,[2,952]),o($Vj8,[2,2525]),o($Vj8,[2,2527]),o($VFe,$VFn,{123:[1,4461]}),o($Vj8,[2,2524]),{2:$VEn,46:4179,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($VGn,$VHn,{953:4462,954:4463,55:[1,4464]}),o($VI8,[2,2314]),{55:[1,4466],118:$VHn,953:4465},o($V2,$VKm,{123:$VTh}),o($V2,$VLm,{123:$VTh}),o($V0g,$VXm,{903:1806}),o($VWf,$VYm,{903:1806,126:$Vhf,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,773:$Vsf,789:$V8d,790:$V9d}),{534:$VZm,615:[1,4468],618:[1,4467],669:4281},{46:1057,47:$Vg4,50:$Vh4,56:4469,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{689:$V0n},o($VIn,$VDh,{327:4470,373:$VEh,374:$VFh}),o([78,107,108,129,152,382,409,499,544,691,705],$V2n,{375:4313,290:4471,376:$V4n}),{152:$VV6,195:4322,215:809,546:630,547:$V37},o([107,108,129,409,705],$V5n,{389:4332,390:4339,388:4472,382:$V7n,396:$V8n}),{125:4350,279:$VM8,280:$VN8,441:926,476:4473,817:927},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:4447,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($V2,[2,316]),o($V2,[2,341]),o($V2,$VGm,{222:4474,230:$VHm}),o($V2,[2,331]),o([27,230,544,691],[2,338]),o($Vvl,[2,339]),o($V2,$VGm,{222:4475,230:$VHm}),o($V2,$VGm,{222:4476,230:$VHm}),o($V2,[2,330]),o($V2,[2,329]),o($V2,[2,328]),o($V2,[2,327]),o($VWm,[2,1946]),o($VMm,$VJn,{2:[1,4477],27:[1,4478]}),o($VPm,[2,1004]),{27:$VKn,385:$Vz9,541:4479,724:$VLn,728:$VA9,802:$VB9,926:1089,927:1090},{27:[1,4482]},o($VPm,$VNm,{588:4217,583:4483,774:$VQm}),o($VPm,[2,1003]),o($VWm,$VJn),{385:$Vz9,541:4479,724:$VLn,728:$VA9,802:$VB9,926:1089,927:1090},o($VRm,[2,2019]),o($VHl,[2,2023]),o($VHl,[2,2024]),{27:[1,4485],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1583,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,836:4484,837:4486},o($VHl,[2,2027]),{27:[1,4488],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1583,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,836:4487,837:4489},o($Vdf,[2,2031]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4494,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:4495,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4496,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4,895:4490,896:4491,897:4492,898:4493},o($VHl,[2,2035]),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4497,743:$VIl,757:$VJl,894:$VKl}),o($VPm,$VNm,{588:4217,583:4498,774:$VQm}),{594:4499,774:$VMn},o($VPm,$VNm,{588:4217,583:4501,774:$VQm}),o($VPm,[2,1002]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,836:4502},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1584,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,836:4503},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4494,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,895:4504,897:4492},o([2,27,118,499,544,615,691,743,757,774,788,792,801,894],$VNn,{123:[1,4505]}),o($Vck,[2,1994]),o($VOn,[2,1996]),o($Vck,[2,1998]),o([2,118,544,568,569,570,571,572,573,574,575,615,691,733,743,755,757,774,779,801,894],$Vs7,{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,903:1822,324:4251,883:4506,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VFd,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,126:$V$c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,150:$V0d,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,307:$V1d,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,348:$V2d,349:$V3d,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,381:$V4d,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,726:$V5d,727:$V9c,728:$VA9,731:$Vac,732:$V6d,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,781:$V7d,785:$Vda,786:$Vea,789:$V8d,790:$V9d,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o([2,27,118,123,499,544,615,691,743,757,774,779,788,792,801,894],$Ven,{903:1806,908:1807,404:4507,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,733:$Vfn,736:$VVc,755:$Vgn,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($VPn,$Ven,{903:1839,404:4508,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,733:$Vfn,736:$Vkd,755:$Vgn,781:$Vld,789:$V8d,790:$V9d}),o($VPn,$Ven,{404:4509,733:$Vfn,755:$Vgn}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4510,743:$VIl,757:$VJl,894:$VKl}),o($VPm,$VNm,{588:4217,583:4511,774:$VQm}),o($VPm,$VNm,{588:4217,583:4512,774:$VQm}),{594:4513,774:$VMn},o($VPm,$VNm,{588:4217,583:4514,774:$VQm}),o($VPm,[2,1001]),o([2,118,499,544,568,569,570,571,572,573,574,575,615,691,743,757,774,788,792,801,894],$VNn,{123:$VQn}),o([2,118,123,499,544,568,569,570,571,572,573,574,575,615,691,743,757,774,779,788,792,801,894],$Ven,{903:1806,404:4516,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,733:$Vfn,736:$Vrf,755:$Vgn,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o([2,27,118,499,544,568,569,570,571,572,573,574,575,615,691,743,757,774,782,801,894],[2,2456]),o($V5i,[2,2458]),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4517,743:$VIl,757:$VJl,894:$VKl}),o($VPm,$VNm,{588:4217,583:4518,774:$VQm}),o($VPm,$VNm,{588:4217,583:4519,774:$VQm}),o($VPm,$VNm,{588:4217,583:4520,774:$VQm}),{594:4521,774:$VMn},o($VPm,$VNm,{588:4217,583:4522,774:$VQm}),o($VPm,[2,1000]),o($VPm,$VNm,{588:4217,583:4523,774:$VQm}),o($VPm,$VNm,{588:4217,583:4524,774:$VQm}),o($VPm,$VNm,{588:4217,583:4525,774:$VQm}),o($VPm,$VNm,{588:4217,583:4526,774:$VQm}),{594:4527,774:$VMn},o($VPm,$VNm,{588:4217,583:4528,774:$VQm}),o($VPm,[2,999]),o($Vlk,[2,1986],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,324:3011,871:4529,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($VVm,[2,1989],{903:1806,88:$Vgf,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d}),o($Vaj,$VRn,{270:442,694:446,140:1172,172:1180,46:1187,843:2737,844:2738,877:4530,878:4531,191:4532,879:4534,183:4535,192:4536,27:$V6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VSn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4}),o($Vaj,$VRn,{270:442,694:446,140:1172,46:1632,843:1916,191:4532,877:4537,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($VHl,$VCl,{888:3895,890:3897,587:3907,889:3908,582:4539,743:$VIl,757:$VJl,894:$VKl}),o($VPm,$VNm,{588:4217,583:4540,774:$VQm}),o($VPm,$VNm,{588:4217,583:4541,774:$VQm}),o($VPm,$VNm,{588:4217,583:4542,774:$VQm}),o($VPm,$VNm,{588:4217,583:4543,774:$VQm}),o($VPm,$VNm,{588:4217,583:4544,774:$VQm}),{594:4545,774:$VMn},o($VPm,$VNm,{588:4217,583:4546,774:$VQm}),o($VPm,[2,998]),o($VUn,[2,1219]),o($V2,[2,1223]),o($V2,[2,1224]),{26:[1,4547],27:[1,4548]},o($VUn,[2,1229]),{27:[1,4550],637:$VVn},o($VDi,[2,2177],{123:$V3k}),o($VDi,[2,2179],{123:$V3k}),o($V4f,[2,2414]),o($V4f,[2,2420]),o($VWn,$VXn,{1002:4551}),o($VWn,$VXn,{1002:4552}),o($VYn,$VXn,{1002:4553}),o($VYn,$VXn,{1002:4554}),o($Vqd,[2,2403]),o($V4f,$Vvk,{586:3585,994:4555,123:$Vuk,782:$Vdk}),o([27,418,544,691],$V3b,{68:1355,102:1356,57:4556,60:4557,161:$V4b}),o($V2,[2,1240]),o($VZn,$V3b,{68:1355,57:4558,161:$V_7}),o($VZn,$V3b,{68:1355,57:4559,161:$V_7}),{116:[1,4560]},o($V2,[2,1284]),{116:[1,4561]},{689:[1,4562]},{116:[1,4563]},{116:[1,4564]},{535:[2,939]},{27:$VTi,123:$VQf},{535:[2,942]},o($V2,[2,815]),o($Vcn,$V_n,{291:4565,105:4566,77:4567,382:$V38}),o($Vke,$V_n,{77:4567,291:4568,382:$Ve8}),o($V1n,[2,567]),{27:[1,4569],79:[1,4570],116:[1,4572],155:4571},{27:[1,4573],79:[1,4574]},o($Vke,$V_n,{77:4567,291:4575,382:$Ve8}),{79:[1,4576]},o($V1m,[2,427]),o($V3m,[2,429]),o($V3m,[2,430]),o($V5m,[2,400]),o($V2,[2,718]),o($V2,[2,724]),o($V2,[2,725]),o($Vaj,$V$n,{27:[1,4577]}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:3185,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,471:4578,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},{152:$VV6,195:4579,215:809,546:630,547:$V37},o($V2,[2,726]),o($Vbj,$V$n),o([27,107,108,129,705],$V0o,{293:4580,300:4581,408:4582,409:$V1o}),o($V2o,$V0o,{408:4582,293:4584,409:$V3o}),o($V4o,[2,593]),{27:[1,4587],391:4586,395:4588,397:[1,4589]},o($V6n,[2,595]),o($V6n,[2,596]),{27:[1,4591],55:[1,4590]},{27:[1,4593],55:[1,4592]},o($V2o,$V0o,{408:4582,293:4594,409:$V3o}),{391:4586,397:[1,4595]},{55:[1,4596]},{55:[1,4597]},o($Vam,[2,578]),{80:4599,110:4598,116:$V99},o($V2o,$V0o,{408:4582,293:4600,409:$V3o}),{80:4599,116:$V2c},o($Vcm,[2,741]),o($V5o,$V6o,{477:4601,483:4602,152:[1,4603]}),o($V2,[2,764]),o($V7o,$V6o,{477:4604,152:$V8o}),o([27,107,129,152,277,409,487,488,544,691,705],[2,776]),o([107,129,152,277,409,487,488,544,691,705],[2,777]),o($V7o,$V6o,{477:4606,152:$V8o}),o($VHk,[2,789]),{27:$V6,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4608,191:4607,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4,843:1916},o($V9o,[2,790]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4054,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,489:4609,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},o($V7o,$V6o,{477:4610,152:$V8o}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4607,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},{47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:3462,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,495:4611,497:3206,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6},o($VIn,$Vao,{27:[1,4612]}),o($VZk,[2,558]),o($VZk,[2,559]),{80:4456,110:4613,116:$V99},o($V2,[2,267]),o($Vaj,[2,632]),o($Vaj,[2,1786]),{279:$VM8,280:$VN8,285:4614,385:$Vz9,441:1184,541:1170,728:$VA9,762:$V7a,800:$Via,802:$VB9,817:1185,922:1153,924:1171,926:1089,927:1090,928:1186},o($V4f,[2,1806],{123:$Vih}),o($V4f,[2,256],{123:$VTj}),o($Vfm,[2,612]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4082,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:4083,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4084,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,402:4615,403:4616,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4},o($Vfh,[2,613]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4087,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,400:4617,402:4080,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vaj,$Vbo,{27:[1,4618]}),o($Vco,[2,2008]),o($Vco,[2,2009]),o($Vbj,[2,622]),o($Vbj,[2,623]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4087,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,402:4615,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vbj,$Vbo),o($Vaj,[2,199]),o($V4f,[2,201]),o($VVj,[2,453]),o($VVj,$VDh,{327:4619,373:$VEh,374:$VFh}),o($VVj,[2,456]),o($VVj,[2,458]),{118:[1,4620]},{118:[1,4621]},{118:[1,4622]},{88:$Vgf,118:[1,4623],126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},o($Vel,[2,1875]),o($Vel,[2,1877]),{385:[1,4624]},o($Vel,[2,487]),o($Vfl,[2,489]),o($Vfl,[2,528]),o($Vfl,[2,529]),o($Vfl,[2,490]),{27:$V6,183:4627,312:4625,314:4626,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,359:$Vsj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj,811:$Vc4},o($Vfl,[2,494]),{2:$Vkn,349:$Vln,350:4628},o($Vel,[2,497]),{46:4126,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vqm,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,355:4629,356:4630,357:4127,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vfl,[2,499]),o($Vqc,[2,503],{270:442,694:446,355:4124,46:4170,353:4631,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vpn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{27:$V6,183:4633,312:4632,314:4634,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,359:$Vsj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj,811:$Vc4},{358:[1,4635]},o($Vqn,[2,1687]),o($Vel,[2,514]),{27:$V6,123:$Vqm,183:4135,312:4636,314:4136,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,357:4134,359:$Vsj,362:4637,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj,811:$Vc4},o($Vfl,[2,516]),o($Vqc,[2,520],{334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,312:4132,360:4638,123:$Vpn,347:$VWj,351:$VXj,352:$VYj,359:$VZj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj}),o($Von,[2,524]),o($Von,[2,525]),{348:[1,4639]},{348:[1,4640]},{348:[1,4641]},{348:[1,4642]},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2841,141:2847,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:4643,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V4f,[2,441],{123:$Vxm}),{118:$Vdo,123:$Vwm},o($V4f,[2,534]),o($V4f,[2,536]),o($Vbj,[2,539]),o($V4f,[2,541]),o($V4f,[2,537],{123:$VCm}),o($VLk,$VDh,{327:4644,373:$VEh,374:$VFh}),o($V4f,$VDh,{327:4645,373:$VEh,374:$VFh}),o($Veo,[2,548]),o($Veo,[2,549]),o($Vym,[2,1175]),o($Vym,[2,1176]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,817:1185,843:1626,899:4646,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o([27,107,108,129,152,208,277,499,544,547,646,691,705],$Vfo,{432:4647,437:4648,446:[1,4649]}),o($Vgo,$Vfo,{432:4650,446:$Vho}),{27:[1,4653],445:[1,4652]},o($Vgo,$Vfo,{432:4654,446:$Vho}),{445:[1,4655]},{27:[1,4657],440:[1,4656]},o($VAm,[2,674]),o($Vgo,$Vfo,{432:4658,446:$Vho}),{440:[1,4659]},{279:$VM8,441:4660},o($VBn,[2,670]),o([107,108,129,152,208,277,499,544,547,615,691,705],$Vfo,{432:4661,446:$Vho}),{279:$VM8,441:4662},o([27,55],[2,1195]),o($V2,[2,1205]),o($VHk,[2,1206]),o($V2,[2,1208]),o($V2,[2,1209]),{312:4625,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},{46:4170,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,355:4629,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{312:4663,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},{312:4636,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},o($VIh,[2,554]),{118:$Vdo,123:$VCm},o($VFe,[2,948]),o($Vg8,$VFn,{123:[1,4664]}),o($Vj8,[2,2534]),{46:4665,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:[1,4667],118:$Vio},{2:$VYb,118:$VZb,121:4668},{27:[1,4670],46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4669,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:4671,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,817:1185,818:1192,843:1154,844:1165,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},{118:$Vio},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4672,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},{26:[1,4673]},{637:$VVn},o($VZn,$V3b,{68:1355,57:4674,161:$V_7}),o($VIn,$Vao),o([78,107,108,129,152,409,499,544,691,705],$V_n,{77:4567,291:4675,382:$Ve8}),o([107,108,129,705],$V0o,{408:4582,293:4676,409:$V3o}),o($V7o,$V6o,{477:4677,152:$V8o}),o($V2,[2,325]),o($V2,[2,323]),o($V2,[2,324]),{27:[1,4678]},o($VPm,[2,1011]),o($Vjo,[2,2048],{123:[1,4679]}),o($Vjo,[2,2050],{123:[1,4680]}),o($VPm,[2,2052]),o($VPm,$VNm,{588:4217,583:4681,774:$VQm}),o($VPm,[2,1010]),o($VSm,$Vko,{123:$Vcf}),o($VHl,[2,2028]),o($VHl,[2,2029]),o([2,27,118,499,544,615,691,774,801,894],$Vlo,{123:$Vcf}),o($Vdf,[2,2032]),o($Vdf,[2,2033]),o($VSm,$Vmo,{123:[1,4682]}),o($VHl,[2,2036]),o($Vno,[2,2037]),o($VHl,[2,2039],{123:[1,4683]}),o($Vno,$Ven,{404:4684,733:$Vfn,755:$Vgn}),o($Voo,$Ven,{404:4685,733:$Vfn,755:$Vgn}),o($Voo,$Ven,{404:4686,733:$Vfn,755:$Vgn}),o($VPm,$VNm,{588:4217,583:4687,774:$VQm}),o($VPm,[2,996]),o($VPm,[2,997]),{27:$VKn},o($VPm,[2,1009]),o($VPl,$Vko,{123:$VVh}),o([2,118,499,544,568,569,570,571,572,573,574,575,615,691,774,801,894],$Vlo,{123:$VVh}),o($VPl,$Vmo,{123:$Vpo}),{27:$Vmd,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$VP9,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VQ9,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:1180,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4243,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VG8,280:$VH8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4241,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,463:1191,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,494:4242,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$VV9,727:$VW9,728:$VA9,731:$VX9,734:$VY9,735:$VN6,738:$VZ9,740:$V_9,741:$V$9,744:$V0a,745:$V1a,747:$V2a,748:$V3a,749:$V4a,750:$V5a,761:$V6a,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vha,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vma,811:$Vc4,817:1185,818:1192,843:1154,844:1165,883:4689,884:4690,899:1136,905:1144,912:1146,914:1147,915:1148,916:1150,917:1151,919:1152,922:1153,923:1164,924:1171,925:1179,926:1089,927:1090,928:1186,972:1160,974:1161,976:1162,977:1163,978:1166,980:1167,982:1168,983:1169,985:1173,986:1174,987:1175,988:1181,989:1182,990:1183,1011:$Vna,1013:1190},o($Vck,[2,1999]),o([2,27,118,123,499,544,615,691,743,757,774,788,792,801,894],$Vqo,{885:4691,886:4692,887:4693,779:[1,4694]}),o($Vro,$Vqo,{887:4693,885:4695,779:$Vso}),o($Vro,$Vqo,{887:4693,885:4697,779:$Vso}),o($VPm,$VNm,{588:4217,583:4698,774:$VQm}),o($VPm,[2,993]),o($VPm,[2,994]),o($VPm,[2,995]),o($VPm,[2,1008]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,279:$VM8,280:$VN8,285:1145,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,324:4251,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,441:1184,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,541:1170,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,817:1185,843:1626,883:4689,899:1136,912:1624,914:1625,915:1148,922:1153,924:1171,926:1089,927:1090,928:1186,972:1627,974:1628,976:1162,977:1163,985:1173,986:1174,987:1175,1011:$Vhc,1013:1635},o([2,118,123,499,544,568,569,570,571,572,573,574,575,615,691,743,757,774,788,792,801,894],$Vqo,{885:4691,887:4693,779:$Vso}),o($VPm,$VNm,{588:4217,583:4699,774:$VQm}),o($VPm,[2,989]),o($VPm,[2,990]),o($VPm,[2,991]),o($VPm,[2,992]),o($VPm,[2,1007]),o($VPm,[2,984]),o($VPm,[2,985]),o($VPm,[2,986]),o($VPm,[2,987]),o($VPm,[2,988]),o($VPm,[2,1006]),o($Vlk,[2,1987],{123:$Vmk}),{118:$Vto,123:$Vuo},{2:$VYb,118:$VZb,121:4702},o($Vbj,[2,1969]),o($Vaj,$VRn,{270:442,694:446,140:1172,172:1180,46:1187,843:2737,844:2738,191:4532,879:4534,183:4535,192:4536,877:4703,878:4704,27:$V6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VSn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4}),o($V4f,[2,1972],{123:[1,4705]}),o($Vbj,[2,1977]),o($Vbj,[2,1978]),{118:$Vto,123:$Vvo},o($Vaj,$VRn,{270:442,694:446,140:1172,46:1632,843:1916,191:4532,877:4707,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($VPm,$VNm,{588:4217,583:4708,774:$VQm}),o($VPm,[2,978]),o($VPm,[2,979]),o($VPm,[2,980]),o($VPm,[2,981]),o($VPm,[2,982]),o($VPm,[2,983]),o($VPm,[2,1005]),{27:$VBd,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,672:4709,673:4710,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916,1062:1911,1063:1912,1064:1913},o($V2,[2,1231]),{116:$Vml,638:4711,650:3789,651:$Vnl},o($V2,[2,1233]),o($Vwo,$Vxo,{1003:4712,1006:4713,1010:4714,385:$Vyo,752:$Vzo,1005:$VAo}),o($Vwo,$Vxo,{1010:4714,1003:4718,1006:4719,385:$Vyo,752:$Vzo,1005:$VAo}),o($VBo,$Vxo,{1003:4720,1010:4721,385:$Vyo,752:$VCo,1005:$VAo}),o($VBo,$Vxo,{1010:4721,1003:4723,385:$Vyo,752:$VCo,1005:$VAo}),{2:$VYb,118:$VZb,121:4724},o($V3e,$VDo,{679:4725,680:4726,681:4727,418:[1,4728]}),o($V2,$VDo,{681:4727,679:4729,418:$VEo}),o($V2,$VDo,{681:4727,679:4731,418:$VEo}),o($V2,$VDo,{681:4727,679:4732,418:$VEo}),{125:4733,279:$VM8,280:$VN8,441:926,817:927},{125:4734,279:$VM8,280:$VN8,441:926,817:927},{116:[1,4735]},{125:4736,279:$VM8,280:$VN8,441:926,817:927},{125:4737,279:$VM8,280:$VN8,441:926,817:927},o($VFo,$VGo,{292:4738,299:4739,405:4740,78:[1,4741]}),o($VHo,$VGo,{405:4740,292:4742,78:$VIo}),o($Vcn,[2,583]),o($VHo,$VGo,{405:4740,292:4744,78:$VIo}),o($V3n,[2,569],{94:4745,116:$VDe}),{94:4747,116:$Vqe,155:4746},o($V3n,[2,572]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2785,141:2790,144:2791,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,308:4748,310:2789,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($V3n,[2,573]),{27:[1,4749]},o($VHo,$VGo,{405:4740,292:4750,78:$VIo}),{94:4747,116:$VDe},o($V4f,[2,754],{123:[1,4751]}),o($V4f,[2,753],{123:$VMk}),o($V2,[2,720]),o([27,108,129,705],$VJo,{294:4752,301:4753,413:4754,415:4756,414:4757,107:$VKo}),o($VLo,$VJo,{413:4754,414:4757,294:4758,107:$VMo}),o($VNo,[2,634]),{27:[1,4760],410:[1,4761]},o($VLo,$VJo,{413:4754,414:4757,294:4762,107:$VMo}),{410:[1,4763]},o($V4o,[2,594]),o($V6n,[2,597]),o($V6n,[2,598]),{27:[1,4765],55:[1,4764]},{80:4766,110:4767,116:$V99},o($V6n,[2,600]),{80:4768,110:4769,116:$V99},o($V6n,[2,603]),o($VLo,$VJo,{413:4754,414:4757,294:4770,107:$VMo}),{55:[1,4771]},{80:4766,116:$V2c},{80:4768,116:$V2c},o($Vam,[2,579]),o($V9n,[2,577]),o($VLo,$VJo,{413:4754,414:4757,294:4772,107:$VMo}),o($VOo,$VPo,{478:4773,487:$VQo}),o($VRo,$VPo,{478:4775,487:$VQo}),{27:[1,4777],486:[1,4776]},o($VRo,$VPo,{478:4778,487:$VQo}),{486:[1,4779]},o($VRo,$VPo,{478:4780,487:$VQo}),o($Vbj,[2,792]),o($V4f,[2,794],{123:[1,4781]}),o($V4f,[2,795],{123:$Vbn}),o($VRo,$VPo,{478:4782,487:$VQo}),o($V4f,[2,810],{123:$Vul}),o($Vjh,[2,553]),o($VZk,[2,560]),o($Vaj,[2,1788]),o($Vbj,[2,615]),o($V4f,[2,618],{123:[1,4783]}),o($V4f,[2,617],{123:$Vhn}),o($Vbj,[2,621]),o($VVj,[2,461]),o($Vjn,[2,463]),o($Vjn,[2,464]),o($Vjn,[2,465]),o($Vim,$Vjm,{325:4098,319:4784,176:$Vkm,177:$Vlm}),{118:[1,4785]},{349:[1,4786]},{2:$Vkn,349:$Vln,350:4787},{2:$Vkn,349:$Vln,350:4788},o($Vfl,[2,496]),o($Von,[2,501]),o($Vqc,[2,505],{357:4789,123:$Vqm}),o($Vqc,[2,504],{123:$VCn}),o([123,349],$VLg,{276:2628,273:4790,27:[1,4791],277:$VZh}),o($Von,[2,512]),o($Von,[2,513]),{27:$V6,183:4793,312:4792,314:4794,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,359:$Vsj,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj,811:$Vc4},o($Von,[2,518]),o($Vqc,[2,521],{357:4795,123:$Vqm}),o($Vqc,[2,522],{123:$VDn}),{27:$V6,183:4115,314:4116,343:3325,344:3326,345:3327,346:3328,347:$Vtn,351:$Vun,352:$Vvn,359:$Vwn,811:$Vc4},{27:$V6,123:$Vom,183:4119,334:4796,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj,811:$Vc4},{46:4126,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vqm,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,353:4797,354:4123,355:4124,356:4125,357:4127,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},{27:$V6,123:$Vqm,183:4135,312:4132,314:4136,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,343:3325,344:3326,345:3327,346:3328,347:$Vpj,351:$Vqj,352:$Vrj,357:4134,359:$Vsj,360:4798,361:4131,362:4133,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj,811:$Vc4},o($V4f,[2,445],{123:$Vxm}),o($Vaj,$VUj,{27:[1,4799]}),o($V4f,[2,543]),o($Vaj,[2,2186]),o([27,107,108,129,152,277,499,544,547,646,691,705],$VSo,{433:4800,438:4801,208:[1,4802]}),o($VTo,$VSo,{433:4803,208:$VUo}),{27:[1,4806],440:[1,4805]},o($VTo,$VSo,{433:4807,208:$VUo}),{440:[1,4808]},{27:[1,4810],440:[1,4809]},o($Vzn,[2,679]),o($VTo,$VSo,{433:4811,208:$VUo}),{440:[1,4812]},{27:[1,4814],79:$VVo},o($VAm,[2,675]),o($VTo,$VSo,{433:4815,208:$VUo}),{79:$VVo},o($Vol,$VWo,{442:[1,4816]}),o([107,108,129,152,277,499,544,547,615,691,705],$VSo,{433:4800,208:$VUo}),o($Vql,$VWo,{442:[1,4817]}),o($Von,$VLg,{276:2628,273:4790,277:$VZh}),{27:$V6,46:4665,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:2413,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,811:$Vc4,832:4818,833:2414},o($VFe,[2,2533]),o($VO8,[2,2308]),{2:$VYb,118:$VZb,121:4819},o($VI8,[2,2316]),o($VGn,$VXo,{903:1806,908:1807,88:$VJc,126:$VKc,150:$VLc,307:$VMc,348:$VNc,349:$VOc,381:$VPc,488:$VQc,726:$VSc,727:$VTc,732:$VUc,736:$VVc,773:$VWc,781:$VXc,789:$VYc,790:$VZc}),o($V4f,[2,2320],{903:1822,88:$V_c,126:$V$c,150:$V0d,307:$V1d,348:$V2d,349:$V3d,381:$V4d,726:$V5d,732:$V6d,781:$V7d,789:$V8d,790:$V9d}),o($V4f,[2,2321],{903:1839,88:$Vad,126:$Vbd,150:$Vcd,307:$V1d,348:$Vdd,349:$Ved,381:$Vfd,488:$Vgd,726:$Vhd,727:$Vid,732:$Vjd,736:$Vkd,781:$Vld,789:$V8d,790:$V9d}),{88:$Vgf,118:$VXo,126:$Vhf,150:$Vif,307:$V1d,348:$Vjf,349:$Vkf,381:$Vlf,488:$Vmf,726:$Vof,727:$Vpf,732:$Vqf,736:$Vrf,773:$Vsf,781:$Vtf,789:$V8d,790:$V9d,903:1806},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:1915,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,672:4820,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916,1062:1911,1064:1918},o($V2,$VDo,{681:4727,679:4821,418:$VEo}),o([107,108,129,152,409,499,544,691,705],$VGo,{405:4740,292:4822,78:$VIo}),o([108,129,705],$VJo,{413:4754,414:4757,294:4823,107:$VMo}),o($VRo,$VPo,{478:4824,487:$VQo}),o($VPm,[2,977]),{385:$Vz9,541:4825,728:$VA9,802:$VB9,926:1089,927:1090},{724:[1,4826]},o($VPm,[2,976]),{27:$V6,46:1187,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4494,151:$VE4,153:$VF4,154:$VG4,156:$VH4,172:4495,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,183:4496,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4,897:4827,898:4828},{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4494,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,895:4829,897:4492},o($Vno,[2,2043]),o($Voo,[2,2044]),o($Voo,[2,2045]),o($VPm,[2,975]),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4494,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,897:4827},o($VOn,[2,1997]),o($Vck,[2,2000],{123:[1,4830]}),o($VOn,[2,2003]),o($Vro,[2,2006]),o($VOn,[2,2011]),{27:[1,4831],175:$VYo,704:$VZo},o($Vro,[2,2004]),{175:$VYo,704:$VZo},o($Vro,[2,2005]),o($VPm,[2,974]),o($VPm,[2,973]),o($VMl,[2,1965]),o($Vaj,$VRn,{270:442,694:446,140:1172,172:1180,46:1187,843:2737,844:2738,191:4532,183:4535,192:4536,877:4834,879:4835,27:$V6,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,811:$Vc4}),o($VEc,[2,1967]),{118:$V_o,123:$Vuo},{2:$VYb,118:$VZb,121:4837},o($Vbj,$VRn,{270:442,694:446,140:1172,46:1632,843:1916,191:4532,877:4838,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($Vbj,$VRn,{270:442,694:446,140:1172,46:1632,843:1916,191:4532,877:4834,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),{118:$V_o,123:$Vvo},o($VPm,[2,972]),o($VUn,$V$o,{123:$Vyg}),o($V2,[2,1232]),o($VUn,[2,1230]),o($VGn,$V0p,{1004:4839,1007:4840,150:[1,4841]}),o($V4f,$V0p,{1004:4842,150:$V1p}),{27:[1,4845],787:$V2p},{27:[1,4847],409:$V3p},o($V4p,[2,2447]),o($V4p,[2,2448]),{27:[1,4848],118:$V0p,150:$V1p,1004:4849},o($V4f,[2,2425]),o($V4f,$V0p,{1004:4850,150:$V1p}),{787:$V2p},{409:$V3p},o($V4f,$V0p,{1004:4849,150:$V1p}),o($Vqd,[2,2404]),o($V2,$V5p,{27:[1,4851]}),o($V2,[2,1244]),o($V3e,[2,1251]),{125:4852,279:$VM8,280:$VN8,441:926,817:927},o($V2,[2,1243]),{125:4853,279:$VM8,280:$VN8,441:926,817:927},o($V2,[2,1241]),o($V2,[2,1245]),{118:[1,4854]},{118:[1,4855]},{125:4856,279:$VM8,280:$VN8,441:926,817:927},{118:[1,4857]},{118:[1,4858]},o([27,107,108,129,152,499,544,691,705],$V0o,{408:4582,293:4859,300:4860,409:$V1o}),o($V6p,$V0o,{408:4582,293:4861,409:$V3o}),o($VFo,[2,625]),{27:[1,4862],79:[1,4863]},o($V6p,$V0o,{408:4582,293:4864,409:$V3o}),{79:[1,4865]},o($V6p,$V0o,{408:4582,293:4866,409:$V3o}),o($V3n,[2,570]),o($V3n,[2,571]),o($V1n,[2,568]),{123:[1,4867]},o($V3n,[2,574]),o($V6p,$V0o,{408:4582,293:4868,409:$V3o}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:3185,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,471:4869,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},o($VZi,$V4h,{49:2709,69:4870,52:4871,705:$Vbb}),o($V_i,$V4h,{49:2709,69:4872,705:$Vrb}),o($V7p,[2,640]),{27:[1,4873],79:$V8p,108:[1,4875]},o($V9p,[2,644]),o($V7p,[2,641]),o($V_i,$V4h,{49:2709,69:4876,705:$Vrb}),{79:$V8p,108:$VQj},o($Vap,[2,636]),{27:[1,4877],130:$Vbp,411:4879,412:4878,426:4881,427:4880,428:$VRj},o($V_i,$V4h,{49:2709,69:4883,705:$Vrb}),{130:$Vbp,411:4879,426:4881,428:$VSj},{80:4884,110:4885,116:$V99},o($V6n,[2,606]),o($V4o,[2,599]),o($V6n,[2,601]),o([27,397],[2,602]),o($V6n,[2,604]),o($V_i,$V4h,{49:2709,69:4886,705:$Vrb}),{80:4884,116:$V2c},o($V_i,$V4h,{49:2709,69:4887,705:$Vrb}),o($Vcp,$Vdp,{479:4888,484:4889,488:[1,4890]}),{48:4891,116:$Vie},o($Vep,$Vdp,{479:4892,488:$Vfp}),{27:[1,4895],58:$Vgp},o($V7o,[2,780]),o($Vep,$Vdp,{479:4896,488:$Vfp}),{58:$Vgp},o($Vep,$Vdp,{479:4897,488:$Vfp}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:1172,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,191:4054,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,489:4898,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,843:1916},o($Vep,$Vdp,{479:4899,488:$Vfp}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4087,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,400:4900,402:4080,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($VVj,[2,459]),o($Vel,[2,1878]),o($Vel,[2,491]),o($Vfl,[2,493]),o($Vfl,[2,495]),{46:4170,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,123:$Vpn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,353:4901,355:4124,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Von,[2,507]),o($Von,[2,511]),{27:[1,4902]},o($Von,[2,509]),o($Von,[2,510]),{123:$Vpn,312:4132,334:3316,335:3317,336:3318,337:3319,338:3320,339:3321,340:3322,341:3323,342:3324,347:$VWj,351:$VXj,352:$VYj,359:$VZj,360:4903,701:$Vtj,716:$Vuj,718:$Vvj,737:$Vwj,738:$Vxj,739:$Vyj,742:$Vzj,753:$VAj,754:$VBj,758:$VCj,763:$VDj,771:$VEj,772:$VFj,794:$VGj,799:$VHj,805:$VIj},{123:[1,4904]},{123:$Vmn},{123:$Vrn},o($V4f,[2,544]),o($Vhp,[2,660]),o($VTo,[2,665]),{27:[1,4906],447:[1,4905]},o($VTo,[2,664]),{447:[1,4907]},{27:[1,4909],79:$Vip},o($Vgo,[2,684]),o($VTo,[2,663]),{79:$Vip},{27:[1,4911],79:$Vjp},o($Vzn,[2,680]),o($VTo,[2,662]),{79:$Vjp},{279:$VM8,441:4912},o($VAm,[2,676]),o($VTo,[2,661]),{27:[1,4914],79:$Vkp},{79:$Vkp},o($Vj8,[2,2535]),o($VI8,[2,2315]),o([544,664,691],$V$o,{123:$VGg}),o($V2,$V5p),o([107,108,129,152,499,544,691,705],$V0o,{408:4582,293:4915,409:$V3o}),o($V$i,$V4h,{49:2709,69:4916,705:$Vrb}),o($Vep,$Vdp,{479:4917,488:$Vfp}),o($Vjo,[2,2049]),o($Vjo,[2,2051]),o($Vno,[2,2038]),o($VHl,[2,2041],{123:[1,4918]}),o($VHl,[2,2040],{123:$Vpo}),o($Vck,[2,2001],{270:442,694:446,926:1089,927:1090,899:1136,285:1145,915:1148,922:1153,976:1162,977:1163,541:1170,924:1171,140:1172,985:1173,986:1174,987:1175,441:1184,817:1185,928:1186,912:1624,914:1625,843:1626,972:1627,974:1628,46:1632,1013:1635,883:4238,324:4251,881:4919,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,88:$V6c,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$V7c,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,208:$VR9,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,279:$VM8,280:$VN8,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,347:$VS9,351:$VT9,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,385:$Vz9,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,533:$VU9,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,725:$V8c,727:$V9c,728:$VA9,731:$Vac,734:$VY9,735:$VN6,738:$VZ9,740:$Vbc,741:$Vcc,744:$V0a,745:$V1a,747:$V2a,748:$Vdc,749:$V4a,750:$V5a,761:$Vec,762:$V7a,768:$V8a,769:$V9a,775:$Vaa,776:$Vba,778:$Vca,785:$Vda,786:$Vea,795:$Vfa,796:$Vga,797:$Vfc,800:$Via,802:$VB9,803:$Vja,804:$Vka,806:$Vla,810:$Vgc,1011:$Vhc}),o($Vro,[2,2014]),o($VOn,[2,2012]),o($VOn,[2,2013]),o($Vbj,[2,1970]),o($V4f,[2,1974],{123:[1,4920]}),o($Vbj,[2,1971]),o($V4f,[2,1976]),o($V4f,[2,1973],{123:$Vvo}),{27:[1,4921],118:$Vlp},o($V4f,[2,2423]),{27:[1,4924],385:$Vyo,752:[1,4922],1005:$VAo,1010:4923},o($V4f,[2,2422]),{385:$Vyo,752:[1,4925],1005:$VAo,1010:4926},o($Vmp,[2,2437]),o($VBo,[2,2439]),o($Vmp,[2,2438]),o($VBo,[2,2440]),o($V4f,[2,2424]),o($V4f,[2,2419]),o($V4f,$Vlp),o($V2,[2,1242]),{27:[1,4927],130:$Vnp},{130:$Vnp},o($V2,[2,1276]),o($V2,[2,1291]),{118:[1,4929]},o($V2,[2,1290]),o($V2,[2,1286]),o([27,108,129,152,499,544,691,705],$VJo,{413:4754,415:4756,414:4757,294:4930,301:4931,107:$VKo}),o($Vop,$VJo,{413:4754,414:4757,294:4932,107:$VMo}),o($Vop,$VJo,{413:4754,414:4757,294:4933,107:$VMo}),o($VHo,[2,628]),{80:4934,116:$V2c},o($Vop,$VJo,{413:4754,414:4757,294:4935,107:$VMo}),{80:4936,116:$V2c},o($Vop,$VJo,{413:4754,414:4757,294:4937,107:$VMo}),{27:$Vjl,46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,71:$Vkl,72:4938,73:3781,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,103:3779,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:2785,141:3775,144:3776,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,311:3773,317:$V5h,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,363:4939,364:3780,365:3782,366:3783,367:3784,369:2715,370:2716,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vop,$VJo,{413:4754,414:4757,294:4940,107:$VMo}),o($V4f,[2,755],{123:$VMk}),o($VHk,$VIk,{449:3657,295:4941,129:$VJk}),o($V2,$VIk,{449:3657,295:4942,129:$VJk}),o($V2,$VIk,{449:3657,295:4943,129:$VJk}),o($V9p,[2,643]),{125:4944,279:$VM8,280:$VN8,441:926,817:927},{27:[1,4945],128:3796,417:$Vae,418:$Vbe,420:$Vce,421:$Vde,422:$Vee,423:$Vfe,424:$Vge,425:$Vhe},o($V2,$VIk,{449:3657,295:4946,129:$VJk}),o($Vap,[2,637]),o($Vap,[2,638]),o($VNo,[2,635]),o($Vap,[2,659]),o($VNo,[2,657]),{125:4947,279:$VM8,280:$VN8,441:926,817:927},o($V2,$VIk,{449:3657,295:4948,129:$VJk}),o($V4o,[2,605]),o($V6n,[2,607]),o($V2,$VIk,{449:3657,295:4949,129:$VJk}),o($V2,$VIk,{449:3657,295:4950,129:$VJk}),o([27,107,129,277,544,691,705],$V0o,{408:4582,293:4951,300:4952,409:$V1o}),o($Vpp,$V0o,{408:4582,293:4953,409:$V3o}),{27:[1,4955],158:[1,4954]},o($VOo,[2,783]),o($Vpp,$V0o,{408:4582,293:4956,409:$V3o}),{158:[1,4957]},o($V5o,[2,779]),o($V7o,[2,781]),o($Vpp,$V0o,{408:4582,293:4958,409:$V3o}),o($Vpp,$V0o,{408:4582,293:4959,409:$V3o}),o($V4f,[2,796],{123:$Vbn}),o($Vpp,$V0o,{408:4582,293:4960,409:$V3o}),o($V4f,[2,619],{123:$Vhn}),o($Vqc,[2,506],{123:$VCn}),o($Von,[2,508]),o($Vqc,[2,523],{123:$VDn}),{27:$V6,183:4627,314:4626,343:3325,344:3326,345:3327,346:3328,347:$Vtn,351:$Vun,352:$Vvn,359:$Vwn,811:$Vc4},{27:[1,4962],108:$Vqp},o($VTo,[2,688]),{108:$Vqp},{279:$VM8,441:4963},o($Vgo,[2,685]),{279:$VM8,441:4964},o($Vzn,[2,681]),o([27,107,108,129,152,208,277,351,446,499,544,547,615,646,691,705],[2,673]),{279:$VM8,441:4965},o($VBn,[2,671]),o([108,129,152,499,544,691,705],$VJo,{413:4754,414:4757,294:4966,107:$VMo}),{108:$VIk,129:$VJk,295:4967,449:3657},o($Vpp,$V0o,{408:4582,293:4968,409:$V3o}),{46:1632,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,140:4494,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6,895:4969,897:4492},o($Vck,[2,2002],{123:$VQn}),o($Vbj,$VRn,{270:442,694:446,140:1172,46:1632,843:1916,191:4532,877:4970,47:$Vg4,50:$Vh4,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,116:$VTn,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6}),o($V4f,[2,2421]),{27:[1,4972],409:$Vrp},{27:[1,4974],764:$Vsp},o($V4f,[2,2444]),{409:$Vrp},{764:$Vsp},o($V2,[2,1253]),{125:4975,279:$VM8,280:$VN8,441:926,817:927},o($V2,[2,1288]),o($Vej,$Vah,{448:2748,131:4976,149:4977,152:$Vbh}),o($V1l,$Vah,{448:2748,131:4978,152:$VCh}),o($V1l,$Vah,{448:2748,131:4979,152:$VCh}),o($V1l,$Vah,{448:2748,131:4980,152:$VCh}),{27:[1,4981],55:$Vtp},o($V1l,$Vah,{448:2748,131:4983,152:$VCh}),{55:$Vtp},o($V1l,$Vah,{448:2748,131:4984,152:$VCh}),{123:[1,4985]},{123:$Vwm},o($V1l,$Vah,{448:2748,131:4986,152:$VCh}),{27:[1,4988],108:$Vup,302:4989,450:4987},o($V2,[2,713]),o($V2,[2,712]),o($V7p,[2,642]),o($V9p,[2,648]),o($V2,[2,711]),o($VNo,[2,658]),o($V2,[2,710]),o($V2,[2,709]),o($V2,[2,708]),o([27,129,277,544,691,705],$VJo,{413:4754,415:4756,414:4757,294:4991,301:4992,107:$VKo}),o($Vvp,$VJo,{413:4754,414:4757,294:4993,107:$VMo}),o($Vvp,$VJo,{413:4754,414:4757,294:4994,107:$VMo}),{27:[1,4996],46:439,47:$Vg4,50:$Vh4,56:4995,58:$Vi4,59:4997,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$Vy6,833:441},o($Vep,[2,786]),o($Vvp,$VJo,{413:4754,414:4757,294:4998,107:$VMo}),{46:1057,47:$Vg4,50:$Vh4,56:4995,58:$Vi4,61:$Vj4,62:$Vk4,64:$Vl4,66:$Vm4,74:$Vn4,78:$Vo4,84:$Vp4,85:$Vq4,86:$Vr4,89:$Vs4,90:$Vt4,92:$Vu4,99:$Vv4,107:$Vw4,127:$Vy4,129:$Vz4,130:$VA4,132:$VB4,134:$VC4,135:$VD4,151:$VE4,153:$VF4,154:$VG4,156:$VH4,174:$VI4,175:$VJ4,176:$VK4,177:$VL4,178:$VM4,180:$VN4,181:$VO4,182:$VP4,198:$VQ4,202:$VR4,205:$VS4,217:$VT4,218:$VU4,219:$VV4,229:$VW4,230:$VX4,231:$VY4,234:$VZ4,236:$V_4,238:$V$4,240:$V05,241:$V15,244:$V25,245:$V35,246:$V45,247:$V55,248:$V65,249:$V75,250:$V85,270:442,277:$V95,318:$Va5,320:$Vb5,321:$Vc5,323:$Vd5,328:$Ve5,329:$Vf5,330:$Vg5,331:$Vh5,333:$Vi5,352:$Vj5,359:$Vk5,373:$Vl5,374:$Vm5,376:$Vn5,382:$Vo5,386:$Vp5,396:$Vq5,397:$Vr5,410:$Vs5,417:$Vt5,418:$Vu5,419:$Vv5,420:$Vw5,421:$Vx5,422:$Vy5,423:$Vz5,424:$VA5,425:$VB5,428:$VC5,439:$VD5,440:$VE5,442:$VF5,443:$VG5,444:$VH5,445:$VI5,446:$VJ5,447:$VK5,460:$VL5,468:$VM5,469:$VN5,473:$VO5,486:$VP5,487:$VQ5,532:$VR5,538:$VS5,539:$VT5,621:$VU5,622:$VV5,626:$VW5,640:$VX5,643:$VY5,657:$VZ5,666:$V_5,674:$V$5,675:$V06,677:$V16,688:$V26,689:$V36,694:446,695:$V46,696:$V56,697:$V66,698:$V76,699:$V86,700:$V96,701:$Va6,702:$Vb6,703:$Vc6,704:$Vd6,705:$Ve6,706:$Vf6,707:$Vg6,708:$Vh6,709:$Vi6,710:$Vj6,711:$Vk6,712:$Vl6,713:$Vm6,714:$Vn6,715:$Vo6,716:$Vp6,717:$Vq6,718:$Vr6,719:$Vs6,720:$Vt6,721:$Vu6,722:$Vv6,723:$Vw6,724:$Vx6,735:$VN6},o($Vvp,$VJo,{413:4754,414:4757,294:4999,107:$VMo}),o($Vvp,$VJo,{413:4754,414:4757,294:5000,107:$VMo}),o($Vvp,$VJo,{413:4754,414:4757,294:5001,107:$VMo}),{279:$VM8,441:5002},o($VTo,[2,689]),o([27,107,108,129,152,208,277,499,544,547,615,646,691,705],[2,683]),o([27,107,108,129,152,208,277,446,499,544,547,615,646,691,705],[2,678]),o([27,107,108,129,152,208,277,351,443,446,499,544,547,615,646,691,705],[2,668]),o([108,129,499,544,691,705],$Vah,{448:2748,131:5003,152:$VCh}),{108:$Vwp,450:4987},o($Vvp,$VJo,{413:4754,414:4757,294:5005,107:$VMo}),o($VHl,[2,2042],{123:$Vpo}),o($V4f,[2,1975],{123:$Vvo}),o($Vxp,[2,2442]),o($V4f,[2,2445]),o($Vxp,[2,2443]),o($V4f,[2,2446]),o($V3e,[2,1252]),o([27,108,129,499,544,691],$V4h,{49:2709,69:5006,52:5007,705:$Vbb}),o($Vyp,$V4h,{49:2709,69:5008,705:$Vrb}),o($Vyp,$V4h,{49:2709,69:5009,705:$Vrb}),o($Vyp,$V4h,{49:2709,69:5010,705:$Vrb}),o($Vyp,$V4h,{49:2709,69:5011,705:$Vrb}),o($VHo,[2,629]),{81:5012,116:$V8j},o($Vyp,$V4h,{49:2709,69:5013,705:$Vrb}),o($Vyp,$V4h,{49:2709,69:5014,705:$Vrb}),{27:$Vxn,71:$Vkl,73:3781,363:4939,364:4423,365:3782,366:3783,367:3784},o($Vyp,$V4h,{49:2709,69:5015,705:$Vrb}),o($V2,[2,704]),o($V2,[2,707]),o($V2,[2,714]),o([27,152,547],$Vzp,{451:5016}),o([27,129,277,544,691],$V4h,{49:2709,69:5017,52:5018,705:$Vbb}),o($V7m,$V4h,{49:2709,69:5019,705:$Vrb}),o($V7m,$V4h,{49:2709,69:5020,705:$Vrb}),o($V7m,$V4h,{49:2709,69:5021,705:$Vrb}),o($Vcp,[2,785]),o($Vep,[2,787]),o($Vep,[2,788]),o($V7m,$V4h,{49:2709,69:5022,705:$Vrb}),o($V7m,$V4h,{49:2709,69:5023,705:$Vrb}),o($V7m,$V4h,{49:2709,69:5024,705:$Vrb}),o($V7m,$V4h,{49:2709,69:5025,705:$Vrb}),o($Vhp,[2,687]),o([108,129,499,544,691],$V4h,{49:2709,69:5026,705:$Vrb}),o($VQ8,$Vzp,{451:5027}),o($V7m,$V4h,{49:2709,69:5028,705:$Vrb}),o([27,108,499,544,691],$VIk,{449:3657,295:5029,129:$VJk}),o($V9o,$VIk,{449:3657,295:5030,129:$VJk}),o($V9o,$VIk,{449:3657,295:5031,129:$VJk}),o($V9o,$VIk,{449:3657,295:5032,129:$VJk}),o($V9o,$VIk,{449:3657,295:5033,129:$VJk}),o($V9o,$VIk,{449:3657,295:5034,129:$VJk}),o($VFo,[2,626],{89:[1,5035]}),o($V9o,$VIk,{449:3657,295:5036,129:$VJk}),o($V9o,$VIk,{449:3657,295:5037,129:$VJk}),o($V9o,$VIk,{449:3657,295:5038,129:$VJk}),{27:[1,5040],152:$Vv,195:5039,197:5041,215:720,509:721,546:280,547:$VR1,553:303},o([27,277,544,691],$VIk,{449:3657,295:5042,129:$VJk}),o($VAp,$VIk,{449:3657,295:5043,129:$VJk}),o($VAp,$VIk,{449:3657,295:5044,129:$VJk}),o($VAp,$VIk,{449:3657,295:5045,129:$VJk}),o($VAp,$VIk,{449:3657,295:5046,129:$VJk}),o($VAp,$VIk,{449:3657,295:5047,129:$VJk}),o($VAp,$VIk,{449:3657,295:5048,129:$VJk}),o($VAp,$VIk,{449:3657,295:5049,129:$VJk}),o($VAp,$VIk,{449:3657,295:5050,129:$VJk}),o([108,499,544,691],$VIk,{449:3657,295:5051,129:$VJk}),{152:$VV6,195:5039,215:809,546:630,547:$V37},o($VAp,$VIk,{449:3657,295:5052,129:$VJk}),o($VBp,$VCp,{296:5053,302:5054,450:5056,27:[1,5055],108:$Vup}),o($V2,$VCp,{450:5056,296:5057,108:$Vwp}),o($V2,$VCp,{450:5056,296:5058,108:$Vwp}),o($V2,$VCp,{450:5056,296:5059,108:$Vwp}),o($V2,$VCp,{450:5056,296:5060,108:$Vwp}),o($V2,$VCp,{450:5056,296:5061,108:$Vwp}),o($VFo,[2,627]),o($V2,$VCp,{450:5056,296:5062,108:$Vwp}),o($V2,$VCp,{450:5056,296:5063,108:$Vwp}),o($V2,$VCp,{450:5056,296:5064,108:$Vwp}),o($VBp,[2,700]),o($V2,[2,701]),o($V2,[2,702]),o($V3e,$VLg,{276:2628,273:5065,277:$VZh}),o($V2,$VLg,{276:2628,273:5066,277:$VZh}),o($V2,$VLg,{276:2628,273:5067,277:$VZh}),o($V2,$VLg,{276:2628,273:5068,277:$VZh}),o($V2,$VLg,{276:2628,273:5069,277:$VZh}),o($V2,$VLg,{276:2628,273:5070,277:$VZh}),o($V2,$VLg,{276:2628,273:5071,277:$VZh}),o($V2,$VLg,{276:2628,273:5072,277:$VZh}),o($V2,$VLg,{276:2628,273:5073,277:$VZh}),o($VBp,$VCp,{296:5053,450:5056,108:$Vwp}),o($V2,$VLg,{276:2628,273:5074,277:$VZh}),o($VBp,[2,411]),o($V2,[2,420]),o($V2,[2,421]),o($VBp,[2,699]),o($V2,[2,419]),o($V2,[2,418]),o($V2,[2,417]),o($V2,[2,416]),o($V2,[2,415]),o($V2,[2,414]),o($V2,[2,413]),o($V2,[2,412]),o($V2,$VDp,{27:[1,5075]}),o($V2,[2,772]),o($V2,[2,771]),o($V2,[2,770]),o($V2,[2,769]),o($V2,[2,768]),o($V2,[2,765]),o($V2,[2,767]),o($V2,[2,766]),o($V2,$VDp),o($V2,[2,773])], +defaultActions: {9:[2,1446],10:[2,1447],11:[2,1448],12:[2,1449],13:[2,1450],14:[2,1451],15:[2,1452],16:[2,1453],17:[2,1454],18:[2,1455],19:[2,1456],20:[2,1457],21:[2,1458],22:[2,1459],23:[2,1460],24:[2,1461],25:[2,1462],26:[2,1463],27:[2,1464],28:[2,1465],29:[2,1466],30:[2,1467],31:[2,1468],32:[2,1469],33:[2,1470],34:[2,1471],35:[2,1472],36:[2,1473],37:[2,1474],38:[2,1475],39:[2,1476],40:[2,1477],41:[2,1478],42:[2,1479],43:[2,1480],44:[2,1481],45:[2,1482],46:[2,1483],47:[2,1484],48:[2,1485],49:[2,1486],50:[2,1487],51:[2,1488],52:[2,1489],53:[2,1490],54:[2,1491],55:[2,1492],56:[2,1493],57:[2,1494],58:[2,1495],59:[2,1496],60:[2,1497],61:[2,1498],62:[2,1499],63:[2,1500],64:[2,1501],65:[2,1502],66:[2,1503],67:[2,1504],68:[2,1505],69:[2,1506],70:[2,1507],71:[2,1508],72:[2,1509],73:[2,1510],74:[2,1511],75:[2,1512],76:[2,1513],77:[2,1514],78:[2,1515],79:[2,1516],80:[2,1517],81:[2,1518],82:[2,1519],83:[2,1520],84:[2,1521],85:[2,1522],86:[2,1523],87:[2,1524],88:[2,1525],89:[2,1526],90:[2,1527],91:[2,1528],92:[2,1529],93:[2,1530],94:[2,1531],95:[2,1532],96:[2,1533],97:[2,1534],99:[2,1536],100:[2,1537],101:[2,1538],103:[2,1540],104:[2,1541],105:[2,1542],106:[2,1543],107:[2,1544],108:[2,1545],109:[2,1546],110:[2,1547],111:[2,1548],112:[2,1549],113:[2,1550],114:[2,1551],115:[2,1552],116:[2,1553],117:[2,1554],118:[2,1555],119:[2,1556],120:[2,1557],121:[2,1558],122:[2,1559],123:[2,1560],124:[2,1561],125:[2,1562],126:[2,1563],127:[2,1564],128:[2,1565],129:[2,1566],130:[2,1567],131:[2,1568],132:[2,1569],133:[2,1570],134:[2,1571],135:[2,1572],136:[2,1573],137:[2,1574],138:[2,1575],139:[2,1576],140:[2,1577],141:[2,1578],142:[2,1579],143:[2,1580],144:[2,1581],145:[2,1582],146:[2,1583],147:[2,1584],148:[2,1585],149:[2,1586],150:[2,1587],151:[2,1588],152:[2,1589],153:[2,1590],154:[2,1591],155:[2,1592],156:[2,1593],157:[2,1594],158:[2,1595],159:[2,1596],160:[2,1597],161:[2,1598],162:[2,1599],163:[2,1600],164:[2,1601],165:[2,1602],166:[2,1603],167:[2,1604],168:[2,1605],169:[2,1606],170:[2,1607],171:[2,1608],172:[2,1609],173:[2,1610],174:[2,1611],175:[2,1612],176:[2,1613],177:[2,1614],178:[2,1615],179:[2,1616],180:[2,1617],181:[2,1618],182:[2,1619],183:[2,1620],184:[2,1621],185:[2,1622],186:[2,1623],187:[2,1624],188:[2,1625],189:[2,1626],190:[2,1627],191:[2,1628],192:[2,1629],193:[2,1630],194:[2,1631],195:[2,1632],196:[2,1633],197:[2,1634],198:[2,1635],199:[2,1636],201:[2,1638],202:[2,1639],203:[2,1640],204:[2,1641],205:[2,1642],206:[2,1643],207:[2,1644],208:[2,1645],209:[2,1646],210:[2,1647],211:[2,1648],212:[2,1649],213:[2,1650],214:[2,1651],215:[2,1652],216:[2,1653],217:[2,1654],218:[2,1655],219:[2,1656],220:[2,1657],221:[2,1658],222:[2,1659],223:[2,1660],224:[2,1661],225:[2,1662],226:[2,1663],227:[2,1664],228:[2,1665],229:[2,1666],230:[2,1667],231:[2,1668],232:[2,1669],233:[2,1670],234:[2,1671],235:[2,1672],236:[2,1673],237:[2,1674],238:[2,1675],239:[2,1676],240:[2,1677],241:[2,1678],242:[2,1679],243:[2,1680],244:[2,1681],245:[2,1682],246:[2,1683],247:[2,1684],248:[2,1685],415:[2,1293],417:[2,1294],1155:[2,2373],1156:[2,2374],1157:[2,2375],1158:[2,2376],1159:[2,2377],1195:[2,2498],1196:[2,2499],1197:[2,2500],1198:[2,2501],1199:[2,2502],1200:[2,2503],1201:[2,2504],1202:[2,2505],1203:[2,2506],1204:[2,2507],1205:[2,2508],1206:[2,2509],1207:[2,2510],1208:[2,2511],1209:[2,2512],1210:[2,2513],1211:[2,2514],2606:[2,937],3197:[2,774],3249:[2,564],3634:[2,938],3652:[2,389],3653:[2,388],3677:[2,743],3678:[2,744],3679:[2,745],3859:[2,934],4307:[2,939],4309:[2,942]}, +parseError: function parseError (str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } +}, +parse: function parse (input) { + var self = this, + stack = [0], + tstack = [], // token stack + vstack = [null], // semantic value stack + lstack = [], // location stack + table = this.table, + yytext = '', + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + + var args = lstack.slice.call(arguments, 1); + + //this.reductionCount = this.shiftCount = 0; + + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + // copy state + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + + var ranges = lexer.options && lexer.options.ranges; + + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + + function popStack (n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + +_token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + // if token isn't its numeric value, convert + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + } + + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + // retreive state number from top of stack + state = stack[stack.length - 1]; + + // use default actions if available + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + // read action for current state and first input + action = table[state] && table[state][symbol]; + } + +_handle_error: + // handle parse error + if (typeof action === 'undefined' || !action.length || !action[0]) { + var error_rule_depth; + var errStr = ''; + + // Return the rule stack depth where the nearest error rule can be found. + // Return FALSE when no error recovery rule was found. + function locateNearestErrorRecoveryRule(state) { + var stack_probe = stack.length - 1; + var depth = 0; + + // try to recover from error + for(;;) { + // check for error recovery rule in this state + if ((TERROR.toString()) in table[state]) { + return depth; + } + if (state === 0 || stack_probe < 2) { + return false; // No suitable error recovery rule available. + } + stack_probe -= 2; // popStack(1): [symbol, action] + state = stack[stack_probe]; + ++depth; + } + } + + if (!recovering) { + // first see if there's any chance at hitting an error recovery rule: + error_rule_depth = locateNearestErrorRecoveryRule(state); + + // Report error + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'"+this.terminals_[p]+"'"); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; + } else { + errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + + (symbol == EOF ? "end of input" : + ("'"+(this.terminals_[symbol] || symbol)+"'")); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), + expected: expected, + recoverable: (error_rule_depth !== false) + }); + } else if (preErrorSymbol !== EOF) { + error_rule_depth = locateNearestErrorRecoveryRule(state); + } + + // just recovered from another error + if (recovering == 3) { + if (symbol === EOF || preErrorSymbol === EOF) { + throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); + } + + // discard current lookahead and grab another + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + symbol = lex(); + } + + // try to recover from error + if (error_rule_depth === false) { + throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); + } + popStack(error_rule_depth); + + preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token + symbol = TERROR; // insert generic error symbol as new lookahead + state = stack[stack.length-1]; + action = table[state] && table[state][TERROR]; + recovering = 3; // allow 3 real symbols to be shifted before reporting a new error + } + + // this shouldn't happen, unless resolve defaults are off + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); + } + + switch (action[0]) { + case 1: // shift + //this.shiftCount++; + + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); // push state + symbol = null; + if (!preErrorSymbol) { // normal execution/no error + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + // error just occurred, resume old lookahead f/ before error + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + + case 2: + // reduce + //this.reductionCount++; + + len = this.productions_[action[1]][1]; + + // perform semantic action + yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 + // default location, uses first token for firsts, last for lasts + yyval._$ = { + first_line: lstack[lstack.length-(len||1)].first_line, + last_line: lstack[lstack.length-1].last_line, + first_column: lstack[lstack.length-(len||1)].first_column, + last_column: lstack[lstack.length-1].last_column + }; + if (ranges) { + yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; + } + r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); + + if (typeof r !== 'undefined') { + return r; + } + + // pop off stack + if (len) { + stack = stack.slice(0,-1*len*2); + vstack = vstack.slice(0, -1*len); + lstack = lstack.slice(0, -1*len); + } + + stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) + vstack.push(yyval.$); + lstack.push(yyval._$); + // goto new state = table[STATE][NONTERMINAL] + newState = table[stack[stack.length-2]][stack[stack.length-1]]; + stack.push(newState); + break; + + case 3: + // accept + return true; + } + + } + + return true; +}}; + + +SqlParseSupport.initSqlParser(parser);/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function(match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex () { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin (condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState () { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules () { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState (n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState (condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {"case-insensitive":true,"flex":true}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0: /* skip whitespace */ +break; +case 1: /* skip comments */ +break; +case 2: /* skip comments */ +break; +case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 27; +break; +case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 811; +break; +case 5: return 561; +break; +case 6: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 44; +break; +case 7: return 150; +break; +case 8: return 347; +break; +case 9: return 108; +break; +case 10: return 235; +break; +case 11: this.begin('between'); return 736; +break; +case 12: return 737; +break; +case 13: return 738; +break; +case 14: return 739; +break; +case 15: return 79; +break; +case 16: return 228; +break; +case 17: return 740; +break; +case 18: return 742; +break; +case 19: return 93; +break; +case 20: return 746; +break; +case 21: return 71; +break; +case 22: parser.determineCase(yy_.yytext); return 266; +break; +case 23: return 571; +break; +case 24: return 751; +break; +case 25: return 752; +break; +case 26: return 610; +break; +case 27: return 753; +break; +case 28: return 754; +break; +case 29: parser.determineCase(yy_.yytext); return 534; +break; +case 30: parser.determineCase(yy_.yytext); return 851; +break; +case 31: return 756; +break; +case 32: return 732; +break; +case 33: return 758; +break; +case 34: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 166; +break; +case 35: return 759; +break; +case 36: return 760; +break; +case 37: parser.yy.correlatedSubQuery = true; return 761; +break; +case 38: return 239; +break; +case 39: return 687; +break; +case 40: return 762; +break; +case 41: return 763; +break; +case 42: return 764; +break; +case 43: return 227; +break; +case 44: return 371; +break; +case 45: parser.determineCase(yy_.yytext); return 535; +break; +case 46: return 568; +break; +case 47: return 206; +break; +case 48: return 596; +break; +case 49: return 620; +break; +case 50: return 765; +break; +case 51: return 766; +break; +case 52: return 769; +break; +case 53: parser.determineCase(yy_.yytext); return 682; +break; +case 54: return 488; +break; +case 55: return 574; +break; +case 56: parser.determineCase(yy_.yytext); return 615; +break; +case 57: return 771; +break; +case 58: return 772; +break; +case 59: return 384; +break; +case 60: return 773; +break; +case 61: return 572; +break; +case 62: return 563; +break; +case 63: return 569; +break; +case 64: return 307; +break; +case 65: return 774; +break; +case 66: return 639; +break; +case 67: return 499; +break; +case 68: return 491; +break; +case 69: return 351; +break; +case 70: return 777; +break; +case 71: return 88; +break; +case 72: return 208; +break; +case 73: return 779; +break; +case 74: return 780; +break; +case 75: return 55; +break; +case 76: return 781; +break; +case 77: return 782; +break; +case 78: return 783; +break; +case 79: return 573; +break; +case 80: return 161; +break; +case 81: return 787; +break; +case 82: return 'PRECISION'; +break; +case 83: return 317; +break; +case 84: return 788; +break; +case 85: return 372; +break; +case 86: return 789; +break; +case 87: return 623; +break; +case 88: return 570; +break; +case 89: return 790; +break; +case 90: return 791; +break; +case 91: return 409; +break; +case 92: return 792; +break; +case 93: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 547; +break; +case 94: return 575; +break; +case 95: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 26; +break; +case 96: return 794; +break; +case 97: return 204; +break; +case 98: return 158; +break; +case 99: return 668; +break; +case 100: return 799; +break; +case 101: return 75; +break; +case 102: return 800; +break; +case 103: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 533; +break; +case 104: return 1005; +break; +case 105: return 801; +break; +case 106: parser.determineCase(yy_.yytext); return 618; +break; +case 107: return 619; +break; +case 108: return 464; +break; +case 109: return 'UTC_TIMESTAMP'; +break; +case 110: return 637; +break; +case 111: return 805; +break; +case 112: return 807; +break; +case 113: return 664; +break; +case 114: return 808; +break; +case 115: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 152; +break; +case 116: parser.determineCase(yy_.yytext); return 538; +break; +case 117: return 66; +break; +case 118: return 622; +break; +case 119: return 174; +break; +case 120: parser.determineCase(yy_.yytext); return 217; +break; +case 121: return 181; +break; +case 122: return 733; +break; +case 123: return 234; +break; +case 124: return 417; +break; +case 125: return 695; +break; +case 126: return 386; +break; +case 127: return 696; +break; +case 128: return 236; +break; +case 129: return 92; +break; +case 130: return 323; +break; +case 131: return 743; +break; +case 132: return 382; +break; +case 133: return 443; +break; +case 134: return 154; +break; +case 135: return 277; +break; +case 136: return 135; +break; +case 137: return 697; +break; +case 138: return 218; +break; +case 139: return 134; +break; +case 140: return 244; +break; +case 141: return 330; +break; +case 142: return 331; +break; +case 143: return 329; +break; +case 144: return 675; +break; +case 145: return 698; +break; +case 146: return 699; +break; +case 147: return 700; +break; +case 148: return 47; +break; +case 149: return 321; +break; +case 150: return 486; +break; +case 151: return 447; +break; +case 152: return 428; +break; +case 153: return 238; +break; +case 154: return 755; +break; +case 155: return 247; +break; +case 156: this.begin('hdfs'); return 640; +break; +case 157: return 177; +break; +case 158: return 757; +break; +case 159: return 396; +break; +case 160: return 701; +break; +case 161: return 176; +break; +case 162: return 442; +break; +case 163: return 156; +break; +case 164: parser.determineCase(yy_.yytext); return 231; +break; +case 165: parser.determineCase(yy_.yytext); return 688; +break; +case 166: return 248; +break; +case 167: return 439; +break; +case 168: return 468; +break; +case 169: return 127; +break; +case 170: return 175; +break; +case 171: return 410; +break; +case 172: return 233; +break; +case 173: return 702; +break; +case 174: return 703; +break; +case 175: return 487; +break; +case 176: return 54; +break; +case 177: return 770; +break; +case 178: this.begin('hdfs'); return 677; +break; +case 179: return 418; +break; +case 180: return 444; +break; +case 181: return 469; +break; +case 182: return 245; +break; +case 183: return 420; +break; +case 184: return 318; +break; +case 185: return 445; +break; +case 186: return 704; +break; +case 187: return 446; +break; +case 188: return 328; +break; +case 189: parser.determineCase(yy_.yytext); return 674; +break; +case 190: this.begin('hdfs'); return 705; +break; +case 191: return 616; +break; +case 192: return 240; +break; +case 193: return 666; +break; +case 194: return 61; +break; +case 195: return 657; +break; +case 196: return 229; +break; +case 197: return 706; +break; +case 198: return 707; +break; +case 199: return 198; +break; +case 200: return 178; +break; +case 201: return 374; +break; +case 202: return 230; +break; +case 203: return 333; +break; +case 204: return 180; +break; +case 205: return 246; +break; +case 206: return 249; +break; +case 207: return 621; +break; +case 208: return 421; +break; +case 209: return 419; +break; +case 210: return 784; +break; +case 211: return 153; +break; +case 212: this.begin('hdfs'); return 643; +break; +case 213: return 50; +break; +case 214: return 422; +break; +case 215: return 376; +break; +case 216: return 85; +break; +case 217: return 708; +break; +case 218: return 626; +break; +case 219: return 532; +break; +case 220: return 709; +break; +case 221: return 423; +break; +case 222: return 58; +break; +case 223: return 84; +break; +case 224: parser.determineCase(yy_.yytext); return 205; +break; +case 225: return 373; +break; +case 226: return 74; +break; +case 227: return 202; +break; +case 228: return 99; +break; +case 229: return 689; +break; +case 230: return 710; +break; +case 231: return 64; +break; +case 232: return 473; +break; +case 233: return 711; +break; +case 234: return 793; +break; +case 235: return 712; +break; +case 236: return 713; +break; +case 237: return 424; +break; +case 238: return 130; +break; +case 239: return 132; +break; +case 240: return 714; +break; +case 241: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 715; +break; +case 242: return 617; +break; +case 243: return 90; +break; +case 244: return 78; +break; +case 245: return 894; +break; +case 246: return 397; +break; +case 247: return 219; +break; +case 248: return 107; +break; +case 249: return 89; +break; +case 250: return 716; +break; +case 251: return 352; +break; +case 252: return 250; +break; +case 253: return 717; +break; +case 254: return 798; +break; +case 255: return 129; +break; +case 256: return 460; +break; +case 257: return 440; +break; +case 258: return 425; +break; +case 259: return 718; +break; +case 260: return 86; +break; +case 261: return 719; +break; +case 262: return 539; +break; +case 263: return 182; +break; +case 264: return 359; +break; +case 265: return 320; +break; +case 266: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 720; +break; +case 267: return 241; +break; +case 268: return 62; +break; +case 269: return 151; +break; +case 270: return 721; +break; +case 271: return 809; +break; +case 272: return 722; +break; +case 273: return 728; +break; +case 274: return 729; +break; +case 275: return 730; +break; +case 276: this.popState(); return 902; +break; +case 277: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 734; +break; +case 278: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 741; +break; +case 279: yy.lexer.unput('('); yy_.yytext = 'collect_list'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 744; +break; +case 280: yy.lexer.unput('('); yy_.yytext = 'collect_set'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 745; +break; +case 281: yy.lexer.unput('('); yy_.yytext = 'corr'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 747; +break; +case 282: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 748; +break; +case 283: yy.lexer.unput('('); yy_.yytext = 'covar_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 749; +break; +case 284: yy.lexer.unput('('); yy_.yytext = 'covar_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 750; +break; +case 285: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 1011; +break; +case 286: yy.lexer.unput('('); yy_.yytext = 'histogram_numeric'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 768; +break; +case 287: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 775; +break; +case 288: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 776; +break; +case 289: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 778; +break; +case 290: yy.lexer.unput('('); yy_.yytext = 'percentile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 785; +break; +case 291: yy.lexer.unput('('); yy_.yytext = 'percentile_approx'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 786; +break; +case 292: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 795; +break; +case 293: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 796; +break; +case 294: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 797; +break; +case 295: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 803; +break; +case 296: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 804; +break; +case 297: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 806; +break; +case 298: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 731; +break; +case 299: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 731; +break; +case 300: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 731; +break; +case 301: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 731; +break; +case 302: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 731; +break; +case 303: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 731; +break; +case 304: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 731; +break; +case 305: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 731; +break; +case 306: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 731; +break; +case 307: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 731; +break; +case 308: return 385; +break; +case 309: return 385; +break; +case 310: return 802; +break; +case 311: return 723; +break; +case 312: parser.yy.cursorFound = true; return 27; +break; +case 313: parser.yy.cursorFound = true; return 811; +break; +case 314: return 767; +break; +case 315: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 1008; +break; +case 316: this.popState(); return 1009; +break; +case 317: return 691; +break; +case 318: return 150; +break; +case 319: return 781; +break; +case 320: return 126; +break; +case 321: return 348; +break; +case 322: return 349; +break; +case 323: return 381; +break; +case 324: return 381; +break; +case 325: return 381; +break; +case 326: return 381; +break; +case 327: return 381; +break; +case 328: return 727; +break; +case 329: return 726; +break; +case 330: return 732; +break; +case 331: return 732; +break; +case 332: return 732; +break; +case 333: return 732; +break; +case 334: return 732; +break; +case 335: return 732; +break; +case 336: return 123; +break; +case 337: return 728; +break; +case 338: return 358; +break; +case 339: return 544; +break; +case 340: return 810; +break; +case 341: return 725; +break; +case 342: return 116; +break; +case 343: return 118; +break; +case 344: return 729; +break; +case 345: return 730; +break; +case 346: return 724; +break; +case 347: this.begin('backtickedValue'); return 735; +break; +case 348: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { + return 816; + } + return 281; + +break; +case 349: this.popState(); return 735; +break; +case 350: this.begin('singleQuotedValue'); return 279; +break; +case 351: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { + return 816; + } + return 281; + +break; +case 352: this.popState(); return 279; +break; +case 353: this.begin('doubleQuotedValue'); return 280; +break; +case 354: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { + return 816; + } + return 281; + +break; +case 355: this.popState(); return 280; +break; +case 356: return 691; +break; +case 357: /* To prevent console logging of unknown chars */ +break; +case 358: +break; +case 359: +break; +case 360: +break; +case 361: +break; +case 362: +break; +case 363:console.log(yy_.yytext); +break; +} +}, +rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:ALL)/i,/^(?:ALTER)/i,/^(?:AND)/i,/^(?:ARRAY)/i,/^(?:AS)/i,/^(?:AUTHORIZATION)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BINARY)/i,/^(?:BOOLEAN)/i,/^(?:BY)/i,/^(?:CACHE)/i,/^(?:CASE)/i,/^(?:CHAR)/i,/^(?:COLUMN)/i,/^(?:CONF)/i,/^(?:CONSTRAINT)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CUBE)/i,/^(?:CURRENT)/i,/^(?:DATABASE)/i,/^(?:DATE)/i,/^(?:DECIMAL)/i,/^(?:DELETE)/i,/^(?:DESCRIBE)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:ELSE)/i,/^(?:END)/i,/^(?:EXISTS)/i,/^(?:EXTENDED)/i,/^(?:EXTERNAL)/i,/^(?:FALSE)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FOR)/i,/^(?:FOREIGN)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:FUNCTION)/i,/^(?:GRANT)/i,/^(?:GROUP)/i,/^(?:GROUPING)/i,/^(?:HAVING)/i,/^(?:IF)/i,/^(?:IMPORT)/i,/^(?:IN)/i,/^(?:INNER)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTEGER)/i,/^(?:INTO)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:LATERAL)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIMIT)/i,/^(?:LOCAL)/i,/^(?:LIFECYCLE)/i,/^(?:MACRO)/i,/^(?:MAP)/i,/^(?:NONE)/i,/^(?:NOT)/i,/^(?:NULL)/i,/^(?:NULLS)/i,/^(?:OF)/i,/^(?:ON)/i,/^(?:OR)/i,/^(?:ORDER)/i,/^(?:OUT)/i,/^(?:OUTER)/i,/^(?:PARTITION)/i,/^(?:PRECEDING)/i,/^(?:PRECISION)/i,/^(?:PRIMARY)/i,/^(?:RANGE)/i,/^(?:REFERENCES)/i,/^(?:REGEXP)/i,/^(?:REVOKE)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROLLUP)/i,/^(?:ROW)/i,/^(?:ROWS)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SET)/i,/^(?:SMALLINT)/i,/^(?:SYNC)/i,/^(?:TABLE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TO)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UNBOUNDED)/i,/^(?:UNION)/i,/^(?:UPDATE)/i,/^(?:USER)/i,/^(?:USING)/i,/^(?:UTC_TIMESTAMP)/i,/^(?:VALUES)/i,/^(?:VARCHAR)/i,/^(?:VIEWS)/i,/^(?:WHEN)/i,/^(?:WHERE)/i,/^(?:WITH)/i,/^(?:ABORT)/i,/^(?:ADD)/i,/^(?:ADMIN)/i,/^(?:AFTER)/i,/^(?:ANALYZE)/i,/^(?:ARCHIVE)/i,/^(?:ASC)/i,/^(?:AST)/i,/^(?:AVRO)/i,/^(?:BUCKET)/i,/^(?:BUCKETS)/i,/^(?:CASCADE)/i,/^(?:CBO)/i,/^(?:CHANGE)/i,/^(?:CHECK)/i,/^(?:CLUSTER)/i,/^(?:CLUSTERED)/i,/^(?:COLLECTION)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMPACT)/i,/^(?:COMPACTIONS)/i,/^(?:COMPUTE)/i,/^(?:CONCATENATE)/i,/^(?:COST)/i,/^(?:CURRENT_DATE)/i,/^(?:CURRENT_TIMESTAMP)/i,/^(?:CURRENT_USER)/i,/^(?:DATA)/i,/^(?:DATABASES)/i,/^(?:DAY)/i,/^(?:DAYOFWEEK)/i,/^(?:DBPROPERTIES)/i,/^(?:DEFAULT)/i,/^(?:DEFERRED)/i,/^(?:DEFINED)/i,/^(?:DELIMITED)/i,/^(?:DEPENDENCY)/i,/^(?:DESC)/i,/^(?:DETAIL)/i,/^(?:DIRECTORY)/i,/^(?:DISABLE)/i,/^(?:DISTRIBUTE)/i,/^(?:DISTRIBUTED)/i,/^(?:DOUBLE\s+PRECISION)/i,/^(?:ENABLE)/i,/^(?:ESCAPED)/i,/^(?:EXCHANGE)/i,/^(?:EXPLAIN)/i,/^(?:EXPORT)/i,/^(?:EXPRESSION)/i,/^(?:FIELDS)/i,/^(?:FILE)/i,/^(?:FILEFORMAT)/i,/^(?:FIRST)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FUNCTIONS)/i,/^(?:HOUR)/i,/^(?:IDXPROPERTIES)/i,/^(?:INDEX)/i,/^(?:INDEXES)/i,/^(?:INPATH)/i,/^(?:INPUTFORMAT)/i,/^(?:ITEMS)/i,/^(?:JAR)/i,/^(?:JOINCOST)/i,/^(?:JSONFILE)/i,/^(?:KEY)/i,/^(?:KEYS)/i,/^(?:LAST)/i,/^(?:LINES)/i,/^(?:LITERAL)/i,/^(?:LOAD)/i,/^(?:LOCATION)/i,/^(?:LOCK)/i,/^(?:LOCKS)/i,/^(?:MATCHED)/i,/^(?:MATERIALIZED)/i,/^(?:MERGE)/i,/^(?:METADATA)/i,/^(?:MINUTE)/i,/^(?:MONTH)/i,/^(?:MSCK)/i,/^(?:NO_DROP)/i,/^(?:NORELY)/i,/^(?:NOSCAN)/i,/^(?:NOVALIDATE)/i,/^(?:OFFLINE)/i,/^(?:ONLY)/i,/^(?:OPERATOR)/i,/^(?:OPTION)/i,/^(?:ORC)/i,/^(?:OUTPUTFORMAT)/i,/^(?:OVER)/i,/^(?:OVERWRITE)/i,/^(?:OVERWRITE\s+DIRECTORY)/i,/^(?:OWNER)/i,/^(?:PARQUET)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PERCENT)/i,/^(?:PRIVILEGES)/i,/^(?:PURGE)/i,/^(?:QUARTER)/i,/^(?:RCFILE)/i,/^(?:REBUILD)/i,/^(?:RECOVER)/i,/^(?:RELOAD)/i,/^(?:RELY)/i,/^(?:RENAME)/i,/^(?:REPAIR)/i,/^(?:REPLACE)/i,/^(?:REPLICATION)/i,/^(?:RESTRICT)/i,/^(?:REWRITE)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:SCHEMA)/i,/^(?:SCHEMAS)/i,/^(?:SECOND)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SETS)/i,/^(?:SHOW)/i,/^(?:SHOW_DATABASE)/i,/^(?:SKEWED LOCATION)/i,/^(?:SKEWED)/i,/^(?:SORT)/i,/^(?:SORTED)/i,/^(?:STATISTICS)/i,/^(?:STORED)/i,/^(?:STORED\s+AS\s+DIRECTORIES)/i,/^(?:STRING)/i,/^(?:STRUCT)/i,/^(?:SUMMARY)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TEMPORARY)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:TINYINT)/i,/^(?:TOUCH)/i,/^(?:TRANSACTIONAL)/i,/^(?:TRANSACTIONS)/i,/^(?:UNARCHIVE)/i,/^(?:UNIONTYPE)/i,/^(?:UNIQUE)/i,/^(?:USE)/i,/^(?:VECTORIZATION)/i,/^(?:VIEW)/i,/^(?:WAIT)/i,/^(?:WEEK)/i,/^(?:WINDOW)/i,/^(?:YEAR)/i,/^(?:\.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:AND)/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COLLECT_LIST\s*\()/i,/^(?:COLLECT_SET\s*\()/i,/^(?:CORR\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:COVAR_POP\s*\()/i,/^(?:COVAR_SAMP\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:HISTOGRAM_NUMERIC\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENTILE\s*\()/i,/^(?:PERCENTILE_APPROX\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], +conditions: {"hdfs":{"rules":[312,313,314,315,316,317,359],"inclusive":false},"doubleQuotedValue":{"rules":[354,355,362],"inclusive":false},"singleQuotedValue":{"rules":[351,352,361],"inclusive":false},"backtickedValue":{"rules":[348,349,360],"inclusive":false},"between":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,350,353,356,357,358,363],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,350,353,356,357,363],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); +export default hiveAutocompleteParser; diff --git a/src/core/parse/hive/hiveSyntaxParser.js b/src/core/parse/hive/hiveSyntaxParser.js new file mode 100644 index 0000000..eb27037 --- /dev/null +++ b/src/core/parse/hive/hiveSyntaxParser.js @@ -0,0 +1,5812 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +/* parser generated by jison 0.4.18 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +import SqlParseSupport from './sqlParseSupport'; + +var hiveSyntaxParser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[26,44,152,166,198,205,217,231,266,533,534,535,538,542,562,564,566,571,609,626,634,640,645,648,670,675,816],$V1=[2,1194],$V2=[645,648],$V3=[2,1195],$V4=[1,60],$V5=[1,91],$V6=[1,84],$V7=[1,98],$V8=[1,94],$V9=[1,95],$Va=[1,38],$Vb=[1,9],$Vc=[1,96],$Vd=[1,99],$Ve=[1,81],$Vf=[1,102],$Vg=[1,56],$Vh=[1,57],$Vi=[1,101],$Vj=[1,90],$Vk=[1,89],$Vl=[1,58],$Vm=[1,103],$Vn=[1,86],$Vo=[1,87],$Vp=[1,88],$Vq=[1,100],$Vr=[1,80],$Vs=[1,59],$Vt=[26,44,152,166,198,205,217,266,533,534,535,538,542,562,564,566,571,609,626,634,640,670,675,816],$Vu=[1,120],$Vv=[118,499,645,648],$Vw=[2,1811],$Vx=[1,124],$Vy=[1,136],$Vz=[1,179],$VA=[1,237],$VB=[1,140],$VC=[1,246],$VD=[1,219],$VE=[1,287],$VF=[1,255],$VG=[1,150],$VH=[1,250],$VI=[1,265],$VJ=[1,247],$VK=[1,240],$VL=[1,279],$VM=[1,269],$VN=[1,264],$VO=[1,161],$VP=[1,252],$VQ=[1,268],$VR=[1,198],$VS=[1,274],$VT=[1,260],$VU=[1,261],$VV=[1,170],$VW=[1,167],$VX=[1,288],$VY=[1,235],$VZ=[1,165],$V_=[1,192],$V$=[1,139],$V01=[1,152],$V11=[1,199],$V21=[1,190],$V31=[1,187],$V41=[1,225],$V51=[1,229],$V61=[1,154],$V71=[1,282],$V81=[1,224],$V91=[1,251],$Va1=[1,248],$Vb1=[1,153],$Vc1=[1,169],$Vd1=[1,267],$Ve1=[1,221],$Vf1=[1,227],$Vg1=[1,193],$Vh1=[1,155],$Vi1=[1,160],$Vj1=[1,184],$Vk1=[1,217],$Vl1=[1,286],$Vm1=[1,171],$Vn1=[1,208],$Vo1=[1,230],$Vp1=[1,185],$Vq1=[1,195],$Vr1=[1,231],$Vs1=[1,272],$Vt1=[1,137],$Vu1=[1,166],$Vv1=[1,210],$Vw1=[1,284],$Vx1=[1,180],$Vy1=[1,162],$Vz1=[1,214],$VA1=[1,174],$VB1=[1,172],$VC1=[1,173],$VD1=[1,228],$VE1=[1,271],$VF1=[1,283],$VG1=[1,249],$VH1=[1,226],$VI1=[1,239],$VJ1=[1,163],$VK1=[1,158],$VL1=[1,188],$VM1=[1,266],$VN1=[1,200],$VO1=[1,156],$VP1=[1,205],$VQ1=[1,234],$VR1=[1,209],$VS1=[1,233],$VT1=[1,238],$VU1=[1,245],$VV1=[1,259],$VW1=[1,277],$VX1=[1,183],$VY1=[1,196],$VZ1=[1,276],$V_1=[1,191],$V$1=[1,164],$V02=[1,206],$V12=[1,211],$V22=[1,213],$V32=[1,182],$V42=[1,275],$V52=[1,197],$V62=[1,207],$V72=[1,181],$V82=[1,203],$V92=[1,243],$Va2=[1,138],$Vb2=[1,149],$Vc2=[1,281],$Vd2=[1,135],$Ve2=[1,141],$Vf2=[1,142],$Vg2=[1,143],$Vh2=[1,144],$Vi2=[1,145],$Vj2=[1,232],$Vk2=[1,151],$Vl2=[1,242],$Vm2=[1,186],$Vn2=[1,236],$Vo2=[1,220],$Vp2=[1,218],$Vq2=[1,215],$Vr2=[1,175],$Vs2=[1,204],$Vt2=[1,194],$Vu2=[1,253],$Vv2=[1,157],$Vw2=[1,159],$Vx2=[1,168],$Vy2=[1,176],$Vz2=[1,177],$VA2=[1,178],$VB2=[1,189],$VC2=[1,201],$VD2=[1,202],$VE2=[1,212],$VF2=[1,216],$VG2=[1,222],$VH2=[1,223],$VI2=[1,241],$VJ2=[1,244],$VK2=[1,254],$VL2=[1,256],$VM2=[1,257],$VN2=[1,258],$VO2=[1,262],$VP2=[1,263],$VQ2=[1,270],$VR2=[1,273],$VS2=[1,278],$VT2=[1,280],$VU2=[1,285],$VV2=[1,289],$VW2=[1,290],$VX2=[1,146],$VY2=[1,147],$VZ2=[1,134],$V_2=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,691],$V$2=[1,302],$V03=[1,303],$V13=[1,309],$V23=[1,316],$V33=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,681,682,683,684,687,690,691,694,696,697,700,701,703,704,705,706,718,719,726,727,737,738,740,748,749,760,761,762,765,767,768,769,771,775,1002],$V43=[2,1844],$V53=[1,334],$V63=[1,335],$V73=[1,368],$V83=[1,361],$V93=[1,362],$Va3=[1,358],$Vb3=[1,366],$Vc3=[1,367],$Vd3=[1,354],$Ve3=[158,639,674],$Vf3=[1,414],$Vg3=[1,415],$Vh3=[1,429],$Vi3=[2,353],$Vj3=[1,434],$Vk3=[1,435],$Vl3=[26,44,152,166,198,205,217,247,248,249,250,266,533,534,535,538,542,562,564,566,571,609,626,634,640,670,675,816],$Vm3=[118,499,645,648,766],$Vn3=[1,447],$Vo3=[1,448],$Vp3=[1,449],$Vq3=[1,452],$Vr3=[2,931],$Vs3=[1,451],$Vt3=[1,454],$Vu3=[2,1309],$Vv3=[55,75,123,535],$Vw3=[75,123,535,645,648],$Vx3=[2,1674],$Vy3=[1,458],$Vz3=[26,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,317,318,320,321,323,328,329,330,331,333,347,348,349,351,352,358,359,371,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,586,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,684,685,686,688,689,691,692,693,694,695,698,699,707,710,711,712,714,715,716,717,720,722,723,724,727,729,730,731,732,733,734,735,736,741,743,744,746,751,752,753,754,756,758,759,763,764,766,770,773,774,882,890],$VA3=[1,459],$VB3=[1,460],$VC3=[55,75,116,123,535],$VD3=[2,953],$VE3=[26,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,279,280,307,317,318,320,321,323,328,329,330,331,333,347,348,349,351,352,358,359,371,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,586,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,684,685,686,688,689,691,692,693,694,695,698,699,707,710,711,712,714,715,716,717,720,722,723,724,727,729,730,731,732,733,734,735,736,741,743,744,746,751,752,753,754,756,758,759,763,764,766,770,773,774,882,890],$VF3=[2,1204],$VG3=[123,535],$VH3=[2,1612],$VI3=[1,471],$VJ3=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679],$VK3=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,691,727],$VL3=[126,684],$VM3=[2,1873],$VN3=[1,483],$VO3=[562,645,648],$VP3=[116,123,535,562,564],$VQ3=[1,490],$VR3=[1,495],$VS3=[1,501],$VT3=[1,529],$VU3=[1,530],$VV3=[1,504],$VW3=[1,507],$VX3=[1,508],$VY3=[1,491],$VZ3=[1,493],$V_3=[1,519],$V$3=[1,533],$V04=[1,505],$V14=[1,496],$V24=[1,520],$V34=[1,534],$V44=[1,535],$V54=[1,536],$V64=[1,526],$V74=[1,537],$V84=[1,538],$V94=[1,494],$Va4=[1,532],$Vb4=[1,539],$Vc4=[1,506],$Vd4=[1,540],$Ve4=[1,541],$Vf4=[1,542],$Vg4=[1,543],$Vh4=[1,544],$Vi4=[1,545],$Vj4=[1,546],$Vk4=[1,527],$Vl4=[1,531],$Vm4=[1,547],$Vn4=[1,548],$Vo4=[1,549],$Vp4=[1,492],$Vq4=[1,521],$Vr4=[2,2367],$Vs4=[26,47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,239,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,609,618,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,691],$Vt4=[1,562],$Vu4=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,118,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,564,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,681,682,683,684,687,690,691,694,696,697,700,701,703,704,705,706,718,719,726,727,737,738,740,748,749,760,761,762,765,767,768,769,771,775,1002],$Vv4=[2,213],$Vw4=[2,1638],$Vx4=[1,571],$Vy4=[2,1645],$Vz4=[1,583],$VA4=[1,585],$VB4=[1,586],$VC4=[1,587],$VD4=[1,588],$VE4=[2,1635],$VF4=[1,600],$VG4=[2,221],$VH4=[64,178,180],$VI4=[158,639],$VJ4=[1,636],$VK4=[1,635],$VL4=[55,645,648],$VM4=[279,307,645,648],$VN4=[307,645,648],$VO4=[2,2640],$VP4=[1,659],$VQ4=[1,660],$VR4=[2,1076],$VS4=[1,663],$VT4=[1,667],$VU4=[118,499,562,564,568,645,648,699,714,724,734,736,744,766,773,774,882],$VV4=[118,123,499,562,564,568,645,648,699,714,724,734,736,744,766,773,774,882],$VW4=[1,672],$VX4=[1,673],$VY4=[1,674],$VZ4=[1,675],$V_4=[1,676],$V$4=[1,677],$V05=[1,678],$V15=[1,679],$V25=[47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,562,564,568,569,570,574,589,592,609,618,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,691,699,707,714,722,724,729,733,734,735,736,744,746,753,758,766,773,774,882],$V35=[55,118,123,499,562,564,568,645,648,699,707,714,722,724,729,733,734,735,736,744,746,753,758,766,773,774,882],$V45=[2,2284],$V55=[1,685],$V65=[26,47,50,55,58,61,62,64,66,74,75,78,84,85,86,88,89,90,92,99,107,108,116,118,123,127,129,130,132,134,135,151,152,153,154,156,161,166,174,175,176,177,178,180,181,182,198,202,204,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,586,589,592,609,618,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,691,699,707,714,722,724,727,729,733,734,735,736,744,746,753,758,763,766,773,774,882],$V75=[152,564],$V85=[2,2262],$V95=[123,645,648],$Va5=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,686,688,689,691,692,699,707,712,714,716,717,722,723,724,729,732,733,734,735,736,741,743,744,746,751,752,753,754,756,758,766,773,774,882,890],$Vb5=[2,2137],$Vc5=[1,703],$Vd5=[1,716],$Ve5=[1,714],$Vf5=[1,715],$Vg5=[118,499,562,645,648,699,714,724,736,744,766,774,882],$Vh5=[118,499,562,568,645,648,699,714,724,736,744,766,774,882],$Vi5=[1,762],$Vj5=[1,758],$Vk5=[1,766],$Vl5=[1,772],$Vm5=[1,759],$Vn5=[1,760],$Vo5=[1,761],$Vp5=[1,763],$Vq5=[1,775],$Vr5=[1,768],$Vs5=[1,767],$Vt5=[1,769],$Vu5=[1,764],$Vv5=[1,757],$Vw5=[1,765],$Vx5=[1,774],$Vy5=[1,773],$Vz5=[1,786],$VA5=[1,788],$VB5=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,686,688,689,691,692,699,707,712,714,716,717,722,723,724,729,732,733,734,735,736,741,743,744,746,751,752,753,754,756,758,766,773,774,882,890],$VC5=[1,793],$VD5=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,684,686,688,689,691,692,699,707,712,714,716,717,722,723,724,729,732,733,734,735,736,741,743,744,746,751,752,753,754,756,758,766,773,774,882,890],$VE5=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,686,688,689,691,692,699,707,712,714,716,717,722,723,724,729,732,733,734,735,736,741,743,744,746,747,751,752,753,754,756,758,766,773,774,882,890],$VF5=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,116,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,347,348,349,351,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,684,686,688,689,691,692,693,694,695,698,699,707,710,711,712,714,715,716,717,720,722,723,724,729,730,731,732,733,734,735,736,741,743,744,746,751,752,753,754,756,758,759,764,766,770,773,774,882,890],$VG5=[1,818],$VH5=[118,123,499,535,562,568,645,648,699,714,724,736,744,766,773,774,882],$VI5=[118,123,333,373,374,645,648],$VJ5=[2,468],$VK5=[1,828],$VL5=[1,835],$VM5=[1,836],$VN5=[1,837],$VO5=[1,838],$VP5=[1,839],$VQ5=[1,840],$VR5=[1,841],$VS5=[1,842],$VT5=[1,844],$VU5=[152,645,648],$VV5=[55,78,107,108,118,123,126,129,130,150,152,174,175,277,349,376,382,396,409,419,487,488,499,535,562,564,568,645,648,651,660,665,699,707,714,722,724,729,733,734,735,736,744,746,753,758,766,773,774,882],$VW5=[2,222],$VX5=[1,866],$VY5=[78,107,108,116,129,152,177,277,307,376,382,396,409,499,645,648,660],$VZ5=[645,648,684],$V_5=[2,2645],$V$5=[1,914],$V06=[107,152,564,645,648],$V16=[2,1078],$V26=[1,921],$V36=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,691],$V46=[55,118,123,499,535,562,564,568,645,648,699,707,714,722,724,729,733,734,735,736,744,746,753,758,766,773,774,882],$V56=[2,2138],$V66=[1,962],$V76=[75,535],$V86=[2,981],$V96=[1,969],$Va6=[1,970],$Vb6=[123,152,645,648],$Vc6=[1,976],$Vd6=[118,123,499,562,645,648,736,766,882],$Ve6=[161,645,648,684],$Vf6=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,609,618,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679],$Vg6=[118,499,562,645,648,699,714,736,744,766,774,882],$Vh6=[2,2151],$Vi6=[1,994],$Vj6=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,686,689,691,692,699,707,712,714,716,717,722,723,724,729,733,734,735,736,741,743,744,746,751,753,756,758,766,773,774,882,890],$Vk6=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,686,688,689,691,692,699,707,712,714,716,717,722,723,724,729,733,734,735,736,741,743,744,746,751,753,756,758,766,773,774,882,890],$Vl6=[616,716,717],$Vm6=[1,1027],$Vn6=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,681,683,684,687,690,691,694,696,697,700,701,703,704,705,706,718,719,726,727,737,738,740,748,749,760,761,762,765,767,768,769,771,775,1002],$Vo6=[47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,351,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,464,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,686,688,689,691,692,699,707,712,714,716,717,722,723,724,729,732,733,734,735,736,741,743,744,746,751,752,753,754,756,758,766,773,774,882,890],$Vp6=[47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,409,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,686,688,689,691,692,699,707,712,714,716,717,722,723,724,729,732,733,734,735,736,741,743,744,746,751,752,753,754,756,758,766,773,774,882,890],$Vq6=[645,648,773],$Vr6=[1,1057],$Vs6=[123,535,616,645,648,773],$Vt6=[118,123,126,277],$Vu6=[161,645,648],$Vv6=[2,1715],$Vw6=[1,1076],$Vx6=[1,1073],$Vy6=[1,1072],$Vz6=[1,1075],$VA6=[118,123,373,374,645,648],$VB6=[2,470],$VC6=[1,1079],$VD6=[108,129,152,277,499,564,645,648,660],$VE6=[2,688],$VF6=[1,1090],$VG6=[108,129,152,161,277,499,645,648],$VH6=[1,1100],$VI6=[118,123],$VJ6=[2,872],$VK6=[1,1104],$VL6=[123,532,645,648],$VM6=[2,1628],$VN6=[1,1111],$VO6=[1,1112],$VP6=[2,388],$VQ6=[1,1123],$VR6=[108,129,277],$VS6=[152,564,645,648],$VT6=[2,643],$VU6=[1,1161],$VV6=[118,123,499,562,564,568,645,648,699,707,714,722,724,729,733,734,735,736,744,746,753,758,766,773,774,882],$VW6=[2,2231],$VX6=[1,1167],$VY6=[47,50,55,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,307,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,488,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,682,683,686,688,689,691,692,699,707,712,714,716,717,722,723,724,729,732,733,734,735,736,741,743,744,746,751,752,753,754,756,758,766,773,774,882,890],$VZ6=[118,499,562,645,648,699,714,736,744,766,882],$V_6=[47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,108,118,123,126,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,348,349,352,359,373,374,376,381,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,686,689,691,692,699,707,712,714,716,717,722,723,724,729,733,734,735,736,741,743,744,746,751,753,756,758,766,773,774,882,890],$V$6=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,686,689,691,699,707,712,714,716,717,722,723,724,729,733,734,735,736,741,743,744,746,751,753,756,758,766,773,774,882,890],$V07=[1,1215],$V17=[118,123,744],$V27=[118,744],$V37=[118,123,177,333,373,374,645,648],$V47=[118,123,645,648],$V57=[2,559],$V67=[1,1252],$V77=[1,1253],$V87=[88,118,123,174,175,277,317,320,321,323,373,374,645,648,651,665],$V97=[1,1255],$Va7=[108,129,499,645,648,660],$Vb7=[645,648,651,665],$Vc7=[1,1306],$Vd7=[1,1307],$Ve7=[1,1308],$Vf7=[1,1309],$Vg7=[1,1297],$Vh7=[1,1302],$Vi7=[1,1304],$Vj7=[1,1290],$Vk7=[1,1291],$Vl7=[1,1292],$Vm7=[1,1293],$Vn7=[1,1294],$Vo7=[1,1295],$Vp7=[1,1296],$Vq7=[1,1298],$Vr7=[1,1299],$Vs7=[1,1300],$Vt7=[1,1301],$Vu7=[1,1303],$Vv7=[1,1305],$Vw7=[78,107,108,118,123,129,152,174,175,349,376,382,396,409,499,645,648,651,660,665],$Vx7=[108,129],$Vy7=[107,108,129,277,376,382,396,409,660],$Vz7=[1,1341],$VA7=[1,1343],$VB7=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,694,727],$VC7=[663,756],$VD7=[228,230,645,648],$VE7=[118,499,562,645,648,699,714,736,766,882],$VF7=[1,1364],$VG7=[118,123,152,499,562,645,648,699,714,723,724,736,744,766,774,882],$VH7=[88,118,123,174,175,277,317,320,321,323,645,648,651,665],$VI7=[1,1403],$VJ7=[118,123,174,175,277,645,648,651,665],$VK7=[1,1423],$VL7=[1,1421],$VM7=[1,1422],$VN7=[1,1424],$VO7=[1,1425],$VP7=[88,118,123,174,175,277,317,320,321,323,349,645,648,651,665],$VQ7=[2,1776],$VR7=[1,1427],$VS7=[78,107,108,129,152,277,376,382,409,499,645,648,651,660,665],$VT7=[1,1440],$VU7=[2,693],$VV7=[1,1449],$VW7=[1,1458],$VX7=[1,1459],$VY7=[1,1460],$VZ7=[1,1470],$V_7=[1,1469],$V$7=[107,108,129,152,208,277,351,443,446,499,564,645,648,660],$V08=[230,645,648],$V18=[118,499,562,645,648,736,766],$V28=[1,1498],$V38=[118,123,174,175,645,648,651,665],$V48=[88,118,123,174,175,277,317,320,321,323,333,373,374,645,648,651,665],$V58=[2,465],$V68=[1,1540],$V78=[1,1541],$V88=[1,1565],$V98=[78,107,108,129,152,277,376,382,409,499,645,648,660],$Va8=[108,277,499,645,648],$Vb8=[107,108,129,382,396,409,660],$Vc8=[152,564,616,645,648],$Vd8=[107,108,129,152,208,277,351,446,499,564,645,648,660],$Ve8=[1,1595],$Vf8=[118,499,562,645,648,766],$Vg8=[692,996],$Vh8=[78,107,108,129,152,409,499,645,648,660],$Vi8=[2,1933],$Vj8=[1,1632],$Vk8=[1,1633],$Vl8=[88,118,123,174,175,176,177,277,317,320,321,323,333,373,374,645,648,651,665],$Vm8=[123,349],$Vn8=[78,107,108,129,152,382,409,499,645,648,660],$Vo8=[107,108,129,409,660],$Vp8=[107,108,129,152,208,277,446,499,564,645,648,660],$Vq8=[47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,691],$Vr8=[118,123,499,562,645,648,699,714,736,751,756,766,882],$Vs8=[118,123,499,562,645,648,699,714,736,741,751,756,766,882],$Vt8=[2,1894],$Vu8=[1,1697],$Vv8=[616,645,648],$Vw8=[118,150,385,709,996],$Vx8=[2,2366],$Vy8=[2,631],$Vz8=[1,1722],$VA8=[107,129,277,409,487,488,645,648,660],$VB8=[107,108,129,152,208,277,499,564,645,648,660],$VC8=[118,123,499,562,645,648,736,766],$VD8=[1,1749],$VE8=[118,150],$VF8=[2,2376],$VG8=[1,1756],$VH8=[1,1755],$VI8=[1,1757],$VJ8=[107,108,129,152,409,499,645,648,660],$VK8=[2,637],$VL8=[1,1774],$VM8=[107,108,129,152,277,499,645,648,660],$VN8=[107,129,277,409,488,645,648,660],$VO8=[107,108,129,152,277,499,564,645,648,660],$VP8=[2,2381],$VQ8=[1,1799],$VR8=[721,750],$VS8=[108,129,152,277,499,645,648,660],$VT8=[107,129,277,409,645,648,660],$VU8=[1,1842],$VV8=[499,645,648]; +var parser = {trace: function trace () { }, +yy: {}, +symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"AnalyzeStatement":5,"CreateStatement":6,"DropStatement":7,"AbortStatement":8,"GrantStatement":9,"RevokeStatement":10,"DescribeStatement":11,"SetRoleStatement":12,"SetSpecification":13,"ShowStatement":14,"UseStatement":15,"DataDefinition_EDIT":16,"AlterStatement_EDIT":17,"AnalyzeStatement_EDIT":18,"CreateStatement_EDIT":19,"DropStatement_EDIT":20,"AbortStatement_EDIT":21,"GrantStatement_EDIT":22,"RevokeStatement_EDIT":23,"DescribeStatement_EDIT":24,"SetRoleStatement_EDIT":25,"SET":26,"CURSOR":27,"ShowStatement_EDIT":28,"UseStatement_EDIT":29,"AlterDatabase":30,"AlterIndex":31,"AlterMaterializedView":32,"AlterTable":33,"AlterView":34,"Msck":35,"ReloadFunction":36,"AlterDatabase_EDIT":37,"AlterIndex_EDIT":38,"AlterMaterializedView_EDIT":39,"AlterTable_EDIT":40,"AlterView_EDIT":41,"Msck_EDIT":42,"ReloadFunction_EDIT":43,"ALTER":44,"DatabaseOrSchema":45,"RegularOrBacktickedIdentifier":46,"DBPROPERTIES":47,"ParenthesizedPropertyAssignmentList":48,"HdfsLocation":49,"OWNER":50,"PrincipalSpecification":51,"HdfsLocation_EDIT":52,"PrincipalSpecification_EDIT":53,"INDEX":54,"ON":55,"SchemaQualifiedTableIdentifier":56,"OptionalPartitionSpec":57,"REBUILD":58,"SchemaQualifiedTableIdentifier_EDIT":59,"OptionalPartitionSpec_EDIT":60,"MATERIALIZED":61,"VIEW":62,"EnableOrDisable":63,"REWRITE":64,"AlterTableLeftSide":65,"ADD":66,"OptionalIfNotExists":67,"PartitionSpec":68,"OptionalHdfsLocation":69,"OptionalPartitionSpecs":70,"CONSTRAINT":71,"PrimaryKeySpecification":72,"TableConstraint":73,"RENAME":74,"TO":75,"RegularOrBackTickedSchemaQualifiedName":76,"ClusteredBy":77,"SKEWED":78,"BY":79,"ParenthesizedColumnList":80,"ParenthesizedSkewedValueList":81,"OptionalStoredAsDirectories":82,"ExchangeSpecification":83,"RECOVER":84,"PARTITIONS":85,"TOUCH":86,"ArchiveOrUnArchive":87,"NOT":88,"STORED_AS_DIRECTORIES":89,"SKEWED_LOCATION":90,"ParenthesizedSkewedLocationList":91,"CHANGE":92,"COLUMN":93,"ParenthesizedColumnSpecificationList":94,"OptionalCascadeOrRestrict":95,"DropOperations":96,"OptionalPartitionOperations":97,"AlterTableLeftSide_EDIT":98,"REPLACE":99,"OptionalIfNotExists_EDIT":100,"OptionalPartitionSpecs_EDIT":101,"PartitionSpec_EDIT":102,"PrimaryKeySpecification_EDIT":103,"ForeignKeySpecification_EDIT":104,"ClusteredBy_EDIT":105,"ExchangeSpecification_EDIT":106,"STORED":107,"AS":108,"ParenthesizedSkewedLocationList_EDIT":109,"ParenthesizedColumnList_EDIT":110,"OptionalStoredAsDirectories_EDIT":111,"OptionalPartitionOperations_EDIT":112,"DropOperations_EDIT":113,"AddOrReplace":114,"ParenthesizedStatsList":115,"(":116,"StatsList":117,")":118,"ParenthesizedStatsList_EDIT":119,"StatsList_EDIT":120,"RightParenthesisOrError":121,"StatsAssignment":122,",":123,"StatsAssignment_EDIT":124,"QuotedValue":125,"=":126,"FILEFORMAT":127,"FileFormat":128,"TBLPROPERTIES":129,"SERDE":130,"OptionalWithSerdeproperties":131,"SERDEPROPERTIES":132,"AddReplaceColumns":133,"CONCATENATE":134,"COMPACT":135,"OptionalAndWait":136,"OptionalWithOverwriteTblProperties":137,"NoDropOrOffline":138,"OptionalColumn":139,"ColumnIdentifier":140,"ColumnSpecification":141,"OptionalAfterOrFirst":142,"AddReplaceColumns_EDIT":143,"ColumnSpecification_EDIT":144,"OptionalAfterOrFirst_EDIT":145,"AndWait_EDIT":146,"WithOverwriteTblProperties_EDIT":147,"NoDropOrOffline_EDIT":148,"WithSerdeproperties_EDIT":149,"AND":150,"WAIT":151,"WITH":152,"OVERWRITE":153,"COLUMNS":154,"ParenthesizedColumnSpecificationList_EDIT":155,"EXCHANGE":156,"ExchangePartitionSpec":157,"TABLE":158,"RegularOrBackTickedSchemaQualifiedName_EDIT":159,"ExchangePartitionSpec_EDIT":160,"PARTITION":161,"OneOrMorePartitionSpecLists":162,"PartitionSpecList":163,"OneOrMorePartitionSpecLists_EDIT":164,"PartitionSpecList_EDIT":165,"DROP":166,"OptionalIfExists":167,"OneOrMorePartitionSpecs":168,"OptionalPurge":169,"OneOrMorePartitionSpecs_EDIT":170,"OptionalIfExists_EDIT":171,"ColumnIdentifier_EDIT":172,"AfterOrFirst":173,"AFTER":174,"FIRST":175,"ENABLE":176,"DISABLE":177,"NO_DROP":178,"OptionalCascade":179,"OFFLINE":180,"ARCHIVE":181,"UNARCHIVE":182,"AnyCursor":183,"PartitionSpecWithLocationList":184,"PartitionSpecWithLocation":185,"PartitionSpecWithLocation_EDIT":186,"SkewedLocationList":187,"SkewedLocationList_EDIT":188,"SkewedLocation":189,"SkewedLocation_EDIT":190,"ColumnReference":191,"ColumnReference_EDIT":192,"ColumnReferences":193,"AlterViewLeftSide":194,"QuerySpecification":195,"AlterViewLeftSide_EDIT":196,"QuerySpecification_EDIT":197,"MSCK":198,"OptionalRepair":199,"OptionalAddDropSyncPartitions":200,"AddDropSyncPartitions_EDIT":201,"REPAIR":202,"AddDropOrSync":203,"SYNC":204,"RELOAD":205,"FUNCTION":206,"NullableComment":207,"NULL":208,"SqlStatement":209,"ExplainClause":210,"DataManipulation":211,"SqlStatement_EDIT":212,"ExplainClause_EDIT":213,"DataManipulation_EDIT":214,"CommonTableExpression":215,"SetSpecification_EDIT":216,"ANALYZE":217,"COMPUTE":218,"STATISTICS":219,"OptionalForColumns":220,"OptionalCacheMetadata":221,"OptionalNoscan":222,"ForColumns":223,"CacheMetadata":224,"ForColumns_EDIT":225,"CacheMetadata_EDIT":226,"FOR":227,"CACHE":228,"METADATA":229,"NOSCAN":230,"EXPLAIN":231,"OptionalExplainTypes":232,"FORMATTED":233,"AST":234,"AUTHORIZATION":235,"CBO":236,"OptionalCostOrJoincost":237,"DEPENDENCY":238,"EXTENDED":239,"LOCKS":240,"VECTORIZATION":241,"OptionalOnly":242,"OptionalVectorizationTypes":243,"COST":244,"JOINCOST":245,"ONLY":246,"DETAIL":247,"EXPRESSION":248,"OPERATOR":249,"SUMMARY":250,"DatabaseDefinition":251,"TableDefinition":252,"ViewDefinition":253,"MaterializedViewDefinition":254,"RoleDefinition":255,"FunctionDefinition":256,"IndexDefinition":257,"MacroDefinition":258,"DatabaseDefinition_EDIT":259,"TableDefinition_EDIT":260,"ViewDefinition_EDIT":261,"MaterializedViewDefinition_EDIT":262,"FunctionDefinition_EDIT":263,"IndexDefinition_EDIT":264,"MacroDefinition_EDIT":265,"CREATE":266,"OptionalTemporary":267,"OptionalTransactional":268,"OptionalExternal":269,"RegularIdentifier":270,"DatabaseDefinitionOptionals":271,"OptionalComment":272,"OptionalDbProperties":273,"DatabaseDefinitionOptionals_EDIT":274,"OptionalComment_INVALID":275,"Comment":276,"COMMENT":277,"Comment_INVALID":278,"SINGLE_QUOTE":279,"DOUBLE_QUOTE":280,"VALUE":281,"DbProperties":282,"PropertyAssignmentList":283,"PropertyAssignment":284,"UnsignedValueSpecification":285,"TableDefinitionRightPart":286,"LifeCyclePart":287,"TableDefinitionRightPart_EDIT":288,"TableIdentifierAndOptionalColumnSpecification":289,"OptionalPartitionedBy":290,"OptionalClusteredBy":291,"OptionalSkewedBy":292,"OptionalRowFormat":293,"OptionalStoredAsOrBy":294,"OptionalTblproperties":295,"OptionalAsSelectStatement":296,"TableIdentifierAndOptionalColumnSpecification_EDIT":297,"PartitionedBy_EDIT":298,"SkewedBy_EDIT":299,"RowFormat_EDIT":300,"StoredAsOrBy_EDIT":301,"AsSelectStatement_EDIT":302,"SchemaQualifiedIdentifier":303,"OptionalColumnSpecificationsOrLike":304,"OptionalColumnSpecificationsOrLike_EDIT":305,"SchemaQualifiedIdentifier_EDIT":306,"LIKE":307,"ColumnSpecificationList":308,"TableConstraints":309,"ColumnSpecificationList_EDIT":310,"TableConstraints_EDIT":311,"ColumnDataType":312,"OptionalColumnOptions":313,"ColumnDataType_EDIT":314,"ColumnOptions":315,"ColumnOption":316,"PRIMARY":317,"KEY":318,"ColumnOptionOptionals":319,"UNIQUE":320,"DEFAULT":321,"DefaultValue":322,"CHECK":323,"ValueExpression":324,"OptionalEnableOrDisable":325,"OptionalNovalidate":326,"OptionalRelyOrNorely":327,"LITERAL":328,"CURRENT_USER":329,"CURRENT_DATE":330,"CURRENT_TIMESTAMP":331,"OptionalDisable":332,"NOVALIDATE":333,"PrimitiveType":334,"ArrayType":335,"MapType":336,"StructType":337,"UnionType":338,"ArrayType_INVALID":339,"MapType_INVALID":340,"StructType_INVALID":341,"UnionType_INVALID":342,"ArrayType_EDIT":343,"MapType_EDIT":344,"StructType_EDIT":345,"UnionType_EDIT":346,"ARRAY":347,"<":348,">":349,"GreaterThanOrError":350,"MAP":351,"STRUCT":352,"StructDefinitionList":353,"StructDefinitionList_EDIT":354,"StructDefinition":355,"StructDefinition_EDIT":356,"Commas":357,":":358,"UNIONTYPE":359,"ColumnDataTypeList":360,"ColumnDataTypeList_EDIT":361,"ColumnDataTypeListInner_EDIT":362,"ConstraintList":363,"ConstraintList_EDIT":364,"TableConstraint_EDIT":365,"TableConstraintLeftPart":366,"TableConstraintLeftPart_EDIT":367,"ForeignKeySpecification":368,"PrimaryKey":369,"PrimaryKey_EDIT":370,"FOREIGN":371,"REFERENCES":372,"RELY":373,"NORELY":374,"PartitionedBy":375,"PARTITIONED":376,"OptionalPartitionedOn":377,"PartitionedOn":378,"PartitionedOn_EDIT":379,"LessThanOrEqualTo":380,"COMPARISON_OPERATOR":381,"CLUSTERED":382,"OptionalSortedBy":383,"INTO":384,"UNSIGNED_INTEGER":385,"BUCKETS":386,"OptionalSortedBy_EDIT":387,"OptionalClusteredOrDistributedOn":388,"ClusteredOn":389,"DistributedOn":390,"SortedOn":391,"ClusteredOrDistributedOn_EDIT":392,"ClusteredOn_EDIT":393,"DistributedOn_EDIT":394,"SortedOn_EDIT":395,"DISTRIBUTED":396,"SORTED":397,"ParenthesizedSortList":398,"ParenthesizedSortList_EDIT":399,"SortList":400,"SortList_EDIT":401,"SortIdentifier":402,"SortIdentifier_EDIT":403,"OptionalAscOrDesc":404,"SkewedBy":405,"SkewedValueList":406,"ParenthesizedSimpleValueList":407,"RowFormat":408,"ROW":409,"FORMAT":410,"RowFormatSpec":411,"RowFormatSpec_EDIT":412,"StoredAsOrBy":413,"StoredAs":414,"StoredAs_EDIT":415,"OptionalStoredAs":416,"AVRO":417,"INPUTFORMAT":418,"OUTPUTFORMAT":419,"JSONFILE":420,"ORC":421,"PARQUET":422,"RCFILE":423,"SEQUENCEFILE":424,"TEXTFILE":425,"DelimitedRowFormat":426,"DelimitedRowFormat_EDIT":427,"DELIMITED":428,"OptionalFieldsTerminatedBy":429,"OptionalCollectionItemsTerminatedBy":430,"OptionalMapKeysTerminatedBy":431,"OptionalLinesTerminatedBy":432,"OptionalNullDefinedAs":433,"OptionalFieldsTerminatedBy_EDIT":434,"OptionalCollectionItemsTerminatedBy_EDIT":435,"OptionalMapKeysTerminatedBy_EDIT":436,"OptionalLinesTerminatedBy_EDIT":437,"OptionalNullDefinedAs_EDIT":438,"FIELDS":439,"TERMINATED":440,"SingleQuotedValue":441,"ESCAPED":442,"COLLECTION":443,"ITEMS":444,"KEYS":445,"LINES":446,"DEFINED":447,"WithSerdeproperties":448,"TblProperties":449,"AsSelectStatement":450,"CommitLocations":451,"OptionalDisableRewrite":452,"DisableRewrite_EDIT":453,"OptionalParenthesizedViewColumnList":454,"ParenthesizedViewColumnList_EDIT":455,"TemporaryFunction":456,"OptionalUsing":457,"TemporaryFunction_EDIT":458,"OptionalUsing_EDIT":459,"TEMPORARY":460,"FunctionReference":461,"FunctionReference_EDIT":462,"SingleQuotedValue_EDIT":463,"USING":464,"OneOrMoreFunctionResources":465,"FunctionResource":466,"FunctionResourceType":467,"FILE":468,"JAR":469,"ParenthesizedViewColumnList":470,"ViewColumnList":471,"ViewColumnList_EDIT":472,"ROLE":473,"ExistingTable":474,"ParenthesizedIndexColumnList":475,"IndexType":476,"OptionalWithDeferredRebuild":477,"OptionalIdxProperties":478,"OptionalInTable":479,"ExistingTable_EDIT":480,"ParenthesizedIndexColumnList_EDIT":481,"IndexType_EDIT":482,"OptionalWithDeferredRebuild_EDIT":483,"OptionalInTable_EDIT":484,"QuotedValue_EDIT":485,"DEFERRED":486,"IDXPROPERTIES":487,"IN":488,"IndexColumnList":489,"IndexColumnList_EDIT":490,"MACRO":491,"MacroArguments":492,"MacroArguments_EDIT":493,"ValueExpression_EDIT":494,"MacroArgumentList":495,"MacroArgumentList_EDIT":496,"MacroArgument":497,"MacroArgument_EDIT":498,"LIFECYCLE":499,"DeleteStatement":500,"InsertStatement":501,"MergeStatement":502,"LoadStatement":503,"ImportStatement":504,"ExportStatement":505,"UpdateStatement":506,"DeleteStatement_EDIT":507,"InsertStatement_EDIT":508,"CommonTableExpression_EDIT":509,"MergeStatement_EDIT":510,"LoadStatement_EDIT":511,"ImportStatement_EDIT":512,"ExportStatement_EDIT":513,"UpdateStatement_EDIT":514,"DropDatabaseStatement":515,"DropFunctionStatement":516,"DropRoleStatement":517,"DropTableStatement":518,"DropIndexStatement":519,"DropMacroStatement":520,"DropMaterializedViewStatement":521,"DropViewStatement":522,"TruncateTableStatement":523,"DropDatabaseStatement_EDIT":524,"DropFunctionStatement_EDIT":525,"DropTableStatement_EDIT":526,"DropIndexStatement_EDIT":527,"DropMacroStatement_EDIT":528,"DropMaterializedViewStatement_EDIT":529,"DropViewStatement_EDIT":530,"TruncateTableStatement_EDIT":531,"PURGE":532,"TRUNCATE":533,"DELETE":534,"FROM":535,"OptionalWhereClause":536,"WhereClause_EDIT":537,"ABORT":538,"TRANSACTIONS":539,"TransactionIdList":540,"UnsignedNumericLiteral":541,"GRANT":542,"PrivilegeTypeList":543,"OptionalOnSpecification":544,"PrincipalSpecificationList":545,"OptionalWithGrantOption":546,"UserOrRoleList":547,"OptionalWithAdminOption":548,"PrivilegeTypeList_EDIT":549,"OnSpecification_EDIT":550,"PrincipalSpecificationList_EDIT":551,"WithGrantOption_EDIT":552,"WithAdminOption_EDIT":553,"ObjectSpecification":554,"ObjectSpecification_EDIT":555,"DATABASE":556,"PrivilegeTypeWithOptionalColumn":557,"PrivilegeTypeWithOptionalColumn_EDIT":558,"PrivilegeType":559,"OptionalParenthesizedColumnList":560,"ALL":561,"INSERT":562,"LOCK":563,"SELECT":564,"SHOW_DATABASE":565,"UPDATE":566,"USER":567,"GROUP":568,"OPTION":569,"ADMIN":570,"REVOKE":571,"PrivilegesOrGrantOption":572,"PrivilegesOrGrantOption_EDIT":573,"PRIVILEGES":574,"InsertWithoutQuery":575,"FromClause":576,"Inserts":577,"SelectWithoutTableExpression":578,"OptionalSelectConditions":579,"InsertWithoutQuery_EDIT":580,"Inserts_EDIT":581,"FromClause_EDIT":582,"SelectWithoutTableExpression_EDIT":583,"OptionalSelectConditions_EDIT":584,"OptionalTable":585,"VALUES":586,"InsertValuesList":587,"LOCAL":588,"DIRECTORY":589,"HdfsPath":590,"OptionalInsertRowFormat":591,"OVERWRITE_DIRECTORY":592,"HdfsPath_EDIT":593,"OptionalInsertRowFormat_EDIT":594,"OptionalStoredAs_EDIT":595,"OptionalParenthesizedColumnList_EDIT":596,"GenericInsert":597,"GenericInsert_EDIT":598,"ParenthesizedRowValuesList":599,"RowValuesList":600,"InValueList":601,"OptionalAllOrDistinct":602,"SelectList":603,"SelectList_EDIT":604,"MergeStatementLeftPart":605,"WhenList":606,"MergeStatementLeftPart_EDIT":607,"WhenList_EDIT":608,"MERGE":609,"MergeSource":610,"MergeSource_EDIT":611,"TableSubQueryInner":612,"TableSubQueryInner_EDIT":613,"WhenClause":614,"WhenClause_EDIT":615,"WHEN":616,"OptionalNot":617,"MATCHED":618,"OptionalMatchCondition":619,"THEN":620,"UpdateDeleteOrInsert":621,"MatchCondition_EDIT":622,"UpdateDeleteOrInsert_EDIT":623,"SetClauseList":624,"SetClauseList_EDIT":625,"LOAD":626,"DATA":627,"OptionalLocal":628,"INPATH":629,"OptionalOverwrite":630,"OptionalInputFormat":631,"InputFormat_EDIT":632,"InputFormat":633,"IMPORT":634,"OptionalTableWithPartition":635,"PushHdfsLexerState":636,"TableWithPartition":637,"TableWithPartition_EDIT":638,"EXTERNAL":639,"EXPORT":640,"REPLICATION":641,"SqlSyntax":642,"NewStatement":643,"SqlStatements":644,"EOF":645,"SqlAutocomplete":646,"SqlStatements_EDIT":647,";":648,"NonReservedKeyword":649,"BUCKET":650,"CASCADE":651,"COMPACTIONS":652,"DATABASES":653,"DAY":654,"DAYOFWEEK":655,"DOUBLE_PRECISION":656,"FUNCTIONS":657,"HOUR":658,"LAST":659,"LOCATION":660,"MINUTE":661,"MONTH":662,"PERCENT":663,"QUARTER":664,"RESTRICT":665,"ROLES":666,"SCHEMAS":667,"SECOND":668,"SETS":669,"SHOW":670,"STRING":671,"TABLES":672,"TINYINT":673,"TRANSACTIONAL":674,"USE":675,"WEEK":676,"YEAR":677,"REGULAR_IDENTIFIER":678,"VARIABLE_REFERENCE":679,"NonStartingToken":680,"!":681,"*":682,"-":683,".":684,"[":685,"]":686,"ANALYTIC":687,"ARITHMETIC_OPERATOR":688,"ASC":689,"AVG":690,"BACKTICK":691,"BETWEEN":692,"BIGINT":693,"BINARY":694,"BOOLEAN":695,"CASE":696,"CAST":697,"CHAR":698,"CLUSTER":699,"COLLECT_LIST":700,"COLLECT_SET":701,"CONF":702,"CORR":703,"COUNT":704,"COVAR_POP":705,"COVAR_SAMP":706,"CROSS":707,"CUBE":708,"CURRENT":709,"DATE":710,"DECIMAL":711,"DESC":712,"DISTINCT":713,"DISTRIBUTE":714,"DOUBLE":715,"ELSE":716,"END":717,"EXISTS":718,"FALSE":719,"FLOAT":720,"FOLLOWING":721,"FULL":722,"GROUPING":723,"HAVING":724,"HDFS_START_QUOTE":725,"HISTOGRAM_NUMERIC":726,"IF":727,"INDEXES":728,"INNER":729,"INT":730,"INTEGER":731,"IS":732,"JOIN":733,"LATERAL":734,"LEFT":735,"LIMIT":736,"MAX":737,"MIN":738,"NONE":739,"NTILE":740,"NULLS":741,"OF":742,"OR":743,"ORDER":744,"OUT":745,"OUTER":746,"OVER":747,"PERCENTILE":748,"PERCENTILE_APPROX":749,"PRECEDING":750,"RANGE":751,"REGEXP":752,"RIGHT":753,"RLIKE":754,"ROLLUP":755,"ROWS":756,"SCHEMA":757,"SEMI":758,"SMALLINT":759,"STDDEV_POP":760,"STDDEV_SAMP":761,"SUM":762,"TABLESAMPLE":763,"TIMESTAMP":764,"TRUE":765,"UNION":766,"UNSIGNED_INTEGER_E":767,"VAR_POP":768,"VAR_SAMP":769,"VARCHAR":770,"VARIANCE":771,"VIEWS":772,"WHERE":773,"WINDOW":774,"~":775,"PARTIAL_CURSOR":776,"FromOrIn":777,"IndexOrIndexes":778,"DatabasesOrSchemas":779,"RoleOrUser":780,"PARTIAL_VALUE":781,"DoubleQuotedValue":782,"DoubleQuotedValue_EDIT":783,"OptionalExtended":784,"OptionalExtendedOrFormatted":785,"OptionallyFormattedIndex":786,"OptionallyFormattedIndex_EDIT":787,"OptionalFromDatabase":788,"DatabaseIdentifier":789,"OptionalFromDatabase_EDIT":790,"DatabaseIdentifier_EDIT":791,"OptionalInDatabase":792,"RangePartitionSpec":793,"RangePartitionComparisonOperator":794,"RangePartitionSpec_EDIT":795,"ConfigurationName":796,"PartialBacktickedOrAnyCursor":797,"PartialBacktickedIdentifier":798,"PartialBacktickedOrCursor":799,"PartialBacktickedOrPartialCursor":800,"ColumnList":801,"ColumnList_EDIT":802,"SimpleValueList":803,"PartitionExpression":804,"PartitionExpression_EDIT":805,"LocalOrSchemaQualifiedName":806,"LocalOrSchemaQualifiedName_EDIT":807,"BasicIdentifierChain":808,"BasicIdentifierChain_EDIT":809,"DerivedColumnChain":810,"DerivedColumnChain_EDIT":811,"PartialBacktickedIdentifierOrPartialCursor":812,"RightSquareBracketOrError":813,"OptionalTypeLength":814,"OptionalTypePrecision":815,"DESCRIBE":816,"SelectStatement":817,"OptionalUnions":818,"SelectStatement_EDIT":819,"OptionalUnions_EDIT":820,"TableExpression":821,"Unions":822,"Unions_EDIT":823,"UnionClause":824,"UnionClause_EDIT":825,"TableExpression_EDIT":826,"WithQueries":827,"WithQueries_EDIT":828,"WithQuery":829,"WithQuery_EDIT":830,"OptionalJoins":831,"Joins":832,"Joins_INVALID":833,"TableReferenceList":834,"OptionalLateralViews":835,"TableReferenceList_EDIT":836,"OptionalLateralViews_EDIT":837,"OptionalGroupByClause":838,"OptionalHavingClause":839,"OptionalWindowClause":840,"OptionalOrderByClause":841,"OptionalClusterOrDistributeBy":842,"OptionalLimitClause":843,"GroupByClause_EDIT":844,"HavingClause_EDIT":845,"WindowClause_EDIT":846,"OrderByClause_EDIT":847,"ClusterOrDistributeBy_EDIT":848,"LimitClause_EDIT":849,"WhereClause":850,"GroupByClause":851,"HavingClause":852,"WindowClause":853,"OrderByClause":854,"ClusterOrDistributeBy":855,"LimitClause":856,"SearchCondition":857,"SearchCondition_EDIT":858,"GroupByColumnList":859,"OptionalGroupingSetsCubeOrRollup":860,"GroupByColumnList_EDIT":861,"OptionalGroupingSetsCubeOrRollup_EDIT":862,"GroupingSets":863,"GroupingSets_EDIT":864,"ColumnGroupingSets":865,"ColumnGroupingSets_EDIT":866,"ColumnGroupingSet_EDIT":867,"GroupByColumnListPartTwo_EDIT":868,"OrderByColumnList":869,"OrderByColumnList_EDIT":870,"OrderByIdentifier":871,"OrderByIdentifier_EDIT":872,"OptionalNullsFirstOrLast":873,"NullsFirstOrLast_EDIT":874,"NullsFirstOrLast":875,"ClusterByClause":876,"DistributeByClause":877,"SortByClause":878,"ClusterByClause_EDIT":879,"DistributeByClause_EDIT":880,"SortByClause_EDIT":881,"SORT":882,"SortByList":883,"SortByList_EDIT":884,"SortByIdentifier":885,"SortByIdentifier_EDIT":886,"NonParenthesizedValueExpressionPrimary":887,"TableSubQuery":888,"ValueExpressionList":889,"BETWEEN_AND":890,"LikeRightPart":891,"CaseRightPart":892,"NonParenthesizedValueExpressionPrimary_EDIT":893,"TableSubQuery_EDIT":894,"ValueExpressionInSecondPart_EDIT":895,"LikeRightPart_EDIT":896,"CaseRightPart_EDIT":897,"EndOrError":898,"ValueExpressionList_EDIT":899,"ColumnOrArbitraryFunctionRef":900,"ArbitraryFunctionRightPart":901,"ArbitraryFunctionName":902,"UserDefinedFunction":903,"UnsignedValueSpecification_EDIT":904,"ColumnOrArbitraryFunctionRef_EDIT":905,"ArbitraryFunctionRightPart_EDIT":906,"UserDefinedFunction_EDIT":907,"SignedInteger":908,"+":909,"UnsignedLiteral":910,"UnsignedLiteral_EDIT":911,"GeneralLiteral":912,"GeneralLiteral_EDIT":913,"ExactNumericLiteral":914,"ApproximateNumericLiteral":915,"TruthValue":916,"SelectSpecification":917,"OptionalCorrelationName":918,"SelectSpecification_EDIT":919,"OptionalCorrelationName_EDIT":920,"TableReference":921,"TableReference_EDIT":922,"TablePrimaryOrJoinedTable":923,"TablePrimaryOrJoinedTable_EDIT":924,"TablePrimary":925,"JoinedTable":926,"TablePrimary_EDIT":927,"JoinedTable_EDIT":928,"Joins_EDIT":929,"JoinType":930,"OptionalJoinCondition":931,"Join_EDIT":932,"JoinType_EDIT":933,"JoinCondition_EDIT":934,"UsingColList":935,"TableOrQueryName":936,"OptionalTableSample":937,"DerivedTable":938,"TableOrQueryName_EDIT":939,"OptionalTableSample_EDIT":940,"DerivedTable_EDIT":941,"OptionalOnColumn":942,"OptionalOnColumn_EDIT":943,"PushQueryState":944,"PopQueryState":945,"SubQuery":946,"SubQuery_EDIT":947,"QueryExpression":948,"QueryExpression_EDIT":949,"QueryExpressionBody":950,"QueryExpressionBody_EDIT":951,"NonJoinQueryExpression":952,"NonJoinQueryExpression_EDIT":953,"NonJoinQueryTerm":954,"NonJoinQueryTerm_EDIT":955,"NonJoinQueryPrimary":956,"NonJoinQueryPrimary_EDIT":957,"SimpleTable":958,"SimpleTable_EDIT":959,"LateralView":960,"LateralView_EDIT":961,"AggregateFunction":962,"OptionalOverClause":963,"AnalyticFunction":964,"OverClause":965,"CastFunction":966,"ExtractFunction":967,"AggregateFunction_EDIT":968,"OptionalOverClause_EDIT":969,"AnalyticFunction_EDIT":970,"OverClause_EDIT":971,"CastFunction_EDIT":972,"ExtractFunction_EDIT":973,"ArbitraryFunction":974,"ArbitraryFunction_EDIT":975,"CountFunction":976,"SumFunction":977,"OtherAggregateFunction":978,"CountFunction_EDIT":979,"SumFunction_EDIT":980,"OtherAggregateFunction_EDIT":981,"WindowExpression":982,"WindowExpression_EDIT":983,"OptionalPartitionBy":984,"OptionalOrderByAndWindow":985,"PartitionBy_EDIT":986,"OptionalOrderByAndWindow_EDIT":987,"PartitionBy":988,"OptionalWindowSpec":989,"WindowSpec_EDIT":990,"WindowSpec":991,"RowsOrRange":992,"PopLexerState":993,"OptionalCurrentOrPreceding":994,"OptionalAndFollowing":995,"UNBOUNDED":996,"OptionalCurrentOrPreceding_EDIT":997,"OptionalAndFollowing_EDIT":998,"HDFS_PATH":999,"HDFS_END_QUOTE":1000,"IntegerOrUnbounded":1001,"EXTRACT":1002,"DateField":1003,"OtherAggregateFunction_Type":1004,"FromOrComma":1005,"OptionalOuter":1006,"LateralViewColumnAliases":1007,"LateralViewColumnAliases_EDIT":1008,"SetOption":1009,"SetValue":1010,"ShowColumnsStatement":1011,"ShowCompactionsStatement":1012,"ShowConfStatement":1013,"ShowCreateTableStatement":1014,"ShowCurrentRolesStatement":1015,"ShowDatabasesStatement":1016,"ShowFunctionsStatement":1017,"ShowGrantStatement":1018,"ShowIndexStatement":1019,"ShowLocksStatement":1020,"ShowMaterializedViewsStatement":1021,"ShowPartitionsStatement":1022,"ShowRolesStatement":1023,"ShowRoleStatement":1024,"ShowTablesStatement":1025,"ShowTableStatement":1026,"ShowTblPropertiesStatement":1027,"ShowTransactionsStatement":1028,"ShowViewsStatement":1029,"ShowColumnsStatement_EDIT":1030,"ShowCreateTableStatement_EDIT":1031,"ShowCurrentRolesStatement_EDIT":1032,"ShowDatabasesStatement_EDIT":1033,"ShowGrantStatement_EDIT":1034,"ShowIndexStatement_EDIT":1035,"ShowLocksStatement_EDIT":1036,"ShowMaterializedViewsStatement_EDIT":1037,"ShowPartitionsStatement_EDIT":1038,"ShowRoleStatement_EDIT":1039,"ShowTablesStatement_EDIT":1040,"ShowTableStatement_EDIT":1041,"ShowTblPropertiesStatement_EDIT":1042,"ShowViewsStatement_EDIT":1043,"TableOrView":1044,"OptionalPrincipalName":1045,"OptionalPrincipalName_EDIT":1046,"OptionalInOrFromDatabase":1047,"OptionalLike":1048,"InOrFromDatabase_EDIT":1049,"Like_EDIT":1050,"TargetTable":1051,"OptionalFromJoinedTable":1052,"TargetTable_EDIT":1053,"FromJoinedTable_EDIT":1054,"TableName":1055,"TableName_EDIT":1056,"SetClause":1057,"SetClause_EDIT":1058,"SetTarget":1059,"UpdateSource":1060,"UpdateSource_EDIT":1061,"CaseWhenThenList":1062,"CaseWhenThenList_EDIT":1063,"CaseWhenThenListPartTwo":1064,"CaseWhenThenListPartTwo_EDIT":1065,"$accept":0,"$end":1}, +terminals_: {2:"error",26:"SET",27:"CURSOR",44:"ALTER",47:"DBPROPERTIES",50:"OWNER",54:"INDEX",55:"ON",58:"REBUILD",61:"MATERIALIZED",62:"VIEW",64:"REWRITE",66:"ADD",71:"CONSTRAINT",74:"RENAME",75:"TO",78:"SKEWED",79:"BY",84:"RECOVER",85:"PARTITIONS",86:"TOUCH",88:"NOT",89:"STORED_AS_DIRECTORIES",90:"SKEWED_LOCATION",92:"CHANGE",93:"COLUMN",99:"REPLACE",107:"STORED",108:"AS",116:"(",118:")",123:",",126:"=",127:"FILEFORMAT",129:"TBLPROPERTIES",130:"SERDE",132:"SERDEPROPERTIES",134:"CONCATENATE",135:"COMPACT",150:"AND",151:"WAIT",152:"WITH",153:"OVERWRITE",154:"COLUMNS",156:"EXCHANGE",158:"TABLE",161:"PARTITION",166:"DROP",174:"AFTER",175:"FIRST",176:"ENABLE",177:"DISABLE",178:"NO_DROP",180:"OFFLINE",181:"ARCHIVE",182:"UNARCHIVE",193:"ColumnReferences",198:"MSCK",202:"REPAIR",204:"SYNC",205:"RELOAD",206:"FUNCTION",208:"NULL",216:"SetSpecification_EDIT",217:"ANALYZE",218:"COMPUTE",219:"STATISTICS",227:"FOR",228:"CACHE",229:"METADATA",230:"NOSCAN",231:"EXPLAIN",233:"FORMATTED",234:"AST",235:"AUTHORIZATION",236:"CBO",238:"DEPENDENCY",239:"EXTENDED",240:"LOCKS",241:"VECTORIZATION",244:"COST",245:"JOINCOST",246:"ONLY",247:"DETAIL",248:"EXPRESSION",249:"OPERATOR",250:"SUMMARY",266:"CREATE",277:"COMMENT",279:"SINGLE_QUOTE",280:"DOUBLE_QUOTE",281:"VALUE",307:"LIKE",317:"PRIMARY",318:"KEY",320:"UNIQUE",321:"DEFAULT",323:"CHECK",328:"LITERAL",329:"CURRENT_USER",330:"CURRENT_DATE",331:"CURRENT_TIMESTAMP",333:"NOVALIDATE",347:"ARRAY",348:"<",349:">",351:"MAP",352:"STRUCT",358:":",359:"UNIONTYPE",371:"FOREIGN",372:"REFERENCES",373:"RELY",374:"NORELY",376:"PARTITIONED",381:"COMPARISON_OPERATOR",382:"CLUSTERED",384:"INTO",385:"UNSIGNED_INTEGER",386:"BUCKETS",396:"DISTRIBUTED",397:"SORTED",409:"ROW",410:"FORMAT",417:"AVRO",418:"INPUTFORMAT",419:"OUTPUTFORMAT",420:"JSONFILE",421:"ORC",422:"PARQUET",423:"RCFILE",424:"SEQUENCEFILE",425:"TEXTFILE",428:"DELIMITED",439:"FIELDS",440:"TERMINATED",442:"ESCAPED",443:"COLLECTION",444:"ITEMS",445:"KEYS",446:"LINES",447:"DEFINED",460:"TEMPORARY",464:"USING",468:"FILE",469:"JAR",473:"ROLE",486:"DEFERRED",487:"IDXPROPERTIES",488:"IN",491:"MACRO",499:"LIFECYCLE",532:"PURGE",533:"TRUNCATE",534:"DELETE",535:"FROM",538:"ABORT",539:"TRANSACTIONS",542:"GRANT",556:"DATABASE",561:"ALL",562:"INSERT",563:"LOCK",564:"SELECT",565:"SHOW_DATABASE",566:"UPDATE",567:"USER",568:"GROUP",569:"OPTION",570:"ADMIN",571:"REVOKE",574:"PRIVILEGES",586:"VALUES",588:"LOCAL",589:"DIRECTORY",592:"OVERWRITE_DIRECTORY",595:"OptionalStoredAs_EDIT",600:"RowValuesList",609:"MERGE",616:"WHEN",618:"MATCHED",620:"THEN",626:"LOAD",627:"DATA",629:"INPATH",634:"IMPORT",639:"EXTERNAL",640:"EXPORT",641:"REPLICATION",645:"EOF",648:";",650:"BUCKET",651:"CASCADE",652:"COMPACTIONS",653:"DATABASES",654:"DAY",655:"DAYOFWEEK",656:"DOUBLE_PRECISION",657:"FUNCTIONS",658:"HOUR",659:"LAST",660:"LOCATION",661:"MINUTE",662:"MONTH",663:"PERCENT",664:"QUARTER",665:"RESTRICT",666:"ROLES",667:"SCHEMAS",668:"SECOND",669:"SETS",670:"SHOW",671:"STRING",672:"TABLES",673:"TINYINT",674:"TRANSACTIONAL",675:"USE",676:"WEEK",677:"YEAR",678:"REGULAR_IDENTIFIER",679:"VARIABLE_REFERENCE",681:"!",682:"*",683:"-",684:".",685:"[",686:"]",687:"ANALYTIC",688:"ARITHMETIC_OPERATOR",689:"ASC",690:"AVG",691:"BACKTICK",692:"BETWEEN",693:"BIGINT",694:"BINARY",695:"BOOLEAN",696:"CASE",697:"CAST",698:"CHAR",699:"CLUSTER",700:"COLLECT_LIST",701:"COLLECT_SET",702:"CONF",703:"CORR",704:"COUNT",705:"COVAR_POP",706:"COVAR_SAMP",707:"CROSS",708:"CUBE",709:"CURRENT",710:"DATE",711:"DECIMAL",712:"DESC",713:"DISTINCT",714:"DISTRIBUTE",715:"DOUBLE",716:"ELSE",717:"END",718:"EXISTS",719:"FALSE",720:"FLOAT",721:"FOLLOWING",722:"FULL",723:"GROUPING",724:"HAVING",725:"HDFS_START_QUOTE",726:"HISTOGRAM_NUMERIC",727:"IF",728:"INDEXES",729:"INNER",730:"INT",731:"INTEGER",732:"IS",733:"JOIN",734:"LATERAL",735:"LEFT",736:"LIMIT",737:"MAX",738:"MIN",739:"NONE",740:"NTILE",741:"NULLS",742:"OF",743:"OR",744:"ORDER",745:"OUT",746:"OUTER",747:"OVER",748:"PERCENTILE",749:"PERCENTILE_APPROX",750:"PRECEDING",751:"RANGE",752:"REGEXP",753:"RIGHT",754:"RLIKE",755:"ROLLUP",756:"ROWS",757:"SCHEMA",758:"SEMI",759:"SMALLINT",760:"STDDEV_POP",761:"STDDEV_SAMP",762:"SUM",763:"TABLESAMPLE",764:"TIMESTAMP",765:"TRUE",766:"UNION",767:"UNSIGNED_INTEGER_E",768:"VAR_POP",769:"VAR_SAMP",770:"VARCHAR",771:"VARIANCE",772:"VIEWS",773:"WHERE",774:"WINDOW",775:"~",776:"PARTIAL_CURSOR",781:"PARTIAL_VALUE",816:"DESCRIBE",882:"SORT",890:"BETWEEN_AND",909:"+",996:"UNBOUNDED",999:"HDFS_PATH",1000:"HDFS_END_QUOTE",1002:"EXTRACT"}, +productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,2],[16,1],[16,1],[4,1],[4,1],[4,1],[4,1],[4,1],[4,1],[4,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,1],[17,2],[30,6],[30,5],[30,6],[37,3],[37,4],[37,5],[37,5],[37,6],[37,6],[31,7],[38,4],[38,5],[38,5],[38,6],[38,7],[32,6],[39,3],[39,4],[39,4],[39,5],[39,6],[33,6],[33,5],[33,3],[33,4],[33,2],[33,7],[33,2],[33,3],[33,3],[33,3],[33,3],[33,3],[33,4],[33,4],[33,5],[33,6],[33,2],[33,2],[33,3],[40,1],[40,6],[40,2],[40,4],[40,2],[40,7],[40,2],[40,3],[40,3],[40,3],[40,3],[40,3],[40,4],[40,4],[40,5],[40,6],[40,2],[40,2],[40,3],[40,4],[40,3],[40,3],[40,6],[40,6],[40,7],[40,6],[40,4],[40,5],[40,5],[40,5],[40,3],[40,3],[40,2],[40,2],[40,3],[40,4],[40,5],[40,4],[40,5],[40,3],[40,4],[40,4],[40,3],[40,4],[40,4],[40,4],[40,7],[40,5],[40,8],[40,7],[40,3],[40,3],[40,2],[40,2],[40,2],[40,3],[40,4],[40,4],[40,3],[40,3],[40,3],[40,4],[115,3],[119,3],[117,1],[117,3],[120,1],[120,3],[120,5],[120,3],[122,3],[124,1],[97,3],[97,2],[97,3],[97,4],[97,3],[97,1],[97,1],[97,4],[97,2],[97,6],[112,1],[112,3],[112,6],[112,7],[112,6],[112,5],[112,4],[112,4],[112,2],[112,2],[112,3],[112,2],[112,5],[112,4],[136,0],[136,2],[146,2],[137,0],[137,4],[147,2],[147,3],[133,4],[143,4],[143,5],[83,5],[106,2],[106,3],[106,4],[106,5],[106,5],[106,2],[106,5],[157,4],[157,4],[160,4],[160,4],[162,3],[162,5],[164,3],[164,5],[96,4],[96,3],[113,3],[113,4],[113,5],[113,3],[113,2],[113,2],[65,3],[98,3],[98,3],[114,1],[114,1],[142,0],[142,2],[173,1],[173,1],[145,2],[145,2],[139,0],[139,1],[63,1],[63,1],[138,2],[138,1],[148,3],[87,1],[87,1],[168,1],[168,3],[170,1],[170,3],[170,5],[170,3],[170,3],[170,3],[170,5],[70,0],[70,1],[184,1],[184,2],[101,1],[101,2],[101,2],[101,3],[186,2],[186,2],[185,2],[91,3],[109,3],[187,1],[187,3],[188,1],[188,3],[188,5],[188,3],[189,3],[190,1],[190,1],[190,3],[190,3],[190,3],[82,0],[82,1],[111,2],[111,3],[34,4],[34,3],[41,1],[41,2],[41,3],[41,3],[41,3],[194,3],[196,3],[196,3],[35,5],[42,3],[42,4],[42,4],[42,5],[42,6],[199,0],[199,1],[200,0],[200,2],[201,2],[203,1],[203,1],[203,1],[36,2],[43,2],[207,1],[207,1],[209,2],[209,2],[209,2],[209,1],[209,1],[209,1],[212,1],[212,2],[212,2],[212,2],[212,2],[212,2],[212,2],[212,1],[212,2],[212,1],[212,1],[212,1],[212,1],[5,9],[18,2],[18,3],[18,4],[18,4],[18,5],[18,6],[18,10],[18,10],[18,10],[18,4],[18,9],[18,9],[18,9],[18,9],[18,9],[220,0],[220,1],[223,2],[225,2],[221,0],[221,1],[224,2],[226,2],[222,0],[222,1],[210,2],[213,3],[213,3],[232,0],[232,1],[232,1],[232,3],[232,2],[232,1],[232,1],[232,1],[232,3],[237,0],[237,1],[237,1],[242,0],[242,1],[243,0],[243,1],[243,1],[243,1],[243,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,1],[19,5],[251,5],[259,4],[259,3],[259,5],[259,4],[259,6],[271,3],[274,3],[274,3],[272,0],[272,1],[276,2],[275,1],[278,2],[278,2],[278,3],[278,3],[273,0],[273,1],[282,3],[282,2],[282,2],[48,3],[283,1],[283,3],[284,3],[252,8],[260,7],[260,7],[260,6],[286,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[288,11],[289,2],[297,2],[297,2],[304,0],[304,1],[304,2],[305,1],[305,2],[305,2],[94,3],[94,5],[155,3],[155,5],[155,5],[308,1],[308,3],[310,1],[310,3],[310,3],[310,5],[310,2],[310,4],[310,4],[310,6],[141,4],[144,4],[144,4],[313,0],[313,1],[315,1],[315,2],[316,3],[316,1],[316,2],[316,3],[316,1],[316,3],[316,5],[316,1],[319,3],[322,1],[322,3],[322,3],[322,3],[322,1],[325,0],[325,1],[325,1],[332,0],[332,1],[326,0],[326,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[312,1],[314,1],[314,1],[314,1],[314,1],[335,4],[339,3],[343,4],[343,4],[336,6],[340,3],[344,6],[344,4],[344,6],[344,5],[337,4],[341,3],[345,4],[353,1],[353,3],[354,1],[354,2],[354,3],[354,3],[354,5],[355,4],[356,5],[356,4],[356,4],[356,4],[356,3],[356,3],[338,4],[342,3],[346,4],[360,1],[360,3],[361,1],[361,2],[361,3],[361,3],[361,5],[362,2],[362,2],[362,1],[362,1],[350,1],[350,1],[309,1],[309,1],[309,3],[311,1],[311,3],[311,1],[311,3],[311,3],[363,1],[363,3],[364,1],[364,3],[73,4],[365,4],[365,5],[366,3],[366,6],[366,4],[367,3],[367,3],[72,5],[103,1],[103,2],[103,6],[368,6],[104,2],[104,3],[104,4],[104,5],[104,5],[104,6],[327,0],[327,1],[327,1],[369,2],[370,2],[290,0],[290,1],[375,3],[298,2],[298,3],[298,3],[298,2],[298,2],[298,3],[377,0],[377,1],[378,3],[379,2],[379,3],[380,1],[380,1],[291,0],[291,1],[77,7],[105,2],[105,4],[105,7],[105,5],[105,7],[105,7],[105,4],[388,0],[388,1],[388,2],[392,1],[392,1],[392,2],[392,2],[389,3],[393,2],[393,3],[390,3],[394,2],[394,3],[391,3],[395,2],[395,3],[383,0],[383,3],[387,2],[387,3],[398,3],[399,3],[400,1],[400,3],[401,1],[401,3],[401,3],[401,5],[402,2],[403,3],[403,2],[403,2],[292,0],[292,1],[405,5],[405,6],[299,2],[299,4],[81,3],[406,1],[406,3],[293,0],[293,1],[408,3],[300,2],[300,3],[300,3],[294,0],[294,1],[413,1],[413,3],[301,2],[301,1],[416,0],[416,1],[414,3],[415,3],[128,1],[128,4],[128,1],[128,1],[128,1],[128,1],[128,1],[128,1],[411,1],[411,2],[412,1],[426,6],[427,6],[427,6],[427,6],[427,6],[427,6],[429,0],[429,4],[429,7],[434,2],[434,3],[434,6],[430,0],[430,5],[435,2],[435,3],[435,4],[431,0],[431,5],[436,2],[436,3],[436,4],[432,0],[432,4],[437,2],[437,3],[433,0],[433,4],[438,2],[438,3],[131,0],[131,1],[448,3],[149,2],[149,3],[295,0],[295,1],[449,2],[296,0],[296,1],[450,3],[302,3],[302,3],[451,0],[254,14],[262,3],[262,5],[262,14],[262,13],[262,13],[262,13],[262,13],[262,13],[262,13],[262,14],[452,0],[452,2],[453,2],[253,9],[261,4],[261,10],[261,3],[261,7],[261,8],[261,9],[261,9],[261,9],[256,1],[256,6],[263,1],[263,4],[263,6],[263,7],[456,6],[458,5],[461,1],[462,1],[457,0],[457,2],[459,2],[465,1],[465,3],[466,2],[467,1],[467,1],[467,1],[454,0],[454,1],[470,3],[455,3],[471,2],[471,4],[472,3],[472,5],[472,5],[472,7],[255,3],[257,17],[264,4],[264,5],[264,6],[264,6],[264,7],[264,8],[264,9],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,17],[264,18],[474,1],[480,1],[476,1],[482,1],[477,0],[477,3],[483,2],[483,3],[478,0],[478,2],[479,0],[479,3],[484,2],[484,3],[484,3],[475,3],[481,3],[489,1],[489,3],[490,1],[490,3],[490,3],[490,5],[258,6],[265,5],[265,6],[265,6],[265,6],[492,2],[492,3],[493,3],[495,1],[495,3],[496,1],[496,3],[496,3],[496,5],[497,2],[498,2],[498,2],[287,0],[287,2],[211,1],[211,1],[211,2],[211,1],[211,1],[211,1],[211,1],[211,1],[214,1],[214,1],[214,2],[214,2],[214,1],[214,1],[214,1],[214,1],[214,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,2],[515,5],[524,3],[524,3],[524,4],[524,5],[524,5],[524,6],[516,4],[516,5],[525,4],[525,5],[525,3],[525,4],[525,4],[525,5],[525,4],[517,3],[518,5],[526,3],[526,4],[526,5],[526,5],[526,6],[169,0],[169,1],[519,6],[527,4],[527,3],[527,5],[527,6],[527,6],[520,5],[528,3],[528,5],[528,4],[521,4],[529,3],[529,4],[529,4],[522,4],[530,4],[530,5],[530,3],[530,4],[530,4],[523,4],[531,2],[531,4],[531,4],[531,5],[531,4],[531,5],[500,4],[507,2],[507,3],[507,5],[507,4],[507,4],[8,3],[21,2],[540,1],[540,3],[9,6],[9,5],[9,6],[22,2],[22,3],[22,3],[22,4],[22,5],[22,5],[22,7],[22,6],[22,3],[22,4],[22,4],[22,6],[22,5],[22,5],[22,5],[22,7],[22,6],[544,0],[544,2],[550,2],[550,2],[554,2],[554,2],[554,1],[555,2],[555,2],[555,2],[555,1],[543,1],[543,3],[549,1],[549,3],[549,3],[549,5],[549,3],[549,3],[549,5],[557,2],[558,2],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[559,1],[545,1],[545,3],[551,3],[551,3],[551,5],[51,2],[51,2],[51,2],[53,2],[53,2],[53,2],[547,1],[547,3],[546,0],[546,3],[552,2],[552,3],[548,0],[548,3],[553,2],[553,3],[10,5],[10,8],[10,4],[10,5],[10,7],[10,8],[10,5],[23,2],[23,2],[23,3],[23,4],[23,5],[23,5],[23,3],[23,4],[23,5],[23,5],[23,6],[23,7],[23,8],[23,8],[23,3],[23,4],[23,4],[23,4],[23,5],[23,5],[23,4],[23,5],[23,6],[23,7],[23,7],[23,7],[23,8],[23,8],[23,3],[23,4],[572,1],[572,2],[573,2],[501,1],[501,2],[501,2],[501,3],[508,1],[508,2],[508,2],[508,2],[508,2],[508,1],[508,2],[508,3],[508,2],[508,3],[508,3],[575,7],[575,6],[575,7],[575,5],[575,6],[580,2],[580,4],[580,6],[580,6],[580,6],[580,4],[580,7],[580,7],[580,7],[580,5],[580,5],[580,5],[580,4],[580,6],[580,6],[580,6],[577,1],[577,2],[581,1],[581,2],[581,2],[581,3],[597,3],[598,1],[598,3],[598,2],[598,3],[598,3],[587,1],[587,3],[599,3],[585,0],[585,1],[591,0],[591,3],[594,2],[594,3],[594,3],[578,3],[583,4],[583,3],[583,3],[502,4],[510,1],[510,2],[510,3],[510,3],[510,4],[510,4],[605,9],[607,2],[607,3],[607,3],[607,4],[607,5],[607,6],[607,7],[607,7],[607,8],[607,9],[610,3],[610,1],[611,3],[611,3],[611,1],[606,1],[606,2],[606,3],[608,1],[608,2],[608,2],[608,3],[608,3],[614,6],[615,3],[615,5],[615,4],[615,6],[615,6],[619,0],[619,2],[622,2],[621,3],[621,1],[621,3],[623,2],[623,3],[623,2],[503,11],[511,2],[511,4],[511,6],[511,7],[511,8],[511,9],[511,11],[511,12],[511,11],[511,11],[511,11],[630,0],[630,1],[628,0],[628,1],[631,0],[631,1],[633,4],[632,3],[504,6],[512,3],[512,3],[512,2],[512,6],[512,6],[512,7],[512,7],[512,6],[512,7],[635,0],[635,1],[637,4],[637,3],[638,2],[638,3],[638,4],[638,4],[638,2],[638,3],[638,3],[505,7],[505,12],[513,2],[513,3],[513,3],[513,5],[513,4],[513,7],[513,8],[513,9],[513,7],[513,12],[513,8],[513,13],[513,7],[513,12],[513,12],[642,3],[646,3],[646,3],[643,0],[644,0],[644,1],[644,4],[647,1],[647,4],[647,4],[647,7],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[649,1],[270,1],[270,1],[270,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[680,1],[357,1],[357,2],[183,1],[183,1],[777,1],[777,1],[45,1],[45,1],[778,1],[778,1],[779,1],[779,1],[780,1],[780,1],[441,3],[441,2],[463,2],[782,3],[782,2],[783,2],[125,1],[125,1],[485,1],[485,1],[784,0],[784,1],[785,0],[785,1],[785,1],[269,0],[269,1],[786,2],[786,1],[787,2],[787,2],[788,0],[788,2],[790,2],[179,0],[179,1],[95,0],[95,1],[95,1],[267,0],[267,1],[268,0],[268,1],[167,0],[167,2],[171,2],[67,0],[67,3],[100,2],[100,3],[792,0],[792,2],[792,2],[57,0],[57,1],[60,1],[68,4],[102,4],[793,5],[795,2],[795,3],[795,4],[795,5],[795,5],[795,5],[794,1],[794,1],[794,1],[794,1],[796,1],[796,1],[796,3],[796,3],[797,1],[797,1],[799,1],[799,1],[800,1],[800,1],[798,2],[121,1],[121,1],[560,0],[560,1],[596,1],[80,3],[110,3],[110,3],[801,1],[801,3],[802,1],[802,3],[802,3],[802,3],[802,5],[802,5],[407,3],[803,1],[803,3],[56,1],[56,3],[59,1],[59,3],[59,3],[303,1],[303,3],[306,1],[306,3],[306,3],[789,1],[791,1],[163,1],[163,3],[165,1],[165,3],[165,3],[165,5],[804,3],[804,1],[805,3],[805,3],[805,3],[805,1],[69,0],[69,1],[49,2],[52,2],[46,1],[46,3],[46,2],[76,1],[76,3],[159,1],[159,3],[806,1],[806,2],[807,1],[807,2],[191,1],[191,3],[192,1],[808,1],[808,3],[809,1],[809,3],[809,5],[809,3],[809,3],[809,5],[810,1],[810,3],[811,1],[811,3],[811,5],[811,3],[811,1],[811,3],[811,5],[811,3],[140,1],[140,4],[140,3],[172,4],[172,4],[812,1],[812,1],[813,1],[813,1],[334,1],[334,1],[334,1],[334,2],[334,1],[334,2],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,1],[334,2],[814,0],[814,3],[815,0],[815,3],[815,5],[11,5],[11,4],[11,4],[11,4],[24,4],[24,5],[24,6],[24,5],[24,5],[24,6],[24,5],[24,4],[24,3],[24,4],[24,5],[24,4],[24,5],[195,2],[195,3],[195,5],[197,2],[197,2],[197,4],[197,3],[197,3],[197,1],[197,4],[197,3],[817,3],[817,4],[818,0],[818,1],[820,1],[822,1],[822,2],[823,1],[823,2],[823,2],[823,3],[824,4],[825,3],[825,4],[825,4],[819,3],[819,3],[819,4],[819,4],[819,4],[819,5],[819,6],[819,4],[215,2],[509,2],[827,1],[827,3],[828,1],[828,3],[828,3],[828,5],[829,5],[830,2],[830,5],[830,5],[602,0],[602,1],[602,1],[821,2],[826,2],[826,4],[826,3],[831,0],[831,1],[831,1],[576,3],[582,2],[582,3],[582,3],[579,7],[584,7],[584,7],[584,7],[584,7],[584,7],[584,7],[584,7],[584,8],[584,8],[584,8],[584,8],[584,8],[584,8],[584,8],[536,0],[536,1],[850,2],[537,2],[537,2],[838,0],[838,1],[851,4],[844,4],[844,4],[844,2],[844,4],[860,0],[860,1],[860,2],[860,2],[862,1],[862,2],[863,5],[864,2],[864,5],[865,0],[865,1],[865,3],[865,3],[866,1],[866,3],[866,3],[866,5],[866,3],[867,1],[867,1],[859,1],[859,3],[861,1],[861,2],[861,3],[861,3],[861,3],[861,4],[861,5],[868,1],[868,2],[868,1],[841,0],[841,1],[854,3],[847,3],[847,2],[869,1],[869,3],[870,1],[870,2],[870,3],[870,4],[870,5],[871,3],[872,3],[872,3],[872,3],[404,0],[404,1],[404,1],[873,0],[873,1],[875,2],[875,2],[874,2],[842,0],[842,1],[855,1],[855,1],[855,2],[855,1],[848,1],[848,1],[848,2],[848,2],[848,1],[876,3],[879,2],[879,3],[879,3],[877,3],[880,2],[880,3],[880,3],[878,3],[881,2],[881,3],[883,1],[883,3],[884,1],[884,3],[884,3],[884,5],[885,2],[886,2],[886,2],[843,0],[843,1],[856,2],[856,4],[856,2],[856,4],[849,2],[857,1],[858,1],[324,1],[324,2],[324,2],[324,2],[324,2],[324,4],[324,4],[324,4],[324,6],[324,2],[324,3],[324,3],[324,3],[324,3],[324,3],[324,6],[324,6],[324,5],[324,5],[324,6],[324,5],[324,3],[324,3],[324,3],[324,3],[324,3],[324,2],[324,3],[324,2],[324,3],[494,1],[494,3],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,2],[494,3],[494,4],[494,5],[494,4],[494,4],[494,4],[494,6],[494,6],[494,2],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,4],[494,3],[494,6],[494,6],[494,5],[494,5],[494,6],[494,6],[494,6],[494,6],[494,5],[494,4],[494,5],[494,5],[494,5],[494,5],[494,4],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,3],[494,2],[494,3],[494,2],[494,3],[494,2],[494,3],[494,2],[494,3],[494,3],[494,4],[494,3],[494,3],[494,3],[889,1],[889,3],[899,1],[899,3],[899,3],[899,5],[899,3],[899,5],[899,4],[899,3],[899,2],[899,2],[899,4],[601,1],[601,3],[887,1],[887,1],[887,2],[887,2],[887,1],[887,1],[893,1],[893,1],[893,2],[893,2],[893,1],[900,1],[900,3],[905,1],[908,1],[908,2],[908,2],[285,1],[904,1],[910,1],[910,1],[911,1],[541,1],[541,1],[914,1],[914,2],[914,3],[914,2],[915,2],[915,3],[915,4],[912,1],[912,1],[912,1],[913,1],[913,1],[916,1],[916,1],[617,0],[617,1],[917,2],[917,1],[919,2],[919,3],[919,2],[603,1],[603,3],[604,1],[604,2],[604,3],[604,3],[604,3],[604,4],[604,3],[604,3],[604,4],[604,4],[604,4],[604,5],[604,5],[834,1],[834,3],[836,1],[836,3],[836,3],[836,5],[836,3],[921,1],[922,1],[923,1],[923,1],[924,1],[924,1],[926,2],[928,2],[928,2],[832,3],[832,4],[833,1],[833,2],[932,3],[932,1],[932,3],[932,3],[932,3],[929,1],[929,2],[929,2],[929,3],[930,2],[930,2],[930,3],[930,2],[930,1],[930,3],[930,2],[930,3],[930,3],[930,2],[930,3],[930,2],[930,3],[930,3],[930,2],[933,2],[933,3],[933,3],[933,2],[933,3],[933,3],[933,3],[933,3],[933,2],[933,3],[933,3],[933,3],[933,3],[933,2],[931,0],[931,2],[935,1],[935,3],[934,2],[934,2],[925,3],[925,2],[927,3],[927,3],[927,2],[927,2],[936,1],[939,1],[938,1],[941,1],[937,0],[937,9],[937,5],[937,5],[937,4],[940,4],[940,6],[940,7],[940,10],[940,9],[940,5],[942,0],[942,2],[943,2],[943,2],[944,0],[945,0],[888,3],[888,4],[894,3],[894,3],[612,2],[613,3],[946,1],[947,1],[948,1],[949,1],[950,1],[951,1],[952,1],[953,1],[954,1],[955,1],[956,1],[957,1],[958,1],[959,1],[918,0],[918,1],[918,1],[918,2],[918,2],[920,1],[920,1],[920,2],[920,2],[920,2],[835,0],[835,2],[837,3],[903,2],[903,2],[903,1],[903,1],[907,1],[907,2],[907,1],[907,2],[907,2],[907,2],[907,1],[907,1],[974,2],[974,2],[975,2],[975,2],[902,1],[902,1],[902,1],[902,1],[902,1],[901,2],[901,3],[906,3],[906,4],[906,3],[962,1],[962,1],[962,1],[968,1],[968,1],[968,1],[964,3],[964,4],[970,4],[970,5],[970,4],[963,0],[963,1],[969,1],[965,2],[965,2],[971,2],[982,4],[983,4],[983,4],[983,5],[983,7],[984,0],[984,1],[988,3],[986,2],[986,3],[986,3],[985,0],[985,2],[987,1],[987,3],[987,2],[989,0],[989,1],[991,5],[991,5],[990,2],[990,6],[990,5],[990,5],[990,5],[990,4],[993,0],[636,0],[590,3],[593,5],[593,4],[593,3],[593,3],[593,2],[992,1],[992,1],[994,0],[994,2],[994,2],[997,2],[997,2],[995,0],[995,3],[995,3],[998,2],[998,3],[998,3],[1001,1],[1001,1],[839,0],[839,1],[852,2],[845,2],[845,2],[840,0],[840,1],[853,4],[846,3],[846,4],[966,6],[966,3],[972,6],[972,5],[972,4],[972,6],[972,5],[972,4],[972,6],[972,5],[972,6],[972,5],[976,4],[976,3],[976,5],[979,5],[979,6],[979,5],[967,6],[973,4],[973,5],[973,6],[973,6],[973,6],[973,6],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[1003,1],[978,4],[978,5],[981,5],[981,6],[981,5],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1004,1],[1005,1],[1005,1],[977,5],[977,3],[980,5],[980,6],[980,5],[960,6],[960,5],[960,5],[961,4],[961,5],[961,6],[961,6],[961,5],[961,6],[961,4],[961,2],[1006,0],[1006,1],[1007,2],[1007,4],[1008,2],[1008,4],[13,4],[13,2],[1009,1],[1009,3],[1010,1],[1010,1],[1010,2],[1010,1],[1010,1],[1010,1],[1010,1],[12,3],[12,3],[12,3],[25,3],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[28,2],[28,3],[28,4],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[1011,4],[1011,6],[1030,3],[1030,4],[1030,4],[1030,5],[1030,6],[1030,5],[1030,6],[1030,6],[1012,2],[1013,3],[1014,4],[1031,3],[1031,4],[1031,4],[1031,4],[1044,1],[1044,1],[1015,3],[1032,3],[1016,4],[1033,3],[1017,2],[1017,3],[1018,3],[1018,5],[1018,5],[1018,6],[1034,3],[1034,5],[1034,5],[1034,5],[1034,6],[1034,6],[1034,6],[1045,0],[1045,1],[1046,1],[1046,2],[1019,4],[1019,6],[1035,2],[1035,2],[1035,4],[1035,6],[1035,3],[1035,4],[1035,4],[1035,5],[1035,6],[1035,6],[1035,6],[1021,5],[1037,3],[1037,6],[1037,5],[1037,5],[1020,3],[1020,4],[1020,4],[1020,5],[1020,4],[1036,3],[1036,3],[1036,4],[1036,4],[1036,4],[1036,5],[1036,5],[1036,4],[1022,3],[1022,4],[1038,3],[1038,3],[1038,4],[1038,4],[1024,5],[1039,3],[1039,5],[1039,4],[1039,5],[1023,2],[1026,6],[1026,7],[1041,3],[1041,4],[1041,4],[1041,5],[1041,6],[1041,6],[1041,6],[1041,7],[1041,7],[1041,7],[1041,7],[1041,8],[1025,3],[1025,4],[1025,5],[1040,4],[1027,3],[1027,6],[1042,3],[1042,3],[1028,2],[1029,4],[1043,5],[1043,4],[1043,4],[1047,0],[1047,2],[1047,2],[1049,2],[1049,2],[1048,0],[1048,2],[1050,2],[506,6],[514,6],[514,6],[514,6],[514,6],[514,7],[514,3],[514,2],[514,2],[514,2],[1051,1],[1053,1],[1055,1],[1056,1],[624,1],[624,3],[625,1],[625,3],[625,3],[625,5],[1057,3],[1058,3],[1058,2],[1058,1],[1059,1],[1060,1],[1061,1],[1052,0],[1052,2],[1054,2],[1054,2],[15,2],[29,2],[895,3],[895,3],[895,3],[891,2],[891,2],[891,2],[896,2],[896,2],[896,2],[896,2],[896,2],[896,2],[892,2],[892,4],[897,2],[897,4],[897,4],[897,3],[897,4],[897,3],[897,4],[897,4],[897,3],[897,4],[897,3],[898,1],[898,1],[1062,1],[1062,2],[1063,1],[1063,2],[1063,3],[1063,3],[1063,2],[1064,4],[1065,2],[1065,3],[1065,4],[1065,4],[1065,3],[1065,3],[1065,4],[1065,2],[1065,3],[1065,2],[1065,3],[1065,3],[1065,4],[1065,3],[1065,4],[1065,4],[1065,5],[1065,4],[1065,3]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 22: + + parser.suggestSetOptions(); + parser.suggestKeywords(['ROLE']); + +break; +case 39: + + parser.suggestKeywords(['DATABASE', 'INDEX', 'MATERIALIZED VIEW', 'SCHEMA', 'TABLE', 'VIEW']); + +break; +case 40: case 42: + + parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); + +break; +case 41: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + +break; +case 43: case 938: case 1702: case 2539: case 2581: case 2600: case 2643: case 2644: case 2680: + + parser.suggestDatabases(); + +break; +case 44: + + parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); + parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); + +break; +case 45: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); + +break; +case 46: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + +break; +case 47: + + parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + +break; +case 48: + + parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); + +break; +case 49: case 55: case 1133: case 1142: case 1143: case 1144: case 1786: case 2591: + + parser.addTablePrimary($$[$0-2]); + +break; +case 50: case 127: case 576: case 598: case 601: case 604: case 627: case 877: case 1089: case 2559: case 2576: case 2578: + + parser.suggestKeywords(['ON']); + +break; +case 51: case 190: case 427: case 556: case 758: case 785: case 878: case 896: case 903: case 939: case 1139: case 1168: case 1171: case 1177: case 1693: case 2657: case 2677: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 53: case 278: case 282: case 319: case 552: case 558: case 866: case 894: case 899: case 900: case 901: case 906: case 1170: case 1180: case 1782: case 2589: case 2590: case 2602: + + parser.addTablePrimary($$[$0-1]); + +break; +case 54: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PARTITION', 'REBUILD']); + } else { + parser.suggestKeywords(['REBUILD']); + } + +break; +case 56: case 703: case 885: case 2472: + + parser.suggestKeywords(['VIEW']); + +break; +case 57: case 277: case 886: + + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 58: case 276: case 281: case 887: case 893: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + +break; +case 59: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['DISABLE REWRITE', 'ENABLE REWRITE']); + +break; +case 60: + + parser.addTablePrimary($$[$0-2]); + parser.suggestKeywords(['REWRITE']); + +break; +case 99: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); + } else { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 100: case 136: case 334: + + parser.suggestKeywords(['COLUMNS']); + +break; +case 104: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['LOCATION', 'PARTITION']); + } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { + var keywords = parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2); + keywords.push({ value: 'PARTITION', weight: 1 }); + parser.suggestKeywords(keywords); + } else { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 107: + + parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'PRIMARY KEY', 'UNIQUE']); + +break; +case 110: case 118: case 130: case 187: case 233: case 234: case 235: case 2626: + + parser.suggestKeywords(['PARTITION']); + +break; +case 114: + + parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); + +break; +case 115: case 266: + + parser.suggestKeywords(['AS DIRECTORIES']); + +break; +case 116: case 267: + + parser.suggestKeywords(['DIRECTORIES']); + +break; +case 117: + + parser.suggestKeywords(['TO PARTITION']); + +break; +case 119: case 288: + + parser.suggestKeywords(['PARTITIONS']); + +break; +case 120: + + parser.suggestKeywords(['LOCATION']); + +break; +case 122: case 567: case 568: case 571: case 583: case 608: case 626: case 668: case 669: case 674: case 679: case 683: case 2348: + + parser.suggestKeywords(['BY']); + +break; +case 123: case 918: case 923: case 927: case 966: case 967: case 968: case 996: case 1004: case 1007: case 1010: case 1015: case 1018: + + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + +break; +case 128: + + if (!$$[$0-1]) { + parser.suggestKeywords(['STORED AS DIRECTORIES']); + } + +break; +case 134: + + parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', + 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', + 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', + 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', + 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); + +break; +case 135: + + parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', + 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', + 'SET SERDE', 'SET SERDEPROPERTIES']); + +break; +case 137: + + parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); + +break; +case 138: + + parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); + +break; +case 140: case 922: + + parser.suggestKeywords(['TO']); + +break; +case 141: case 1698: + + parser.suggestDatabases({ appendDot: true }); + +break; +case 151: + + parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); + +break; +case 161: case 164: case 166: + + parser.addColumnLocation($$[$0-3].location, [ $$[$0-3].identifier ]); + +break; +case 163: + + if (!$$[$0-1]) { + parser.suggestKeywords(['COLUMN']); + } + parser.suggestColumns(); + +break; +case 165: + + if (!$$[$0-2] && !$$[$0-1]) { + if ($$[$0-3].suggestKeywords) { + var keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); + keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); + parser.suggestKeywords(keywords); + } else { + parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); + } + } else if ($$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + parser.addColumnLocation($$[$0-4].location, [ $$[$0-4].identifier ]); + +break; +case 167: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); + } + +break; +case 170: + + parser.suggestKeywords(['NO_DROP', 'OFFLINE']); + +break; +case 172: case 646: + + parser.suggestFileFormats(); + +break; +case 174: + + if (!$$[$0-1]) { + parser.suggestKeywords(['WITH SERDEPROPERTIES']); + } + +break; +case 178: + + parser.suggestKeywords(['WAIT']); + +break; +case 181: + + parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); + +break; +case 182: case 272: + + parser.suggestKeywords(['TBLPROPERTIES']); + +break; +case 185: + + if (!$$[$0-1]) { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + +break; +case 188: + + parser.suggestKeywords(['WITH TABLE']); + +break; +case 189: case 316: case 757: case 784: case 895: case 1167: case 1176: case 2543: case 2564: + + parser.suggestKeywords(['TABLE']); + +break; +case 204: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); + } else { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 206: + + if (!$$[$0-1]) { + parser.suggestKeywords(['PURGE']); + } + +break; +case 210: case 275: case 772: case 874: case 884: case 888: case 892: case 936: case 937: case 1106: case 1173: case 2542: case 2588: case 2601: case 2631: case 2660: + + parser.addTablePrimary($$[$0]); + +break; +case 211: case 318: case 869: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + +break; +case 212: case 280: case 317: + + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 219: case 259: case 261: case 621: case 788: case 1679: case 1683: case 1687: case 1713: case 1714: case 1747: case 1750: case 1903: case 1971: case 2671: + + parser.suggestColumns(); + +break; +case 227: + + if (!$$[$0-1]) { + parser.suggestKeywords(['CASCADE']); + } + +break; +case 242: case 451: case 453: case 454: case 456: case 457: case 1125: case 1832: case 1875: case 1906: case 1919: case 1923: case 1960: case 1964: case 1984: case 2009: case 2010: case 2091: case 2093: case 2157: case 2167: case 2174: case 2186: case 2347: case 2676: case 2714: case 2715: +this.$ = $$[$0]; +break; +case 249: + + if (!$$[$0]) { + this.$ = { suggestKeywords: ['LOCATION'] }; + } + +break; +case 271: + + parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); + +break; +case 273: case 699: case 722: case 1107: case 1842: case 2267: + + parser.suggestKeywords(['SELECT']); + +break; +case 279: + + if (!$$[$0-1]) { + parser.suggestKeywords(['TABLE', 'REPAIR TABLE']); + } else { + parser.suggestKeywords(['TABLE']); + } + +break; +case 283: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['ADD PARTITIONS', 'DROP PARTITIONS', 'SYNC PARTITIONS']); + } + +break; +case 293: + + parser.suggestKeywords(['FUNCTION']); + +break; +case 309: + + parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); + +break; +case 310: + + parser.suggestKeywords(['INSERT', 'SELECT']); + +break; +case 315: + + parser.addTablePrimary($$[$0-6]); + +break; +case 320: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); + } else { + parser.suggestKeywords(['COMPUTE STATISTICS']); + } + +break; +case 321: + + parser.addTablePrimary($$[$0-3]); + parser.suggestKeywords(['STATISTICS']); + +break; +case 322: + + parser.addTablePrimary($$[$0-7]); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); + +break; +case 323: + + parser.addTablePrimary($$[$0-7]); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); + +break; +case 324: + + parser.addTablePrimary($$[$0-7]); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'NOSCAN', weight: 1 }])); + +break; +case 325: + + parser.suggestKeywords(['TABLE']); + parser.addTablePrimary($$[$0-1]); + +break; +case 326: + + parser.suggestKeywords(['TABLE']); + parser.addTablePrimary($$[$0-6]); + +break; +case 338: + + parser.suggestKeywords(['METADATA']); + +break; +case 342: + + if (!$$[$0-1]) { + parser.suggestDdlAndDmlKeywords([ + { value: 'AST', weight: 2 }, + { value: 'AUTHORIZATION', weight: 2 }, + { value: 'CBO', weight: 2 }, + { value: 'DEPENDENCY', weight: 2 }, + { value: 'EXTENDED', weight: 2 }, + { value: 'FORMATTED CBO', weight: 2 }, + { value: 'LOCKS', weight: 2 }, + { value: 'VECTORIZATION', weight: 2 } + ]); + } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { + parser.suggestDdlAndDmlKeywords($$[$0-1].suggestKeywords); + } else { + parser.suggestDdlAndDmlKeywords(); + } + +break; +case 343: + + parser.suggestKeywords(['CBO']); + +break; +case 347: case 348: + + if (!$$[$0]) { + this.$ = { suggestKeywords: ['COST', 'JOINCOST'] }; + } + +break; +case 352: + + var keywords = []; + if (!$$[$0]) { + keywords = keywords.concat([ + { weight: 1, value: 'DETAIL' }, + { weight: 1, value: 'EXPRESSION' }, + { weight: 1, value: 'OPERATOR' }, + { weight: 1, value: 'SUMMARY' } + ]); + } + if (!$$[$0-1]) { + keywords.push({ weight: 2, value: 'ONLY' }); + } + if (keywords.length) { + this.$ = { suggestKeywords: keywords }; + } + +break; +case 378: + + if ($$[$0-1]) { + parser.suggestKeywords(['TABLE']); + } else { + if ($$[$0-3] && !$$[$0-2]) { + parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); + } else if (!$$[$0-3] && !$$[$0-2]) { + parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'TRANSACTIONAL TABLE', 'VIEW']); + } else if ($$[$0-2]) { + parser.suggestKeywords(['TABLE']); + } + } + +break; +case 379: + + parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); + +break; +case 380: case 407: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 382: + + if (!$$[$0-2]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 383: + + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 384: + + parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); + +break; +case 385: + + var keywords = []; + if (!$$[$0]) { + keywords.push('WITH DBPROPERTIES'); + } + if (!$$[$0-1] && !$$[$0]) { + keywords.push('LOCATION'); + } + if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + +break; +case 400: + + parser.suggestKeywords(['DBPROPERTIES']); + +break; +case 419: + + var keywords = []; + if (!$$[$0-10] && !$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'COMMENT', weight: 10 }); + } + if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'PARTITIONED BY', weight: 9 }); + } + if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'CLUSTERED BY', weight: 8 }); + } + if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'SKEWED BY', weight: 7 }); + } else if ($$[$0-6] && $$[$0-6].suggestKeywords && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 7)); // Get the last optional from SKEWED BY + } + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'ROW FORMAT', weight: 6 }); + } else if ($$[$0-5] && $$[$0-5].suggestKeywords && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 6)); + } + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'STORED AS', weight: 5 }); + keywords.push({ value: 'STORED BY', weight: 5 }); + } else if ($$[$0-4] && $$[$0-4].storedBy && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 4 }); + } + if (!$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'LOCATION', weight: 3 }); + } + if (!$$[$0-1]) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + parser.suggestKeywords(keywords); + +break; +case 420: + + parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); + this.$ = $$[$0]; + +break; +case 425: +this.$ = []; +break; +case 429: case 750: case 752: case 1105: case 1602: case 1605: case 1720: case 1798: case 1991: case 2170: case 2264: case 2322: +this.$ = $$[$0-1]; +break; +case 430: case 751: case 753: +this.$ = $$[$0-3]; +break; +case 433: + + parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); + +break; +case 434: case 1834: +this.$ = [$$[$0]]; +break; +case 435: +this.$ = $$[$0-2].concat($$[$0]); +break; +case 440: case 442: case 619: + + parser.checkForKeywords($$[$0-1]); + +break; +case 441: case 443: + + parser.checkForKeywords($$[$0-3]); + +break; +case 444: + + this.$ = $$[$0-3]; + this.$.type = $$[$0-2]; + var keywords = []; + if (!$$[$0]) { + keywords = keywords.concat([ + { value: 'COMMENT', weight: 1 }, + { value: 'CHECK', weight: 2 }, + { value: 'PRIMARY KEY', weight: 2 }, + { value: 'UNIQUE', weight: 2 }, + { value: 'NOT NULL', weight: 2 }, + { value: 'DEFAULT', weight: 2 } + ]); + if (!$$[$0-1] && $$[$0-2].toLowerCase() === 'double') { + keywords.push({ value: 'PRECISION', weight: 3 }); + } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { + keywords = keywords.concat($$[$0-1].suggestKeywords) + } + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 445: case 487: case 493: case 494: case 507: case 510: case 522: case 524: case 810: + + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + +break; +case 452: +this.$ = { suggestKeywords: [{ value: 'KEY', weight: 3 }] }; +break; +case 455: +this.$ = { suggestKeywords: [{ value: 'NULL', weight: 3 }] }; +break; +case 458: + + this.$ = { + suggestKeywords: [ + { value: 'LITERAL', weight: 3 }, + { value: 'CURRENT_USER()', weight: 3 }, + { value: 'CURRENT_DATE()', weight: 3 }, + { value: 'CURRENT_TIMESTAMP()', weight: 3 }, + { value: 'NULL', weight: 3 } + ] + } + +break; +case 459: + + var keywords = []; + if (!$$[$0]) { + keywords.push({ value: 'RELY', weight: 3 }); + keywords.push({ value: 'NORELY', weight: 3 }); + if (!$$[$0-1]) { + keywords.push({ value: 'NOVALIDATE', weight: 3 }); + if (!$$[$0-2]) { + keywords.push({ value: 'RELY', weight: 3 }); + keywords.push({ value: 'NORELY', weight: 3 }); + } + } + } + if (keywords.length) { + this.$ = { suggestKeywords: keywords }; + } + +break; +case 492: + + parser.suggestKeywords(parser.getTypeKeywords()); + +break; +case 506: case 509: + + parser.suggestKeywords(['COMMENT']); + +break; +case 532: + + parser.suggestKeywords(['CONSTRAINT']); + +break; +case 542: + + parser.suggestKeywordsForOptionalsLR([$$[$0-1], $$[$0-2], $$[$0-3]], [ + [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], + { value: 'NOVALIDATE', weight: 2 }, + { value: 'DISABLE', weight: 3 } + ]); + +break; +case 546: + + parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'UNIQUE']); + +break; +case 551: + + parser.suggestKeywordsForOptionalsLR([$$[$0-1], $$[$0-2], $$[$0-3]], [ + [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], + { value: 'NOVALIDATE', weight: 2 }, + { value: 'DISABLE', weight: 1 }]); + +break; +case 553: case 563: + + parser.suggestKeywords(['KEY']); + +break; +case 555: + + parser.suggestKeywords(['REFERENCES']); + +break; +case 572: + + parser.suggestKeywords(['HASH', 'RANGE']); + +break; +case 586: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); + } else { + parser.suggestKeywords(['INTO']); + } + +break; +case 587: + + parser.suggestKeywords(['BUCKETS']); + +break; +case 595: + + parser.suggestKeywords(['SORTED ON']); + +break; +case 624: +this.$ = { suggestKeywords: ['STORED AS DIRECTORIES'] }; +break; +case 633: + + this.$ = $$[$0] + +break; +case 634: + + parser.suggestKeywords(['FORMAT']); + +break; +case 635: + + parser.suggestKeywords(['DELIMITED', 'SERDE']); + +break; +case 640: + + this.$ = { storedBy: true } + +break; +case 641: + + parser.suggestKeywords(['AS', 'BY']); + +break; +case 643: +this.$ = { suggestKeywords: ['STORED AS'] }; +break; +case 658: + + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; + } else if ($$[$0-4] && $$[$0-4].suggestKeywords && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-4].suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; + } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; + } + +break; +case 665: +this.$ = { suggestKeywords: ['ESCAPED BY'] }; +break; +case 667: case 673: case 678: case 682: + + parser.suggestKeywords(['TERMINATED BY']); + +break; +case 672: + + parser.suggestKeywords(['ITEMS TERMINATED BY']); + +break; +case 677: + + parser.suggestKeywords(['KEYS TERMINATED BY']); + +break; +case 686: + + parser.suggestKeywords(['DEFINED AS']); + +break; +case 687: case 728: case 732: case 761: case 1841: case 2397: + + parser.suggestKeywords(['AS']); + +break; +case 691: case 692: + + parser.suggestKeywords(['SERDEPROPERTIES']); + +break; +case 701: + + parser.commitLocations(); + +break; +case 704: case 717: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + +break; +case 705: + + parser.suggestKeywordsForOptionalsLR([undefined, $$[$0-2], $$[$0-3], $$[$0-4], $$[$0-5], $$[$0-6], $$[$0-7], $$[$0-8], $$[$0-9]], [ + { value: 'AS SELECT', weight: 1 }, + { value: 'TBLPROPERTIES', weight: 2 }, + { value: 'LOCATION', weight: 3 }, + [{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }], + [{ value: 'CLUSTERED ON', weight: 5 }, { value: 'DISTRIBUTED ON', weight: 5 }], + { value: 'PARTITIONED ON', weight: 6 }, + { value: 'COMMENT', weight: 7 }, + { value: 'DISABLE REWRITE', weight: 8 } + ]); + +break; +case 715: + + parser.suggestKeywords(['REWRITE']); + +break; +case 718: + + if (!$$[$0-7]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 721: + + var keywords = [{value: 'AS', weight: 1 }]; + if (!$$[$0-1]) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + if (!$$[$0-2]) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + } + parser.suggestKeywords(keywords); + +break; +case 730: + + if (!$$[$0-1]) { + parser.suggestKeywords(['USING']); + } else { + parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); + } + +break; +case 734: + + parser.suggestFunctions(); + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + +break; +case 737: + + parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); + +break; +case 747: + + if (!$$[$0-1]) { + parser.suggestKeywords(['COMMENT']); + } + +break; +case 756: + + parser.suggestKeywords(['ON TABLE']); + +break; +case 762: case 775: + + parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); + +break; +case 769: + + if ($$[$0-4] && parser.yy.result.suggestKeywords && parser.yy.result.suggestKeywords.length === 2) { + parser.suggestKeywords(['AS']); + } + +break; +case 771: + + if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if ($$[$0-5] && $$[$0-5].suggestKeywords && !$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { + parser.suggestKeywords(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 5).concat([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); + } else if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); + } + +break; +case 778: + + parser.suggestKeywords(['DEFERRED REBUILD']); + +break; +case 779: + + parser.suggestKeywords(['REBUILD']); + +break; +case 798: + + parser.suggestFunctions(); + +break; +case 824: + + parser.addCommonTableExpressions($$[$0-1]); + +break; +case 848: + + parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); + +break; +case 852: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + +break; +case 853: + + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + +break; +case 855: + + if (!$$[$0-3]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 858: case 863: case 882: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 859: + + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 868: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 871: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PURGE']); + } + +break; +case 875: + + parser.suggestKeywords(['IF EXISTS']); + +break; +case 881: + + parser.suggestKeywords(['FUNCTION', 'MACRO']); + +break; +case 889: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 890: + + parser.addTablePrimary($$[$0]); + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 898: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 902: case 1009: case 1014: case 1017: case 1021: + + parser.suggestKeywords(['FROM']); + +break; +case 904: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0]) { + parser.suggestKeywords(['WHERE']); + } + +break; +case 908: + + parser.suggestKeywords(['TRANSACTIONS']); + +break; +case 914: + + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); + +break; +case 917: + + if (!$$[$0-1]) { + parser.suggestKeywords(['ON', 'TO']); + } else { + parser.suggestKeywords(['TO']); + } + +break; +case 920: + + if (!$$[$0-1]) { + parser.suggestKeywords(['WITH GRANT OPTION']); + } + +break; +case 925: case 929: + + if (!$$[$0-1]) { + parser.suggestKeywords(['WITH ADMIN OPTION']); + } + +break; +case 933: + + parser.suggestKeywords(['DATABASE', 'TABLE']); + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 942: + + if ($$[$0].toUpperCase() === 'ALL') { + this.$ = { singleAll: true }; + } + +break; +case 948: case 949: case 950: case 1000: + + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); + +break; +case 979: + + parser.suggestKeywords(['GRANT OPTION']); + +break; +case 980: case 984: case 1024: + + parser.suggestKeywords(['OPTION']); + +break; +case 983: + + parser.suggestKeywords(['ADMIN OPTION']); + +break; +case 992: + + parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); + +break; +case 995: + + if (!$$[$0-1]) { + if ($$[$0-2].singleAll) { + parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); + } else { + parser.suggestKeywords(['FROM', 'ON']); + } + } else { + parser.suggestKeywords(['FROM']); + } + +break; +case 998: + + parser.suggestKeywords(['OPTION FOR']); + +break; +case 999: case 1012: + + parser.suggestKeywords(['FOR']); + +break; +case 1003: + + if (!$$[$0-1]) { + parser.suggestKeywords(['FROM', 'ON']); + } else { + parser.suggestKeywords(['FROM']); + } + +break; +case 1006: + + if ($$[$0-1].toUpperCase() === 'ADMIN') { + parser.suggestKeywords(['FROM', 'OPTION FOR']); + } else { + parser.suggestKeywords(['FROM']); + } + +break; +case 1013: + + parser.suggestKeywords(['ROLE']); + +break; +case 1030: + + var keywords = []; + if ($$[$0-1].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); + } else { + keywords = ['SELECT']; + } + if ($$[$0-1].addValues) { + keywords.push({ weight: 1.1, value: 'VALUES' }); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + +break; +case 1033: + + if (!$$[$0].keepTables) { + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + } + +break; +case 1037: + + parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); + +break; +case 1038: + + if ($$[$0-1].cursorAtEnd) { + parser.checkForSelectListKeywords($$[$0-1]); + var keywords = parser.yy.result.suggestKeywords || []; + if ($$[$0].suggestKeywords) { + keywords = keywords.concat($$[$0].suggestKeywords); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + +break; +case 1039: + + if ($$[$0].cursorAtStart) { + parser.checkForSelectListKeywords($$[$0-1].tableExpression); + } + +break; +case 1040: + + $$[$0-3].owner = 'insert'; + parser.addTablePrimary($$[$0-3]); + +break; +case 1041: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: ['PARTITION'] } + } else if (!$$[$0]) { + this.$ = { suggestKeywords: ['IF NOT EXISTS'] } + } + +break; +case 1042: + + if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; + } else if (!$$[$0]) { + this.$ = { suggestKeywords: ['STORED AS'] }; + } + +break; +case 1043: + + if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; + } else if (!$$[$0]) { + this.$ = { suggestKeywords: ['STORED AS'] }; + } + +break; +case 1044: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: ['PARTITION'], addValues: true }; + } else if (!$$[$0]) { + this.$ = { addValues: true }; + } + +break; +case 1045: + + parser.suggestKeywords(['OVERWRITE', 'INTO']); + +break; +case 1046: + + if (!$$[$0-1]) { + parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + this.$ = { keepTables: true } + +break; +case 1047: case 1058: + + this.$ = { keepTables: true } + +break; +case 1048: case 1059: case 1060: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + +break; +case 1049: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + +break; +case 1050: + + parser.suggestKeywords(['DIRECTORY']); + +break; +case 1057: + + if (!$$[$0-1]) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + this.$ = { keepTables: true } + +break; +case 1070: + + if ($$[$0-1].suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); + } else { + parser.suggestKeywords(['SELECT']); + } + +break; +case 1071: + + if ($$[$0-1].cursorAtEnd) { + parser.checkForSelectListKeywords($$[$0-1]); + var keywords = parser.yy.result.suggestKeywords || []; + if ($$[$0].suggestKeywords) { + keywords = keywords.concat($$[$0].suggestKeywords); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + +break; +case 1080: + + parser.suggestKeywords(['FORMAT DELIMITED']); + +break; +case 1081: + + parser.suggestKeywords(['DELIMITED']); + +break; +case 1083: +this.$ = { selectList: $$[$0] }; +break; +case 1084: + + this.$ = $$[$0-1]; + this.$.cursorAtEnd = true; + +break; +case 1085: + + parser.selectListNoTableSuggest($$[$0], $$[$0-1]); + +break; +case 1086: + + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1] || $$[$0-1] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-1]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns(); + +break; +case 1090: case 1126: case 1712: case 1908: case 1909: case 1915: case 1916: case 2260: case 2349: + + parser.valueExpressionSuggest(); + +break; +case 1092: + + parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'WHEN', weight: 2 }]); + +break; +case 1094: + + $$[$0-6].alias = $$[$0-4]; + parser.addTablePrimary($$[$0-6]); + if ($$[$0-2].subQuery) { + parser.addTablePrimary({ subQueryAlias: $$[$0] }); + } else { + $$[$0-2].alias = $$[$0]; + } + +break; +case 1095: + + parser.suggestKeywords(['INTO']); + +break; +case 1096: + + parser.suggestDatabases({ appendDot: true }); + parser.suggestTables(); + +break; +case 1098: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['AS T USING']); + +break; +case 1099: + + parser.addTablePrimary($$[$0-2]); + parser.suggestKeywords(['T USING']); + +break; +case 1100: + + $$[$0-3].alias = $$[$0-1]; + parser.addTablePrimary($$[$0-3]); + parser.suggestKeywords(['USING']); + +break; +case 1101: + + $$[$0-4].alias = $$[$0-2]; + parser.addTablePrimary($$[$0-4]); + parser.suggestDatabases({ appendDot: true }); + parser.suggestTables(); + +break; +case 1102: + + $$[$0-4].alias = $$[$0-2]; + parser.addTablePrimary($$[$0-4]); + +break; +case 1103: + + $$[$0-5].alias = $$[$0-3]; + parser.addTablePrimary($$[$0-5]); + parser.suggestKeywords(['AS S ON']); + +break; +case 1104: + + $$[$0-6].alias = $$[$0-4]; + parser.addTablePrimary($$[$0-6]); + parser.suggestKeywords(['S ON']); + +break; +case 1113: + + if ($$[$0].suggestThenKeywords) { + parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); + } + +break; +case 1114: case 1116: + + if (!$$[$0-1].notPresent) { + parser.suggestKeywords(['WHEN']); + } + +break; +case 1115: + + if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { + var keywords = []; + if (!$$[$0-1].isDelete) { + keywords.push('DELETE'); + } + if (!$$[$0-1].isInsert) { + keywords.push('INSERT VALUES'); + } + if (!$$[$0-1].isUpdate) { + keywords.push('UPDATE SET'); + } + parser.suggestKeywords(keywords); + } + +break; +case 1117: + + if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { + var keywords = []; + if (!$$[$0-2].isDelete && !$$[$0-1].isDelete) { + keywords.push('DELETE'); + } + if (!$$[$0-2].isInsert && !$$[$0-1].isInsert) { + keywords.push('INSERT VALUES'); + } + if (!$$[$0-2].isUpdate && !$$[$0-1].isUpdate) { + keywords.push('UPDATE SET'); + } + parser.suggestKeywords(keywords); + } + +break; +case 1118: +this.$ = { notPresent: !!$$[$0-4], isDelete: $$[$0].isDelete, isInsert: $$[$0].isInsert, isUpdate: $$[$0].isUpdate }; +break; +case 1119: + + if (!$$[$0-1]) { + parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); + } else { + parser.suggestKeywords(['MATCHED']); + } + +break; +case 1120: + + if (!$$[$0-1]) { + parser.suggestKeywords(['AND', 'THEN']); + } else { + parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'THEN', weight: 2 }]); + } + +break; +case 1122: +this.$ = { suggestThenKeywords: true }; +break; +case 1127: +this.$ = { isUpdate: true }; +break; +case 1128: +this.$ = { isDelete: true }; +break; +case 1129: +this.$ = { isInsert: true }; +break; +case 1130: + + parser.suggestKeywords(['SET']); + +break; +case 1132: case 1652: case 1655: + + parser.suggestKeywords(['VALUES']); + +break; +case 1134: + + parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); + +break; +case 1135: + + if (!$$[$0-1]) { + parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); + } else { + parser.suggestKeywords(['INPATH']); + } + +break; +case 1137: + + if (!$$[$0-1]) { + parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); + } else { + parser.suggestKeywords(['INTO TABLE']); + } + +break; +case 1138: + + parser.suggestKeywords([ 'TABLE' ]); + +break; +case 1141: + + parser.addTablePrimary($$[$0-3]); + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['INPUTFORMAT', 'PARTITION']); + } else if ($$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['INPUTFORMAT']); + } + +break; +case 1152: + + parser.suggestKeywords(['SERDE']); + +break; +case 1154: + + if (!$$[$0]) { + parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); + } else if (!$$[$0].hasExternal) { + parser.suggestKeywords(['EXTERNAL']); + } + +break; +case 1155: + + if ($$[$0-1].suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat(['FROM'])); + } else { + parser.suggestKeywords(['FROM']); + } + +break; +case 1159: + + if (!$$[$0-1]) { + parser.suggestKeywords(['LOCATION']); + } + +break; +case 1160: + + if (!$$[$0-4]) { + parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); + } else if (!$$[$0-4].hasExternal) { + parser.suggestKeywords(['EXTERNAL']); + } + +break; +case 1162: + + if ($$[$0-5].suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 2).concat(['FROM'])); + } + +break; +case 1165: + + parser.addTablePrimary($$[$0-1]); + if (!$$[$0]) { + this.$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; + } else { + this.$ = { hasExternal: true } + } + +break; +case 1166: + + parser.addTablePrimary($$[$0-1]); + if (!$$[$0]) { + this.$ = { suggestKeywords: ['PARTITION'] }; + } + +break; +case 1174: case 1181: case 1188: + + parser.addTablePrimary($$[$0-4]); + +break; +case 1175: case 1189: case 1190: + + parser.addTablePrimary($$[$0-9]); + +break; +case 1179: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); + } else { + parser.suggestKeywords([ 'TO' ]); + } + +break; +case 1182: + + parser.addTablePrimary($$[$0-5]); + parser.suggestKeywords(['FOR replication()']); + +break; +case 1183: + + parser.addTablePrimary($$[$0-6]); + parser.suggestKeywords(['replication()']); + +break; +case 1186: + + parser.addTablePrimary($$[$0-5]); + if (!$$[$0-4]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 1187: + + parser.addTablePrimary($$[$0-10]); + if (!$$[$0-9]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 1192: case 1193: + + return parser.yy.result; + +break; +case 1194: + + parser.prepareNewStatement(); + +break; +case 1196: case 1198: case 1200: + + parser.addStatementLocation(_$[$0]); + +break; +case 1199: case 1201: + + parser.addStatementLocation(_$[$0-3]); + +break; +case 1603: case 1606: case 1721: +this.$ = ''; +break; +case 1621: + + parser.suggestKeywords(['INDEX', 'INDEXES']); + +break; +case 1622: + + parser.suggestKeywords(['FORMATTED']); + +break; +case 1636: case 1639: + + parser.yy.correlatedSubQuery = false; + +break; +case 1637: case 1641: + + parser.suggestKeywords(['EXISTS']); + +break; +case 1640: + + parser.suggestKeywords(['NOT EXISTS']); + +break; +case 1651: case 1653: case 1654: case 1656: + + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + +break; +case 1691: case 1722: + + parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0] } ] }; + +break; +case 1692: case 1723: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; + +break; +case 1694: case 1699: + + parser.suggestDatabases(); + this.$ = { identifierChain: [{ name: $$[$0-2] }] }; + +break; +case 1695: case 1725: + + parser.suggestTablesOrColumns($$[$0-2]); + +break; +case 1696: +this.$ = [{ name: $$[$0] }]; +break; +case 1697: +this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; +break; +case 1724: case 2634: + + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + +break; +case 1727: +this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; +break; +case 1730: + + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + +break; +case 1731: case 2125: + + parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); + +break; +case 1733: + + this.$ = [ $$[$0].identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); + +break; +case 1734: + + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $$[$0-2].push($$[$0].identifier); + parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); + +break; +case 1735: case 1743: + + if ($$[$0].insideKey) { + parser.suggestKeyValues({ identifierChain: [ $$[$0].identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1736: case 1744: + + if ($$[$0].insideKey) { + parser.suggestKeyValues({ identifierChain: $$[$0-2].concat([ $$[$0].identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1739: + + parser.suggestColumns({ + identifierChain: $$[$0-2] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 1740: + + parser.suggestColumns({ + identifierChain: $$[$0-4] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 1741: +this.$ = [ $$[$0].identifier ]; +break; +case 1742: + + $$[$0-2].push($$[$0].identifier); + +break; +case 1745: + + if ($$[$0-2].insideKey) { + parser.suggestKeyValues({ identifierChain: $$[$0-4].concat([ $$[$0-2].identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1746: + + if ($$[$0-2].insideKey) { + parser.suggestKeyValues({ identifierChain: [ $$[$0-2].identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1748: + + parser.suggestColumns({ identifierChain: $$[$0-2] }); + +break; +case 1749: + + parser.suggestColumns({ identifierChain: $$[$0-4] }); + +break; +case 1751: +this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; +break; +case 1752: +this.$ = { identifier: { name: $$[$0-3], keySet: true }, location: _$[$0-3] }; +break; +case 1753: +this.$ = { identifier: { name: $$[$0-2], keySet: true }, location: _$[$0-2] }; +break; +case 1754: +this.$ = { identifier: { name: $$[$0-3] }, insideKey: true }; +break; +case 1755: +this.$ = { identifier: { name: $$[$0-3] }}; +break; +case 1781: + + parser.addTablePrimary($$[$0-2]); + parser.addColumnLocation(_$[$0-1], $$[$0-1]); + +break; +case 1783: + + parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 1787: + + if (!$$[$0-4]) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + +break; +case 1788: + + if (!$$[$0-3]) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + +break; +case 1789: + + parser.addTablePrimary($$[$0-2]); + parser.suggestColumns(); + if (!$$[$0]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 1790: + + if (!$$[$0]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 1793: + + if (!$$[$0-1]) { + parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 1794: case 1796: + + if (!$$[$0-1]) { + parser.suggestKeywords(['EXTENDED']); + } + +break; +case 1795: case 1797: + + if (!$$[$0-2]) { + parser.suggestKeywords(['EXTENDED']); + } + +break; +case 1800: case 2172: +this.$ = $$[$0-2]; +break; +case 1803: + + parser.addCommonTableExpressions($$[$0-3]); + +break; +case 1804: case 1805: case 1837: + + parser.addCommonTableExpressions($$[$0-2]); + +break; +case 1809: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); + this.$ = { selectList: $$[$0] }; + +break; +case 1810: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } + +break; +case 1821: + + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + +break; +case 1822: + + parser.suggestKeywords(['ALL', 'DISTINCT']); + +break; +case 1824: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0]); + if ($$[$0].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($$[$0]); + } + if ($$[$0].suggestFunctions) { + parser.suggestFunctions(); + } + if ($$[$0].suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($$[$0].suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($$[$0].suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($$[$0].suggestAggregateFunctions && (!$$[$0-1] || $$[$0-1] === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + +break; +case 1825: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2]), _$[$0], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1] || $$[$0-1] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-1]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 1826: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + +break; +case 1827: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + parser.selectListNoTableSuggest($$[$0-1], $$[$0-2]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + +break; +case 1828: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2] || $$[$0-2] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-2]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 1829: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-2]); + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 1830: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-3]); + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 1831: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0-1]); + parser.checkForSelectListKeywords($$[$0-1]); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + +break; +case 1835: +this.$ = $$[$0-2].concat([$$[$0]]); +break; +case 1839: + + parser.addCommonTableExpressions($$[$0-4]); + +break; +case 1840: + + parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); + $$[$0-1].alias = $$[$0-4]; + this.$ = $$[$0-1]; + +break; +case 1847: case 1848: + + parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); + +break; +case 1849: + + var keywords = []; + + parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); + + if ($$[$0-3]) { + if (!$$[$0-3].hasLateralViews && typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($$[$0-3].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); + } + if ($$[$0-3].tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); + } + if ($$[$0-3].tableReferenceList.suggestJoins) { + parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); + } + if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { + keyword.weight = 1.1; + } + }); + + if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($$[$0-3].tableReferenceList); + } + } + } + + if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['CROSS', 'FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'LEFT SEMI', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($$[$0-1].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].suggestFilters) { + parser.suggestFilters($$[$0-1].suggestFilters); + } + if ($$[$0-1].suggestGroupBys) { + parser.suggestGroupBys($$[$0-1].suggestGroupBys); + } + if ($$[$0-1].suggestOrderBys) { + parser.suggestOrderBys($$[$0-1].suggestOrderBys); + } + + if ($$[$0-1].empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'CROSS JOIN', weight: 1 }, + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'LEFT SEMI JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + +break; +case 1850: + + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$$[$0-1]) { + parser.addClauseLocation('whereClause', _$[$0-2]); + parser.addClauseLocation('limitClause', _$[$0-2]); + return; + } + parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); + var keywords = []; + + if ($$[$0-1].suggestColRefKeywords) { + parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); + parser.addColRefIfExists($$[$0-1]); + } + + if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + +break; +case 1854: + + this.$ = { tableReferenceList : $$[$0-1], suggestKeywords: ['LATERAL VIEW'] } + if ($$[$0]) { + parser.yy.lateralViews = $$[$0].lateralViews; + this.$.hasLateralViews = true; + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = this.$.suggestKeywords.concat($$[$0].suggestKeywords); + } + } + +break; +case 1855: case 2179: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 1856: + + if ($$[$0]) { + parser.yy.lateralViews = $$[$0].lateralViews; + } + +break; +case 1858: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-6], $$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], + [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true, true, !$$[$0-2], true]); + + if (keywords.length > 0) { + this.$ = { suggestKeywords: keywords, empty: !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + } else { + this.$ = {}; + } + + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + + if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + +break; +case 1859: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + +break; +case 1860: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + +break; +case 1863: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + +break; +case 1866: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true, !$$[$0-2], true]); + if ($$[$0-7].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-7].suggestKeywords, 1)); + } + this.$ = parser.getValueExpressionKeywords($$[$0-7], keywords); + this.$.cursorAtEnd = !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if ($$[$0-7].columnReference) { + this.$.columnReference = $$[$0-7].columnReference; + } + if (!$$[$0-5]) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-7], _$[$0-7]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1867: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], + [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, !$$[$0-2], true]); + if ($$[$0-6].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 8)); + } + if ($$[$0-6].valueExpression) { + this.$ = parser.getValueExpressionKeywords($$[$0-6].valueExpression, keywords); + if ($$[$0-6].valueExpression.columnReference) { + this.$.columnReference = $$[$0-6].valueExpression.columnReference; + } + } else { + this.$ = { suggestKeywords: keywords }; + } + this.$.cursorAtEnd = !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-6], _$[$0-6]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1868: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0-1], $$[$0]], + [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, !$$[$0-2], true]); + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + if (!$$[$0-3] && !$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1869: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], + [true, true, true]); + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + if (!$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1870: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-1], $$[$0]], + [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], + [true, true]); + if ($$[$0-3].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].suggestKeywords, 5)); + } + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-3], _$[$0-3]); + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1871: + + var keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'LIMIT', weight: 3 }], [true]); + if ($$[$0-2].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 4)); + } + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = _$[$0-2]; + this.$.limitClauseLocation = $$[$0] ? _$[$0] : undefined; + +break; +case 1872: + + this.$ = { suggestKeywords: [], cursorAtEnd: true }; + this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6], $$[$0-7], _$[$0-7]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + +break; +case 1876: + + if ($$[$0].suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 1877: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1880: + + this.$ = { valueExpression: $$[$0] ? false : $$[$0-1] }; + if (!$$[$0]) { + this.$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; + } + +break; +case 1881: case 1930: case 1955: case 1959: case 1962: + + parser.suggestSelectListAliases(); + +break; +case 1882: + + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1883: + + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1890: + + parser.suggestKeywords(['CUBE', 'ROLLUP']); + +break; +case 1892: + + parser.suggestKeywords(['SETS']); + +break; +case 1920: + + if ($$[$0].emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 1921: + + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1925: + + this.$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 1926: case 1927: case 1928: +this.$ = { emptyOrderBy: false }; +break; +case 1929: + + if ($$[$0-1].suggestKeywords && $$[$0].suggestKeywords) { + this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]); + } else { + this.$ = parser.mergeSuggestKeywords($$[$0]); + } + +break; +case 1931: + + this.$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 1933: +this.$ = { suggestKeywords: ['ASC', 'DESC'] };; +break; +case 1936: +this.$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; +break; +case 1940: + + parser.suggestKeywords(['FIRST', 'LAST']); + +break; +case 1944: +this.$ = { suggestKeywords: ['SORT BY'] }; +break; +case 1953: case 1957: case 1961: + + suggestKeywords: ['BY']; + +break; +case 1954: case 1958: + + parser.suggestColumns(); + parser.suggestSelectListAliases(); + +break; +case 1969: + + parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); + this.$ = $$[$0]; + +break; +case 1982: case 1983: + + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1985: + + // verifyType($$[$0], 'NUMBER'); + this.$ = $$[$0]; + $$[$0].types = ['NUMBER']; + +break; +case 1986: case 1987: case 1988: case 1989: case 1996: case 1997: case 1998: case 1999: case 2000: case 2001: case 2007: case 2008: case 2029: case 2087: case 2088: case 2146: +this.$ = { types: [ 'BOOLEAN' ] }; +break; +case 1990: + + this.$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + +break; +case 1992: case 1993: case 1994: case 1995: + + parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2002: case 2003: + + // verifyType($$[$0-2], 'BOOLEAN'); + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2004: case 2005: case 2006: + + // verifyType($$[$0-2], 'NUMBER'); + // verifyType($$[$0], 'NUMBER'); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 2012: + + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2013: case 2015: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 2014: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2016: + + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2017: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 2018: + + parser.suggestFunctions(); + parser.suggestColumns(); + this.$ = { types: [ 'T' ] }; + +break; +case 2019: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 2020: + + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 2021: + + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2022: + + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2023: + + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2024: case 2025: case 2026: + + parser.suggestKeywords(['NOT']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2027: + + parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2028: + + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 2030: + + this.$ = $$[$0-1]; + +break; +case 2031: + + parser.valueExpressionSuggest(); + this.$ = { types: ['T'], typeSet: true }; + +break; +case 2032: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2033: case 2034: case 2035: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2036: case 2037: case 2038: case 2039: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0].types); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 2040: case 2042: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2041: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + +break; +case 2043: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; + +break; +case 2044: case 2045: case 2046: case 2047: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 2048: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-3].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2049: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2050: case 2051: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; +break; +case 2052: case 2053: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; +break; +case 2054: + + if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-5].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; + +break; +case 2055: + + if ($$[$0-5].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0-5].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; + +break; +case 2056: + + if ($$[$0-5].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-5].types); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 2057: + + parser.valueExpressionSuggest($$[$0-5], $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2058: case 2064: + + parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 2059: + + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2060: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-4].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; + +break; +case 2061: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; + +break; +case 2062: + + if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-4].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 2063: + + parser.valueExpressionSuggest($$[$0-4], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-4].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2065: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2066: case 2068: case 2070: case 2072: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + +break; +case 2067: case 2071: + + parser.addColRefIfExists($$[$0]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 2069: case 2073: + + parser.addColRefIfExists($$[$0-2]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 2074: case 2075: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 2076: case 2077: case 2078: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 2079: case 2080: case 2081: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions(['NUMBER']); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 2082: case 2083: case 2084: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 2085: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 2086: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 2089: + + parser.valueExpressionSuggest(undefined, $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2090: + + parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 2092: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 2094: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 2095: + + this.$ = $$[$0]; + this.$.suggestFilters = $$[$0-1].suggestFilters; + +break; +case 2096: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 2097: case 2400: case 2405: case 2406: +this.$ = { types: [ 'T' ] }; +break; +case 2098: case 2100: + + $$[$0].position = 1; + +break; +case 2099: + + $$[$0].position = $$[$0-2].position + 1; + this.$ = $$[$0]; + +break; +case 2101: + + $$[$0-2].position += 1; + +break; +case 2102: + + $$[$0-2].position = 1; + +break; +case 2103: + + $$[$0-4].position += 1; + +break; +case 2104: + + parser.valueExpressionSuggest(); + $$[$0-2].position += 1; + +break; +case 2105: + + parser.valueExpressionSuggest(); + $$[$0-4].position += 1; + +break; +case 2106: + + parser.suggestValueExpressionKeywords($$[$0-3]); + +break; +case 2107: case 2108: + + parser.valueExpressionSuggest(); + this.$ = { cursorAtStart : true, position: 1 }; + +break; +case 2109: case 2110: + + parser.valueExpressionSuggest(); + this.$ = { position: 2 }; + +break; +case 2114: +this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; +break; +case 2115: + + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].expression) { + this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } + } else { + this.$ = { function: fn, types: parser.findReturnTypes(fn) } + } + +break; +case 2116: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 2118: +this.$ = { types: [ 'NULL' ] }; +break; +case 2120: + + if ($$[$0].suggestKeywords) { + this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; + } else { + this.$ = { types: ['COLREF'], columnReference: $$[$0] }; + } + +break; +case 2121: + + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); + } + this.$ = { types: parser.findReturnTypes(fn) }; + +break; +case 2122: case 2311: case 2312: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-1]) }; + +break; +case 2124: + + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; + this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } + +break; +case 2131: + + parser.suggestValues($$[$0]); + +break; +case 2132: +this.$ = { types: [ 'NUMBER' ] }; +break; +case 2138: case 2140: +this.$ = $$[$0-1] + $$[$0]; +break; +case 2139: +this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; +break; +case 2144: case 2145: + + if (/\$\{[^}]*\}/.test($$[$0])) { + parser.addVariableLocation(_$[$0], $$[$0]); + this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } + } else { + this.$ = { types: [ 'STRING' ] } + } + +break; +case 2147: + + this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 2148: + + this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 2153: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); + } else { + this.$ = { valueExpression: $$[$0-1] } + } + +break; +case 2154: + + parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); + this.$ = { asterisk: true } + +break; +case 2155: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + } + +break; +case 2156: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); + this.$ = { suggestAggregateFunctions: true }; + +break; +case 2158: case 2475: +this.$ = [ $$[$0] ]; +break; +case 2159: + + $$[$0-2].push($$[$0]); + +break; +case 2161: case 2162: + + this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 2164: + + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 2165: + + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 2166: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 2168: case 2169: case 2171: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + +break; +case 2182: + + this.$ = $$[$0]; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + this.$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + +break; +case 2189: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-2]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 2190: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-3]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 2191: +this.$ = { joinType: $$[$0] }; +break; +case 2192: +this.$ = { joinType: $$[$0-1] }; +break; +case 2193: + + if ($$[$0-2].suggestKeywords) { + parser.suggestKeywords($$[$0-2].suggestKeywords); + } + +break; +case 2194: + + if ($$[$0].suggestKeywords) { + parser.suggestKeywords($$[$0].suggestKeywords); + } + +break; +case 2197: + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $$[$0-2], + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 2202: +this.$ = 'CROSS JOIN'; +break; +case 2203: +this.$ = 'FULL JOIN'; +break; +case 2204: +this.$ = 'FULL OUTER JOIN'; +break; +case 2205: +this.$ = 'INNER JOIN'; +break; +case 2206: +this.$ = 'JOIN'; +break; +case 2207: +this.$ = 'LEFT INNER JOIN'; +break; +case 2208: +this.$ = 'LEFT JOIN'; +break; +case 2209: +this.$ = 'LEFT OUTER JOIN'; +break; +case 2210: +this.$ = 'LEFT SEMI JOIN'; +break; +case 2211: +this.$ = 'OUTER JOIN'; +break; +case 2212: case 2214: +this.$ = 'RIGHT OUTER JOIN'; +break; +case 2213: +this.$ = 'RIGHT JOIN'; +break; +case 2215: +this.$ = 'RIGHT SEMI JOIN'; +break; +case 2216: +this.$ = 'SEMI JOIN'; +break; +case 2217: case 2219: case 2220: case 2222: case 2223: case 2224: case 2225: case 2227: case 2228: case 2229: case 2230: +this.$ = { suggestKeywords: ['JOIN'] }; +break; +case 2218: case 2226: +this.$ = { suggestKeywords: ['OUTER'] }; +break; +case 2221: +this.$ = { suggestKeywords: ['OUTER', 'SEMI'] }; +break; +case 2231: +this.$ = { noJoinCondition: true, suggestKeywords: ['ON'] }; +break; +case 2232: +this.$ = { valueExpression: $$[$0] }; +break; +case 2236: + + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + +break; +case 2237: + + this.$ = { + primary: $$[$0-2] + } + if ($$[$0-2].identifierChain) { + if ($$[$0]) { + $$[$0-2].alias = $$[$0].alias + parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); + } + parser.addTablePrimary($$[$0-2]); + } + var keywords = []; + // Right-to-left for cursor after TablePrimary + keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1]], [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [true, true]); + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 2238: + + this.$ = { + primary: $$[$0-1] + }; + + if ($$[$0]) { + this.$.primary.alias = $$[$0].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); + parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias, $$[$0-1].identifierChain); + } + + var keywords = []; + keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'AS', weight: 2 }], [true]); + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 2239: + + if ($$[$0]) { + parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); + } + +break; +case 2240: + + if ($$[$0]) { + $$[$0-2].alias = $$[$0].alias; + parser.addTableAliasLocation($$[$0].location, $$[$0].alias, $$[$0-2].identifierChain); + } + parser.addTablePrimary($$[$0-2]); + +break; +case 2241: + + if ($$[$0]) { + parser.addTablePrimary({ subQueryAlias: $$[$0].alias }); + parser.addSubqueryAliasLocation($$[$0].location, $$[$0].alias); + } + +break; +case 2252: + + parser.suggestKeywords(['BUCKET']); + +break; +case 2253: + + parser.suggestKeywords(['OUT OF']); + +break; +case 2254: + + parser.suggestKeywords(['OF']); + +break; +case 2255: + + if (!$$[$0-2]) { + parser.suggestKeywords(['ON']); + } + +break; +case 2257: + + if ($$[$0-2].indexOf('.') === -1 ) { + parser.suggestKeywords(['PERCENT', 'ROWS']); + } else { + parser.suggestKeywords(['PERCENT']); + } + +break; +case 2262: + + parser.pushQueryState(); + +break; +case 2263: + + parser.popQueryState(); + +break; +case 2265: + + if ($$[$0-1]) { + $$[$0-2].alias = $$[$0-1].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); + parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + this.$ = $$[$0-2]; + +break; +case 2268: + + var subQuery = parser.getSubQuery($$[$0]); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + this.$ = subQuery; + +break; +case 2285: case 2286: case 2287: case 2288: +this.$ = { alias: $$[$0], location: _$[$0] }; +break; +case 2295: + + if ($$[$0-1] && $$[$0].lateralView) { + $$[$0-1].lateralViews.push($$[$0].lateralView); + this.$ = $$[$0-1]; + } else if ($$[$0].lateralView) { + this.$ = { lateralViews: [ $$[$0].lateralView ] }; + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords + } + +break; +case 2297: + + if (!$$[$0]) { + $$[$0-1].suggestKeywords = ['OVER']; + } + +break; +case 2305: + + parser.suggestKeywords(['OVER']); + +break; +case 2309: case 2310: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 2319: +this.$ = { expression: $$[$0-1] }; +break; +case 2320: + + parser.valueExpressionSuggest(); + this.$ = { position: 1 } + +break; +case 2321: + + parser.suggestValueExpressionKeywords($$[$0-1]); + +break; +case 2329: case 2412: case 2458: +this.$ = { types: parser.findReturnTypes($$[$0-2]) }; +break; +case 2330: +this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; +break; +case 2331: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-3], 1); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 2332: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2333: + + parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 2341: case 2342: + + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + +break; +case 2343: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$$[$0-2]) { + parser.suggestKeywords(['PARTITION BY']); + } + +break; +case 2344: + + if (!$$[$0-1]) { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3]); + } + +break; +case 2353: + + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + +break; +case 2354: + + var keywords = []; + if ($$[$0-2].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); + } + if (!$$[$0]) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + +break; +case 2360: + + parser.suggestKeywords(['BETWEEN', 'UNBOUNDED']); + +break; +case 2361: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['AND']); + } + +break; +case 2364: + + if (!$$[$0-1]) { + parser.suggestKeywords(['PRECEDING']); + } + +break; +case 2366: + + lexer.popState(); + +break; +case 2367: + + lexer.begin('hdfs'); + +break; +case 2369: + + parser.suggestHdfs({ path: $$[$0-3] }); + +break; +case 2370: + + parser.suggestHdfs({ path: $$[$0-2] }); + +break; +case 2371: + + parser.suggestHdfs({ path: $$[$0-1] }); + +break; +case 2372: + + parser.suggestHdfs({ path: '' }); + +break; +case 2373: + + parser.suggestHdfs({ path: '' }); + +break; +case 2379: + + parser.suggestKeywords(['PRECEDING']); + +break; +case 2380: case 2385: + + parser.suggestKeywords(['ROW']); + +break; +case 2384: + + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + +break; +case 2386: + + parser.suggestKeywords(['FOLLOWING']); + +break; +case 2392: + + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 2393: + + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 2399: case 2404: +this.$ = { types: [ $$[$0-1].toUpperCase() ] }; +break; +case 2401: + + parser.valueExpressionSuggest(); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 2402: case 2403: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ] }; + +break; +case 2407: + + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 2408: + + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ 'T' ] }; + +break; +case 2409: case 2410: + + parser.suggestKeywords(parser.getTypeKeywords()); + this.$ = { types: [ 'T' ] }; + +break; +case 2411: case 2433: +this.$ = { types: parser.findReturnTypes($$[$0-3]) }; +break; +case 2413: case 2434: case 2457: +this.$ = { types: parser.findReturnTypes($$[$0-4]) }; +break; +case 2414: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2415: case 2436: case 2460: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2416: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2417: case 2421: +this.$ = { types: ['INT', 'INTEGER'] }; +break; +case 2418: + + parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); + this.$ = { types: ['INT', 'INTEGER'] } + +break; +case 2419: case 2423: + + parser.suggestKeywords(['FROM']); + this.$ = { types: ['INT', 'INTEGER'] } + +break; +case 2420: + + parser.valueExpressionSuggest(); + this.$ = { types: ['INT', 'INTEGER'] } + +break; +case 2422: + + parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); + this.$ = { types: ['INT', 'INTEGER'] } + +break; +case 2435: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2437: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2459: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2461: + + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2462: +this.$ = { lateralView: { udtf: $$[$0-2], tableAlias: $$[$0-1], columnAliases: $$[$0] }}; +break; +case 2463: + + if ($$[$0-1].function.toLowerCase() === 'explode') { + this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; + } else if ($$[$0-1].function.toLowerCase() === 'posexplode') { + this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; + } else { + this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: [] }, suggestKeywords: ['AS'] }; + } + +break; +case 2464: +this.$ = { lateralView: { udtf: $$[$0-1], columnAliases: $$[$0] }}; +break; +case 2471: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); + } else { + parser.suggestKeywords(['explode', 'posexplode']); + } + +break; +case 2476: +this.$ = [ $$[$0-2], $$[$0] ]; +break; +case 2493: + + parser.suggestKeywords(['ALL', 'NONE']); + +break; +case 2513: + + parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'MATERIALIZED VIEWS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); + +break; +case 2514: + + // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT + if ($$[$0].identifierChain && $$[$0].identifierChain.length === 1 && $$[$0].identifierChain[0].name.toLowerCase() === 'roles') { + parser.suggestKeywords(['CURRENT']); + parser.yy.locations.pop(); + } else { + parser.addTablePrimary($$[$0]); + } + +break; +case 2515: + + parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); + +break; +case 2532: case 2533: case 2537: case 2538: case 2579: case 2580: + + parser.suggestKeywords(['FROM', 'IN']); + +break; +case 2534: case 2535: case 2536: case 2563: case 2577: + + parser.suggestTables(); + +break; +case 2544: case 2603: + + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 2545: + + if (parser.yy.result.suggestTables && $$[$0-1].isView) { + parser.yy.result.suggestTables.onlyViews = true; + } + +break; +case 2546: + + parser.addTablePrimary($$[$0]); + parser.suggestKeywords(['TABLE']); + +break; +case 2548: +this.$ = { isView: true }; +break; +case 2550: + + parser.suggestKeywords([ 'ROLES' ]); + +break; +case 2552: case 2625: + + parser.suggestKeywords(['LIKE']); + +break; +case 2561: + + parser.suggestKeywords(['ALL', 'TABLE']); + parser.suggestTables(); + +break; +case 2582: + + parser.suggestTables({identifierChain: [{name: $$[$0]}]}); + +break; +case 2584: + + parser.suggestKeywords(['VIEWS']); + +break; +case 2585: case 2637: + + if (!$$[$0-1] && !$$[$0-2]) { + parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['LIKE']); + } + +break; +case 2593: + + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + parser.suggestKeywords(['DATABASE', 'SCHEMA']); + +break; +case 2595: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['EXTENDED', 'PARTITION']); + +break; +case 2598: + + parser.addTablePrimary($$[$0-2]); + parser.suggestKeywords(['EXTENDED']); + +break; +case 2605: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['PARTITION']); + +break; +case 2608: case 2609: + + parser.suggestKeywords(['GRANT']); + +break; +case 2610: case 2611: + + parser.suggestKeywords(['ROLE', 'USER']); + +break; +case 2615: case 2624: + + parser.suggestKeywords(['EXTENDED']); + +break; +case 2618: + + if ($$[$0-1]) { + parser.suggestKeywords(['LIKE']); + } else { + parser.suggestKeywords(['FROM', 'IN', 'LIKE']); + } + +break; +case 2620: + + parser.suggestKeywords(['EXTENDED']); + +break; +case 2621: + + parser.suggestKeywords(['LIKE']); + +break; +case 2622: + + parser.suggestKeywords(['PARTITION']); + +break; +case 2630: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IN', 'LIKE']); + } else { + parser.suggestKeywords(['LIKE']); + } + +break; +case 2632: + + parser.addTablePrimary($$[$0-3]); + +break; +case 2641: case 2642: + + parser.addDatabaseLocation(_$[$0], [ { name: $$[$0] } ]); + +break; +case 2653: + + if (!$$[$0-1]) { + parser.suggestKeywords([ 'WHERE' ]); + } + +break; +case 2654: + + parser.suggestKeywords([ 'SET' ]); + +break; +case 2670: + + parser.suggestKeywords([ '=' ]); + +break; +case 2679: + + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $$[$0]; + } + +break; +case 2682: +this.$ = { inValueEdit: true }; +break; +case 2683: +this.$ = { inValueEdit: true, cursorAtStart: true }; +break; +case 2684: case 2685: case 2686: +this.$ = { suggestKeywords: ['NOT'] }; +break; +case 2690: case 2691: case 2692: + + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + this.$ = { types: ['BOOLEAN'] } + +break; +case 2693: case 2695: +this.$ = parser.findCaseType($$[$0-1]); +break; +case 2694: case 2697: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2696: + + parser.suggestValueExpressionKeywords($$[$0-1], ['END']); + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2698: +this.$ = parser.findCaseType($$[$0-2]); +break; +case 2699: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2700: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-2]); + +break; +case 2701: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + this.$.suggestFilters = $$[$0-1].suggestFilters + +break; +case 2702: + + parser.valueExpressionSuggest(); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2703: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 2704: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = $$[$0-1]; + +break; +case 2705: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ] }; + +break; +case 2708: +this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; +break; +case 2709: + + $$[$0-1].caseTypes.push($$[$0]); + this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; + +break; +case 2713: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + +break; +case 2716: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; +break; +case 2717: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 2718: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 2719: case 2720: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; +break; +case 2721: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2722: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [$$[$0]] }; + +break; +case 2723: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2724: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2725: case 2727: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 2726: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 2728: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; + +break; +case 2729: + + parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2730: + + parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2731: case 2732: case 2733: case 2734: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +} +}, +table: [o($V0,$V1,{642:1,643:2}),{1:[3]},o($V2,$V3,{644:3,209:4,210:5,3:6,211:7,195:8,4:10,5:11,6:12,7:13,8:14,9:15,10:16,11:17,12:18,13:19,14:20,15:21,500:22,501:23,215:24,502:25,503:26,504:27,505:28,506:29,817:30,30:31,31:32,32:33,33:34,34:35,35:36,36:37,251:39,252:40,253:41,254:42,255:43,256:44,257:45,258:46,515:47,516:48,517:49,518:50,519:51,520:52,521:53,522:54,523:55,1011:61,1012:62,1013:63,1014:64,1015:65,1016:66,1017:67,1018:68,1019:69,1020:70,1021:71,1022:72,1023:73,1024:74,1025:75,1026:76,1027:77,1028:78,1029:79,575:82,576:83,605:85,65:92,194:93,456:97,26:$V4,44:$V5,152:$V6,166:$V7,198:$V8,205:$V9,217:$Va,231:$Vb,266:$Vc,533:$Vd,534:$Ve,535:$Vf,538:$Vg,542:$Vh,562:$Vi,564:$Vj,566:$Vk,571:$Vl,609:$Vm,626:$Vn,634:$Vo,640:$Vp,670:$Vq,675:$Vr,816:$Vs}),{645:[1,104],648:[1,105]},o($V2,[2,1196]),{3:106,4:10,5:11,6:12,7:13,8:14,9:15,10:16,11:17,12:18,13:19,14:20,15:21,26:$V4,30:31,31:32,32:33,33:34,34:35,35:36,36:37,44:$V5,65:92,152:$V6,166:$V7,194:93,195:108,198:$V8,205:$V9,211:107,215:24,217:$Va,251:39,252:40,253:41,254:42,255:43,256:44,257:45,258:46,266:$Vc,456:97,500:22,501:23,502:25,503:26,504:27,505:28,506:29,515:47,516:48,517:49,518:50,519:51,520:52,521:53,522:54,523:55,533:$Vd,534:$Ve,535:$Vf,538:$Vg,542:$Vh,562:$Vi,564:$Vj,566:$Vk,571:$Vl,575:82,576:83,605:85,609:$Vm,626:$Vn,634:$Vo,640:$Vp,670:$Vq,675:$Vr,816:$Vs,817:30,1011:61,1012:62,1013:63,1014:64,1015:65,1016:66,1017:67,1018:68,1019:69,1020:70,1021:71,1022:72,1023:73,1024:74,1025:75,1026:76,1027:77,1028:78,1029:79},o($V2,[2,299]),o($V2,[2,300]),o($V2,[2,301]),o($Vt,[2,344],{232:109,233:[1,112],234:[1,110],235:[1,111],236:[1,113],238:[1,114],239:[1,115],240:[1,116],241:[1,117]}),o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,8]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,814]),o($V2,[2,815]),{116:$Vu,501:118,535:$Vf,562:$Vi,564:$Vj,575:82,576:83,817:119},o($V2,[2,817]),o($V2,[2,818]),o($V2,[2,819]),o($V2,[2,820]),o($V2,[2,821]),o($Vv,$Vw,{818:121,822:122,824:123,766:$Vx}),o($V2,[2,25]),o($V2,[2,26]),o($V2,[2,27]),o($V2,[2,28]),o($V2,[2,29]),o($V2,[2,30]),o($V2,[2,31]),{158:[1,125]},o($V2,[2,363]),o($V2,[2,364]),o($V2,[2,365]),o($V2,[2,366]),o($V2,[2,367]),o($V2,[2,368]),o($V2,[2,369]),o($V2,[2,370]),o($V2,[2,831]),o($V2,[2,832]),o($V2,[2,833]),o($V2,[2,834]),o($V2,[2,835]),o($V2,[2,836]),o($V2,[2,837]),o($V2,[2,838]),o($V2,[2,839]),{539:[1,126]},{44:$Vy,46:131,47:$Vz,50:$VA,54:$VB,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,166:$V$,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,266:$Vt1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:[1,129],486:$V72,487:$V82,532:$V92,534:$Va2,538:$Vb2,539:$Vc2,543:127,547:128,557:130,559:132,561:$Vd2,562:$Ve2,563:$Vf2,564:$Vg2,565:$Vh2,566:$Vi2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{44:$Vy,46:131,47:$Vz,50:$VA,54:$VB,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,166:$V$,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,266:$Vt1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:[1,294],486:$V72,487:$V82,532:$V92,534:$Va2,538:$Vb2,539:$Vc2,542:[1,292],543:291,547:293,557:130,559:132,561:[1,296],562:$Ve2,563:$Vf2,564:$Vg2,565:$Vh2,566:$Vi2,569:$Vj2,570:[1,295],574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V_2,[2,1614],{785:297,45:298,206:[1,299],233:[1,301],239:[1,300],556:$V$2,757:$V03}),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:307,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:[1,304],486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,561:[1,306],569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,1009:305},o($V2,[2,2494]),o($V2,[2,2495]),o($V2,[2,2496]),o($V2,[2,2497]),o($V2,[2,2498]),o($V2,[2,2499]),o($V2,[2,2500]),o($V2,[2,2501]),o($V2,[2,2502]),o($V2,[2,2503]),o($V2,[2,2504]),o($V2,[2,2505]),o($V2,[2,2506]),o($V2,[2,2507]),o($V2,[2,2508]),o($V2,[2,2509]),o($V2,[2,2510]),o($V2,[2,2511]),o($V2,[2,2512]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:308,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},{535:[1,310]},o($V2,[2,1025],{817:30,195:311,215:312,152:$V6,564:$Vj}),{562:$Vi,564:$V23,575:317,577:313,578:314,597:315},{46:320,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,827:318,829:319},{55:[1,321]},{627:[1,322]},{158:[1,326],535:[2,1163],635:323,637:324,639:[1,325]},{158:[1,327]},{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:331,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,806:330,1051:328,1055:329},o($V33,$V43,{602:333,561:$V53,713:$V63}),{45:336,54:[1,337],61:[1,338],62:[1,340],158:[1,339],556:$V$2,757:$V03},{26:[1,350],63:363,66:[1,341],68:351,74:[1,342],77:343,78:[1,344],83:345,84:[1,346],86:[1,347],87:348,88:[1,349],92:[1,364],96:352,97:353,99:$V73,114:365,133:360,134:$V83,135:$V93,156:[1,355],161:$Va3,166:[1,359],176:$Vb3,177:$Vc3,181:[1,356],182:[1,357],382:$Vd3},{26:[1,369],108:[1,370]},{158:[2,284],199:371,202:[1,372]},{206:[1,373]},o($Ve3,[2,1631],{45:374,267:375,54:[1,380],61:[1,377],62:[1,376],206:[1,379],460:[1,381],473:[1,378],556:$V$2,757:$V03}),o($V2,[2,725]),{45:382,54:[1,387],61:[1,388],62:[1,389],158:[1,386],206:[1,383],460:[1,384],473:[1,385],556:$V$2,757:$V03},{158:[1,390]},{54:$Vf3,61:[1,401],85:[1,402],129:[1,407],154:[1,391],158:[1,406],233:[1,412],240:[1,400],266:[1,394],473:[1,404],539:[1,408],542:[1,398],652:[1,392],653:[1,410],657:[1,397],666:[1,403],667:[1,411],672:[1,405],702:[1,393],709:[1,395],728:$Vg3,772:[1,409],778:413,779:396,786:399},{153:[1,417],384:[1,416],592:[1,418]},{46:428,47:$Vz,50:$VA,56:426,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vh3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,834:419,888:427,921:420,923:421,925:422,926:423,936:424,938:425},{384:[1,430]},{1:[2,1191]},o($V0,$V1,{643:431}),o($V2,[2,296]),o($V2,[2,297]),o($V2,[2,298]),o($Vt,[2,341]),o($Vt,[2,345]),o($Vt,[2,346]),{236:[1,432]},o($Vt,$Vi3,{237:433,244:$Vj3,245:$Vk3}),o($Vt,[2,349]),o($Vt,[2,350]),o($Vt,[2,351]),o($Vl3,[2,356],{242:436,246:[1,437]}),o($V2,[2,816]),o($Vv,$Vw,{822:122,824:123,818:438,766:$Vx}),{152:$V6,195:439,215:312,564:$Vj,817:30},o($Vv,[2,1798]),o($Vv,[2,1812],{824:440,766:$Vx}),o($Vm3,[2,1814]),o([561,564,713],$V1,{643:441}),{46:428,47:$Vz,50:$VA,56:442,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{385:$Vn3,540:443,541:444,684:$Vo3,767:$Vp3,914:445,915:446},{55:$Vq3,75:$Vr3,123:$Vs3,544:450},{75:[1,453],123:$Vt3},o([75,123],$Vu3,{46:131,270:133,649:148,547:455,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2}),o($Vv3,[2,942]),o($Vw3,[2,975]),o($Vv3,$Vx3,{560:456,80:457,116:$Vy3}),o($Vz3,[2,1719]),{281:$VA3,691:$VB3},o($VC3,$VD3),o($VC3,[2,954]),o($VC3,[2,955]),o($VC3,[2,956]),o($VC3,[2,957]),o($VC3,[2,958]),o($VC3,[2,959]),o($VC3,[2,960]),o($VC3,[2,961]),o($VC3,[2,962]),o($VC3,[2,963]),o($VE3,[2,1345]),o($VE3,[2,1346]),o($VE3,[2,1347]),o($VE3,[2,1202]),o($VE3,[2,1203]),o($VE3,$VF3),o($VE3,[2,1205]),o($VE3,[2,1206]),o($VE3,[2,1207]),o($VE3,[2,1208]),o($VE3,[2,1209]),o($VE3,[2,1210]),o($VE3,[2,1211]),o($VE3,[2,1212]),o($VE3,[2,1213]),o($VE3,[2,1214]),o($VE3,[2,1215]),o($VE3,[2,1216]),o($VE3,[2,1217]),o($VE3,[2,1218]),o($VE3,[2,1219]),o($VE3,[2,1220]),o($VE3,[2,1221]),o($VE3,[2,1222]),o($VE3,[2,1223]),o($VE3,[2,1224]),o($VE3,[2,1225]),o($VE3,[2,1226]),o($VE3,[2,1227]),o($VE3,[2,1228]),o($VE3,[2,1229]),o($VE3,[2,1230]),o($VE3,[2,1231]),o($VE3,[2,1232]),o($VE3,[2,1233]),o($VE3,[2,1234]),o($VE3,[2,1235]),o($VE3,[2,1236]),o($VE3,[2,1237]),o($VE3,[2,1238]),o($VE3,[2,1239]),o($VE3,[2,1240]),o($VE3,[2,1241]),o($VE3,[2,1242]),o($VE3,[2,1243]),o($VE3,[2,1244]),o($VE3,[2,1245]),o($VE3,[2,1246]),o($VE3,[2,1247]),o($VE3,[2,1248]),o($VE3,[2,1249]),o($VE3,[2,1250]),o($VE3,[2,1251]),o($VE3,[2,1252]),o($VE3,[2,1253]),o($VE3,[2,1254]),o($VE3,[2,1255]),o($VE3,[2,1256]),o($VE3,[2,1257]),o($VE3,[2,1258]),o($VE3,[2,1259]),o($VE3,[2,1260]),o($VE3,[2,1261]),o($VE3,[2,1262]),o($VE3,[2,1263]),o($VE3,[2,1264]),o($VE3,[2,1265]),o($VE3,[2,1266]),o($VE3,[2,1267]),o($VE3,[2,1268]),o($VE3,[2,1269]),o($VE3,[2,1270]),o($VE3,[2,1271]),o($VE3,[2,1272]),o($VE3,[2,1273]),o($VE3,[2,1274]),o($VE3,[2,1275]),o($VE3,[2,1276]),o($VE3,[2,1277]),o($VE3,[2,1278]),o($VE3,[2,1279]),o($VE3,[2,1280]),o($VE3,[2,1281]),o($VE3,[2,1282]),o($VE3,[2,1283]),o($VE3,[2,1284]),o($VE3,[2,1285]),o($VE3,[2,1286]),o($VE3,[2,1287]),o($VE3,[2,1288]),o($VE3,[2,1289]),o($VE3,[2,1290]),o($VE3,[2,1291]),o($VE3,[2,1292]),o($VE3,[2,1293]),o($VE3,[2,1294]),o($VE3,[2,1295]),o($VE3,[2,1296]),o($VE3,[2,1297]),o($VE3,[2,1298]),o($VE3,[2,1299]),o($VE3,[2,1300]),o($VE3,[2,1301]),o($VE3,[2,1302]),o($VE3,[2,1303]),o($VE3,[2,1304]),o($VE3,[2,1305]),o($VE3,[2,1306]),o($VE3,[2,1307]),o($VE3,[2,1308]),o($VE3,[2,1310]),o($VE3,[2,1311]),o($VE3,[2,1312]),o($VE3,[2,1313]),o($VE3,[2,1314]),o($VE3,[2,1315]),o($VE3,[2,1316]),o($VE3,[2,1317]),o($VE3,[2,1318]),o($VE3,[2,1319]),o($VE3,[2,1320]),o($VE3,[2,1321]),o($VE3,[2,1322]),o($VE3,[2,1323]),o($VE3,[2,1324]),o($VE3,[2,1325]),o($VE3,[2,1326]),o($VE3,[2,1327]),o($VE3,[2,1328]),o($VE3,[2,1329]),o($VE3,[2,1330]),o($VE3,[2,1331]),o($VE3,[2,1332]),o($VE3,[2,1333]),o($VE3,[2,1334]),o($VE3,[2,1335]),o($VE3,[2,1336]),o($VE3,[2,1337]),o($VE3,[2,1338]),o($VE3,[2,1339]),o($VE3,[2,1340]),o($VE3,[2,1341]),o($VE3,[2,1342]),o($VE3,[2,1343]),o($VE3,[2,1344]),{55:$Vq3,123:$Vs3,535:$Vr3,544:461},{569:[1,462]},{123:$Vt3,535:[1,463]},o($VG3,$Vu3,{46:131,270:133,649:148,547:464,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2}),o($VG3,$VF3,{569:[1,465]}),o([55,116,123,535],$VD3,{572:466,542:[1,468],574:[1,467]}),{46:428,47:$Vz,50:$VA,56:469,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V_2,$VH3,{784:470,239:$VI3}),o($VJ3,$VH3,{784:472,239:$VI3}),o($V_2,[2,1615]),o($V_2,[2,1616]),o($VK3,[2,1594]),o($VK3,[2,1595]),o($VL3,$Vu3,{649:148,270:473,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,561:[1,474],569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,739:[1,475]}),{126:[1,476],684:[1,477]},o($V2,[2,2480]),o($VL3,[2,2481]),o($V2,[2,2679]),o($VE3,$Vu3),{46:428,47:$Vz,50:$VA,56:478,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,1026]),{116:$Vu,564:$Vj,817:119},o($V2,[2,1027],{575:317,597:479,562:$Vi}),o([568,645,648,699,714,724,736,744,774,882],$VM3,{579:480,536:481,850:482,773:$VN3}),o($VO3,[2,1061]),o($V33,$V43,{602:484,561:$V53,713:$V63}),{564:$V23,578:485},o([116,535,562,564],[2,1832],{123:[1,486]}),o($VP3,[2,1834]),{108:[1,487]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:488,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{588:[1,551],628:550,629:[2,1147]},{535:$Vr4,636:552},{535:[2,1164]},{158:[1,553]},{46:428,47:$Vz,50:$VA,56:554,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:428,47:$Vz,50:$VA,56:555,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{26:[1,556]},{26:[2,2658]},{26:[2,2660]},{26:[2,1726],46:557,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($Vs4,[2,1722],{684:[1,558]}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:561,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,603:559,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,682:$Vt4,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,917:560,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Vu4,[2,1845]),o($Vu4,[2,1846]),{46:563,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:564,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{62:[1,565]},{46:428,47:$Vz,50:$VA,56:566,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:428,47:$Vz,50:$VA,56:567,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{67:568,71:[1,569],73:570,154:$Vv4,161:$Vw4,366:572,727:$Vx4},{75:[1,573]},o($V2,[2,65]),{79:[1,574]},o($V2,[2,67]),{85:[1,575]},o($V2,$Vy4,{57:576,68:577,161:$Va3}),{68:578,161:$Va3},{78:[1,579],89:[1,580]},{49:584,50:[1,582],90:[1,581],127:$Vz4,129:$VA4,130:$VB4,132:$VC4,660:$VD4},{26:[1,592],63:363,66:[1,593],74:[1,589],92:[1,590],97:591,99:$V73,114:365,133:360,134:$V83,135:$V93,176:$Vb3,177:$Vc3},o($V2,[2,77]),o($V2,[2,78]),{79:[1,594]},{157:595,161:[1,596]},{161:[2,228]},{161:[2,229]},{116:[1,597]},{71:[1,599],161:$VE4,167:598,727:$VF4},o($V2,[2,157]),o($V2,[2,158]),{125:601,279:$VT3,280:$VU3,441:602,782:603},{138:604,178:[1,605],180:[1,606]},o($V_2,$VG4,{139:607,93:[1,608]}),{154:[1,609]},o($VH4,[2,223]),o($VH4,[2,224]),{154:[2,214]},{129:[1,610]},{152:$V6,195:611,215:312,564:$Vj,817:30},{158:[1,612]},{158:[2,285]},o($V2,[2,292]),o($VJ3,$Vw4,{67:613,727:$Vx4}),o($VI4,[2,1633],{268:614,674:[1,615]}),o($V_2,$Vw4,{67:616,727:$Vx4}),{62:[1,617]},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:618,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},{46:620,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,303:619,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:621,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($Ve3,[2,1632],{206:[1,623],491:[1,622]}),o($V_2,$VE4,{167:624,727:$VF4}),o($V_2,$VE4,{167:625,727:$VF4}),{206:[1,626],491:[1,627]},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:628,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},o($V_2,$VE4,{167:629,727:$VF4}),o($V_2,$VE4,{167:630,727:$VF4}),{62:[1,631]},o($V_2,$VE4,{167:632,727:$VF4}),{46:428,47:$Vz,50:$VA,56:633,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{488:$VJ4,535:$VK4,777:634},o($V2,[2,2540]),{27:[1,639],47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:638,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,796:637},{62:[1,642],158:[1,641],1044:640},{666:[1,643]},{307:[1,644]},o($V2,[2,2553],{782:645,280:$VU3}),o($VL4,[2,2566],{649:148,1045:646,270:647,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2}),{55:[1,648]},{45:650,46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:649,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,556:$V$2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,757:$V03},{772:[1,651]},{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:652,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,2612]),{542:[1,653]},o($VM4,[2,1642],{792:654,488:[1,655]}),{239:[1,656]},{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:657,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,2635]),o($VN4,$VO4,{1047:658,488:$VP4,535:$VQ4}),{307:[2,1598]},{307:[2,1599]},{54:$Vf3,728:$Vg3,778:661},{55:[2,1620]},{55:[2,1596]},{55:[2,1597]},o($V_2,$VR4,{585:662,158:$VS4}),o($V_2,$VR4,{585:664,158:$VS4,588:[1,665]}),{590:666,725:$VT4},o($VU4,[2,2294],{835:668,123:[1,669]}),o($VV4,[2,2173]),o($VV4,[2,2180]),o($VV4,[2,2182],{832:670,930:671,707:$VW4,722:$VX4,729:$VY4,733:$VZ4,735:$V_4,746:$V$4,753:$V05,758:$V15}),o($VV4,[2,2183]),o($V25,[2,2247],{937:680,763:[1,681]}),o($V35,$V45,{270:133,649:148,441:602,782:603,918:682,46:683,125:684,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,108:$V55,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2}),o([47,50,55,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,538,539,562,564,568,569,570,574,589,592,609,618,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,691,699,707,714,722,724,729,733,734,735,736,744,746,753,758,763,766,773,774,882],[2,2243]),o($V25,[2,2245]),o($V65,[2,1691],{684:[1,686]}),o($V75,$V85,{888:427,612:687,938:688,944:689,116:$Vh3}),{46:428,47:$Vz,50:$VA,56:690,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,$V3,{209:4,210:5,3:6,211:7,195:8,4:10,5:11,6:12,7:13,8:14,9:15,10:16,11:17,12:18,13:19,14:20,15:21,500:22,501:23,215:24,502:25,503:26,504:27,505:28,506:29,817:30,30:31,31:32,32:33,33:34,34:35,35:36,36:37,251:39,252:40,253:41,254:42,255:43,256:44,257:45,258:46,515:47,516:48,517:49,518:50,519:51,520:52,521:53,522:54,523:55,1011:61,1012:62,1013:63,1014:64,1015:65,1016:66,1017:67,1018:68,1019:69,1020:70,1021:71,1022:72,1023:73,1024:74,1025:75,1026:76,1027:77,1028:78,1029:79,575:82,576:83,605:85,65:92,194:93,456:97,644:691,26:$V4,44:$V5,152:$V6,166:$V7,198:$V8,205:$V9,217:$Va,231:$Vb,266:$Vc,533:$Vd,534:$Ve,535:$Vf,538:$Vg,542:$Vh,562:$Vi,564:$Vj,566:$Vk,571:$Vl,609:$Vm,626:$Vn,634:$Vo,640:$Vp,670:$Vq,675:$Vr,816:$Vs}),o($Vt,$Vi3,{237:692,244:$Vj3,245:$Vk3}),o($Vt,[2,348]),o($Vt,[2,354]),o($Vt,[2,355]),o($Vt,[2,358],{243:693,247:[1,694],248:[1,695],249:[1,696],250:[1,697]}),o($Vl3,[2,357]),o($Vv,[2,1799]),{118:[1,698]},o($Vm3,[2,1815]),{561:$V53,564:$V43,602:699,713:$V63},{57:700,68:577,161:$Va3,218:$Vy4},o($V2,[2,907],{123:[1,701]}),o($V95,[2,909]),o($Va5,[2,2135]),o($Va5,[2,2136]),o($Va5,$Vb5,{684:[1,702]}),{385:$Vc5,767:[1,704]},{385:[1,705]},{75:[1,706]},{44:$Vy,54:$VB,166:$V$,266:$Vt1,534:$Va2,557:707,559:132,561:$Vd2,562:$Ve2,563:$Vf2,564:$Vg2,565:$Vh2,566:$Vi2},{46:428,47:$Vz,50:$VA,56:711,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,158:[1,710],174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,554:708,556:[1,709],569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{51:713,473:$Vd5,545:712,567:$Ve5,568:$Vf5},{46:717,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{75:[1,718],123:$Vt3},o($Vv3,[2,951]),o([55,75,123,152,535,564,645,648],[2,1675]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:720,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,801:719},{691:[1,721]},o($Vz3,[2,1721]),{535:[1,722]},{227:[1,723]},{51:713,473:$Vd5,545:724,567:$Ve5,568:$Vf5},{123:$Vt3,535:[1,725]},{227:[1,726]},{535:[1,727]},{535:[2,1022]},{569:[1,728]},o($V2,$Vy4,{270:133,649:148,46:525,68:577,810:729,57:730,140:731,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,161:$Va3,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2}),{46:733,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,789:732},o($V_2,[2,1613]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:734,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},o($V2,[2,2490]),o($V2,[2,2491]),o($V2,[2,2492]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,125:738,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:[1,741],217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:736,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:602,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,541:742,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,683:[1,743],684:$Vo3,719:[1,740],765:[1,739],767:$Vp3,782:603,908:737,909:[1,744],914:445,915:446,1010:735},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:745,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},o($V2,$VM3,{850:482,536:746,773:$VN3}),o($VO3,[2,1062]),o($V2,[2,1028]),o($Vg5,[2,1878],{838:747,851:748,568:[1,749]}),o($Vh5,[2,1874]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:751,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,857:750,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:561,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,603:752,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,682:$Vt4,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,917:560,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o([562,568,645,648,699,714,724,736,744,774,882],$VM3,{536:481,850:482,579:753,773:$VN3}),{46:320,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,829:754},{116:[1,755]},{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,606:756,614:771,616:$Vq5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($Va5,[2,1981]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:776,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:777,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:778,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:779,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{116:$Vh3,888:780},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:781,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:783,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,616:$Vz5,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,892:782,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528,1062:784,1064:785},o($Va5,[2,2113]),o($Va5,[2,2114],{901:787,116:$VA5}),{116:$VA5,901:789},o($Va5,[2,2117]),o($Va5,[2,2118]),o($Va5,[2,2130]),o($VB5,[2,2124],{684:[1,790]}),{116:[2,2313]},{116:[2,2314]},{116:[2,2315]},{116:[2,2316]},{116:[2,2317]},o($Va5,[2,2334],{963:791,965:792,747:$VC5}),{747:$VC5,965:794},o($Va5,[2,2299]),o($Va5,[2,2300]),o($Va5,[2,2132]),o($Va5,[2,2133]),o($VD5,[2,1733]),o($VE5,[2,2323]),o($VE5,[2,2324]),o($VE5,[2,2325]),{116:[1,795]},{116:[1,796]},{116:[1,797]},o($Va5,[2,2144]),o($Va5,[2,2145]),o($Va5,[2,2146]),o($VF5,[2,1751],{685:[1,798]}),{116:[1,799]},{116:[1,800]},{116:[1,801]},{279:[1,803],281:[1,802]},{280:[1,805],281:[1,804]},o($Va5,[2,2149]),o($Va5,[2,2150]),{116:[2,2438]},{116:[2,2439]},{116:[2,2440]},{116:[2,2441]},{116:[2,2442]},{116:[2,2443]},{116:[2,2444]},{116:[2,2445]},{116:[2,2446]},{116:[2,2447]},{116:[2,2448]},{116:[2,2449]},{116:[2,2450]},{116:[2,2451]},{116:[2,2452]},{116:[2,2453]},{116:[2,2454]},{629:[1,806]},{629:[2,1148]},{535:[1,807]},{46:428,47:$Vz,50:$VA,56:808,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{57:809,68:577,161:$Va3,535:$Vy4},{57:810,68:577,75:$Vy4,161:$Va3},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:814,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,624:811,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,808:815,1057:812,1059:813},{26:[2,1727]},{46:816,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($Vm3,[2,1809],{821:817,576:819,123:$VG5,535:$Vf}),o($VH5,[2,2158]),o($VH5,$V45,{270:133,649:148,441:602,782:603,46:683,125:684,891:770,918:820,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$Vi5,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,108:$V55,126:$Vj5,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,150:$Vk5,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,279:$VT3,280:$VU3,307:$Vl5,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,348:$Vm5,349:$Vn5,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,381:$Vo5,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,488:$Vp5,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,682:$Vr5,683:$Vs5,688:$Vt5,691:$VZ2,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o($VH5,[2,2154]),{26:[1,821]},{55:[1,822]},{46:428,47:$Vz,50:$VA,56:823,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o([26,66,74,78,84,86,88,92,99,134,135,156,161,166,176,177,181,182,382],[2,210]),o([26,108],[2,275]),{68:824,161:$Va3},{46:825,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,63]),{88:[1,826]},o($VI5,$VJ5,{332:827,177:$VK5}),{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:829,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{80:830,116:$Vy3},o($V2,[2,68]),o($V2,[2,69]),o([58,75,116,152,218,418,535,564,586,645,648,727],[2,1646]),o($V2,[2,70]),o($V2,[2,71]),o($V2,[2,72]),{91:831,116:[1,832]},{51:833,473:$Vd5,567:$Ve5,568:$Vf5},{128:834,417:$VL5,418:$VM5,420:$VN5,421:$VO5,422:$VP5,423:$VQ5,424:$VR5,425:$VS5},o($V2,[2,153]),{48:843,116:$VT5},{125:845,279:$VT3,280:$VU3,441:602,782:603},{48:846,116:$VT5},{590:847,725:$VT4},{75:[1,848]},o($V_2,$VG4,{139:607,93:[1,849]}),o($V2,[2,79]),{49:584,127:$Vz4,129:$VA4,130:$VB4,132:$VC4,660:$VD4},{154:$Vv4},{80:850,116:$Vy3},{152:[1,851]},{116:[1,852]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:855,151:$VX,153:$VY,154:$VZ,156:$V_,163:853,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,804:854},{68:857,161:$Va3,168:856},{46:858,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{718:[1,859]},o($VU5,[2,176],{136:860,150:[1,861]}),o($VV5,[2,1608]),o($VV5,[2,1609]),o($V2,[2,160]),o($V2,[2,1626],{179:862,651:[1,863]}),o($V2,[2,226]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:864,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V_2,$VW5),{94:865,116:$VX5},{48:867,116:$VT5},o($V2,[2,269]),{46:428,47:$Vz,50:$VA,56:868,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:869,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},{158:[2,1617],269:870,639:[1,871]},o($VI4,[2,1634]),{46:620,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,303:872,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V_2,$Vw4,{67:873,727:$Vx4}),o($V2,[2,754]),{108:[1,874]},o($VY5,[2,1696],{684:[1,875]}),{55:[1,876]},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:877,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:878,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},{46:879,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:620,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,303:880,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($VJ3,$VE4,{167:881,727:$VF4}),o($VJ3,$VE4,{167:882,727:$VF4}),o($V2,[2,865]),{46:428,47:$Vz,50:$VA,56:883,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:884,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:428,47:$Vz,50:$VA,56:885,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:428,47:$Vz,50:$VA,56:886,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,$Vy4,{68:577,57:887,161:$Va3}),{46:888,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V_2,[2,1592]),o($V_2,[2,1593]),o($V2,[2,2541],{684:[1,889]}),o($VZ5,[2,1661]),o($VZ5,[2,1662]),{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:890,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V_2,[2,2547]),o($V_2,[2,2548]),o($V2,[2,2549]),{279:$VT3,441:891},o($V2,[2,2554]),o($V2,[2,2555],{55:[1,892]}),o($VL4,[2,2567]),{46:893,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,2588],{68:895,161:$Va3,239:[1,894]}),{46:896,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($VN4,$VO4,{1047:897,488:$VP4,535:$VQ4}),o($V2,[2,2601],{68:898,161:$Va3}),{473:[1,900],567:[1,901],780:899},o($V2,[2,2627],{441:902,279:$VT3,307:[1,903]}),{27:[1,908],46:733,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:[1,907],789:904,791:905,798:909,799:906},{307:[2,1623],488:$VJ4,535:$VK4,777:911,788:910},o($V2,[2,2631],{116:[1,912]}),o($V2,$V_5,{1048:913,307:$V$5}),{46:915,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:916,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{55:[2,1619]},{46:428,47:$Vz,50:$VA,56:917,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V_2,[2,1077]),{46:428,47:$Vz,50:$VA,56:918,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{589:[1,919]},o($V06,$V16,{591:920,409:$V26}),{999:[1,922]},o([118,499,562,564,568,645,648,699,714,724,736,744,766,773,774,882],[2,1854],{960:923,734:[1,924]}),{46:428,47:$Vz,50:$VA,56:426,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vh3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,888:427,921:925,923:421,925:422,926:423,936:424,938:425},o($VV4,[2,2186],{930:926,707:$VW4,722:$VX4,729:$VY4,733:$VZ4,735:$V_4,746:$V$4,753:$V05,758:$V15}),{46:428,47:$Vz,50:$VA,56:426,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vh3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,888:427,925:927,936:424,938:425},{733:[1,928]},{733:[1,929],746:[1,930]},{733:[1,931]},o($V36,[2,2206]),{729:[1,932],733:[1,933],746:[1,934],758:[1,935]},{733:[1,936]},{729:[1,937],733:[1,938],746:[1,939],758:[1,940]},{733:[1,941]},o($V35,$V45,{270:133,649:148,441:602,782:603,46:683,125:684,918:942,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,108:$V55,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2}),{116:[1,943]},o($V35,[2,2238]),o($V46,[2,2285]),o($V46,[2,2286]),{46:944,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,125:945,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:602,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,782:603},{46:946,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{118:[1,947]},{46:683,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,108:$V55,118:$V45,125:684,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:602,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,782:603,918:948},{152:$V6,195:956,215:312,564:$Vj,817:30,946:949,948:950,950:951,952:952,954:953,956:954,958:955},{108:[1,957]},o($V2,[2,1197]),o($Vt,[2,347]),o($Vt,[2,352]),o($Vt,[2,359]),o($Vt,[2,360]),o($Vt,[2,361]),o($Vt,[2,362]),o($Vv,$Vw,{822:122,824:123,818:958,766:$Vx}),{564:$Vj,817:959},{218:[1,960]},{385:$Vn3,541:961,684:$Vo3,767:$Vp3,914:445,915:446},o($Va5,$V56,{385:$V66,767:[1,963]}),o($Va5,[2,2140]),{385:[1,964]},o($Va5,[2,2141]),{51:713,473:$Vd5,545:965,567:$Ve5,568:$Vf5},o($Vv3,[2,943]),o($V76,[2,932]),{46:966,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:428,47:$Vz,50:$VA,56:967,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V76,[2,937]),o($V2,$V86,{548:968,123:$V96,152:$Va6}),o($Vb6,[2,964]),{46:971,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:972,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:973,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($Vw3,[2,976]),{51:713,473:$Vd5,545:974,567:$Ve5,568:$Vf5},{118:[1,975],123:$Vc6},o($Vd6,[2,1680]),o($Vz3,[2,1720]),{51:713,473:$Vd5,545:977,567:$Ve5,568:$Vf5},{44:$Vy,54:$VB,166:$V$,266:$Vt1,534:$Va2,543:978,557:130,559:132,561:$Vd2,562:$Ve2,563:$Vf2,564:$Vg2,565:$Vh2,566:$Vi2},o($V2,[2,987],{123:$V96}),{51:713,473:$Vd5,545:979,567:$Ve5,568:$Vf5},{46:131,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:[1,981],486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,547:980,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:131,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,547:982,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{535:[2,1023]},o($V2,$Vy4,{68:577,57:983,161:$Va3,684:[1,984]}),o($V2,[2,1782]),o($Ve6,[2,1741]),o($V2,[2,1783]),o($VM4,[2,1701]),o($V2,[2,1784]),o($V2,[2,2479]),o($V2,[2,2483]),o($V2,[2,2484],{649:148,270:985,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2}),o($V2,[2,2486]),o($V2,[2,2487]),o($V2,[2,2488]),o($V2,[2,2489]),o($Vf6,[2,2127]),{385:$Vn3,541:986,684:$Vo3,767:$Vp3,914:445,915:446},{385:$Vn3,541:987,684:$Vo3,767:$Vp3,914:445,915:446},o($VL3,[2,2482]),o($V2,[2,901]),o($Vg6,[2,2389],{839:988,852:989,724:[1,990]}),o($Vg5,[2,1879]),{79:[1,991]},o($Vh5,[2,1875]),o($Vh5,[2,1979],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o([562,568,645,648,699,714,724,736,744,773,774,882],[2,1083],{123:$VG5}),o($VO3,[2,1067]),o($VP3,[2,1835]),o($V75,$V85,{944:689,612:992}),o($V2,[2,1087]),o([208,713,719,765],$Vh6,{617:993,88:$Vi6}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:995,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:996,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:997,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:998,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{307:$Vl5,488:[1,999],692:[1,1000],752:$Vx5,754:$Vy5,891:1001},{116:[1,1002]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1003,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1004,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1005,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1006,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1007,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1008,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Va5,[2,2007]),o($V2,[2,1110],{614:1009,616:$Vq5}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1010,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1011,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1012,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{88:$Vi6,617:1013,618:$Vh6},o($Vj6,[2,1982],{891:770,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,732:$Vv5,752:$Vx5,754:$Vy5}),o($Vj6,[2,1983],{891:770,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,732:$Vv5,752:$Vx5,754:$Vy5}),o($Vj6,[2,1984],{891:770,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,732:$Vv5,752:$Vx5,754:$Vy5}),o($Vk6,[2,1985],{891:770}),o($Va5,[2,1990]),{88:$Vi5,118:[1,1014],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($Va5,[2,2009]),{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,616:$Vz5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770,892:1015,1062:784,1064:785},{616:$Vz5,716:[1,1017],717:[1,1016],1064:1018},o($Vl6,[2,2708]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1019,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Va5,[2,2115]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,118:[1,1020],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1022,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,889:1021,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Va5,[2,2116]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1024,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,682:[1,1023],691:$VZ2},o($Va5,[2,2297]),o($Va5,[2,2335]),{46:1025,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vm6,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,982:1026},o($Va5,[2,2298]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,118:[1,1028],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1022,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,889:1029,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,118:[1,1031],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1030,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{654:[1,1033],655:[1,1034],658:[1,1035],661:[1,1036],662:[1,1037],664:[1,1038],668:[1,1039],676:[1,1040],677:[1,1041],1003:1032},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1042,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,686:[1,1043],687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Vn6,$V43,{602:1046,118:[1,1045],561:$V53,682:[1,1044],713:$V63}),o($Vn6,$V43,{602:1047,118:[1,1048],561:$V53,713:$V63}),o([47,50,58,61,62,64,66,74,78,84,85,86,88,89,90,92,99,107,116,118,127,129,130,132,134,135,151,153,154,156,174,175,176,177,178,180,181,182,198,202,205,208,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,347,351,352,359,373,374,376,382,385,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,533,538,539,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,681,683,684,687,690,691,694,696,697,700,701,703,704,705,706,718,719,726,727,737,738,740,748,749,760,761,762,765,767,768,769,771,775,1002],$V43,{602:1049,561:$V53,713:$V63}),{279:[1,1050]},o($Vo6,[2,1603]),{280:[1,1051]},o($Vp6,[2,1606]),{590:1052,725:$VT4},{590:1053,725:$VT4},{57:1054,68:577,161:$Va3,535:$Vy4},{535:[2,1166]},{75:$Vr4,636:1055},o($Vq6,[2,2675],{1052:1056,123:$Vr6,535:[1,1058]}),o($Vs6,[2,2662]),{126:[1,1059]},{126:[2,2672]},o($Vt6,[2,1730],{684:[1,1060]}),o($Vs4,[2,1723]),o($Vm3,[2,1810]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:561,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,682:$Vt4,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,917:1061,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o([118,499,568,645,648,699,714,724,736,744,766,774,882],$VM3,{536:481,850:482,579:1062,773:$VN3}),o($VH5,[2,2153]),{47:[1,1063],49:1064,50:[1,1065],660:$VD4},{46:428,47:$Vz,50:$VA,56:1066,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{63:1067,176:$Vb3,177:$Vc3},o($Vu6,$Vv6,{69:1068,49:1069,660:$VD4}),{72:1070,317:$Vw6,320:$Vx6,323:$Vy6,368:1071,369:1074,371:$Vz6},{718:[1,1077]},o($VA6,$VB6,{326:1078,333:$VC6}),o($VI5,[2,469]),o($V2,[2,64]),{55:[1,1080]},o($V2,[2,73]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,187:1081,189:1082,191:1083,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,808:815},o($V2,[2,74]),o($V2,[2,152]),o($VD6,[2,647]),{125:1084,279:$VT3,280:$VU3,441:602,782:603},o($VD6,[2,649]),o($VD6,[2,650]),o($VD6,[2,651]),o($VD6,[2,652]),o($VD6,[2,653]),o($VD6,[2,654]),o($V2,[2,154]),{125:1087,279:$VT3,280:$VU3,283:1085,284:1086,441:602,782:603},o($V2,$VE6,{131:1088,448:1089,152:$VF6}),o($V2,[2,156]),o($VG6,[2,1717]),{68:1091,161:$Va3},o($V_2,$VW5,{94:1092,116:$VX5}),{383:1093,384:[2,606],397:[1,1094]},{158:[1,1095]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:[1,1098],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:855,151:$VX,153:$VY,154:$VZ,156:$V_,162:1096,163:1097,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,804:854},{118:[1,1099],123:$VH6},o($VI6,[2,1703]),o($VI6,[2,1710],{126:[1,1101]}),o($V2,$VJ6,{169:1102,123:[1,1103],532:$VK6}),o($VL6,[2,230]),o($V2,[2,203]),o([47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,569,570,574,589,592,609,618,626,627,629,640,641,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,691],[2,1636]),o($V2,[2,179],{137:1105,152:[1,1106]}),{151:[1,1107]},o($V2,[2,225]),o($V2,[2,1627]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1109,141:1108,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,$VM6,{95:1110,651:$VN6,665:$VO6}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1109,141:1114,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,308:1113,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,268]),o($V2,[2,286],{200:1115,203:1116,66:[1,1117],166:[1,1118],204:[1,1119]}),o([152,645,648,660],$VP6,{271:1120,272:1121,276:1122,277:$VQ6}),{158:[1,1124]},{158:[2,1618]},o($VR6,[2,744],{454:1125,470:1126,116:[1,1127]}),{46:620,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,303:1128,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{279:$VT3,441:1129},{46:1130,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{158:[1,1131]},{116:[1,1133],492:1132},{108:[1,1134]},o($V2,$VM6,{95:1135,651:$VN6,665:$VO6}),o($V2,[2,856]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1136,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1137,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},o($V2,$VJ6,{169:1138,532:$VK6}),{55:[1,1139]},o($V2,[2,884]),o($V2,[2,888]),o($V2,[2,894]),o($V2,[2,2530],{777:1140,488:$VJ4,535:$VK4}),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1141,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,776:[1,1142]},o($V2,[2,2542]),o($V2,[2,2551]),{46:428,47:$Vz,50:$VA,56:1144,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,158:[1,1145],174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,561:[1,1143],569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,2570],{777:1146,488:$VJ4,535:$VK4}),o($V2,[2,2589]),o($V2,[2,2590],{239:[1,1147]}),o($V2,[2,2592]),o($V2,$V_5,{1048:1148,307:$V$5}),o($V2,[2,2602]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1149,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},o($VJ3,[2,1600]),o($VJ3,[2,1601]),o($V2,[2,2628]),{279:$VT3,441:1150},o($VM4,[2,1643]),o($VM4,[2,1644]),o($VM4,[2,1702]),{281:$VA3,691:$VB3,781:[1,1151]},o($VM4,[2,1667]),o($VM4,[2,1668]),{307:[1,1152]},{46:733,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,789:1153},{125:1154,279:$VT3,280:$VU3,441:602,782:603},o($V2,[2,2636]),{279:$VT3,441:1155},o($VN4,[2,2641]),o($VN4,[2,2642]),o([116,152,564,586,645,648],$Vy4,{68:577,57:1156,161:$Va3}),o([152,564,645,648,727],$Vy4,{68:577,57:1157,161:$Va3}),{590:1158,725:$VT4},o($VS6,$VT6,{416:1159,414:1160,107:$VU6}),{410:[1,1162]},{1000:[1,1163]},o($VU4,[2,2295]),{62:[1,1164]},o($VV4,[2,2174]),{46:428,47:$Vz,50:$VA,56:426,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vh3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,888:427,925:1165,936:424,938:425},o($VV6,$VW6,{931:1166,55:$VX6}),o($V36,[2,2202]),o($V36,[2,2203]),{733:[1,1168]},o($V36,[2,2205]),{733:[1,1169]},o($V36,[2,2208]),{733:[1,1170]},{733:[1,1171]},o($V36,[2,2211]),{733:[1,1172]},o($V36,[2,2213]),{733:[1,1173]},{733:[1,1174]},o($V36,[2,2216]),o($V35,[2,2237]),{385:[1,1178],650:[1,1175],678:[1,1177],684:[1,1179],914:1176},o($V46,[2,2287]),o($V46,[2,2288]),o($V65,[2,1692]),o($VY6,[2,2264]),{118:[1,1180]},{118:[2,2268]},{118:[2,2270]},{118:[2,2272]},{118:[2,2274]},{118:[2,2276]},{118:[2,2278]},{118:[2,2280]},{118:[2,2282]},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1181,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},o($Vv,[2,1800]),o($Vm3,[2,1820]),{219:[1,1182]},o($V95,[2,910]),o($Va5,[2,2139]),{385:[1,1183]},o($Va5,[2,2142]),o($V2,[2,977],{546:1184,123:$V96,152:[1,1185]}),o($V76,[2,935]),o($V76,[2,936]),o($V2,[2,912]),{51:1186,473:$Vd5,567:$Ve5,568:$Vf5},{570:[1,1187]},o($Vb6,[2,969]),o($Vb6,[2,970]),o($Vb6,[2,971]),o($V2,$V86,{548:1188,123:$V96,152:$Va6}),o([55,75,107,108,118,123,129,152,177,333,372,373,374,382,384,396,397,409,535,564,645,648,660],[2,1677]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1189,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,985],{123:$V96}),{55:$Vq3,123:$Vs3,535:$Vr3,544:1190},o($V2,[2,988],{123:$V96}),{123:$Vt3,535:[1,1191]},o($VG3,$Vu3,{46:131,270:133,649:148,547:1192,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2}),o($V2,[2,991],{123:$Vt3}),o($V2,[2,1781]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1193,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,2485]),o($Vf6,[2,2128]),o($Vf6,[2,2129]),o($VZ6,[2,2394],{840:1194,853:1195,774:[1,1196]}),o($Vg6,[2,2390]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1197,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1199,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,859:1198,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{118:[1,1200]},{208:[1,1201],713:[1,1204],719:[1,1203],765:[1,1202]},o([208,618,713,719,765],[2,2152]),o($V_6,[2,1992],{891:770,307:$Vl5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,732:$Vv5,752:$Vx5,754:$Vy5}),o($V_6,[2,1993],{891:770,307:$Vl5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,732:$Vv5,752:$Vx5,754:$Vy5}),o($V_6,[2,1994],{891:770,307:$Vl5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,732:$Vv5,752:$Vx5,754:$Vy5}),o($V_6,[2,1995],{891:770,307:$Vl5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,732:$Vv5,752:$Vx5,754:$Vy5}),{116:[1,1205]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1206,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Va5,[2,2008]),o($V75,$V85,{270:133,649:148,914:445,915:446,887:489,285:497,900:498,902:499,903:500,910:502,808:503,962:509,964:510,966:511,967:512,541:513,912:514,140:515,976:516,977:517,978:518,441:522,782:523,916:524,46:525,1004:528,944:689,324:1022,612:1207,889:1208,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,1002:$Vq4}),{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,890:[1,1209],891:770},o($V$6,[2,2002],{891:770,88:$Vi5,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,752:$Vx5,754:$Vy5}),o($V$6,[2,2003],{891:770,88:$Vi5,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,752:$Vx5,754:$Vy5}),o($Vk6,[2,2004],{891:770,307:$Vl5,488:$Vp5,732:$Vv5,752:$Vx5,754:$Vy5}),o($Vk6,[2,2005],{891:770,307:$Vl5,488:$Vp5,732:$Vv5,752:$Vx5,754:$Vy5}),o($Vk6,[2,2006],{891:770,307:$Vl5,488:$Vp5,732:$Vv5,752:$Vx5,754:$Vy5}),o($V2,[2,1111],{614:1210,616:$Vq5}),o($Vk6,[2,2684],{891:770}),o($Vk6,[2,2685],{891:770}),o($Vk6,[2,2686],{891:770}),{618:[1,1211]},o($Va5,[2,1991]),o($Va5,[2,2010]),o($Va5,[2,2693]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1212,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Vl6,[2,2709]),{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,620:[1,1213],682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($Va5,[2,2318]),{118:[1,1214],123:$V07},o($V17,[2,2098],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o($VB5,[2,2125]),o($VD5,[2,1734]),o($Va5,[2,2337]),o($Va5,[2,2338]),o($V27,[2,2345],{984:1216,988:1217,161:[1,1218]}),{747:[2,2329]},{118:[1,1219],123:$V07},{88:$Vi5,108:[1,1220],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($Va5,[2,2400]),{535:[1,1221]},{535:[2,2424]},{535:[2,2425]},{535:[2,2426]},{535:[2,2427]},{535:[2,2428]},{535:[2,2429]},{535:[2,2430]},{535:[2,2431]},{535:[2,2432]},{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,686:[1,1222],688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($VF5,[2,1753]),{118:[1,1223]},o($VE5,[2,2412]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1022,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,889:1224,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1225,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($VE5,[2,2458]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,118:[1,1226],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1022,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,889:1227,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Vo6,[2,1602]),o($Vp6,[2,1605]),{153:[1,1229],384:[2,1145],630:1228},o($V2,$Vv6,{49:1069,69:1230,660:$VD4}),{535:[2,1165]},{75:[1,1231]},o($V2,$VM3,{850:482,536:1232,773:$VN3}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:814,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,808:815,1057:1233,1059:813},{46:428,47:$Vz,50:$VA,56:426,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vh3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,888:427,921:1234,923:421,925:422,926:423,936:424,938:425},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1236,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528,1060:1235},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1024,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,682:[1,1237],691:$VZ2},o($VH5,[2,2159]),o($Vm3,[2,1847]),{48:1238,116:$VT5},o($V2,[2,41]),{51:1239,473:$Vd5,567:$Ve5,568:$Vf5},{57:1240,58:$Vy4,68:577,161:$Va3},{64:[1,1241]},o($V2,[2,239],{70:1242,184:1243,185:1244,68:1245,161:$Va3}),o($VG6,[2,1716]),o($V2,[2,62]),o($V37,[2,543]),{116:[1,1246]},{80:1247,116:$Vy3},{80:1248,116:$Vy3},{318:[1,1249]},{318:[1,1250]},o([47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,127,129,130,132,134,135,151,152,153,154,156,161,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,532,538,539,564,569,570,574,589,592,609,618,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,691],[2,1639]),o($V47,$V57,{327:1251,373:$V67,374:$V77}),o($V87,[2,471]),{81:1254,116:$V97},{118:[1,1256],123:[1,1257]},o($VI6,[2,252]),{126:[1,1258]},{419:[1,1259]},{118:[1,1260],123:[1,1261]},o($VI6,[2,402]),{126:[1,1262]},o($V2,[2,155]),o($Va7,[2,689]),{132:[1,1263]},o($V2,[2,75]),o($V2,$VM6,{95:1264,651:$VN6,665:$VO6}),{384:[1,1265]},{79:[1,1266]},{46:332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,76:1267,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{118:[1,1268],123:[1,1269]},{118:[1,1270],123:$VH6},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:855,151:$VX,153:$VY,154:$VZ,156:$V_,163:1271,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,804:854},o([26,58,66,74,75,92,99,116,123,134,135,152,161,176,177,218,239,418,532,535,564,586,645,648,660,727],[2,1648]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:855,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,804:1272},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1273,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($V2,[2,202]),{68:1274,161:$Va3},o($V2,[2,873]),o($V2,[2,159]),{153:[1,1275]},o($VU5,[2,177]),o($Vb7,[2,215],{142:1276,173:1277,174:[1,1278],175:[1,1279]}),{312:1280,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,351:$Vd7,352:$Ve7,359:$Vf7,656:$Vg7,671:$Vh7,673:$Vi7,693:$Vj7,694:$Vk7,695:$Vl7,698:$Vm7,710:$Vn7,711:$Vo7,715:$Vp7,720:$Vq7,730:$Vr7,731:$Vs7,759:$Vt7,764:$Vu7,770:$Vv7},o($V2,[2,183]),o($V2,[2,1629]),o($V2,[2,1630]),{118:[1,1310],123:[1,1311]},o($VI6,[2,434]),o($V2,[2,278]),{85:[1,1312]},{85:[2,289]},{85:[2,290]},{85:[2,291]},o($V2,[2,379]),o($VU5,$Vv6,{49:1069,69:1313,660:$VD4}),o($Vw7,[2,389]),{125:1314,279:$VT3,280:$VU3,441:602,782:603},o($V_2,$Vw4,{67:1315,727:$Vx4}),o($Vx7,$VP6,{276:1122,272:1316,277:$VQ6}),o($VR6,[2,745]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:1318,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,471:1317,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,808:815},o($Vy7,[2,713],{452:1319,177:[1,1320]}),o($V2,[2,735],{457:1321,464:[1,1322]}),o($VY5,[2,1697]),{46:428,47:$Vz,50:$VA,56:1324,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,474:1323,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1325,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,118:[1,1326],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1329,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,495:1327,497:1328,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},{279:$VT3,441:1330},o($V2,[2,849]),o($V2,[2,857]),o($V2,[2,880]),o($V2,[2,866]),{46:428,47:$Vz,50:$VA,56:1331,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:1332,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($VZ5,[2,1663]),o($VZ5,[2,1664]),o($V2,[2,2556]),o($V2,[2,2557]),{46:428,47:$Vz,50:$VA,56:1333,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:1334,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,2591]),o($V2,[2,2583]),o($V2,[2,2607]),o($V2,[2,2629]),o($VM4,[2,1671]),{279:$VT3,441:1335},{307:[2,1624]},{118:[1,1336]},o($V2,[2,2646]),o($VS6,$Vx3,{80:457,560:1338,116:$Vy3,586:[1,1337]}),o($VS6,$Vw4,{67:1339,727:$Vx4}),o($V06,$V16,{591:1340,409:$V26}),o($VS6,[2,1043]),o($VS6,[2,644]),{108:$Vz7},{426:1342,428:$VA7},o([107,108,129,152,153,161,227,277,384,409,499,564,645,648,660],[2,2368]),o($VB7,[2,2473],{1006:1344,746:[1,1345]}),o($VV6,$VW6,{931:1346,55:$VX6}),o($VV6,[2,2189]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1347,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($V36,[2,2204]),o($V36,[2,2207]),o($V36,[2,2209]),o($V36,[2,2210]),o($V36,[2,2212]),o($V36,[2,2214]),o($V36,[2,2215]),{385:[1,1348]},{663:[1,1349],756:[1,1350]},{118:[1,1351]},o($VC7,$Vb5,{684:[1,1352]}),{385:$Vc5},o($VY6,[2,2265]),{464:[1,1353]},o($VD7,[2,331],{220:1354,223:1355,227:[1,1356]}),o($Va5,[2,2143]),o($V2,[2,911]),{542:[1,1357]},o($Vb6,[2,965]),{569:[1,1358]},o($V2,[2,913]),o($Vd6,[2,1681]),{535:[1,1359]},{51:713,473:$Vd5,545:1360,567:$Ve5,568:$Vf5},{123:$Vt3,535:[1,1361]},o($Ve6,[2,1742]),o($VE7,[2,1917],{841:1362,854:1363,744:$VF7}),o($VZ6,[2,2395]),{46:1365,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($Vg6,[2,2391],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o($Vg5,[2,1885],{860:1366,863:1368,123:[1,1367],152:[1,1369],723:[1,1370]}),o($VG7,[2,1905],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o($VP3,[2,1840]),o($Va5,[2,1986]),o($Va5,[2,1987]),o($Va5,[2,1988]),{535:[1,1371]},o($V75,$V85,{270:133,649:148,914:445,915:446,887:489,285:497,900:498,902:499,903:500,910:502,808:503,962:509,964:510,966:511,967:512,541:513,912:514,140:515,976:516,977:517,978:518,441:522,782:523,916:524,46:525,1004:528,944:689,324:1022,612:1372,889:1373,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,279:$VT3,280:$VU3,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,1002:$Vq4}),{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,890:[1,1374],891:770},{118:[1,1375]},{118:[1,1376],123:$V07},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1377,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($V2,[2,1112]),{150:[1,1379],619:1378,620:[2,1124]},{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,717:[1,1380],732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1381,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Va5,[2,2319]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1382,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{118:[2,2351],744:$VF7,854:1384,985:1383},o($V27,[2,2346]),{79:[1,1385]},{747:[2,2330]},{334:1386,656:$Vg7,671:$Vh7,673:$Vi7,693:$Vj7,694:$Vk7,695:$Vl7,698:$Vm7,710:$Vn7,711:$Vo7,715:$Vp7,720:$Vq7,730:$Vr7,731:$Vs7,759:$Vt7,764:$Vu7,770:$Vv7},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1387,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($VF5,[2,1752]),o($VE5,[2,2411]),{118:[1,1388],123:$V07},{88:$Vi5,118:[1,1389],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($VE5,[2,2433]),{118:[1,1390],123:$V07},{384:[1,1391]},{384:[2,1146]},o($V2,[2,1153]),{590:1392,725:$VT4},o($V2,[2,2648]),o($Vs6,[2,2663]),o($Vq6,[2,2676]),o($Vs6,[2,2668]),o($Vs6,[2,2673],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o($Vt6,[2,1731]),o($V2,[2,40]),o($V2,[2,42]),{58:[1,1393]},o($V2,[2,55]),o($V2,[2,61]),o($V2,[2,240],{68:1245,185:1394,161:$Va3}),o($Vu6,[2,241]),o($Vu6,$Vv6,{49:1069,69:1395,660:$VD4}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1396,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($V37,[2,545]),o($VI5,$VJ5,{332:1397,177:$VK5}),{80:1398,116:$Vy3},{116:[2,562]},o($V47,[2,540]),o($VH7,[2,560]),o($VH7,[2,561]),o($V2,[2,264],{82:1399,89:[1,1400]}),{116:$VI7,406:1401,407:1402},o($V2,[2,250]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,189:1404,191:1083,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,808:815},{125:1405,279:$VT3,280:$VU3,441:602,782:603},{125:1406,279:$VT3,280:$VU3,441:602,782:603},o([107,108,129,277,409,488,499,645,648,660],[2,401]),{125:1087,279:$VT3,280:$VU3,284:1407,441:602,782:603},{279:$VT3,280:$VU3,285:1408,385:$Vn3,441:522,541:513,684:$Vo3,719:$Va4,765:$Vl4,767:$Vp3,782:523,910:502,912:514,914:445,915:446,916:524},{48:1409,116:$VT5},o($V2,[2,76]),{385:[1,1410]},{116:[1,1412],398:1411},o($V2,[2,186]),{152:[2,194]},{116:[1,1413]},{152:[2,195]},{118:[1,1414],123:$VH6},o($VI6,[2,1704]),o($VI6,[2,1709],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o($VL6,[2,231]),{129:[1,1415]},o($V2,$VM6,{95:1416,651:$VN6,665:$VO6}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1417,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V_2,[2,217]),o($V_2,[2,218]),o($VJ7,[2,447],{313:1418,315:1419,316:1420,88:$VK7,317:$VL7,320:$VM7,321:$VN7,323:$VO7}),o($VP7,[2,472]),o($VP7,[2,473]),o($VP7,[2,474]),o($VP7,[2,475]),o($VP7,[2,476]),o($VP7,[2,477]),o($VP7,[2,478]),o($VP7,[2,479]),o($VP7,[2,480]),o($VP7,[2,1760]),o($VP7,[2,1761]),o($VP7,[2,1762]),o($VP7,$VQ7,{814:1426,116:$VR7}),o($VP7,[2,1764]),o($VP7,[2,1778],{815:1428,116:[1,1429]}),o($VP7,[2,1766]),o($VP7,[2,1767]),o($VP7,[2,1768]),o($VP7,[2,1769]),o($VP7,[2,1770]),o($VP7,[2,1771]),o($VP7,[2,1772]),o($VP7,[2,1773]),o($VP7,[2,1774]),o($VP7,$VQ7,{814:1430,116:$VR7}),{348:[1,1431]},{348:[1,1432]},{348:[1,1433]},{348:[1,1434]},o($VS7,[2,429]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,71:$VT7,72:1437,73:1439,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1109,141:1436,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,309:1435,317:$Vw6,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,363:1438,366:572,369:1074,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,287]),o($V2,[2,396],{273:1441,282:1442,152:[1,1443]}),o($Vw7,[2,390]),{46:620,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,286:1444,289:1445,303:1446,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{108:$VU7,129:$VV7,295:1447,449:1448},{118:[1,1450],123:[1,1451]},o($VI6,$VP6,{276:1122,272:1452,277:$VQ6}),o([107,108,129,376,382,396,409,660],$VP6,{276:1122,272:1453,277:$VQ6}),{64:[1,1454]},o($V2,[2,726]),{181:$VW7,465:1455,466:1456,467:1457,468:$VX7,469:$VY7},{116:[1,1462],475:1461},{116:[2,772]},o($V2,[2,795],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o($Vn6,[2,800]),{118:[1,1463],123:[1,1464]},o($VI6,[2,803]),{312:1465,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,351:$Vd7,352:$Ve7,359:$Vf7,656:$Vg7,671:$Vh7,673:$Vi7,693:$Vj7,694:$Vk7,695:$Vl7,698:$Vm7,710:$Vn7,711:$Vo7,715:$Vp7,720:$Vq7,730:$Vr7,731:$Vs7,759:$Vt7,764:$Vu7,770:$Vv7},o($V2,[2,731]),o($V2,[2,874]),o($V2,[2,2531]),o($V2,[2,2558]),o($V2,[2,2571]),o($V2,[2,2613],{68:1466,161:$Va3}),o($V2,[2,2632]),{116:$VZ7,587:1467,599:1468,600:$V_7},o($VS6,[2,1044]),o($VS6,[2,1041]),o($VS6,$VT6,{414:1160,416:1471,107:$VU6}),{128:1472,417:$VL5,418:$VM5,420:$VN5,421:$VO5,422:$VP5,423:$VQ5,424:$VR5,425:$VS5},o($V06,[2,1079]),o($V$7,[2,664],{429:1473,439:[1,1474]}),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1476,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,694:$V04,727:$Vc4,902:1477,974:1475},o($VB7,[2,2474]),o($VV6,[2,2190]),o($VV6,[2,2232],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),{745:[1,1478]},{118:[1,1479]},{118:[1,1480]},o($V25,[2,2251]),o($VC7,$V56,{385:$V66}),{46:428,47:$Vz,50:$VA,56:1483,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:[1,1482],127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,610:1481,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V08,[2,335],{221:1484,224:1485,228:[1,1486]}),o($VD7,[2,332]),{154:[1,1487]},{569:[1,1488]},o($V2,[2,982]),{51:713,473:$Vd5,545:1489,567:$Ve5,568:$Vf5},o($V2,[2,989],{123:$V96}),{51:713,473:$Vd5,545:1490,567:$Ve5,568:$Vf5},o($V18,[2,1941],{842:1491,855:1492,876:1493,877:1494,878:1495,699:[1,1496],714:[1,1497],882:$V28}),o($VE7,[2,1918]),{79:[1,1499]},{108:[1,1500]},o($Vg5,[2,1880]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1501,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Vg5,[2,1886]),{708:[1,1502],755:[1,1503]},{669:[1,1504]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1505,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{118:[1,1506]},{118:[1,1507],123:$V07},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1508,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Va5,[2,1998]),o($Va5,[2,1999]),o([47,50,58,61,62,64,66,74,78,84,85,86,89,90,92,99,107,108,118,123,127,129,130,132,134,135,150,151,152,153,154,156,174,175,176,177,178,180,181,182,198,202,205,217,218,219,229,230,231,234,236,238,240,241,244,245,246,247,248,249,250,277,279,280,318,320,321,323,328,329,330,331,333,352,359,373,374,376,382,386,396,397,410,417,418,419,420,421,422,423,424,425,428,439,440,442,443,444,445,446,447,460,468,469,473,486,487,499,532,535,538,539,562,564,568,569,570,574,589,592,609,616,618,620,626,627,629,640,641,645,648,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,686,689,691,692,699,707,712,714,716,717,722,723,724,729,733,734,735,736,741,743,744,746,751,753,756,758,766,773,774,882,890],[2,2001],{891:770,88:$Vi5,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,732:$Vv5,752:$Vx5,754:$Vy5}),{620:[1,1509]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1510,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Va5,[2,2694]),o($Vl6,[2,2715],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o($V17,[2,2099],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),{118:[1,1511]},{118:[2,2356],751:[1,1516],756:[1,1515],989:1512,991:1513,992:1514},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1022,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,889:1517,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{118:[1,1518]},{88:$Vi5,118:[1,1519],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($VE5,[2,2413]),o($VE5,[2,2457]),o($VE5,[2,2434]),{158:[1,1520]},o($V2,[2,1174],{227:[1,1521]}),o($V2,[2,49]),o($Vu6,[2,242]),o($Vu6,[2,249]),{88:$Vi5,118:[1,1522],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($VA6,$VB6,{326:1523,333:$VC6}),{372:[1,1524]},o($V2,[2,66]),o($V2,[2,265]),{118:[1,1525],123:[1,1526]},o($VI6,[2,629]),{279:$VT3,280:$VU3,285:1528,385:$Vn3,441:522,541:513,684:$Vo3,719:$Va4,765:$Vl4,767:$Vp3,782:523,803:1527,910:502,912:514,914:445,915:446,916:524},o($VI6,[2,253]),o($VI6,[2,258]),o($VD6,[2,648]),o($VI6,[2,403]),o($VI6,[2,404]),o($Va7,[2,690]),{386:[1,1529]},{384:[2,607]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1532,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,400:1530,402:1531,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:855,151:$VX,153:$VY,154:$VZ,156:$V_,163:1533,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,804:854},o($VI6,[2,198]),{48:1534,116:$VT5},o($V2,[2,161]),o($Vb7,[2,216]),o($V38,$VP6,{276:1122,272:1535,277:$VQ6}),o($VJ7,[2,448],{316:1536,88:$VK7,317:$VL7,320:$VM7,321:$VN7,323:$VO7}),o($VH7,[2,449]),o($VH7,[2,452],{318:[1,1537]}),o($V48,$V58,{319:1538,325:1539,176:$V68,177:$V78}),o($VH7,[2,455],{208:[1,1542]}),o($VH7,[2,458],{322:1543,208:[1,1548],328:[1,1544],329:[1,1545],330:[1,1546],331:[1,1547]}),{116:[1,1549]},o($VP7,[2,1763]),{385:[1,1550]},o($VP7,[2,1765]),{385:[1,1551]},o($VP7,[2,1775]),{312:1552,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,349:[1,1553],351:$Vd7,352:$Ve7,359:$Vf7,656:$Vg7,671:$Vh7,673:$Vi7,693:$Vj7,694:$Vk7,695:$Vl7,698:$Vm7,710:$Vn7,711:$Vo7,715:$Vp7,720:$Vq7,730:$Vr7,731:$Vs7,759:$Vt7,764:$Vu7,770:$Vv7},{334:1554,349:[1,1555],656:$Vg7,671:$Vh7,673:$Vi7,693:$Vj7,694:$Vk7,695:$Vl7,698:$Vm7,710:$Vn7,711:$Vo7,715:$Vp7,720:$Vq7,730:$Vr7,731:$Vs7,759:$Vt7,764:$Vu7,770:$Vv7},{46:1559,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,349:[1,1557],352:$VE1,353:1556,355:1558,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{312:1562,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,349:[1,1561],351:$Vd7,352:$Ve7,359:$Vf7,360:1560,656:$Vg7,671:$Vh7,673:$Vi7,693:$Vj7,694:$Vk7,695:$Vl7,698:$Vm7,710:$Vn7,711:$Vo7,715:$Vp7,720:$Vq7,730:$Vr7,731:$Vs7,759:$Vt7,764:$Vu7,770:$Vv7},{118:[1,1563]},o($VI6,[2,435]),{118:[2,528],123:[1,1564]},{118:[2,529],123:$V88},o($VI6,[2,536]),{46:1566,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($V2,[2,385]),o($V2,[2,397]),{27:[1,1568],47:[1,1567]},o($V2,[2,812],{287:1569,499:[1,1570]}),o([78,107,108,129,152,376,382,409,499,645,648,660],$VP6,{276:1122,272:1571,277:$VQ6}),o($V98,[2,423],{304:1572,94:1573,116:$VX5,307:[1,1574]}),{108:[1,1575]},o($Va8,[2,694]),{48:1576,116:$VT5},o($VR6,[2,746]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:1577,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,808:815},o($VI6,[2,748]),o($Vb8,[2,573],{377:1578,378:1579,376:[1,1580]}),o($Vy7,[2,714]),o($V2,[2,736],{123:[1,1581]}),o($V95,[2,738]),{279:$VT3,441:1582},{279:[2,741]},{279:[2,742]},{279:[2,743]},{108:[1,1583]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:1585,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,489:1584,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,808:815},o($Vn6,[2,801]),{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1329,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,497:1586,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},o($VI6,[2,809]),o($V2,[2,2614]),o($VS6,[2,1040]),o($Vc8,[2,1073]),{123:[1,1587]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,601:1588,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,782:523,808:503,887:1589,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($VS6,[2,1042]),o($VD6,[2,645]),o($Vd8,[2,670],{430:1590,443:[1,1591]}),{440:[1,1592]},{46:1593,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,108:$Ve8,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,1007:1594},{116:$VA5,901:1596},{116:$VA5,901:1597},{742:[1,1598]},o($V25,[2,2249]),o($V25,[2,2250]),{108:[1,1599]},o($V75,$V85,{944:689,612:1600}),{108:[2,1106]},o($V2,[2,339],{222:1601,230:[1,1602]}),o($V08,[2,336]),{229:[1,1603]},o($VD7,[2,333]),o($V2,[2,978]),o($V2,[2,986],{123:$V96}),o($V2,[2,990],{123:$V96}),o($Vf8,[2,1972],{843:1604,856:1605,736:[1,1606]}),o($V18,[2,1942]),o($V18,[2,1943]),o($V18,[2,1944],{878:1607,882:$V28}),o($V18,[2,1946]),{79:[1,1608]},{79:[1,1609]},{79:[1,1610]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1613,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,869:1611,871:1612,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{116:$Vm6,982:1614},o($VG7,[2,1906],{891:770,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o($Vg5,[2,1887]),o($Vg5,[2,1888]),{116:[1,1615]},o($Vk6,[2,1989],{891:770}),o($Va5,[2,1996]),o($Va5,[2,1997]),o($Vj6,[2,2000],{891:770,126:$Vj5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,732:$Vv5,752:$Vx5,754:$Vy5}),{534:[1,1618],562:[1,1619],566:[1,1617],621:1616},{88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,620:[2,1125],682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($Va5,[2,2340]),{118:[2,2352]},{118:[2,2357]},{692:[1,1620],996:[1,1621]},o($Vg8,[2,2374]),o($Vg8,[2,2375]),o($V27,[2,2347],{123:$V07}),o($Va5,[2,2399]),o($Va5,[2,2417]),{46:428,47:$Vz,50:$VA,56:1622,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{641:[1,1623]},o($V37,[2,544]),o($V47,$V57,{327:1624,373:$V67,374:$V77}),{46:428,47:$Vz,50:$VA,56:1625,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o([89,107,108,129,152,409,499,645,648,660],[2,628]),{116:$VI7,407:1626},{118:[1,1627],123:[1,1628]},o($VI6,[2,1689]),o($Vh8,[2,582]),{118:[1,1629],123:[1,1630]},o($VI6,[2,612]),o($VI6,$Vi8,{404:1631,689:$Vj8,712:$Vk8}),{118:[1,1634],123:$VH6},o($V2,[2,180]),o($V38,[2,444]),o($VH7,[2,450]),o($V48,$V58,{325:1539,319:1635,176:$V68,177:$V78}),o($VH7,[2,453]),o($V87,$VB6,{326:1636,333:$VC6}),o($V48,[2,466]),o($V48,[2,467]),o($V48,$V58,{325:1539,319:1637,176:$V68,177:$V78}),o($V48,$V58,{325:1539,319:1638,176:$V68,177:$V78}),o($Vl8,[2,460]),{116:[1,1639]},{116:[1,1640]},{116:[1,1641]},o($Vl8,[2,464]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1642,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{118:[1,1643]},{118:[1,1644],123:[1,1645]},{349:[1,1646]},o($VP7,[2,486]),{123:[1,1647]},o($VP7,[2,490]),{123:[1,1649],349:[1,1648]},o($VP7,[2,496]),o($Vm8,[2,498]),{358:[1,1650]},{123:[1,1652],349:[1,1651]},o($VP7,[2,513]),o($Vm8,[2,515]),o($VS7,[2,430]),{71:$VT7,73:1439,363:1653,366:572},{71:$VT7,73:1654,366:572},{320:$Vx6,323:$Vy6,368:1071,371:$Vz6},o($V2,[2,399],{48:1655,116:$VT5}),o($V2,[2,400]),o($V2,[2,405]),{385:[1,1656]},o($Vn8,[2,564],{290:1657,375:1658,376:[1,1659]}),o($V98,[2,420]),o($V98,[2,424]),{46:428,47:$Vz,50:$VA,56:1660,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{152:$V6,195:1661,215:312,564:$Vj,817:30},o($Va8,[2,695]),o($VI6,$VP6,{276:1122,272:1662,277:$VQ6}),o($Vo8,[2,590],{388:1663,389:1664,390:1665,382:[1,1666],396:[1,1667]}),o($Vb8,[2,574]),{55:[1,1668]},{181:$VW7,466:1669,467:1457,468:$VX7,469:$VY7},o($V95,[2,740]),{125:1671,279:$VT3,280:$VU3,441:602,476:1670,782:603},{118:[1,1672],123:[1,1673]},o($VI6,[2,789]),o($VI6,[2,804]),{116:$VZ7,599:1674},{118:[1,1675],123:[1,1676]},o($VI6,[2,2111]),o($Vp8,[2,675],{431:1677,351:[1,1678]}),{444:[1,1679]},{79:[1,1680]},o($VU4,[2,2463],{1007:1681,108:$Ve8}),o($VU4,[2,2464]),{46:1682,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($Vq8,[2,2309]),o($Vq8,[2,2310]),{385:[1,1683]},{47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:1684,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2},{118:[1,1685]},o($V2,[2,315]),o($V2,[2,340]),o($V08,[2,337]),o($Vf8,[2,1858]),o($Vf8,[2,1973]),{385:$Vn3,541:1686,679:[1,1687],684:$Vo3,767:$Vp3,914:445,915:446},o($V18,[2,1945]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:720,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,801:1688},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:720,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,801:1689},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1692,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,883:1690,885:1691},o([118,499,562,645,648,699,714,736,751,756,766,882],[2,1919],{123:[1,1693]}),o($Vr8,[2,1922]),o($Vs8,$Vi8,{891:770,404:1694,88:$Vi5,126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,689:$Vj8,692:$Vu5,712:$Vk8,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5}),o($VZ6,[2,2396]),o($VI6,$Vt8,{270:133,649:148,140:515,46:525,808:815,865:1695,191:1696,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vu8,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2}),o($Vv8,[2,1118]),{26:[1,1698]},o($Vv8,[2,1128]),{586:[1,1699]},o($Vw8,$Vx8,{993:1700}),o($Vw8,$Vx8,{993:1701}),o([418,645,648],$Vy4,{68:577,57:1702,161:$Va3}),{116:[1,1703]},o($V47,[2,548]),{80:1704,116:$Vy3},o($VI6,[2,630]),o($VI6,[2,1688]),{279:$VT3,280:$VU3,285:1705,385:$Vn3,441:522,541:513,684:$Vo3,719:$Va4,765:$Vl4,767:$Vp3,782:523,910:502,912:514,914:445,915:446,916:524},{384:[2,610]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1532,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,402:1706,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},o($VI6,[2,618]),o($Vs8,[2,1934]),o($Vs8,[2,1935]),o($VI6,[2,199]),o($VH7,[2,451]),o($VH7,$V57,{327:1707,373:$V67,374:$V77}),o($VH7,[2,454]),o($VH7,[2,456]),{118:[1,1708]},{118:[1,1709]},{118:[1,1710]},{88:$Vi5,118:[1,1711],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($VP7,[2,1777]),o($VP7,[2,1779]),{385:[1,1712]},o($VP7,[2,485]),{312:1713,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,351:$Vd7,352:$Ve7,359:$Vf7,656:$Vg7,671:$Vh7,673:$Vi7,693:$Vj7,694:$Vk7,695:$Vl7,698:$Vm7,710:$Vn7,711:$Vo7,715:$Vp7,720:$Vq7,730:$Vr7,731:$Vs7,759:$Vt7,764:$Vu7,770:$Vv7},o($VP7,[2,495]),{46:1559,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,355:1714,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{312:1715,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,351:$Vd7,352:$Ve7,359:$Vf7,656:$Vg7,671:$Vh7,673:$Vi7,693:$Vj7,694:$Vk7,695:$Vl7,698:$Vm7,710:$Vn7,711:$Vo7,715:$Vp7,720:$Vq7,730:$Vr7,731:$Vs7,759:$Vt7,764:$Vu7,770:$Vv7},o($VP7,[2,512]),{312:1716,334:1281,335:1282,336:1283,337:1284,338:1285,339:1286,340:1287,341:1288,342:1289,347:$Vc7,351:$Vd7,352:$Ve7,359:$Vf7,656:$Vg7,671:$Vh7,673:$Vi7,693:$Vj7,694:$Vk7,695:$Vl7,698:$Vm7,710:$Vn7,711:$Vo7,715:$Vp7,720:$Vq7,730:$Vr7,731:$Vs7,759:$Vt7,764:$Vu7,770:$Vv7},{118:[2,530],123:$V88},o($VI6,[2,537]),o($V2,[2,398]),o($V2,[2,813]),o($Vh8,[2,580],{291:1717,77:1718,382:$Vd3}),o($Vn8,[2,565]),{79:[1,1719]},o($V98,[2,425]),o($V2,[2,716]),o($VI6,[2,749]),o([107,108,129,660],$Vy8,{293:1720,408:1721,409:$Vz8}),o($Vo8,[2,591]),{391:1723,397:[1,1724]},{55:[1,1725]},{55:[1,1726]},{80:1727,116:$Vy3},o($V95,[2,739]),o($VA8,[2,776],{477:1728,152:[1,1729]}),o([107,129,152,277,409,487,488,645,648,660],[2,774]),{108:[2,787]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:1730,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,808:815},o($Vc8,[2,1074]),o($Vc8,[2,1075]),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,782:523,808:503,887:1731,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($VB8,[2,680],{432:1732,446:[1,1733]}),{445:[1,1734]},{440:[1,1735]},{279:$VT3,441:1736},o($VU4,[2,2462]),o($VU4,[2,2475],{123:[1,1737]}),{55:[1,1739],118:[2,2258],942:1738},{55:[2,1094]},{108:[2,1105]},o($Vf8,[2,1974],{123:[1,1740]}),o($Vf8,[2,1976],{123:[1,1741]}),o($V18,[2,1952],{123:$Vc6}),o([118,499,562,645,648,736,766,882],[2,1956],{123:$Vc6}),o($V18,[2,1960],{123:[1,1742]}),o($VC8,[2,1963]),o($VC8,$Vi8,{404:1743,689:$Vj8,712:$Vk8}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1613,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,871:1744,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},o($Vr8,[2,1936],{873:1745,875:1746,741:[1,1747]}),{118:[1,1748],123:$VD8},o($VI6,[2,1895]),o($VI6,$Vt8,{270:133,649:148,140:515,46:525,808:815,191:1696,865:1750,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vu8,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2}),{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,191:814,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,624:1751,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,808:815,1057:812,1059:813},{116:$VZ7,587:1752,599:1468,600:$V_7},o($VE8,$VF8,{994:1753,1001:1754,385:$VG8,709:$VH8,996:$VI8}),o($VE8,$VF8,{1001:1754,994:1758,385:$VG8,709:$VH8,996:$VI8}),o($V2,[2,1149],{631:1759,633:1760,418:[1,1761]}),{125:1762,279:$VT3,280:$VU3,441:602,782:603},o($V37,[2,552]),o($VI6,[2,1690]),o($VI6,[2,613]),o($VH7,[2,459]),o($Vl8,[2,461]),o($Vl8,[2,462]),o($Vl8,[2,463]),o($V48,$V58,{325:1539,319:1763,176:$V68,177:$V78}),{118:[1,1764]},{349:[1,1765]},o($Vm8,[2,499]),o($Vm8,$VP6,{276:1122,272:1766,277:$VQ6}),o($Vm8,[2,516]),o($VJ8,[2,622],{292:1767,405:1768,78:[1,1769]}),o($Vh8,[2,581]),{94:1770,116:$VX5},o([108,129,660],$VK8,{294:1771,413:1772,414:1773,107:$VL8}),o($VM8,[2,632]),{410:[1,1775]},o($Vo8,[2,592]),{55:[1,1776]},{80:1777,116:$Vy3},{80:1778,116:$Vy3},o($Vb8,[2,575]),o($VN8,[2,780],{478:1779,487:[1,1780]}),{486:[1,1781]},o($VI6,[2,790]),o($VI6,[2,2112]),o($VO8,[2,684],{433:1782,208:[1,1783]}),{440:[1,1784]},{440:[1,1785]},{79:[1,1786]},o($V$7,[2,665],{442:[1,1787]}),{46:1788,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{118:[1,1789]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,88:$VQ3,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$VR3,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:515,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,208:$VS3,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,279:$VT3,280:$VU3,285:497,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,324:1790,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,347:$VV3,351:$VW3,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,385:$Vn3,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,441:522,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,533:$VX3,538:$Vb2,539:$Vc2,541:513,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,681:$VY3,683:$VZ3,684:$Vo3,687:$V_3,690:$V$3,691:$VZ2,694:$V04,696:$V14,697:$V24,700:$V34,701:$V44,703:$V54,704:$V64,705:$V74,706:$V84,718:$V94,719:$Va4,726:$Vb4,727:$Vc4,737:$Vd4,738:$Ve4,740:$Vf4,748:$Vg4,749:$Vh4,760:$Vi4,761:$Vj4,762:$Vk4,765:$Vl4,767:$Vp3,768:$Vm4,769:$Vn4,771:$Vo4,775:$Vp4,782:523,808:503,887:489,900:498,902:499,903:500,910:502,912:514,914:445,915:446,916:524,962:509,964:510,966:511,967:512,976:516,977:517,978:518,1002:$Vq4,1004:528},{385:$Vn3,541:1791,684:$Vo3,767:$Vp3,914:445,915:446},{679:[1,1792]},{46:525,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,140:1692,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2,885:1793},o($VC8,[2,1969]),o($Vr8,[2,1923]),o($Vr8,[2,1929]),o($Vr8,[2,1937]),{175:[1,1794],659:[1,1795]},o($Vg5,[2,1891]),o($VI6,$Vt8,{270:133,649:148,140:515,46:525,808:815,191:1696,865:1796,47:$Vz,50:$VA,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,116:$Vu8,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2}),{118:[1,1797],123:$VD8},o($Vv8,[2,1127],{123:$Vr6}),o($Vv8,[2,1129]),{118:$VP8,150:$VQ8,995:1798},{750:[1,1800]},{409:[1,1801]},o($VR8,[2,2387]),o($VR8,[2,2388]),{118:$VP8,150:$VQ8,995:1802},o($V2,[2,1133]),o($V2,[2,1150]),{125:1803,279:$VT3,280:$VU3,441:602,782:603},{118:[1,1804]},o($VH7,[2,457]),o($VP7,[2,1780]),o($VP7,[2,489]),o($Vm8,[2,505]),o([107,108,129,152,499,645,648,660],$Vy8,{408:1721,293:1805,409:$Vz8}),o($VJ8,[2,623]),{79:[1,1806]},o($Vn8,[2,566]),o($Vx7,$Vv6,{49:1069,69:1807,660:$VD4}),o($VS8,[2,638]),o($VS8,[2,639]),{79:[1,1808],108:$Vz7},{130:[1,1811],411:1809,426:1810,428:$VA7},{80:1812,116:$Vy3},o($Vo8,[2,597]),{397:[2,600]},o($VT8,[2,782],{479:1813,488:[1,1814]}),{48:1815,116:$VT5},{58:[1,1816]},o($VO8,[2,658]),{447:[1,1817]},{79:[1,1818]},{79:[1,1819]},{279:$VT3,441:1820},{79:[1,1821]},o($VU4,[2,2476]),o($V25,[2,2248]),{88:$Vi5,118:[2,2259],126:$Vj5,150:$Vk5,307:$Vl5,348:$Vm5,349:$Vn5,381:$Vo5,488:$Vp5,682:$Vr5,683:$Vs5,688:$Vt5,692:$Vu5,732:$Vv5,743:$Vw5,752:$Vx5,754:$Vy5,891:770},o($Vf8,[2,1975]),o($Vf8,[2,1977]),o($VC8,[2,1964]),o($Vr8,[2,1938]),o($Vr8,[2,1939]),o($VI6,[2,1896]),o($VI6,[2,1897]),{118:[2,2358]},{385:$VG8,709:[1,1822],996:$VI8,1001:1823},o($VE8,[2,2377]),o($VE8,[2,2378]),{118:[2,2359]},{130:[1,1824]},o($V2,[2,1175]),o([108,129,152,499,645,648,660],$VK8,{413:1772,414:1773,294:1825,107:$VL8}),{80:1826,116:$Vy3},{108:$VU7,129:$VV7,295:1827,449:1448},{125:1828,279:$VT3,280:$VU3,441:602,782:603},o($VM8,[2,633]),o($VM8,[2,655]),{125:1829,279:$VT3,280:$VU3,441:602,782:603},o($Vo8,[2,603]),o([107,129,277,645,648,660],$Vy8,{408:1721,293:1830,409:$Vz8}),{158:[1,1831]},o($VN8,[2,781]),o($VA8,[2,777]),{108:[1,1832]},{279:$VT3,441:1833},{279:$VT3,441:1834},o($Vd8,[2,671]),{279:$VT3,441:1835},{409:[1,1836]},{721:[1,1837]},{125:1838,279:$VT3,280:$VU3,441:602,782:603},o($Va7,$VE6,{448:1089,131:1839,152:$VF6}),{55:[1,1840]},{108:$VU8,450:1841},o($VS8,[2,640]),o($VM8,[2,656]),o([129,277,645,648,660],$VK8,{413:1772,414:1773,294:1843,107:$VL8}),{46:428,47:$Vz,50:$VA,56:1844,58:$VC,61:$VD,62:$VE,64:$VF,66:$VG,74:$VH,78:$VI,84:$VJ,85:$VK,86:$VL,89:$VM,90:$VN,92:$VO,99:$VP,107:$VQ,127:$VR,129:$VS,130:$VT,132:$VU,134:$VV,135:$VW,151:$VX,153:$VY,154:$VZ,156:$V_,174:$V01,175:$V11,176:$V21,177:$V31,178:$V41,180:$V51,181:$V61,182:$V71,198:$V81,202:$V91,205:$Va1,217:$Vb1,218:$Vc1,219:$Vd1,229:$Ve1,230:$Vf1,231:$Vg1,234:$Vh1,236:$Vi1,238:$Vj1,240:$Vk1,241:$Vl1,244:$Vm1,245:$Vn1,246:$Vo1,247:$Vp1,248:$Vq1,249:$Vr1,250:$Vs1,270:133,277:$Vu1,318:$Vv1,320:$Vw1,321:$Vx1,323:$Vy1,328:$Vz1,329:$VA1,330:$VB1,331:$VC1,333:$VD1,352:$VE1,359:$VF1,373:$VG1,374:$VH1,376:$VI1,382:$VJ1,386:$VK1,396:$VL1,397:$VM1,410:$VN1,417:$VO1,418:$VP1,419:$VQ1,420:$VR1,421:$VS1,422:$VT1,423:$VU1,424:$VV1,425:$VW1,428:$VX1,439:$VY1,440:$VZ1,442:$V_1,443:$V$1,444:$V02,445:$V12,446:$V22,447:$V32,460:$V42,468:$V52,469:$V62,473:$V13,486:$V72,487:$V82,532:$V92,538:$Vb2,539:$Vc2,569:$Vj2,570:$Vk2,574:$Vl2,589:$Vm2,592:$Vn2,609:$Vo2,618:$Vp2,626:$Vq2,627:$Vr2,629:$Vs2,640:$Vt2,641:$Vu2,649:148,650:$Vv2,651:$Vw2,652:$Vx2,653:$Vy2,654:$Vz2,655:$VA2,656:$VB2,657:$VC2,658:$VD2,659:$VE2,660:$VF2,661:$VG2,662:$VH2,663:$VI2,664:$VJ2,665:$VK2,666:$VL2,667:$VM2,668:$VN2,669:$VO2,670:$VP2,671:$VQ2,672:$VR2,673:$VS2,674:$VT2,675:$VU2,676:$VV2,677:$VW2,678:$VX2,679:$VY2,691:$VZ2},{279:$VT3,441:1845},o($VB8,[2,681]),o($Vp8,[2,676]),o($V$7,[2,666]),{118:[2,2382]},{118:[2,2383]},o($V2,[2,1151]),o([108,129,499,645,648],$Vv6,{49:1069,69:1846,660:$VD4}),{81:1847,116:$V97},o($V2,[2,702]),o($V75,[2,701],{451:1848}),o([129,277,645,648],$Vv6,{49:1069,69:1849,660:$VD4}),o($VT8,[2,783]),o($VO8,[2,685]),o([108,499,645,648],$VU7,{449:1448,295:1850,129:$VV7}),o($VJ8,[2,624],{89:[1,1851]}),{152:$V6,195:1852,215:312,564:$Vj,817:30},o([277,645,648],$VU7,{449:1448,295:1853,129:$VV7}),o($VV8,[2,696],{296:1854,450:1855,108:$VU8}),o($VJ8,[2,625]),o($VV8,[2,698]),o($V2,$VP6,{276:1122,272:1856,277:$VQ6}),o($VV8,[2,409]),o($VV8,[2,697]),o($V2,[2,755])], +defaultActions: {104:[2,1191],324:[2,1164],329:[2,2658],330:[2,2660],356:[2,228],357:[2,229],368:[2,214],372:[2,285],410:[2,1598],411:[2,1599],413:[2,1620],414:[2,1596],415:[2,1597],467:[2,1022],504:[2,2313],505:[2,2314],506:[2,2315],507:[2,2316],508:[2,2317],533:[2,2438],534:[2,2439],535:[2,2440],536:[2,2441],537:[2,2442],538:[2,2443],539:[2,2444],540:[2,2445],541:[2,2446],542:[2,2447],543:[2,2448],544:[2,2449],545:[2,2450],546:[2,2451],547:[2,2452],548:[2,2453],549:[2,2454],551:[2,1148],557:[2,1727],593:[2,213],661:[2,1619],728:[2,1023],809:[2,1166],814:[2,2672],871:[2,1618],949:[2,2268],950:[2,2270],951:[2,2272],952:[2,2274],953:[2,2276],954:[2,2278],955:[2,2280],956:[2,2282],1028:[2,2329],1033:[2,2424],1034:[2,2425],1035:[2,2426],1036:[2,2427],1037:[2,2428],1038:[2,2429],1039:[2,2430],1040:[2,2431],1041:[2,2432],1054:[2,1165],1117:[2,289],1118:[2,290],1119:[2,291],1153:[2,1624],1219:[2,2330],1229:[2,1146],1250:[2,562],1268:[2,194],1270:[2,195],1324:[2,772],1411:[2,607],1458:[2,741],1459:[2,742],1460:[2,743],1483:[2,1106],1512:[2,2352],1513:[2,2357],1629:[2,610],1672:[2,787],1684:[2,1094],1685:[2,1105],1778:[2,600],1798:[2,2358],1802:[2,2359],1836:[2,2382],1837:[2,2383]}, +parseError: function parseError (str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } +}, +parse: function parse (input) { + var self = this, + stack = [0], + tstack = [], // token stack + vstack = [null], // semantic value stack + lstack = [], // location stack + table = this.table, + yytext = '', + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + + var args = lstack.slice.call(arguments, 1); + + //this.reductionCount = this.shiftCount = 0; + + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + // copy state + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + + var ranges = lexer.options && lexer.options.ranges; + + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + + function popStack (n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + +_token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + // if token isn't its numeric value, convert + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + } + + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + // retreive state number from top of stack + state = stack[stack.length - 1]; + + // use default actions if available + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + // read action for current state and first input + action = table[state] && table[state][symbol]; + } + +_handle_error: + // handle parse error + if (typeof action === 'undefined' || !action.length || !action[0]) { + var error_rule_depth; + var errStr = ''; + + // Return the rule stack depth where the nearest error rule can be found. + // Return FALSE when no error recovery rule was found. + function locateNearestErrorRecoveryRule(state) { + var stack_probe = stack.length - 1; + var depth = 0; + + // try to recover from error + for(;;) { + // check for error recovery rule in this state + if ((TERROR.toString()) in table[state]) { + return depth; + } + if (state === 0 || stack_probe < 2) { + return false; // No suitable error recovery rule available. + } + stack_probe -= 2; // popStack(1): [symbol, action] + state = stack[stack_probe]; + ++depth; + } + } + + if (!recovering) { + // first see if there's any chance at hitting an error recovery rule: + error_rule_depth = locateNearestErrorRecoveryRule(state); + + // Report error + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'"+this.terminals_[p]+"'"); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; + } else { + errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + + (symbol == EOF ? "end of input" : + ("'"+(this.terminals_[symbol] || symbol)+"'")); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), + expected: expected, + recoverable: (error_rule_depth !== false) + }); + } else if (preErrorSymbol !== EOF) { + error_rule_depth = locateNearestErrorRecoveryRule(state); + } + + // just recovered from another error + if (recovering == 3) { + if (symbol === EOF || preErrorSymbol === EOF) { + throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); + } + + // discard current lookahead and grab another + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + symbol = lex(); + } + + // try to recover from error + if (error_rule_depth === false) { + throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); + } + popStack(error_rule_depth); + + preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token + symbol = TERROR; // insert generic error symbol as new lookahead + state = stack[stack.length-1]; + action = table[state] && table[state][TERROR]; + recovering = 3; // allow 3 real symbols to be shifted before reporting a new error + } + + // this shouldn't happen, unless resolve defaults are off + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); + } + + switch (action[0]) { + case 1: // shift + //this.shiftCount++; + + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); // push state + symbol = null; + if (!preErrorSymbol) { // normal execution/no error + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + // error just occurred, resume old lookahead f/ before error + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + + case 2: + // reduce + //this.reductionCount++; + + len = this.productions_[action[1]][1]; + + // perform semantic action + yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 + // default location, uses first token for firsts, last for lasts + yyval._$ = { + first_line: lstack[lstack.length-(len||1)].first_line, + last_line: lstack[lstack.length-1].last_line, + first_column: lstack[lstack.length-(len||1)].first_column, + last_column: lstack[lstack.length-1].last_column + }; + if (ranges) { + yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; + } + r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); + + if (typeof r !== 'undefined') { + return r; + } + + // pop off stack + if (len) { + stack = stack.slice(0,-1*len*2); + vstack = vstack.slice(0, -1*len); + lstack = lstack.slice(0, -1*len); + } + + stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) + vstack.push(yyval.$); + lstack.push(yyval._$); + // goto new state = table[STATE][NONTERMINAL] + newState = table[stack[stack.length-2]][stack[stack.length-1]]; + stack.push(newState); + break; + + case 3: + // accept + return true; + } + + } + + return true; +}}; + + +SqlParseSupport.initSyntaxParser(parser);/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function(match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex () { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin (condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState () { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules () { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState (n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState (condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {"case-insensitive":true,"flex":true}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0: /* skip whitespace */ +break; +case 1: /* skip comments */ +break; +case 2: /* skip comments */ +break; +case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 27; +break; +case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 776; +break; +case 5: return 561; +break; +case 6: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 44; +break; +case 7: return 150; +break; +case 8: return 347; +break; +case 9: return 108; +break; +case 10: return 235; +break; +case 11: this.begin('between'); return 692; +break; +case 12: return 693; +break; +case 13: return 694; +break; +case 14: return 695; +break; +case 15: return 79; +break; +case 16: return 228; +break; +case 17: return 696; +break; +case 18: return 698; +break; +case 19: return 93; +break; +case 20: return 702; +break; +case 21: return 71; +break; +case 22: parser.determineCase(yy_.yytext); return 266; +break; +case 23: return 707; +break; +case 24: return 708; +break; +case 25: return 709; +break; +case 26: return 556; +break; +case 27: return 710; +break; +case 28: return 711; +break; +case 29: parser.determineCase(yy_.yytext); return 534; +break; +case 30: parser.determineCase(yy_.yytext); return 816; +break; +case 31: return 713; +break; +case 32: return 688; +break; +case 33: return 715; +break; +case 34: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 166; +break; +case 35: return 716; +break; +case 36: return 717; +break; +case 37: parser.yy.correlatedSubQuery = true; return 718; +break; +case 38: return 239; +break; +case 39: return 639; +break; +case 40: return 719; +break; +case 41: return 720; +break; +case 42: return 721; +break; +case 43: return 227; +break; +case 44: return 371; +break; +case 45: parser.determineCase(yy_.yytext); return 535; +break; +case 46: return 722; +break; +case 47: return 206; +break; +case 48: return 542; +break; +case 49: return 568; +break; +case 50: return 723; +break; +case 51: return 724; +break; +case 52: return 727; +break; +case 53: parser.determineCase(yy_.yytext); return 634; +break; +case 54: return 488; +break; +case 55: return 729; +break; +case 56: parser.determineCase(yy_.yytext); return 562; +break; +case 57: return 730; +break; +case 58: return 731; +break; +case 59: return 384; +break; +case 60: return 732; +break; +case 61: return 733; +break; +case 62: return 734; +break; +case 63: return 735; +break; +case 64: return 307; +break; +case 65: return 736; +break; +case 66: return 588; +break; +case 67: return 499; +break; +case 68: return 491; +break; +case 69: return 351; +break; +case 70: return 739; +break; +case 71: return 88; +break; +case 72: return 208; +break; +case 73: return 741; +break; +case 74: return 742; +break; +case 75: return 55; +break; +case 76: return 743; +break; +case 77: return 744; +break; +case 78: return 745; +break; +case 79: return 746; +break; +case 80: return 161; +break; +case 81: return 750; +break; +case 82: return 'PRECISION'; +break; +case 83: return 317; +break; +case 84: return 751; +break; +case 85: return 372; +break; +case 86: return 752; +break; +case 87: return 571; +break; +case 88: return 753; +break; +case 89: return 754; +break; +case 90: return 755; +break; +case 91: return 409; +break; +case 92: return 756; +break; +case 93: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 564; +break; +case 94: return 758; +break; +case 95: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 26; +break; +case 96: return 759; +break; +case 97: return 204; +break; +case 98: return 158; +break; +case 99: return 620; +break; +case 100: return 764; +break; +case 101: return 75; +break; +case 102: return 765; +break; +case 103: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 533; +break; +case 104: return 996; +break; +case 105: return 766; +break; +case 106: parser.determineCase(yy_.yytext); return 566; +break; +case 107: return 567; +break; +case 108: return 464; +break; +case 109: return 'UTC_TIMESTAMP'; +break; +case 110: return 586; +break; +case 111: return 770; +break; +case 112: return 772; +break; +case 113: return 616; +break; +case 114: return 773; +break; +case 115: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 152; +break; +case 116: parser.determineCase(yy_.yytext); return 538; +break; +case 117: return 66; +break; +case 118: return 570; +break; +case 119: return 174; +break; +case 120: parser.determineCase(yy_.yytext); return 217; +break; +case 121: return 181; +break; +case 122: return 689; +break; +case 123: return 234; +break; +case 124: return 417; +break; +case 125: return 650; +break; +case 126: return 386; +break; +case 127: return 651; +break; +case 128: return 236; +break; +case 129: return 92; +break; +case 130: return 323; +break; +case 131: return 699; +break; +case 132: return 382; +break; +case 133: return 443; +break; +case 134: return 154; +break; +case 135: return 277; +break; +case 136: return 135; +break; +case 137: return 652; +break; +case 138: return 218; +break; +case 139: return 134; +break; +case 140: return 244; +break; +case 141: return 330; +break; +case 142: return 331; +break; +case 143: return 329; +break; +case 144: return 627; +break; +case 145: return 653; +break; +case 146: return 654; +break; +case 147: return 655; +break; +case 148: return 47; +break; +case 149: return 321; +break; +case 150: return 486; +break; +case 151: return 447; +break; +case 152: return 428; +break; +case 153: return 238; +break; +case 154: return 712; +break; +case 155: return 247; +break; +case 156: this.begin('hdfs'); return 589; +break; +case 157: return 177; +break; +case 158: return 714; +break; +case 159: return 396; +break; +case 160: return 656; +break; +case 161: return 176; +break; +case 162: return 442; +break; +case 163: return 156; +break; +case 164: parser.determineCase(yy_.yytext); return 231; +break; +case 165: parser.determineCase(yy_.yytext); return 640; +break; +case 166: return 248; +break; +case 167: return 439; +break; +case 168: return 468; +break; +case 169: return 127; +break; +case 170: return 175; +break; +case 171: return 410; +break; +case 172: return 233; +break; +case 173: return 657; +break; +case 174: return 658; +break; +case 175: return 487; +break; +case 176: return 54; +break; +case 177: return 728; +break; +case 178: this.begin('hdfs'); return 629; +break; +case 179: return 418; +break; +case 180: return 444; +break; +case 181: return 469; +break; +case 182: return 245; +break; +case 183: return 420; +break; +case 184: return 318; +break; +case 185: return 445; +break; +case 186: return 659; +break; +case 187: return 446; +break; +case 188: return 328; +break; +case 189: parser.determineCase(yy_.yytext); return 626; +break; +case 190: this.begin('hdfs'); return 660; +break; +case 191: return 563; +break; +case 192: return 240; +break; +case 193: return 618; +break; +case 194: return 61; +break; +case 195: return 609; +break; +case 196: return 229; +break; +case 197: return 661; +break; +case 198: return 662; +break; +case 199: return 198; +break; +case 200: return 178; +break; +case 201: return 374; +break; +case 202: return 230; +break; +case 203: return 333; +break; +case 204: return 180; +break; +case 205: return 246; +break; +case 206: return 249; +break; +case 207: return 569; +break; +case 208: return 421; +break; +case 209: return 419; +break; +case 210: return 747; +break; +case 211: return 153; +break; +case 212: this.begin('hdfs'); return 592; +break; +case 213: return 50; +break; +case 214: return 422; +break; +case 215: return 376; +break; +case 216: return 85; +break; +case 217: return 663; +break; +case 218: return 574; +break; +case 219: return 532; +break; +case 220: return 664; +break; +case 221: return 423; +break; +case 222: return 58; +break; +case 223: return 84; +break; +case 224: parser.determineCase(yy_.yytext); return 205; +break; +case 225: return 373; +break; +case 226: return 74; +break; +case 227: return 202; +break; +case 228: return 99; +break; +case 229: return 641; +break; +case 230: return 665; +break; +case 231: return 64; +break; +case 232: return 473; +break; +case 233: return 666; +break; +case 234: return 757; +break; +case 235: return 667; +break; +case 236: return 668; +break; +case 237: return 424; +break; +case 238: return 130; +break; +case 239: return 132; +break; +case 240: return 669; +break; +case 241: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 670; +break; +case 242: return 565; +break; +case 243: return 90; +break; +case 244: return 78; +break; +case 245: return 882; +break; +case 246: return 397; +break; +case 247: return 219; +break; +case 248: return 107; +break; +case 249: return 89; +break; +case 250: return 671; +break; +case 251: return 352; +break; +case 252: return 250; +break; +case 253: return 672; +break; +case 254: return 763; +break; +case 255: return 129; +break; +case 256: return 460; +break; +case 257: return 440; +break; +case 258: return 425; +break; +case 259: return 673; +break; +case 260: return 86; +break; +case 261: return 674; +break; +case 262: return 539; +break; +case 263: return 182; +break; +case 264: return 359; +break; +case 265: return 320; +break; +case 266: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 675; +break; +case 267: return 241; +break; +case 268: return 62; +break; +case 269: return 151; +break; +case 270: return 676; +break; +case 271: return 774; +break; +case 272: return 677; +break; +case 273: return 684; +break; +case 274: return 685; +break; +case 275: return 686; +break; +case 276: this.popState(); return 890; +break; +case 277: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 690; +break; +case 278: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 697; +break; +case 279: yy.lexer.unput('('); yy_.yytext = 'collect_list'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 700; +break; +case 280: yy.lexer.unput('('); yy_.yytext = 'collect_set'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 701; +break; +case 281: yy.lexer.unput('('); yy_.yytext = 'corr'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 703; +break; +case 282: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 704; +break; +case 283: yy.lexer.unput('('); yy_.yytext = 'covar_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 705; +break; +case 284: yy.lexer.unput('('); yy_.yytext = 'covar_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 706; +break; +case 285: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 1002; +break; +case 286: yy.lexer.unput('('); yy_.yytext = 'histogram_numeric'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 726; +break; +case 287: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 737; +break; +case 288: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 738; +break; +case 289: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 740; +break; +case 290: yy.lexer.unput('('); yy_.yytext = 'percentile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 748; +break; +case 291: yy.lexer.unput('('); yy_.yytext = 'percentile_approx'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 749; +break; +case 292: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 760; +break; +case 293: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 761; +break; +case 294: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 762; +break; +case 295: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 768; +break; +case 296: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 769; +break; +case 297: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 771; +break; +case 298: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 687; +break; +case 299: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 687; +break; +case 300: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 687; +break; +case 301: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 687; +break; +case 302: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 687; +break; +case 303: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 687; +break; +case 304: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 687; +break; +case 305: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 687; +break; +case 306: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 687; +break; +case 307: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 687; +break; +case 308: return 385; +break; +case 309: return 385; +break; +case 310: return 767; +break; +case 311: return 678; +break; +case 312: parser.yy.cursorFound = true; return 27; +break; +case 313: parser.yy.cursorFound = true; return 776; +break; +case 314: return 725; +break; +case 315: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 999; +break; +case 316: this.popState(); return 1000; +break; +case 317: return 645; +break; +case 318: return 150; +break; +case 319: return 743; +break; +case 320: return 126; +break; +case 321: return 348; +break; +case 322: return 349; +break; +case 323: return 381; +break; +case 324: return 381; +break; +case 325: return 381; +break; +case 326: return 381; +break; +case 327: return 381; +break; +case 328: return 683; +break; +case 329: return 682; +break; +case 330: return 688; +break; +case 331: return 688; +break; +case 332: return 688; +break; +case 333: return 688; +break; +case 334: return 688; +break; +case 335: return 688; +break; +case 336: return 123; +break; +case 337: return 684; +break; +case 338: return 358; +break; +case 339: return 648; +break; +case 340: return 775; +break; +case 341: return 681; +break; +case 342: return 116; +break; +case 343: return 118; +break; +case 344: return 685; +break; +case 345: return 686; +break; +case 346: return 679; +break; +case 347: this.begin('backtickedValue'); return 691; +break; +case 348: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { + return 781; + } + return 281; + +break; +case 349: this.popState(); return 691; +break; +case 350: this.begin('singleQuotedValue'); return 279; +break; +case 351: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { + return 781; + } + return 281; + +break; +case 352: this.popState(); return 279; +break; +case 353: this.begin('doubleQuotedValue'); return 280; +break; +case 354: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { + return 781; + } + return 281; + +break; +case 355: this.popState(); return 280; +break; +case 356: return 645; +break; +case 357: /* To prevent console logging of unknown chars */ +break; +case 358: +break; +case 359: +break; +case 360: +break; +case 361: +break; +case 362: +break; +case 363:console.log(yy_.yytext); +break; +} +}, +rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:ALL)/i,/^(?:ALTER)/i,/^(?:AND)/i,/^(?:ARRAY)/i,/^(?:AS)/i,/^(?:AUTHORIZATION)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BINARY)/i,/^(?:BOOLEAN)/i,/^(?:BY)/i,/^(?:CACHE)/i,/^(?:CASE)/i,/^(?:CHAR)/i,/^(?:COLUMN)/i,/^(?:CONF)/i,/^(?:CONSTRAINT)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CUBE)/i,/^(?:CURRENT)/i,/^(?:DATABASE)/i,/^(?:DATE)/i,/^(?:DECIMAL)/i,/^(?:DELETE)/i,/^(?:DESCRIBE)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:ELSE)/i,/^(?:END)/i,/^(?:EXISTS)/i,/^(?:EXTENDED)/i,/^(?:EXTERNAL)/i,/^(?:FALSE)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FOR)/i,/^(?:FOREIGN)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:FUNCTION)/i,/^(?:GRANT)/i,/^(?:GROUP)/i,/^(?:GROUPING)/i,/^(?:HAVING)/i,/^(?:IF)/i,/^(?:IMPORT)/i,/^(?:IN)/i,/^(?:INNER)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTEGER)/i,/^(?:INTO)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:LATERAL)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIMIT)/i,/^(?:LOCAL)/i,/^(?:LIFECYCLE)/i,/^(?:MACRO)/i,/^(?:MAP)/i,/^(?:NONE)/i,/^(?:NOT)/i,/^(?:NULL)/i,/^(?:NULLS)/i,/^(?:OF)/i,/^(?:ON)/i,/^(?:OR)/i,/^(?:ORDER)/i,/^(?:OUT)/i,/^(?:OUTER)/i,/^(?:PARTITION)/i,/^(?:PRECEDING)/i,/^(?:PRECISION)/i,/^(?:PRIMARY)/i,/^(?:RANGE)/i,/^(?:REFERENCES)/i,/^(?:REGEXP)/i,/^(?:REVOKE)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROLLUP)/i,/^(?:ROW)/i,/^(?:ROWS)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SET)/i,/^(?:SMALLINT)/i,/^(?:SYNC)/i,/^(?:TABLE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TO)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UNBOUNDED)/i,/^(?:UNION)/i,/^(?:UPDATE)/i,/^(?:USER)/i,/^(?:USING)/i,/^(?:UTC_TIMESTAMP)/i,/^(?:VALUES)/i,/^(?:VARCHAR)/i,/^(?:VIEWS)/i,/^(?:WHEN)/i,/^(?:WHERE)/i,/^(?:WITH)/i,/^(?:ABORT)/i,/^(?:ADD)/i,/^(?:ADMIN)/i,/^(?:AFTER)/i,/^(?:ANALYZE)/i,/^(?:ARCHIVE)/i,/^(?:ASC)/i,/^(?:AST)/i,/^(?:AVRO)/i,/^(?:BUCKET)/i,/^(?:BUCKETS)/i,/^(?:CASCADE)/i,/^(?:CBO)/i,/^(?:CHANGE)/i,/^(?:CHECK)/i,/^(?:CLUSTER)/i,/^(?:CLUSTERED)/i,/^(?:COLLECTION)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMPACT)/i,/^(?:COMPACTIONS)/i,/^(?:COMPUTE)/i,/^(?:CONCATENATE)/i,/^(?:COST)/i,/^(?:CURRENT_DATE)/i,/^(?:CURRENT_TIMESTAMP)/i,/^(?:CURRENT_USER)/i,/^(?:DATA)/i,/^(?:DATABASES)/i,/^(?:DAY)/i,/^(?:DAYOFWEEK)/i,/^(?:DBPROPERTIES)/i,/^(?:DEFAULT)/i,/^(?:DEFERRED)/i,/^(?:DEFINED)/i,/^(?:DELIMITED)/i,/^(?:DEPENDENCY)/i,/^(?:DESC)/i,/^(?:DETAIL)/i,/^(?:DIRECTORY)/i,/^(?:DISABLE)/i,/^(?:DISTRIBUTE)/i,/^(?:DISTRIBUTED)/i,/^(?:DOUBLE\s+PRECISION)/i,/^(?:ENABLE)/i,/^(?:ESCAPED)/i,/^(?:EXCHANGE)/i,/^(?:EXPLAIN)/i,/^(?:EXPORT)/i,/^(?:EXPRESSION)/i,/^(?:FIELDS)/i,/^(?:FILE)/i,/^(?:FILEFORMAT)/i,/^(?:FIRST)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FUNCTIONS)/i,/^(?:HOUR)/i,/^(?:IDXPROPERTIES)/i,/^(?:INDEX)/i,/^(?:INDEXES)/i,/^(?:INPATH)/i,/^(?:INPUTFORMAT)/i,/^(?:ITEMS)/i,/^(?:JAR)/i,/^(?:JOINCOST)/i,/^(?:JSONFILE)/i,/^(?:KEY)/i,/^(?:KEYS)/i,/^(?:LAST)/i,/^(?:LINES)/i,/^(?:LITERAL)/i,/^(?:LOAD)/i,/^(?:LOCATION)/i,/^(?:LOCK)/i,/^(?:LOCKS)/i,/^(?:MATCHED)/i,/^(?:MATERIALIZED)/i,/^(?:MERGE)/i,/^(?:METADATA)/i,/^(?:MINUTE)/i,/^(?:MONTH)/i,/^(?:MSCK)/i,/^(?:NO_DROP)/i,/^(?:NORELY)/i,/^(?:NOSCAN)/i,/^(?:NOVALIDATE)/i,/^(?:OFFLINE)/i,/^(?:ONLY)/i,/^(?:OPERATOR)/i,/^(?:OPTION)/i,/^(?:ORC)/i,/^(?:OUTPUTFORMAT)/i,/^(?:OVER)/i,/^(?:OVERWRITE)/i,/^(?:OVERWRITE\s+DIRECTORY)/i,/^(?:OWNER)/i,/^(?:PARQUET)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PERCENT)/i,/^(?:PRIVILEGES)/i,/^(?:PURGE)/i,/^(?:QUARTER)/i,/^(?:RCFILE)/i,/^(?:REBUILD)/i,/^(?:RECOVER)/i,/^(?:RELOAD)/i,/^(?:RELY)/i,/^(?:RENAME)/i,/^(?:REPAIR)/i,/^(?:REPLACE)/i,/^(?:REPLICATION)/i,/^(?:RESTRICT)/i,/^(?:REWRITE)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:SCHEMA)/i,/^(?:SCHEMAS)/i,/^(?:SECOND)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SETS)/i,/^(?:SHOW)/i,/^(?:SHOW_DATABASE)/i,/^(?:SKEWED LOCATION)/i,/^(?:SKEWED)/i,/^(?:SORT)/i,/^(?:SORTED)/i,/^(?:STATISTICS)/i,/^(?:STORED)/i,/^(?:STORED\s+AS\s+DIRECTORIES)/i,/^(?:STRING)/i,/^(?:STRUCT)/i,/^(?:SUMMARY)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TEMPORARY)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:TINYINT)/i,/^(?:TOUCH)/i,/^(?:TRANSACTIONAL)/i,/^(?:TRANSACTIONS)/i,/^(?:UNARCHIVE)/i,/^(?:UNIONTYPE)/i,/^(?:UNIQUE)/i,/^(?:USE)/i,/^(?:VECTORIZATION)/i,/^(?:VIEW)/i,/^(?:WAIT)/i,/^(?:WEEK)/i,/^(?:WINDOW)/i,/^(?:YEAR)/i,/^(?:\.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:AND)/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COLLECT_LIST\s*\()/i,/^(?:COLLECT_SET\s*\()/i,/^(?:CORR\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:COVAR_POP\s*\()/i,/^(?:COVAR_SAMP\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:HISTOGRAM_NUMERIC\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENTILE\s*\()/i,/^(?:PERCENTILE_APPROX\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], +conditions: {"hdfs":{"rules":[312,313,314,315,316,317,359],"inclusive":false},"doubleQuotedValue":{"rules":[354,355,362],"inclusive":false},"singleQuotedValue":{"rules":[351,352,361],"inclusive":false},"backtickedValue":{"rules":[348,349,360],"inclusive":false},"between":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,350,353,356,357,358,363],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,350,353,356,357,363],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); +export default hiveSyntaxParser; diff --git a/src/core/parse/hive/sqlParseSupport.js b/src/core/parse/hive/sqlParseSupport.js new file mode 100644 index 0000000..417c636 --- /dev/null +++ b/src/core/parse/hive/sqlParseSupport.js @@ -0,0 +1,2471 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { SqlFunctions } from '../sqlFunctions'; +import stringDistance from '../stringDistance'; + +const identifierEquals = (a, b) => + a && + b && + a + .replace(/^\s*`/, '') + .replace(/`\s*$/, '') + .toLowerCase() === + b + .replace(/^\s*`/, '') + .replace(/`\s*$/, '') + .toLowerCase(); + +// endsWith polyfill from hue_utils.js, needed as workers live in their own js environment +if (!String.prototype.endsWith) { + String.prototype.endsWith = function(searchString, position) { + const subjectString = this.toString(); + if ( + typeof position !== 'number' || + !isFinite(position) || + Math.floor(position) !== position || + position > subjectString.length + ) { + position = subjectString.length; + } + position -= searchString.length; + const lastIndex = subjectString.lastIndexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; + }; +} + +const equalIgnoreCase = (a, b) => a && b && a.toLowerCase() === b.toLowerCase(); + +const SIMPLE_TABLE_REF_SUGGESTIONS = [ + 'suggestJoinConditions', + 'suggestAggregateFunctions', + 'suggestFilters', + 'suggestGroupBys', + 'suggestOrderBys' +]; + +const initSqlParser = function(parser) { + parser.prepareNewStatement = function() { + linkTablePrimaries(); + parser.commitLocations(); + + delete parser.yy.lateralViews; + delete parser.yy.latestCommonTableExpressions; + delete parser.yy.correlatedSubQuery; + parser.yy.subQueries = []; + parser.yy.selectListAliases = []; + parser.yy.latestTablePrimaries = []; + + prioritizeSuggestions(); + }; + + parser.yy.parseError = function(message, error) { + parser.yy.errors.push(error); + return message; + }; + + parser.addCommonTableExpressions = function(identifiers) { + parser.yy.result.commonTableExpressions = identifiers; + parser.yy.latestCommonTableExpressions = identifiers; + }; + + parser.isInSubquery = function() { + return !!parser.yy.primariesStack.length; + }; + + parser.pushQueryState = function() { + parser.yy.resultStack.push(parser.yy.result); + parser.yy.locationsStack.push(parser.yy.locations); + parser.yy.lateralViewsStack.push(parser.yy.lateralViews); + parser.yy.selectListAliasesStack.push(parser.yy.selectListAliases); + parser.yy.primariesStack.push(parser.yy.latestTablePrimaries); + parser.yy.subQueriesStack.push(parser.yy.subQueries); + + parser.yy.result = {}; + parser.yy.locations = []; + parser.yy.selectListAliases = []; // Not allowed in correlated sub-queries + parser.yy.lateralViews = []; // Not allowed in correlated sub-queries + + if (parser.yy.correlatedSubQuery) { + parser.yy.latestTablePrimaries = parser.yy.latestTablePrimaries.concat(); + parser.yy.subQueries = parser.yy.subQueries.concat(); + } else { + parser.yy.latestTablePrimaries = []; + parser.yy.subQueries = []; + } + }; + + parser.popQueryState = function(subQuery) { + linkTablePrimaries(); + parser.commitLocations(); + + if (Object.keys(parser.yy.result).length === 0) { + parser.yy.result = parser.yy.resultStack.pop(); + } else { + parser.yy.resultStack.pop(); + } + const oldSubQueries = parser.yy.subQueries; + parser.yy.subQueries = parser.yy.subQueriesStack.pop(); + if (subQuery) { + if (oldSubQueries.length > 0) { + subQuery.subQueries = oldSubQueries; + } + parser.yy.subQueries.push(subQuery); + } + + parser.yy.lateralViews = parser.yy.lateralViewsStack.pop(); + parser.yy.latestTablePrimaries = parser.yy.primariesStack.pop(); + parser.yy.locations = parser.yy.locationsStack.pop(); + parser.yy.selectListAliases = parser.yy.selectListAliasesStack.pop(); + }; + + parser.suggestSelectListAliases = function() { + if ( + parser.yy.selectListAliases && + parser.yy.selectListAliases.length > 0 && + parser.yy.result.suggestColumns && + (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || + parser.yy.result.suggestColumns.identifierChain.length === 0) + ) { + parser.yy.result.suggestColumnAliases = parser.yy.selectListAliases; + } + }; + + parser.mergeSuggestKeywords = function() { + let result = []; + Array.prototype.slice.call(arguments).forEach(suggestion => { + if (typeof suggestion !== 'undefined' && typeof suggestion.suggestKeywords !== 'undefined') { + result = result.concat(suggestion.suggestKeywords); + } + }); + if (result.length > 0) { + return { suggestKeywords: result }; + } + return {}; + }; + + parser.suggestValueExpressionKeywords = function(valueExpression, extras) { + const expressionKeywords = parser.getValueExpressionKeywords(valueExpression, extras); + parser.suggestKeywords(expressionKeywords.suggestKeywords); + if (expressionKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(expressionKeywords.suggestColRefKeywords); + } + if (valueExpression.lastType) { + parser.addColRefIfExists(valueExpression.lastType); + } else { + parser.addColRefIfExists(valueExpression); + } + }; + + parser.getSelectListKeywords = function(excludeAsterisk) { + const keywords = [{ value: 'CASE', weight: 450 }, 'EXISTS', 'FALSE', 'TRUE', 'NULL', 'NOT']; + if (!excludeAsterisk) { + keywords.push({ value: '*', weight: 10000 }); + } + return keywords; + }; + + parser.getValueExpressionKeywords = function(valueExpression, extras) { + const types = valueExpression.lastType ? valueExpression.lastType.types : valueExpression.types; + // We could have valueExpression.columnReference to suggest based on column type + let keywords = [ + '<', + '<=', + '<=>', + '<>', + '=', + '>', + '>=', + 'BETWEEN', + 'IN', + 'IS NOT NULL', + 'IS NULL', + 'IS NOT TRUE', + 'IS TRUE', + 'IS NOT FALSE', + 'IS FALSE', + 'NOT BETWEEN', + 'NOT IN' + ]; + if (extras) { + keywords = keywords.concat(extras); + } + if (valueExpression.suggestKeywords) { + keywords = keywords.concat(valueExpression.suggestKeywords); + } + if (types.length === 1 && types[0] === 'COLREF') { + return { + suggestKeywords: keywords, + suggestColRefKeywords: { + BOOLEAN: ['AND', 'OR'], + NUMBER: ['+', '-', '*', '/', '%', 'DIV'], + STRING: ['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] + } + }; + } + if ( + typeof SqlFunctions === 'undefined' || + SqlFunctions.matchesType(parser.yy.activeDialect, ['BOOLEAN'], types) + ) { + keywords = keywords.concat(['AND', 'OR']); + } + if ( + typeof SqlFunctions === 'undefined' || + SqlFunctions.matchesType(parser.yy.activeDialect, ['NUMBER'], types) + ) { + keywords = keywords.concat(['+', '-', '*', '/', '%', 'DIV']); + } + if ( + typeof SqlFunctions === 'undefined' || + SqlFunctions.matchesType(parser.yy.activeDialect, ['STRING'], types) + ) { + keywords = keywords.concat(['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE']); + } + return { suggestKeywords: keywords }; + }; + + parser.getTypeKeywords = function() { + return [ + 'BIGINT', + 'BINARY', + 'BOOLEAN', + 'CHAR', + 'DATE', + 'DECIMAL', + 'DOUBLE', + 'DOUBLE PRECISION', + 'FLOAT', + 'INT', + 'INTEGER', + 'SMALLINT', + 'TIMESTAMP', + 'STRING', + 'TINYINT', + 'VARCHAR' + ]; + }; + + parser.getColumnDataTypeKeywords = function() { + return parser.getTypeKeywords().concat(['ARRAY<>', 'MAP<>', 'STRUCT<>', 'UNIONTYPE<>']); + }; + + parser.addColRefIfExists = function(valueExpression) { + if (valueExpression.columnReference) { + parser.yy.result.colRef = { identifierChain: valueExpression.columnReference }; + } + }; + + parser.selectListNoTableSuggest = function(selectListEdit, hasDistinctOrAll) { + if (selectListEdit.cursorAtStart) { + let keywords = parser.getSelectListKeywords(); + if (!hasDistinctOrAll) { + keywords = keywords.concat([{ value: 'ALL', weight: 2 }, { value: 'DISTINCT', weight: 2 }]); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForKeywords(selectListEdit); + } + if (selectListEdit.suggestFunctions) { + parser.suggestFunctions(); + } + if (selectListEdit.suggestColumns) { + parser.suggestColumns(); + } + if ( + selectListEdit.suggestAggregateFunctions && + (!hasDistinctOrAll || hasDistinctOrAll === 'ALL') + ) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + }; + + parser.suggestJoinConditions = function(details) { + parser.yy.result.suggestJoinConditions = details || {}; + if (parser.yy.latestTablePrimaries && !parser.yy.result.suggestJoinConditions.tablePrimaries) { + parser.yy.result.suggestJoinConditions.tablePrimaries = parser.yy.latestTablePrimaries.concat(); + } + }; + + parser.suggestJoins = function(details) { + parser.yy.result.suggestJoins = details || {}; + }; + + parser.valueExpressionSuggest = function(oppositeValueExpression, operator) { + if (oppositeValueExpression && oppositeValueExpression.columnReference) { + parser.suggestValues(); + parser.yy.result.colRef = { identifierChain: oppositeValueExpression.columnReference }; + } + parser.suggestColumns(); + parser.suggestFunctions(); + let keywords = [ + { value: 'CASE', weight: 450 }, + { value: 'FALSE', weight: 450 }, + { value: 'NULL', weight: 450 }, + { value: 'TRUE', weight: 450 } + ]; + keywords = keywords.concat(['EXISTS', 'NOT']); + if (oppositeValueExpression && oppositeValueExpression.types[0] === 'NUMBER') { + parser.applyTypeToSuggestions(['NUMBER']); + } + parser.suggestKeywords(keywords); + }; + + parser.applyTypeToSuggestions = function(types) { + if (types[0] === 'BOOLEAN') { + return; + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.yy.result.suggestFunctions.types = types; + } + if (parser.yy.result.suggestColumns && !parser.yy.result.suggestColumns.types) { + parser.yy.result.suggestColumns.types = types; + } + }; + + parser.findCaseType = function(whenThenList) { + const types = {}; + whenThenList.caseTypes.forEach(valueExpression => { + valueExpression.types.forEach(type => { + types[type] = true; + }); + }); + if (Object.keys(types).length === 1) { + return { types: [Object.keys(types)[0]] }; + } + return { types: ['T'] }; + }; + + parser.findReturnTypes = function(functionName) { + return typeof SqlFunctions === 'undefined' + ? ['T'] + : SqlFunctions.getReturnTypes(parser.yy.activeDialect, functionName.toLowerCase()); + }; + + parser.applyArgumentTypesToSuggestions = function(functionName, position) { + const foundArguments = + typeof SqlFunctions === 'undefined' + ? ['T'] + : SqlFunctions.getArgumentTypes( + parser.yy.activeDialect, + functionName.toLowerCase(), + position + ); + if (foundArguments.length === 0 && parser.yy.result.suggestColumns) { + delete parser.yy.result.suggestColumns; + delete parser.yy.result.suggestKeyValues; + delete parser.yy.result.suggestValues; + delete parser.yy.result.suggestFunctions; + delete parser.yy.result.suggestIdentifiers; + delete parser.yy.result.suggestKeywords; + } else { + parser.applyTypeToSuggestions(foundArguments); + } + }; + + parser.commitLocations = function() { + if (parser.yy.locations.length === 0) { + return; + } + + const tablePrimaries = parser.yy.latestTablePrimaries; + + let i = parser.yy.locations.length; + + while (i--) { + const location = parser.yy.locations[i]; + if (location.type === 'variable' && location.colRef) { + parser.expandIdentifierChain({ + wrapper: location.colRef, + tablePrimaries: tablePrimaries, + isColumnWrapper: true + }); + delete location.colRef.linked; + } + + if (location.type === 'unknown') { + if ( + typeof location.identifierChain !== 'undefined' && + location.identifierChain.length > 0 && + location.identifierChain.length <= 2 && + tablePrimaries + ) { + let found = tablePrimaries.filter(primary => { + return ( + equalIgnoreCase(primary.alias, location.identifierChain[0].name) || + (primary.identifierChain && + equalIgnoreCase(primary.identifierChain[0].name, location.identifierChain[0].name)) + ); + }); + if (!found.length && location.firstInChain) { + found = tablePrimaries.filter(primary => { + return ( + !primary.alias && + primary.identifierChain && + equalIgnoreCase( + primary.identifierChain[primary.identifierChain.length - 1].name, + location.identifierChain[0].name + ) + ); + }); + } + + if (found.length) { + if ( + found[0].identifierChain.length > 1 && + location.identifierChain.length === 1 && + equalIgnoreCase(found[0].identifierChain[0].name, location.identifierChain[0].name) + ) { + location.type = 'database'; + } else if ( + found[0].alias && + equalIgnoreCase(location.identifierChain[0].name, found[0].alias) && + location.identifierChain.length > 1 + ) { + location.type = 'column'; + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true + }); + } else if ( + !found[0].alias && + found[0].identifierChain && + equalIgnoreCase( + location.identifierChain[0].name, + found[0].identifierChain[found[0].identifierChain.length - 1].name + ) && + location.identifierChain.length > 1 + ) { + location.type = 'column'; + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true + }); + } else { + location.type = 'table'; + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true + }); + } + } else if (parser.yy.subQueries) { + found = parser.yy.subQueries.filter(subQuery => { + return equalIgnoreCase(subQuery.alias, location.identifierChain[0].name); + }); + if (found.length > 0) { + location.type = 'subQuery'; + location.identifierChain = [{ subQuery: found[0].alias }]; + } + } + } + } + + if (location.type === 'asterisk' && !location.linked) { + if (tablePrimaries && tablePrimaries.length > 0) { + location.tables = []; + location.linked = false; + if (!location.identifierChain) { + location.identifierChain = [{ asterisk: true }]; + } + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: false + }); + if (location.tables.length === 0) { + parser.yy.locations.splice(i, 1); + } + } else { + parser.yy.locations.splice(i, 1); + } + } + + if ( + location.type === 'table' && + typeof location.identifierChain !== 'undefined' && + location.identifierChain.length === 1 && + location.identifierChain[0].name + ) { + // Could be a cte reference + parser.yy.locations.some(otherLocation => { + if ( + otherLocation.type === 'alias' && + otherLocation.source === 'cte' && + identifierEquals(otherLocation.alias, location.identifierChain[0].name) + ) { + // TODO: Possibly add the other location if we want to show the link in the future. + // i.e. highlight select definition on hover over alias, also for subquery references. + location.type = 'alias'; + location.target = 'cte'; + location.alias = location.identifierChain[0].name; + delete location.identifierChain; + return true; + } + }); + } + + if ( + location.type === 'table' && + (typeof location.identifierChain === 'undefined' || location.identifierChain.length === 0) + ) { + parser.yy.locations.splice(i, 1); + } + + if (location.type === 'unknown') { + location.type = 'column'; + } + + // A column location might refer to a previously defined alias, i.e. last 'foo' in "SELECT cast(id AS int) foo FROM tbl ORDER BY foo;" + if (location.type === 'column') { + for (let j = i - 1; j >= 0; j--) { + const otherLocation = parser.yy.locations[j]; + if ( + otherLocation.type === 'alias' && + otherLocation.source === 'column' && + location.identifierChain && + location.identifierChain.length === 1 && + location.identifierChain[0].name && + otherLocation.alias && + location.identifierChain[0].name.toLowerCase() === otherLocation.alias.toLowerCase() + ) { + location.type = 'alias'; + location.source = 'column'; + location.alias = location.identifierChain[0].name; + delete location.identifierChain; + location.parentLocation = otherLocation.parentLocation; + break; + } + } + } + + if (location.type === 'column') { + if (!location.linked) { + location.identifierChain = parser.expandLateralViews( + parser.yy.lateralViews, + location.identifierChain + ); + } + + const initialIdentifierChain = location.identifierChain + ? location.identifierChain.concat() + : undefined; + + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true, + isColumnWrapper: true, + isColumnLocation: true + }); + + if (typeof location.identifierChain === 'undefined') { + parser.yy.locations.splice(i, 1); + } else if ( + location.identifierChain.length === 0 && + initialIdentifierChain && + initialIdentifierChain.length === 1 + ) { + // This is for the case "SELECT tblOrColName FROM db.tblOrColName"; + location.identifierChain = initialIdentifierChain; + } + } + if (location.type === 'column' && location.identifierChain) { + if (location.identifierChain.length > 1 && location.tables && location.tables.length > 0) { + location.type = 'complex'; + } + } + delete location.firstInChain; + if (location.type !== 'column' && location.type !== 'complex') { + delete location.qualified; + } else if (typeof location.qualified === 'undefined') { + location.qualified = false; + } + } + + if (parser.yy.locations.length > 0) { + parser.yy.allLocations = parser.yy.allLocations.concat(parser.yy.locations); + parser.yy.locations = []; + } + }; + + const prioritizeSuggestions = function() { + parser.yy.result.lowerCase = parser.yy.lowerCase || false; + + const cteIndex = {}; + + if (typeof parser.yy.latestCommonTableExpressions !== 'undefined') { + parser.yy.latestCommonTableExpressions.forEach(cte => { + cteIndex[cte.alias.toLowerCase()] = cte; + }); + } + + SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { + if ( + suggestionType !== 'suggestAggregateFunctions' && + typeof parser.yy.result[suggestionType] !== 'undefined' && + parser.yy.result[suggestionType].tables.length === 0 + ) { + delete parser.yy.result[suggestionType]; + } else if ( + typeof parser.yy.result[suggestionType] !== 'undefined' && + typeof parser.yy.result[suggestionType].tables !== 'undefined' + ) { + for (let i = parser.yy.result[suggestionType].tables.length - 1; i >= 0; i--) { + const table = parser.yy.result[suggestionType].tables[i]; + if ( + table.identifierChain.length === 1 && + typeof table.identifierChain[0].name !== 'undefined' && + typeof cteIndex[table.identifierChain[0].name.toLowerCase()] !== 'undefined' + ) { + parser.yy.result[suggestionType].tables.splice(i, 1); + } + } + } + }); + + if (typeof parser.yy.result.colRef !== 'undefined') { + if ( + !parser.yy.result.colRef.linked || + typeof parser.yy.result.colRef.identifierChain === 'undefined' || + parser.yy.result.colRef.identifierChain.length === 0 + ) { + delete parser.yy.result.colRef; + if (typeof parser.yy.result.suggestColRefKeywords !== 'undefined') { + Object.keys(parser.yy.result.suggestColRefKeywords).forEach(type => { + parser.yy.result.suggestKeywords = parser.yy.result.suggestKeywords.concat( + parser.createWeightedKeywords(parser.yy.result.suggestColRefKeywords[type], -1) + ); + }); + delete parser.yy.result.suggestColRefKeywords; + } + if ( + parser.yy.result.suggestColumns && + parser.yy.result.suggestColumns.types.length === 1 && + parser.yy.result.suggestColumns.types[0] === 'COLREF' + ) { + parser.yy.result.suggestColumns.types = ['T']; + } + delete parser.yy.result.suggestValues; + } + } + + if (typeof parser.yy.result.colRef !== 'undefined') { + if ( + !parser.yy.result.suggestValues && + !parser.yy.result.suggestColRefKeywords && + (!parser.yy.result.suggestColumns || parser.yy.result.suggestColumns.types[0] !== 'COLREF') + ) { + delete parser.yy.result.colRef; + } + } + if ( + typeof parser.yy.result.suggestIdentifiers !== 'undefined' && + parser.yy.result.suggestIdentifiers.length > 0 + ) { + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + } + if (typeof parser.yy.result.suggestColumns !== 'undefined') { + const suggestColumns = parser.yy.result.suggestColumns; + if (typeof suggestColumns.tables === 'undefined' || suggestColumns.tables.length === 0) { + delete parser.yy.result.suggestColumns; + delete parser.yy.result.subQueries; + } else { + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + + suggestColumns.tables.forEach(table => { + if ( + typeof table.identifierChain !== 'undefined' && + table.identifierChain.length === 1 && + typeof table.identifierChain[0].name !== 'undefined' + ) { + const cte = cteIndex[table.identifierChain[0].name.toLowerCase()]; + if (typeof cte !== 'undefined') { + delete table.identifierChain[0].name; + table.identifierChain[0].cte = cte.alias; + } + } else if (typeof table.identifierChain === 'undefined' && table.subQuery) { + table.identifierChain = [{ subQuery: table.subQuery }]; + delete table.subQuery; + } + }); + + if ( + typeof suggestColumns.identifierChain !== 'undefined' && + suggestColumns.identifierChain.length === 0 + ) { + delete suggestColumns.identifierChain; + } + } + } else { + delete parser.yy.result.subQueries; + } + + if (typeof parser.yy.result.suggestJoinConditions !== 'undefined') { + if ( + typeof parser.yy.result.suggestJoinConditions.tables === 'undefined' || + parser.yy.result.suggestJoinConditions.tables.length === 0 + ) { + delete parser.yy.result.suggestJoinConditions; + } + } + + if ( + typeof parser.yy.result.suggestTables !== 'undefined' && + typeof parser.yy.result.commonTableExpressions !== 'undefined' + ) { + const ctes = []; + parser.yy.result.commonTableExpressions.forEach(cte => { + const suggestion = { name: cte.alias }; + if (parser.yy.result.suggestTables.prependFrom) { + suggestion.prependFrom = true; + } + if (parser.yy.result.suggestTables.prependQuestionMark) { + suggestion.prependQuestionMark = true; + } + ctes.push(suggestion); + }); + if (ctes.length > 0) { + parser.yy.result.suggestCommonTableExpressions = ctes; + } + } + }; + + parser.identifyPartials = function(beforeCursor, afterCursor) { + const beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); + const afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); + return { + left: beforeMatch ? beforeMatch[0].length : 0, + right: afterMatch ? afterMatch[0].length : 0 + }; + }; + + parser.expandLateralViews = function(lateralViews, originalIdentifierChain, columnSuggestion) { + let identifierChain = originalIdentifierChain.concat(); // Clone in case it's re-used + let firstIdentifier = identifierChain[0]; + if (typeof lateralViews !== 'undefined') { + lateralViews + .concat() + .reverse() + .forEach(lateralView => { + if (!lateralView.udtf.expression.columnReference) { + return; + } + if ( + equalIgnoreCase(firstIdentifier.name, lateralView.tableAlias) && + identifierChain.length > 1 + ) { + identifierChain.shift(); + firstIdentifier = identifierChain[0]; + if (columnSuggestion) { + delete parser.yy.result.suggestKeywords; + } + } else if ( + equalIgnoreCase(firstIdentifier.name, lateralView.tableAlias) && + identifierChain.length === 1 && + typeof parser.yy.result.suggestColumns !== 'undefined' + ) { + if (columnSuggestion) { + if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { + parser.yy.result.suggestIdentifiers = []; + } + lateralView.columnAliases.forEach(columnAlias => { + parser.yy.result.suggestIdentifiers.push({ name: columnAlias, type: 'alias' }); + }); + delete parser.yy.result.suggestColumns; + delete parser.yy.result.suggestKeywords; + } + return identifierChain; + } + if (lateralView.columnAliases.indexOf(firstIdentifier.name) !== -1) { + if ( + lateralView.columnAliases.length === 2 && + lateralView.udtf.function.toLowerCase() === 'explode' && + equalIgnoreCase(firstIdentifier.name, lateralView.columnAliases[0]) + ) { + identifierChain[0] = { name: 'key' }; + } else if ( + lateralView.columnAliases.length === 2 && + lateralView.udtf.function.toLowerCase() === 'explode' && + equalIgnoreCase(firstIdentifier.name, lateralView.columnAliases[1]) + ) { + identifierChain[0] = { name: 'value' }; + } else { + identifierChain[0] = { name: 'item' }; + } + identifierChain = lateralView.udtf.expression.columnReference.concat(identifierChain); + firstIdentifier = identifierChain[0]; + } + }); + } + return identifierChain; + }; + + const addCleanTablePrimary = function(tables, tablePrimary) { + if (tablePrimary.alias) { + tables.push({ alias: tablePrimary.alias, identifierChain: tablePrimary.identifierChain }); + } else { + tables.push({ identifierChain: tablePrimary.identifierChain }); + } + }; + + parser.expandIdentifierChain = function(options) { + const wrapper = options.wrapper; + const anyOwner = options.anyOwner; + const isColumnWrapper = options.isColumnWrapper; + const isColumnLocation = options.isColumnLocation; + let tablePrimaries = options.tablePrimaries || parser.yy.latestTablePrimaries; + + if (typeof wrapper.identifierChain === 'undefined' || typeof tablePrimaries === 'undefined') { + return; + } + let identifierChain = wrapper.identifierChain.concat(); + + if (tablePrimaries.length === 0) { + delete wrapper.identifierChain; + return; + } + + if (!anyOwner) { + tablePrimaries = filterTablePrimariesForOwner(tablePrimaries, wrapper.owner); + } + + if (identifierChain.length > 0 && identifierChain[identifierChain.length - 1].asterisk) { + const tables = []; + tablePrimaries.forEach(tablePrimary => { + if (identifierChain.length > 1 && !tablePrimary.subQueryAlias) { + if ( + identifierChain.length === 2 && + equalIgnoreCase(tablePrimary.alias, identifierChain[0].name) + ) { + addCleanTablePrimary(tables, tablePrimary); + } else if ( + identifierChain.length === 2 && + equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) + ) { + addCleanTablePrimary(tables, tablePrimary); + } else if ( + identifierChain.length === 3 && + tablePrimary.identifierChain.length > 1 && + equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) && + equalIgnoreCase(tablePrimary.identifierChain[1].name, identifierChain[1].name) + ) { + addCleanTablePrimary(tables, tablePrimary); + } + } else if (tablePrimary.subQueryAlias) { + tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); + } else { + addCleanTablePrimary(tables, tablePrimary); + } + }); + // Possible Joins + if (tables.length > 0) { + wrapper.tables = tables; + delete wrapper.identifierChain; + return; + } + } + + // Expand exploded views in the identifier chain + if (identifierChain.length > 0) { + identifierChain = parser.expandLateralViews(parser.yy.lateralViews, identifierChain); + wrapper.identifierChain = identifierChain; + } + + // IdentifierChain contains a possibly started identifier or empty, example: a.b.c = ['a', 'b', 'c'] + // Reduce the tablePrimaries to the one that matches the first identifier if found + let foundPrimary; + let doubleMatch = false; + let aliasMatch = false; + if (identifierChain.length > 0) { + for (let i = 0; i < tablePrimaries.length; i++) { + if (tablePrimaries[i].subQueryAlias) { + if (equalIgnoreCase(tablePrimaries[i].subQueryAlias, identifierChain[0].name)) { + foundPrimary = tablePrimaries[i]; + } + } else if (equalIgnoreCase(tablePrimaries[i].alias, identifierChain[0].name)) { + foundPrimary = tablePrimaries[i]; + aliasMatch = true; + break; + } else if ( + tablePrimaries[i].identifierChain.length > 1 && + identifierChain.length > 1 && + equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && + equalIgnoreCase(tablePrimaries[i].identifierChain[1].name, identifierChain[1].name) + ) { + foundPrimary = tablePrimaries[i]; + doubleMatch = true; + break; + } else if ( + !foundPrimary && + equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && + identifierChain.length > (isColumnLocation ? 1 : 0) + ) { + foundPrimary = tablePrimaries[i]; + // No break as first two can still match. + } else if ( + !foundPrimary && + tablePrimaries[i].identifierChain.length > 1 && + !tablePrimaries[i].alias && + equalIgnoreCase( + tablePrimaries[i].identifierChain[tablePrimaries[i].identifierChain.length - 1].name, + identifierChain[0].name + ) + ) { + // This is for the case SELECT baa. FROM bla.baa, blo.boo; + foundPrimary = tablePrimaries[i]; + break; + } + } + } + + if (foundPrimary) { + identifierChain.shift(); + if (doubleMatch) { + identifierChain.shift(); + } + } else if (tablePrimaries.length === 1 && !isColumnWrapper) { + foundPrimary = tablePrimaries[0]; + } + + if (foundPrimary) { + if (isColumnWrapper) { + wrapper.identifierChain = identifierChain; + if (foundPrimary.subQueryAlias) { + wrapper.tables = [{ subQuery: foundPrimary.subQueryAlias }]; + } else if (foundPrimary.alias) { + if (!isColumnLocation && isColumnWrapper && aliasMatch) { + // TODO: add alias on table in suggestColumns (needs support in sqlAutocomplete3.js) + // the case is: SELECT cu.| FROM customers cu; + // This prevents alias from being added automatically in sqlAutocompleter.js + wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; + } else { + wrapper.tables = [ + { identifierChain: foundPrimary.identifierChain, alias: foundPrimary.alias } + ]; + } + } else { + wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; + } + } else { + if (foundPrimary.subQueryAlias) { + identifierChain.unshift({ subQuery: foundPrimary.subQueryAlias }); + } else { + identifierChain = foundPrimary.identifierChain.concat(identifierChain); + } + if (wrapper.tables) { + wrapper.tables.push({ identifierChain: identifierChain }); + delete wrapper.identifierChain; + } else { + wrapper.identifierChain = identifierChain; + } + } + } else { + if (isColumnWrapper) { + wrapper.tables = []; + } + tablePrimaries.forEach(tablePrimary => { + const targetTable = tablePrimary.subQueryAlias + ? { subQuery: tablePrimary.subQueryAlias } + : { identifierChain: tablePrimary.identifierChain }; + if (tablePrimary.alias) { + targetTable.alias = tablePrimary.alias; + } + if (wrapper.tables) { + wrapper.tables.push(targetTable); + } + }); + } + delete wrapper.owner; + wrapper.linked = true; + }; + + const suggestLateralViewAliasesAsIdentifiers = function() { + if (typeof parser.yy.lateralViews === 'undefined' || parser.yy.lateralViews.length === 0) { + return; + } + if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { + parser.yy.result.suggestIdentifiers = []; + } + parser.yy.lateralViews.forEach(lateralView => { + if (typeof lateralView.tableAlias !== 'undefined') { + parser.yy.result.suggestIdentifiers.push({ + name: lateralView.tableAlias + '.', + type: 'alias' + }); + } + lateralView.columnAliases.forEach(columnAlias => { + parser.yy.result.suggestIdentifiers.push({ name: columnAlias, type: 'alias' }); + }); + }); + if (parser.yy.result.suggestIdentifiers.length === 0) { + delete parser.yy.result.suggestIdentifiers; + } + }; + + const filterTablePrimariesForOwner = function(tablePrimaries, owner) { + const result = []; + tablePrimaries.forEach(primary => { + if (typeof owner === 'undefined' && typeof primary.owner === 'undefined') { + result.push(primary); + } else if (owner === primary.owner) { + result.push(primary); + } + }); + return result; + }; + + const convertTablePrimariesToSuggestions = function(tablePrimaries) { + const tables = []; + const identifiers = []; + tablePrimaries.forEach(tablePrimary => { + if (tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { + const table = { identifierChain: tablePrimary.identifierChain }; + if (tablePrimary.alias) { + table.alias = tablePrimary.alias; + identifiers.push({ name: table.alias + '.', type: 'alias' }); + } else { + const lastIdentifier = + tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1]; + if (typeof lastIdentifier.name !== 'undefined') { + identifiers.push({ name: lastIdentifier.name + '.', type: 'table' }); + } else if (typeof lastIdentifier.subQuery !== 'undefined') { + identifiers.push({ name: lastIdentifier.subQuery + '.', type: 'sub-query' }); + } + } + tables.push(table); + } else if (tablePrimary.subQueryAlias) { + identifiers.push({ name: tablePrimary.subQueryAlias + '.', type: 'sub-query' }); + tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); + } + }); + if (identifiers.length > 0) { + if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { + parser.yy.result.suggestIdentifiers = identifiers; + } else { + parser.yy.result.suggestIdentifiers = identifiers.concat( + parser.yy.result.suggestIdentifiers + ); + } + } + parser.yy.result.suggestColumns.tables = tables; + if ( + parser.yy.result.suggestColumns.identifierChain && + parser.yy.result.suggestColumns.identifierChain.length === 0 + ) { + delete parser.yy.result.suggestColumns.identifierChain; + } + parser.yy.result.suggestColumns.linked = true; + }; + + const linkTablePrimaries = function() { + if (!parser.yy.cursorFound || typeof parser.yy.latestTablePrimaries === 'undefined') { + return; + } + + SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { + if ( + typeof parser.yy.result[suggestionType] !== 'undefined' && + parser.yy.result[suggestionType].tablePrimaries && + !parser.yy.result[suggestionType].linked + ) { + parser.yy.result[suggestionType].tables = []; + parser.yy.result[suggestionType].tablePrimaries.forEach(tablePrimary => { + if (!tablePrimary.subQueryAlias) { + parser.yy.result[suggestionType].tables.push( + tablePrimary.alias + ? { + identifierChain: tablePrimary.identifierChain.concat(), + alias: tablePrimary.alias + } + : { identifierChain: tablePrimary.identifierChain.concat() } + ); + } + }); + delete parser.yy.result[suggestionType].tablePrimaries; + parser.yy.result[suggestionType].linked = true; + } + }); + + if ( + typeof parser.yy.result.suggestColumns !== 'undefined' && + !parser.yy.result.suggestColumns.linked + ) { + const tablePrimaries = filterTablePrimariesForOwner( + parser.yy.latestTablePrimaries, + parser.yy.result.suggestColumns.owner + ); + if (!parser.yy.result.suggestColumns.tables) { + parser.yy.result.suggestColumns.tables = []; + } + if (parser.yy.subQueries.length > 0) { + parser.yy.result.subQueries = parser.yy.subQueries; + } + if ( + typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || + parser.yy.result.suggestColumns.identifierChain.length === 0 + ) { + if (tablePrimaries.length > 1) { + convertTablePrimariesToSuggestions(tablePrimaries); + } else { + suggestLateralViewAliasesAsIdentifiers(); + if ( + tablePrimaries.length === 1 && + (tablePrimaries[0].alias || tablePrimaries[0].subQueryAlias) + ) { + convertTablePrimariesToSuggestions(tablePrimaries); + } + parser.expandIdentifierChain({ + wrapper: parser.yy.result.suggestColumns, + anyOwner: false, + isColumnWrapper: true + }); + } + } else if (!parser.yy.result.suggestColumns.linked) { + // Expand exploded views in the identifier chain + const originalLength = parser.yy.result.suggestColumns.identifierChain.length; + parser.yy.result.suggestColumns.identifierChain = parser.expandLateralViews( + parser.yy.lateralViews, + parser.yy.result.suggestColumns.identifierChain, + true + ); + // Drop '*' keyword for lateral views + if (typeof parser.yy.result.suggestColumns !== 'undefined') { + if ( + parser.yy.result.suggestColumns.identifierChain.length > originalLength && + typeof parser.yy.result.suggestKeywords !== 'undefined' && + parser.yy.result.suggestKeywords.length === 1 && + parser.yy.result.suggestKeywords[0].value === '*' + ) { + delete parser.yy.result.suggestKeywords; + } + parser.expandIdentifierChain({ + wrapper: parser.yy.result.suggestColumns, + anyOwner: false, + isColumnWrapper: true + }); + } + } else { + parser.expandIdentifierChain({ + wrapper: parser.yy.result.suggestColumns, + anyOwner: false, + isColumnWrapper: true + }); + } + } + + if (typeof parser.yy.result.colRef !== 'undefined' && !parser.yy.result.colRef.linked) { + parser.expandIdentifierChain({ wrapper: parser.yy.result.colRef }); + + const primaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries); + if ( + primaries.length === 0 || + (primaries.length > 1 && parser.yy.result.colRef.identifierChain.length === 1) + ) { + parser.yy.result.colRef.identifierChain = []; + } + } + if ( + typeof parser.yy.result.suggestKeyValues !== 'undefined' && + !parser.yy.result.suggestKeyValues.linked + ) { + parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestKeyValues }); + } + }; + + parser.getSubQuery = function(cols) { + const columns = []; + cols.selectList.forEach(col => { + const result = {}; + if (col.alias) { + result.alias = col.alias; + } + if (col.valueExpression && col.valueExpression.columnReference) { + result.identifierChain = col.valueExpression.columnReference; + } else if (col.asterisk) { + result.identifierChain = [{ asterisk: true }]; + } + if ( + col.valueExpression && + col.valueExpression.types && + col.valueExpression.types.length === 1 + ) { + result.type = col.valueExpression.types[0]; + } + + columns.push(result); + }); + + return { + columns: columns + }; + }; + + parser.addTablePrimary = function(ref) { + if (typeof parser.yy.latestTablePrimaries === 'undefined') { + parser.yy.latestTablePrimaries = []; + } + parser.yy.latestTablePrimaries.push(ref); + }; + + parser.suggestFileFormats = function() { + parser.suggestKeywords([ + 'AVRO', + 'INPUTFORMAT', + 'JSONFILE', + 'ORC', + 'PARQUET', + 'RCFILE', + 'SEQUENCEFILE', + 'TEXTFILE' + ]); + }; + + parser.suggestKeywordsForOptionalsLR = function(optionals, keywords, override) { + const result = parser.getKeywordsForOptionalsLR(optionals, keywords, override); + if (result.length) { + parser.suggestKeywords(result); + } + }; + + parser.getKeywordsForOptionalsLR = function(optionals, keywords, override) { + let result = []; + + for (let i = 0; i < optionals.length; i++) { + if (!optionals[i] && (typeof override === 'undefined' || override[i])) { + if (keywords[i] instanceof Array) { + result = result.concat(keywords[i]); + } else { + result.push(keywords[i]); + } + } else if (optionals[i]) { + break; + } + } + return result; + }; + + parser.suggestDdlAndDmlKeywords = function(extraKeywords) { + let keywords = [ + 'ALTER', + 'CREATE', + 'DESCRIBE', + 'DROP', + 'GRANT', + 'INSERT', + 'REVOKE', + 'SELECT', + 'SET', + 'SHOW', + 'TRUNCATE', + 'UPDATE', + 'USE', + 'WITH' + ]; + + if (extraKeywords) { + keywords = keywords.concat(extraKeywords); + } + + keywords = keywords.concat([ + 'ABORT', + 'ANALYZE TABLE', + 'DELETE', + 'EXPORT', + 'IMPORT', + 'LOAD', + 'MERGE', + 'MSCK', + 'RELOAD FUNCTION', + 'RESET' + ]); + + parser.suggestKeywords(keywords); + }; + + parser.checkForSelectListKeywords = function(selectList) { + if (selectList.length === 0) { + return; + } + const last = selectList[selectList.length - 1]; + if (!last || !last.valueExpression) { + return; + } + const valueExpressionKeywords = parser.getValueExpressionKeywords(last.valueExpression); + let keywords = []; + if (last.suggestKeywords) { + keywords = keywords.concat(last.suggestKeywords); + } + if (valueExpressionKeywords.suggestKeywords) { + keywords = keywords.concat(valueExpressionKeywords.suggestKeywords); + } + if (valueExpressionKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(valueExpressionKeywords.suggestColRefKeywords); + parser.addColRefIfExists(last.valueExpression); + } + if (!last.alias) { + keywords.push('AS'); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + }; + + parser.checkForKeywords = function(expression) { + if (expression) { + if (expression.suggestKeywords && expression.suggestKeywords.length > 0) { + parser.suggestKeywords(expression.suggestKeywords); + } + if (expression.suggestColRefKeywords) { + parser.suggestColRefKeywords(expression.suggestColRefKeywords); + parser.addColRefIfExists(expression); + } + } + }; + + parser.createWeightedKeywords = function(keywords, weight) { + const result = []; + keywords.forEach(keyword => { + if (typeof keyword.weight !== 'undefined') { + keyword.weight = weight + keyword.weight / 10; + result.push(keyword); + } else { + result.push({ value: keyword, weight: weight }); + } + }); + return result; + }; + + parser.suggestKeywords = function(keywords) { + const weightedKeywords = []; + if (keywords.length === 0) { + return; + } + keywords.forEach(keyword => { + if (typeof keyword.weight !== 'undefined') { + weightedKeywords.push(keyword); + } else { + weightedKeywords.push({ value: keyword, weight: -1 }); + } + }); + weightedKeywords.sort((a, b) => { + if (a.weight !== b.weight) { + return b.weight - a.weight; + } + return a.value.localeCompare(b.value); + }); + parser.yy.result.suggestKeywords = weightedKeywords; + }; + + parser.suggestColRefKeywords = function(colRefKeywords) { + parser.yy.result.suggestColRefKeywords = colRefKeywords; + }; + + parser.suggestTablesOrColumns = function(identifier) { + if (typeof parser.yy.latestTablePrimaries == 'undefined') { + parser.suggestTables({ identifierChain: [{ name: identifier }] }); + return; + } + const tableRef = parser.yy.latestTablePrimaries.filter(tablePrimary => { + return equalIgnoreCase(tablePrimary.alias, identifier); + }); + if (tableRef.length > 0) { + parser.suggestColumns({ identifierChain: [{ name: identifier }] }); + } else { + parser.suggestTables({ identifierChain: [{ name: identifier }] }); + } + }; + + parser.suggestFunctions = function(details) { + parser.yy.result.suggestFunctions = details || {}; + }; + + parser.suggestAggregateFunctions = function() { + const primaries = []; + const aliases = {}; + parser.yy.latestTablePrimaries.forEach(primary => { + if (typeof primary.alias !== 'undefined') { + aliases[primary.alias] = true; + } + // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...) + if ( + typeof primary.identifierChain !== 'undefined' && + !aliases[primary.identifierChain[0].name] && + typeof primary.owner === 'undefined' + ) { + primaries.push(primary); + } + }); + parser.yy.result.suggestAggregateFunctions = { tablePrimaries: primaries }; + }; + + parser.suggestAnalyticFunctions = function() { + parser.yy.result.suggestAnalyticFunctions = true; + }; + + parser.suggestSetOptions = function() { + parser.yy.result.suggestSetOptions = true; + }; + + parser.suggestIdentifiers = function(identifiers) { + parser.yy.result.suggestIdentifiers = identifiers; + }; + + parser.suggestColumns = function(details) { + if (typeof details === 'undefined') { + details = { identifierChain: [] }; + } else if (typeof details.identifierChain === 'undefined') { + details.identifierChain = []; + } + parser.yy.result.suggestColumns = details; + }; + + parser.suggestGroupBys = function(details) { + parser.yy.result.suggestGroupBys = details || {}; + }; + + parser.suggestOrderBys = function(details) { + parser.yy.result.suggestOrderBys = details || {}; + }; + + parser.suggestFilters = function(details) { + parser.yy.result.suggestFilters = details || {}; + }; + + parser.suggestKeyValues = function(details) { + parser.yy.result.suggestKeyValues = details || {}; + }; + + parser.suggestTables = function(details) { + parser.yy.result.suggestTables = details || {}; + }; + + const adjustLocationForCursor = function(location) { + // columns are 0-based and lines not, so add 1 to cols + const newLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column + 1, + last_column: location.last_column + 1 + }; + if (parser.yy.cursorFound) { + if ( + parser.yy.cursorFound.first_line === newLocation.first_line && + parser.yy.cursorFound.last_column <= newLocation.first_column + ) { + let additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; + additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. + newLocation.first_column = newLocation.first_column + additionalSpace; + newLocation.last_column = newLocation.last_column + additionalSpace; + } + } + return newLocation; + }; + + parser.addFunctionLocation = function(location, functionName) { + // Remove trailing '(' from location + const adjustedLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column, + last_column: location.last_column - 1 + }; + parser.yy.locations.push({ + type: 'function', + location: adjustLocationForCursor(adjustedLocation), + function: functionName.toLowerCase() + }); + }; + + parser.addStatementLocation = function(location) { + // Don't report lonely cursor as a statement + if ( + location.first_line === location.last_line && + Math.abs(location.last_column - location.first_column) === 1 + ) { + return; + } + let adjustedLocation; + if ( + parser.yy.cursorFound && + parser.yy.cursorFound.last_line === location.last_line && + parser.yy.cursorFound.first_column >= location.first_column && + parser.yy.cursorFound.last_column <= location.last_column + ) { + const additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; + adjustedLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column + 1, + last_column: location.last_column + additionalSpace - (parser.yy.partialCursor ? 0 : 2) + }; + } else { + adjustedLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column + 1, + last_column: location.last_column + 1 + }; + } + + parser.yy.locations.push({ + type: 'statement', + location: adjustedLocation + }); + }; + + parser.firstDefined = function() { + for (let i = 0; i + 1 < arguments.length; i += 2) { + if (arguments[i]) { + return arguments[i + 1]; + } + } + }; + + parser.addClauseLocation = function(type, precedingLocation, locationIfPresent, isCursor) { + let location; + if (isCursor) { + if (parser.yy.partialLengths.left === 0 && parser.yy.partialLengths.right === 0) { + location = { + type: type, + missing: true, + location: adjustLocationForCursor({ + first_line: precedingLocation.last_line, + first_column: precedingLocation.last_column, + last_line: precedingLocation.last_line, + last_column: precedingLocation.last_column + }) + }; + } else { + location = { + type: type, + missing: false, + location: { + first_line: locationIfPresent.last_line, + first_column: locationIfPresent.last_column - 1, + last_line: locationIfPresent.last_line, + last_column: + locationIfPresent.last_column - + 1 + + parser.yy.partialLengths.right + + parser.yy.partialLengths.left + } + }; + } + } else { + location = { + type: type, + missing: !locationIfPresent, + location: adjustLocationForCursor( + locationIfPresent || { + first_line: precedingLocation.last_line, + first_column: precedingLocation.last_column, + last_line: precedingLocation.last_line, + last_column: precedingLocation.last_column + } + ) + }; + } + if (parser.isInSubquery()) { + location.subquery = true; + } + parser.yy.locations.push(location); + }; + + parser.addStatementTypeLocation = function(identifier, location, additionalText) { + // Don't add if already there except for SELECT + if (identifier !== 'SELECT' && parser.yy.allLocations) { + for (let i = parser.yy.allLocations.length - 1; i >= 0; i--) { + if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statement') { + break; + } + if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statementType') { + return; + } + } + } + const loc = { + type: 'statementType', + location: adjustLocationForCursor(location), + identifier: identifier + }; + if (typeof additionalText !== 'undefined') { + switch (identifier) { + case 'ALTER': + if (/ALTER\s+VIEW/i.test(additionalText)) { + loc.identifier = 'ALTER VIEW'; + } else { + loc.identifier = 'ALTER TABLE'; + } + break; + case 'COMPUTE': + loc.identifier = 'COMPUTE STATS'; + break; + case 'CREATE': + if (/CREATE\s+VIEW/i.test(additionalText)) { + loc.identifier = 'CREATE VIEW'; + } else if (/CREATE\s+TABLE/i.test(additionalText)) { + loc.identifier = 'CREATE TABLE'; + } else if (/CREATE\s+DATABASE/i.test(additionalText)) { + loc.identifier = 'CREATE DATABASE'; + } else if (/CREATE\s+ROLE/i.test(additionalText)) { + loc.identifier = 'CREATE ROLE'; + } else if (/CREATE\s+FUNCTION/i.test(additionalText)) { + loc.identifier = 'CREATE FUNCTION'; + } else { + loc.identifier = 'CREATE TABLE'; + } + break; + case 'DROP': + if (/DROP\s+VIEW/i.test(additionalText)) { + loc.identifier = 'DROP VIEW'; + } else if (/DROP\s+TABLE/i.test(additionalText)) { + loc.identifier = 'DROP TABLE'; + } else if (/DROP\s+DATABASE/i.test(additionalText)) { + loc.identifier = 'DROP DATABASE'; + } else if (/DROP\s+ROLE/i.test(additionalText)) { + loc.identifier = 'DROP ROLE'; + } else if (/DROP\s+STATS/i.test(additionalText)) { + loc.identifier = 'DROP STATS'; + } else if (/DROP\s+FUNCTION/i.test(additionalText)) { + loc.identifier = 'DROP FUNCTION'; + } else { + loc.identifier = 'DROP TABLE'; + } + break; + case 'INVALIDATE': + loc.identifier = 'INVALIDATE METADATA'; + break; + case 'LOAD': + loc.identifier = 'LOAD DATA'; + break; + case 'TRUNCATE': + loc.identifier = 'TRUNCATE TABLE'; + break; + default: + } + } + parser.yy.locations.push(loc); + }; + + parser.addFileLocation = function(location, path) { + parser.yy.locations.push({ + type: 'file', + location: adjustLocationForCursor(location), + path: path + }); + }; + + parser.addDatabaseLocation = function(location, identifierChain) { + parser.yy.locations.push({ + type: 'database', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addTableLocation = function(location, identifierChain) { + parser.yy.locations.push({ + type: 'table', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addColumnAliasLocation = function(location, alias, parentLocation) { + const aliasLocation = { + type: 'alias', + source: 'column', + alias: alias, + location: adjustLocationForCursor(location), + parentLocation: adjustLocationForCursor(parentLocation) + }; + if ( + parser.yy.locations.length && + parser.yy.locations[parser.yy.locations.length - 1].type === 'column' + ) { + const closestColumn = parser.yy.locations[parser.yy.locations.length - 1]; + if ( + closestColumn.location.first_line === aliasLocation.parentLocation.first_line && + closestColumn.location.last_line === aliasLocation.parentLocation.last_line && + closestColumn.location.first_column === aliasLocation.parentLocation.first_column && + closestColumn.location.last_column === aliasLocation.parentLocation.last_column + ) { + parser.yy.locations[parser.yy.locations.length - 1].alias = alias; + } + } + parser.yy.locations.push(aliasLocation); + }; + + parser.addTableAliasLocation = function(location, alias, identifierChain) { + parser.yy.locations.push({ + type: 'alias', + source: 'table', + alias: alias, + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addSubqueryAliasLocation = function(location, alias) { + parser.yy.locations.push({ + type: 'alias', + source: 'subquery', + alias: alias, + location: adjustLocationForCursor(location) + }); + }; + + parser.addAsteriskLocation = function(location, identifierChain) { + parser.yy.locations.push({ + type: 'asterisk', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addVariableLocation = function(location, value) { + if (/\${[^}]*}/.test(value)) { + parser.yy.locations.push({ + type: 'variable', + location: adjustLocationForCursor(location), + value: value + }); + } + }; + + parser.addColumnLocation = function(location, identifierChain) { + const isVariable = + identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); + if (isVariable) { + parser.yy.locations.push({ + type: 'variable', + location: adjustLocationForCursor(location), + value: identifierChain[identifierChain.length - 1].name + }); + } else { + parser.yy.locations.push({ + type: 'column', + location: adjustLocationForCursor(location), + identifierChain: identifierChain, + qualified: identifierChain.length > 1 + }); + } + }; + + parser.addCteAliasLocation = function(location, alias) { + parser.yy.locations.push({ + type: 'alias', + source: 'cte', + alias: alias, + location: adjustLocationForCursor(location) + }); + }; + + parser.addUnknownLocation = function(location, identifierChain) { + const isVariable = + identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); + let loc; + if (isVariable) { + loc = { + type: 'variable', + location: adjustLocationForCursor(location), + value: identifierChain[identifierChain.length - 1].name + }; + } else { + loc = { + type: 'unknown', + location: adjustLocationForCursor(location), + identifierChain: identifierChain, + qualified: identifierChain.length > 1 + }; + } + parser.yy.locations.push(loc); + return loc; + }; + + parser.addNewDatabaseLocation = function(location, identifierChain) { + parser.yy.definitions.push({ + type: 'database', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addNewTableLocation = function(location, identifierChain, colSpec) { + const columns = []; + if (colSpec) { + colSpec.forEach(col => { + columns.push({ + identifierChain: [col.identifier], // TODO: Complex + type: col.type, + location: adjustLocationForCursor(col.location) + }); + }); + } + parser.yy.definitions.push({ + type: 'table', + location: adjustLocationForCursor(location), + identifierChain: identifierChain, + columns: columns + }); + }; + + parser.addColRefToVariableIfExists = function(left, right) { + if ( + left && + left.columnReference && + left.columnReference.length && + right && + right.columnReference && + right.columnReference.length && + parser.yy.locations.length > 1 + ) { + const addColRefToVariableLocation = function(variableValue, colRef) { + // See if colref is actually an alias + if (colRef.length === 1 && colRef[0].name) { + parser.yy.locations.some(location => { + if (location.type === 'column' && location.alias === colRef[0].name) { + colRef = location.identifierChain; + return true; + } + }); + } + + for (let i = parser.yy.locations.length - 1; i > 0; i--) { + const location = parser.yy.locations[i]; + if (location.type === 'variable' && location.value === variableValue) { + location.colRef = { identifierChain: colRef }; + break; + } + } + }; + + if (/\${[^}]*}/.test(left.columnReference[0].name)) { + // left is variable + addColRefToVariableLocation(left.columnReference[0].name, right.columnReference); + } else if (/\${[^}]*}/.test(right.columnReference[0].name)) { + // right is variable + addColRefToVariableLocation(right.columnReference[0].name, left.columnReference); + } + } + }; + + parser.suggestDatabases = function(details) { + parser.yy.result.suggestDatabases = details || {}; + }; + + parser.suggestHdfs = function(details) { + parser.yy.result.suggestHdfs = details || {}; + }; + + parser.suggestValues = function(details) { + parser.yy.result.suggestValues = details || {}; + }; + + parser.determineCase = function(text) { + if (!parser.yy.caseDetermined) { + parser.yy.lowerCase = text.toLowerCase() === text; + parser.yy.caseDetermined = true; + } + }; + + parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { + if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { + parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; + const cursorIndex = parser.yy.partialCursor + ? yytext.indexOf('\u2021') + : yytext.indexOf('\u2020'); + parser.yy.cursorFound = { + first_line: yylloc.first_line, + last_line: yylloc.last_line, + first_column: yylloc.first_column + cursorIndex, + last_column: yylloc.first_column + cursorIndex + 1 + }; + const remainder = yytext.substring(cursorIndex + 1); + const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) + .length; + if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { + parser.yy.missingEndQuote = false; + lexer.input(); + } else { + parser.yy.missingEndQuote = true; + lexer.unput(remainder); + } + lexer.popState(); + return true; + } + return false; + }; + + let lexerModified = false; + + /** + * Main parser function + */ + parser.parseSql = function(beforeCursor, afterCursor, debug) { + // Jison counts CRLF as two lines in the locations + beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); + afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); + parser.yy.result = { locations: [] }; + parser.yy.lowerCase = false; + parser.yy.locations = []; + parser.yy.definitions = []; + parser.yy.allLocations = []; + parser.yy.subQueries = []; + parser.yy.errors = []; + parser.yy.selectListAliases = []; + + parser.yy.locationsStack = []; + parser.yy.primariesStack = []; + parser.yy.lateralViewsStack = []; + parser.yy.subQueriesStack = []; + parser.yy.resultStack = []; + parser.yy.selectListAliasesStack = []; + parser.yy.activeDialect = 'hive'; + + delete parser.yy.caseDetermined; + delete parser.yy.cursorFound; + delete parser.yy.partialCursor; + + // Fix for parser bug when switching lexer states + if (!lexerModified) { + const originalSetInput = parser.lexer.setInput; + parser.lexer.setInput = function(input, yy) { + return originalSetInput.bind(parser.lexer)(input, yy); + }; + lexerModified = true; + } + + parser.prepareNewStatement(); + + const REASONABLE_SURROUNDING_LENGTH = 150000; // About 3000 lines before and after + + if (beforeCursor.length > REASONABLE_SURROUNDING_LENGTH) { + if (beforeCursor.length - beforeCursor.lastIndexOf(';') > REASONABLE_SURROUNDING_LENGTH) { + // Bail out if the last complete statement is more than 150000 chars before + return {}; + } + // Cut it at the first statement found within 150000 chars before + const lastReasonableChunk = beforeCursor.substring( + beforeCursor.length - REASONABLE_SURROUNDING_LENGTH + ); + beforeCursor = lastReasonableChunk.substring(lastReasonableChunk.indexOf(';') + 1); + } + + if (afterCursor.length > REASONABLE_SURROUNDING_LENGTH) { + if (afterCursor.length - afterCursor.indexOf(';') > REASONABLE_SURROUNDING_LENGTH) { + // No need to bail out for what's comes after, we can still get keyword completion + afterCursor = ''; + } else { + // Cut it at the last statement found within 150000 chars after + const firstReasonableChunk = afterCursor.substring(0, REASONABLE_SURROUNDING_LENGTH); + afterCursor = firstReasonableChunk.substring(0, firstReasonableChunk.lastIndexOf(';')); + } + } + + parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); + + if (parser.yy.partialLengths.left > 0) { + beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); + } + + if (parser.yy.partialLengths.right > 0) { + afterCursor = afterCursor.substring(parser.yy.partialLengths.right); + } + + let result; + try { + // Add |CURSOR| or |PARTIAL_CURSOR| to represent the different cursor states in the lexer + result = parser.parse( + beforeCursor + + (beforeCursor.length === 0 || /[\s(]$/.test(beforeCursor) ? ' \u2020 ' : '\u2021') + + afterCursor + ); + } catch (err) { + // On any error try to at least return any existing result + if (typeof parser.yy.result === 'undefined') { + throw err; + } + if (debug) { + console.warn(err); + console.warn(err.stack); + } + result = parser.yy.result; + } + if (parser.yy.errors.length > 0) { + parser.yy.result.errors = parser.yy.errors; + if (debug) { + console.warn(parser.yy.errors); + } + } + try { + linkTablePrimaries(); + parser.commitLocations(); + // Clean up and prioritize + prioritizeSuggestions(); + } catch (err) { + if (debug) { + console.warn(err); + console.warn(err.stack); + } + } + + parser.yy.allLocations.sort((a, b) => { + if (a.location.first_line !== b.location.first_line) { + return a.location.first_line - b.location.first_line; + } + if (a.location.first_column !== b.location.first_column) { + return a.location.first_column - b.location.first_column; + } + if (a.location.last_column !== b.location.last_column) { + return b.location.last_column - a.location.last_column; + } + return b.type.localeCompare(a.type); + }); + parser.yy.result.locations = parser.yy.allLocations; + parser.yy.result.definitions = parser.yy.definitions; + + parser.yy.result.locations.forEach(location => { + delete location.linked; + }); + if (typeof parser.yy.result.suggestColumns !== 'undefined') { + delete parser.yy.result.suggestColumns.linked; + } + + SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { + if (typeof parser.yy.result[suggestionType] !== 'undefined') { + delete parser.yy.result[suggestionType].linked; + } + }); + + if (typeof parser.yy.result.colRef !== 'undefined') { + delete parser.yy.result.colRef.linked; + } + if (typeof parser.yy.result.suggestKeyValues !== 'undefined') { + delete parser.yy.result.suggestKeyValues.linked; + } + + if (typeof result.error !== 'undefined' && typeof result.error.expected !== 'undefined') { + // Remove the cursor from expected tokens + result.error.expected = result.error.expected.filter(token => token.indexOf('CURSOR') === -1); + } + + if (typeof result.error !== 'undefined' && result.error.recoverable) { + delete result.error; + } + + // Adjust all the statement locations to include white space surrounding them + let lastStatementLocation = null; + result.locations.forEach(location => { + if (location.type === 'statement') { + if (lastStatementLocation === null) { + location.location.first_line = 1; + location.location.first_column = 1; + } else { + location.location.first_line = lastStatementLocation.location.last_line; + location.location.first_column = lastStatementLocation.location.last_column + 1; + } + lastStatementLocation = location; + } + }); + + return result; + }; +}; + +const SYNTAX_PARSER_NOOP_FUNCTIONS = [ + 'addAsteriskLocation', + 'addClauseLocation', + 'addColRefIfExists', + 'addColRefToVariableIfExists', + 'addColumnAliasLocation', + 'addColumnLocation', + 'addCommonTableExpressions', + 'addCteAliasLocation', + 'addDatabaseLocation', + 'addFileLocation', + 'addFunctionLocation', + 'addNewDatabaseLocation', + 'addNewTableLocation', + 'addStatementLocation', + 'addStatementTypeLocation', + 'addSubqueryAliasLocation', + 'addTableAliasLocation', + 'addTableLocation', + 'addTablePrimary', + 'addUnknownLocation', + 'addVariableLocation', + 'applyArgumentTypesToSuggestions', + 'applyTypeToSuggestions', + 'checkForKeywords', + 'checkForSelectListKeywords', + 'commitLocations', + 'firstDefined', + 'getSelectListKeywords', + 'getSubQuery', + 'getValueExpressionKeywords', + 'identifyPartials', + 'popQueryState', + 'prepareNewStatement', + 'pushQueryState', + 'selectListNoTableSuggest', + 'suggestAggregateFunctions', + 'suggestAnalyticFunctions', + 'suggestColRefKeywords', + 'suggestColumns', + 'suggestDatabases', + 'suggestDdlAndDmlKeywords', + 'suggestFileFormats', + 'suggestFilters', + 'suggestFunctions', + 'suggestGroupBys', + 'suggestHdfs', + 'suggestIdentifiers', + 'suggestJoinConditions', + 'suggestJoins', + 'suggestKeyValues', + 'suggestKeywords', + 'suggestOrderBys', + 'suggestSelectListAliases', + 'suggestTables', + 'suggestTablesOrColumns', + 'suggestValueExpressionKeywords', + 'suggestValues', + 'valueExpressionSuggest' +]; + +const SYNTAX_PARSER_NOOP = function() {}; + +const initSyntaxParser = function(parser) { + // Noop functions for compatibility with the autocomplete parser as the grammar is shared + SYNTAX_PARSER_NOOP_FUNCTIONS.forEach(noopFn => { + parser[noopFn] = SYNTAX_PARSER_NOOP; + }); + + parser.yy.locations = [{}]; + + parser.determineCase = function(text) { + if (!parser.yy.caseDetermined) { + parser.yy.lowerCase = text.toLowerCase() === text; + parser.yy.caseDetermined = true; + } + }; + + parser.getKeywordsForOptionalsLR = function() { + return []; + }; + + parser.mergeSuggestKeywords = function() { + return {}; + }; + + parser.getTypeKeywords = function() { + return []; + }; + + parser.getColumnDataTypeKeywords = function() { + return []; + }; + + parser.findCaseType = function() { + return { types: ['T'] }; + }; + + parser.findReturnTypes = function() { + return ['T']; + }; + + parser.expandIdentifierChain = function() { + return []; + }; + + parser.expandLateralViews = function() { + return []; + }; + + parser.createWeightedKeywords = function() { + return []; + }; + + parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { + if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { + parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; + const cursorIndex = parser.yy.partialCursor + ? yytext.indexOf('\u2021') + : yytext.indexOf('\u2020'); + parser.yy.cursorFound = { + first_line: yylloc.first_line, + last_line: yylloc.last_line, + first_column: yylloc.first_column + cursorIndex, + last_column: yylloc.first_column + cursorIndex + 1 + }; + const remainder = yytext.substring(cursorIndex + 1); + const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) + .length; + if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { + parser.yy.missingEndQuote = false; + lexer.input(); + } else { + parser.yy.missingEndQuote = true; + lexer.unput(remainder); + } + lexer.popState(); + return true; + } + return false; + }; + + let lexerModified = false; + + parser.yy.parseError = function(str, hash) { + parser.yy.error = hash; + }; + + const IGNORED_EXPECTED = { + ';': true, + '.': true, + EOF: true, + UNSIGNED_INTEGER: true, + UNSIGNED_INTEGER_E: true, + REGULAR_IDENTIFIER: true, + CURSOR: true, + PARTIAL_CURSOR: true, + HDFS_START_QUOTE: true, + HDFS_PATH: true, + HDFS_END_QUOTE: true, + COMPARISON_OPERATOR: true, // TODO: Expand in results when found + ARITHMETIC_OPERATOR: true, // TODO: Expand in results when found + VARIABLE_REFERENCE: true, + BACKTICK: true, + VALUE: true, + PARTIAL_VALUE: true, + SINGLE_QUOTE: true, + DOUBLE_QUOTE: true + }; + + const CLEAN_EXPECTED = { + BETWEEN_AND: 'AND', + OVERWRITE_DIRECTORY: 'OVERWRITE', + STORED_AS_DIRECTORIES: 'STORED', + LIKE_PARQUET: 'LIKE', + PARTITION_VALUE: 'PARTITION' + }; + + parser.parseSyntax = function(beforeCursor, afterCursor, debug) { + parser.yy.caseDetermined = false; + parser.yy.error = undefined; + + parser.yy.latestTablePrimaries = []; + parser.yy.subQueries = []; + parser.yy.selectListAliases = []; + parser.yy.latestTablePrimaries = []; + + parser.yy.activeDialect = 'hive'; + + // Fix for parser bug when switching lexer states + if (!lexerModified) { + const originalSetInput = parser.lexer.setInput; + parser.lexer.setInput = function(input, yy) { + return originalSetInput.bind(parser.lexer)(input, yy); + }; + lexerModified = true; + } + + // TODO: Find a way around throwing an exception when the parser finds a syntax error + try { + parser.yy.error = false; + parser.parse(beforeCursor + afterCursor); + } catch (err) { + if (debug) { + console.warn(err); + console.warn(err.stack); + console.warn(parser.yy.error); + } + } + + if ( + parser.yy.error && + (parser.yy.error.loc.last_column < beforeCursor.length || + !beforeCursor.endsWith(parser.yy.error.text)) + ) { + const weightedExpected = []; + + const addedExpected = {}; + + const isLowerCase = + (parser.yy.caseDetermined && parser.yy.lowerCase) || + parser.yy.error.text.toLowerCase() === parser.yy.error.text; + + if ( + parser.yy.error.expected.length === 2 && + parser.yy.error.expected.indexOf("';'") !== -1 && + parser.yy.error.expected.indexOf("'EOF'") !== -1 + ) { + parser.yy.error.expected = []; + parser.yy.error.expectedStatementEnd = true; + return parser.yy.error; + } + for (let i = 0; i < parser.yy.error.expected.length; i++) { + let expected = parser.yy.error.expected[i]; + // Strip away the surrounding ' chars + expected = expected.substring(1, expected.length - 1); + // TODO: Only suggest alphanumeric? + if (expected === 'REGULAR_IDENTIFIER') { + parser.yy.error.expectedIdentifier = true; + if (/^<[a-z]+>/.test(parser.yy.error.token)) { + const text = '`' + parser.yy.error.text + '`'; + weightedExpected.push({ + text: text, + distance: stringDistance(parser.yy.error.text, text, true) + }); + parser.yy.error.possibleReserved = true; + } + } else if (!IGNORED_EXPECTED[expected] && /[a-z_]+/i.test(expected)) { + if (/^<[a-z]+>/.test(expected)) { + continue; + } + expected = CLEAN_EXPECTED[expected] || expected; + if (expected === parser.yy.error.text.toUpperCase()) { + // Can happen when the lexer entry for a rule contains multiple words like 'stored' in 'stored as parquet' + return false; + } + const text = isLowerCase ? expected.toLowerCase() : expected; + if (text && !addedExpected[text]) { + addedExpected[text] = true; + weightedExpected.push({ + text: text, + distance: stringDistance(parser.yy.error.text, text, true) + }); + } + } + } + if (weightedExpected.length === 0) { + parser.yy.error.expected = []; + parser.yy.error.incompleteStatement = true; + return parser.yy.error; + } + weightedExpected.sort((a, b) => { + if (a.distance === b.distance) { + return a.text.localeCompare(b.text); + } + return a.distance - b.distance; + }); + parser.yy.error.expected = weightedExpected; + parser.yy.error.incompleteStatement = true; + return parser.yy.error; + } else if (parser.yy.error) { + parser.yy.error.expected = []; + parser.yy.error.incompleteStatement = true; + return parser.yy.error; + } + return false; + }; +}; + +const initGlobalSearchParser = function(parser) { + parser.identifyPartials = function(beforeCursor, afterCursor) { + const beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); + const afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); + return { + left: beforeMatch ? beforeMatch[0].length : 0, + right: afterMatch ? afterMatch[0].length : 0 + }; + }; + + parser.mergeFacets = function(a, b) { + if (!a.facets) { + a.facets = {}; + } + if (!b.facets) { + return; + } + Object.keys(b.facets).forEach(key => { + if (a.facets[key]) { + Object.keys(b.facets[key]).forEach(val => { + a.facets[key][val.toLowerCase()] = true; + }); + } else { + a.facets[key] = b.facets[key]; + } + }); + }; + + parser.mergeText = function(a, b) { + if (!a.text) { + a.text = []; + } + if (!b.text) { + return; + } + a.text = a.text.concat(b.text); + }; + + parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { + if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { + const cursorIndex = yytext.indexOf('\u2020'); + parser.yy.cursorFound = { + first_line: yylloc.first_line, + last_line: yylloc.last_line, + first_column: yylloc.first_column + cursorIndex, + last_column: yylloc.first_column + cursorIndex + 1 + }; + const remainder = yytext.substring(cursorIndex + 1); + const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) + .length; + if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { + parser.yy.missingEndQuote = false; + lexer.input(); + } else { + parser.yy.missingEndQuote = true; + lexer.unput(remainder); + } + lexer.popState(); + return true; + } + return false; + }; + + parser.parseGlobalSearch = function(beforeCursor, afterCursor, debug) { + delete parser.yy.cursorFound; + + let result; + try { + result = parser.parse(beforeCursor + '\u2020' + afterCursor); + } catch (err) { + if (debug) { + console.warn(err); + console.warn(err.stack); + console.warn(parser.yy.error); + } + return { + facets: {}, + text: [] + }; + } + return result; + }; +}; + +export default { + initSqlParser: initSqlParser, + initSyntaxParser: initSyntaxParser, + initGlobalSearchParser: initGlobalSearchParser +}; diff --git a/src/core/parse/impala/impalaAutocompleteParser.js b/src/core/parse/impala/impalaAutocompleteParser.js new file mode 100644 index 0000000..8778f01 --- /dev/null +++ b/src/core/parse/impala/impalaAutocompleteParser.js @@ -0,0 +1,5382 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +/* parser generated by jison 0.4.18 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +import SqlParseSupport from './sqlParseSupport'; + +var impalaAutocompleteParser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,26,27,38,41,50,51,54,63,65,66,70,71,85,86,89,91,95,101,103,106,107,129,136,138,142,143,144,146,147,149,151,153,155,158,170,179,180,208,224,236,237,238,241,242,253,254,256,257,264,268,275,277,287,288,289,291,292,293,294,295,300,301,303,304,306,315,321,341,342,343,344,347,348,349,350,351,352,353,359,361,390,391,392,394,404,408,411,425,427,428,429,430,431,432,433,434,435,452,453,461,462,463,465,466,483,484,488,489,494,495,496,499,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,796,839,1005,1020,1034],$V1=[2,921],$V2=[404,499],$V3=[2,710],$V4=[1,5],$V5=[1,315],$V6=[1,423],$V7=[1,485],$V8=[1,248],$V9=[1,269],$Va=[1,250],$Vb=[1,18],$Vc=[1,497],$Vd=[1,68],$Ve=[1,329],$Vf=[1,273],$Vg=[1,252],$Vh=[1,50],$Vi=[1,513],$Vj=[1,10],$Vk=[1,11],$Vl=[1,13],$Vm=[1,349],$Vn=[1,312],$Vo=[1,299],$Vp=[1,142],$Vq=[1,346],$Vr=[1,35],$Vs=[1,15],$Vt=[1,237],$Vu=[1,95],$Vv=[1,181],$Vw=[1,230],$Vx=[1,447],$Vy=[1,149],$Vz=[1,41],$VA=[1,448],$VB=[1,449],$VC=[1,166],$VD=[1,490],$VE=[1,318],$VF=[1,111],$VG=[1,199],$VH=[1,228],$VI=[1,32],$VJ=[1,17],$VK=[1,19],$VL=[1,207],$VM=[1,336],$VN=[1,265],$VO=[1,192],$VP=[1,251],$VQ=[1,54],$VR=[1,158],$VS=[1,322],$VT=[1,375],$VU=[1,70],$VV=[1,333],$VW=[1,43],$VX=[1,193],$VY=[1,249],$VZ=[1,270],$V_=[1,311],$V$=[1,351],$V01=[1,104],$V11=[1,133],$V21=[1,350],$V31=[1,122],$V41=[1,202],$V51=[1,425],$V61=[1,148],$V71=[1,22],$V81=[1,16],$V91=[1,292],$Va1=[1,342],$Vb1=[1,168],$Vc1=[1,370],$Vd1=[1,214],$Ve1=[1,264],$Vf1=[1,65],$Vg1=[1,313],$Vh1=[1,136],$Vi1=[1,175],$Vj1=[1,295],$Vk1=[1,368],$Vl1=[1,268],$Vm1=[1,516],$Vn1=[1,103],$Vo1=[1,146],$Vp1=[1,404],$Vq1=[1,480],$Vr1=[1,23],$Vs1=[1,147],$Vt1=[1,198],$Vu1=[1,293],$Vv1=[1,27],$Vw1=[1,82],$Vx1=[1,170],$Vy1=[1,244],$Vz1=[1,309],$VA1=[1,182],$VB1=[1,153],$VC1=[1,154],$VD1=[1,314],$VE1=[1,371],$VF1=[1,529],$VG1=[1,240],$VH1=[1,462],$VI1=[1,528],$VJ1=[1,179],$VK1=[1,316],$VL1=[1,227],$VM1=[1,478],$VN1=[1,94],$VO1=[1,172],$VP1=[1,287],$VQ1=[1,380],$VR1=[1,422],$VS1=[1,9],$VT1=[1,12],$VU1=[1,14],$VV1=[1,20],$VW1=[1,21],$VX1=[1,24],$VY1=[1,25],$VZ1=[1,26],$V_1=[1,28],$V$1=[1,29],$V02=[1,30],$V12=[1,31],$V22=[1,33],$V32=[1,34],$V42=[1,36],$V52=[1,37],$V62=[1,38],$V72=[1,39],$V82=[1,40],$V92=[1,42],$Va2=[1,44],$Vb2=[1,45],$Vc2=[1,46],$Vd2=[1,47],$Ve2=[1,48],$Vf2=[1,49],$Vg2=[1,51],$Vh2=[1,52],$Vi2=[1,53],$Vj2=[1,55],$Vk2=[1,56],$Vl2=[1,57],$Vm2=[1,58],$Vn2=[1,59],$Vo2=[1,60],$Vp2=[1,61],$Vq2=[1,62],$Vr2=[1,63],$Vs2=[1,64],$Vt2=[1,66],$Vu2=[1,67],$Vv2=[1,69],$Vw2=[1,71],$Vx2=[1,72],$Vy2=[1,73],$Vz2=[1,74],$VA2=[1,75],$VB2=[1,76],$VC2=[1,77],$VD2=[1,78],$VE2=[1,79],$VF2=[1,80],$VG2=[1,81],$VH2=[1,83],$VI2=[1,84],$VJ2=[1,85],$VK2=[1,86],$VL2=[1,87],$VM2=[1,88],$VN2=[1,89],$VO2=[1,90],$VP2=[1,91],$VQ2=[1,92],$VR2=[1,93],$VS2=[1,96],$VT2=[1,97],$VU2=[1,98],$VV2=[1,99],$VW2=[1,100],$VX2=[1,101],$VY2=[1,102],$VZ2=[1,105],$V_2=[1,106],$V$2=[1,107],$V03=[1,108],$V13=[1,109],$V23=[1,110],$V33=[1,112],$V43=[1,113],$V53=[1,114],$V63=[1,115],$V73=[1,116],$V83=[1,117],$V93=[1,118],$Va3=[1,119],$Vb3=[1,120],$Vc3=[1,121],$Vd3=[1,123],$Ve3=[1,124],$Vf3=[1,125],$Vg3=[1,126],$Vh3=[1,127],$Vi3=[1,128],$Vj3=[1,129],$Vk3=[1,130],$Vl3=[1,131],$Vm3=[1,132],$Vn3=[1,134],$Vo3=[1,135],$Vp3=[1,137],$Vq3=[1,138],$Vr3=[1,139],$Vs3=[1,140],$Vt3=[1,141],$Vu3=[1,143],$Vv3=[1,144],$Vw3=[1,145],$Vx3=[1,150],$Vy3=[1,151],$Vz3=[1,152],$VA3=[1,155],$VB3=[1,156],$VC3=[1,157],$VD3=[1,159],$VE3=[1,160],$VF3=[1,161],$VG3=[1,162],$VH3=[1,163],$VI3=[1,164],$VJ3=[1,165],$VK3=[1,167],$VL3=[1,169],$VM3=[1,171],$VN3=[1,173],$VO3=[1,174],$VP3=[1,176],$VQ3=[1,177],$VR3=[1,178],$VS3=[1,180],$VT3=[1,183],$VU3=[1,184],$VV3=[1,185],$VW3=[1,186],$VX3=[1,187],$VY3=[1,188],$VZ3=[1,189],$V_3=[1,190],$V$3=[1,191],$V04=[1,194],$V14=[1,195],$V24=[1,196],$V34=[1,197],$V44=[1,200],$V54=[1,201],$V64=[1,203],$V74=[1,204],$V84=[1,205],$V94=[1,206],$Va4=[1,208],$Vb4=[1,209],$Vc4=[1,210],$Vd4=[1,211],$Ve4=[1,212],$Vf4=[1,213],$Vg4=[1,215],$Vh4=[1,216],$Vi4=[1,217],$Vj4=[1,218],$Vk4=[1,219],$Vl4=[1,220],$Vm4=[1,221],$Vn4=[1,222],$Vo4=[1,223],$Vp4=[1,224],$Vq4=[1,225],$Vr4=[1,226],$Vs4=[1,229],$Vt4=[1,231],$Vu4=[1,232],$Vv4=[1,233],$Vw4=[1,234],$Vx4=[1,235],$Vy4=[1,236],$Vz4=[1,238],$VA4=[1,239],$VB4=[1,241],$VC4=[1,242],$VD4=[1,243],$VE4=[1,245],$VF4=[1,246],$VG4=[1,247],$VH4=[1,253],$VI4=[1,254],$VJ4=[1,255],$VK4=[1,256],$VL4=[1,257],$VM4=[1,258],$VN4=[1,259],$VO4=[1,260],$VP4=[1,261],$VQ4=[1,262],$VR4=[1,263],$VS4=[1,266],$VT4=[1,267],$VU4=[1,271],$VV4=[1,272],$VW4=[1,274],$VX4=[1,275],$VY4=[1,276],$VZ4=[1,277],$V_4=[1,278],$V$4=[1,279],$V05=[1,280],$V15=[1,281],$V25=[1,282],$V35=[1,283],$V45=[1,284],$V55=[1,285],$V65=[1,286],$V75=[1,288],$V85=[1,289],$V95=[1,290],$Va5=[1,291],$Vb5=[1,294],$Vc5=[1,296],$Vd5=[1,297],$Ve5=[1,298],$Vf5=[1,300],$Vg5=[1,301],$Vh5=[1,302],$Vi5=[1,303],$Vj5=[1,304],$Vk5=[1,305],$Vl5=[1,306],$Vm5=[1,307],$Vn5=[1,308],$Vo5=[1,310],$Vp5=[1,317],$Vq5=[1,319],$Vr5=[1,320],$Vs5=[1,321],$Vt5=[1,323],$Vu5=[1,324],$Vv5=[1,325],$Vw5=[1,326],$Vx5=[1,327],$Vy5=[1,328],$Vz5=[1,330],$VA5=[1,331],$VB5=[1,332],$VC5=[1,334],$VD5=[1,335],$VE5=[1,337],$VF5=[1,338],$VG5=[1,339],$VH5=[1,340],$VI5=[1,341],$VJ5=[1,343],$VK5=[1,344],$VL5=[1,345],$VM5=[1,347],$VN5=[1,348],$VO5=[1,352],$VP5=[1,353],$VQ5=[1,354],$VR5=[1,355],$VS5=[1,356],$VT5=[1,357],$VU5=[1,358],$VV5=[1,359],$VW5=[1,360],$VX5=[1,361],$VY5=[1,362],$VZ5=[1,363],$V_5=[1,364],$V$5=[1,365],$V06=[1,366],$V16=[1,367],$V26=[1,369],$V36=[1,372],$V46=[1,373],$V56=[1,374],$V66=[1,376],$V76=[1,377],$V86=[1,378],$V96=[1,379],$Va6=[1,381],$Vb6=[1,382],$Vc6=[1,383],$Vd6=[1,384],$Ve6=[1,385],$Vf6=[1,386],$Vg6=[1,387],$Vh6=[1,388],$Vi6=[1,389],$Vj6=[1,390],$Vk6=[1,391],$Vl6=[1,392],$Vm6=[1,393],$Vn6=[1,424],$Vo6=[1,463],$Vp6=[1,498],$Vq6=[1,479],$Vr6=[1,476],$Vs6=[27,394],$Vt6=[2,703],$Vu6=[2,1038],$Vv6=[1,564],$Vw6=[1,561],$Vx6=[1,554],$Vy6=[1,566],$Vz6=[1,562],$VA6=[1,565],$VB6=[1,567],$VC6=[1,563],$VD6=[1,558],$VE6=[1,559],$VF6=[1,557],$VG6=[2,1088],$VH6=[1,570],$VI6=[1,573],$VJ6=[1,575],$VK6=[1,577],$VL6=[1,574],$VM6=[1,568],$VN6=[1,578],$VO6=[1,572],$VP6=[1,576],$VQ6=[2,1250],$VR6=[1,579],$VS6=[1,581],$VT6=[1,596],$VU6=[1,611],$VV6=[1,618],$VW6=[1,623],$VX6=[1,621],$VY6=[1,605],$VZ6=[1,606],$V_6=[1,607],$V$6=[1,622],$V07=[1,617],$V17=[1,624],$V27=[1,613],$V37=[1,616],$V47=[1,608],$V57=[1,628],$V67=[1,609],$V77=[1,627],$V87=[1,614],$V97=[1,610],$Va7=[1,625],$Vb7=[1,615],$Vc7=[1,612],$Vd7=[91,360,404,499],$Ve7=[2,1549],$Vf7=[1,635],$Vg7=[26,38,63,86,147,153,155,170,306,391,392,411,452,463,466,483,494,839,1005,1020,1034],$Vh7=[2,942],$Vi7=[2,1333],$Vj7=[1,642],$Vk7=[2,1546],$Vl7=[1,644],$Vm7=[2,91,404,499],$Vn7=[1,648],$Vo7=[1,651],$Vp7=[27,41,64,242,254,461,462,465,503,504,526],$Vq7=[2,1360],$Vr7=[1,665],$Vs7=[1,666],$Vt7=[2,1576],$Vu7=[1,683],$Vv7=[1,684],$Vw7=[1,689],$Vx7=[1,690],$Vy7=[2,238],$Vz7=[27,129],$VA7=[2,1358],$VB7=[1,694],$VC7=[1,697],$VD7=[1,702],$VE7=[2,1356],$VF7=[1,724],$VG7=[1,725],$VH7=[1,712],$VI7=[1,719],$VJ7=[1,723],$VK7=[1,741],$VL7=[1,740],$VM7=[1,759],$VN7=[1,762],$VO7=[1,760],$VP7=[2,893],$VQ7=[1,765],$VR7=[1,766],$VS7=[27,411],$VT7=[275,404,411,488,489,499],$VU7=[27,275,411,488,489],$VV7=[1,773],$VW7=[1,774],$VX7=[2,26,38,41,50,51,54,63,65,66,70,71,85,86,89,91,95,101,103,106,107,129,136,138,142,143,144,146,147,149,151,153,155,158,170,179,180,208,224,236,237,238,241,242,253,254,256,257,264,268,275,277,287,288,289,291,292,293,294,295,300,301,303,304,306,315,321,341,342,343,344,347,348,349,350,351,352,353,359,361,390,391,392,394,404,411,425,427,428,429,430,431,432,433,434,435,452,453,461,462,463,465,466,483,484,488,489,494,495,496,499,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,839,1005,1020,1034],$VY7=[2,27,91,95,360,394,404,453,499,619,649,682,771,789,877],$VZ7=[2,91,95,394,404,453,499,619,649,682,771,789,877],$V_7=[27,91,95,360,394,404,453,499,619,649,682,771,789,877],$V$7=[2,1870],$V08=[1,790],$V18=[1,791],$V28=[1,792],$V38=[1,785],$V48=[1,786],$V58=[1,787],$V68=[1,788],$V78=[1,789],$V88=[1,784],$V98=[1,801],$Va8=[1,802],$Vb8=[1,803],$Vc8=[1,796],$Vd8=[1,797],$Ve8=[1,798],$Vf8=[1,799],$Vg8=[1,800],$Vh8=[27,91,95,142,360,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,757,771,776,789,877],$Vi8=[2,1958],$Vj8=[1,807],$Vk8=[1,810],$Vl8=[1,811],$Vm8=[1,814],$Vn8=[1,819],$Vo8=[1,820],$Vp8=[2,91,95,142,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,757,771,776,789,877],$Vq8=[2,27,41,64,91,95,136,142,179,180,242,254,360,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,526,619,649,682,757,771,776,789,877],$Vr8=[2,41,64,91,95,136,142,179,180,242,254,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,526,619,649,682,757,771,776,789,877],$Vs8=[26,27,38,41,44,51,56,57,63,64,70,73,86,89,91,95,101,106,109,111,136,142,179,180,242,254,256,268,275,287,306,360,390,394,404,411,427,428,429,430,431,432,433,434,435,453,461,462,465,488,489,499,503,504,526,535,619,649,653,682,757,771,776,789,877],$Vt8=[2,1423],$Vu8=[306,411],$Vv8=[2,1936],$Vw8=[1,829],$Vx8=[2,26,38,41,44,51,56,63,64,73,86,89,91,95,101,106,109,111,136,142,179,180,242,254,256,268,275,287,306,390,394,404,411,427,428,429,430,431,432,433,434,435,453,461,462,465,488,489,499,503,504,526,535,619,649,653,682,757,771,776,789,877],$Vy8=[2,26,27,38,41,44,50,51,54,56,57,63,64,70,73,85,86,87,88,89,91,95,101,106,109,111,136,138,142,144,146,179,180,206,208,224,236,237,238,241,242,248,253,254,256,268,275,277,287,306,360,390,394,404,411,417,427,428,429,430,431,432,433,434,435,453,461,462,465,488,489,499,503,504,507,508,509,510,513,517,520,526,529,530,532,535,538,542,574,578,582,586,588,606,619,624,625,630,634,649,653,673,681,682,701,706,718,719,723,735,747,757,758,759,762,771,776,781,787,789,877],$Vz8=[1,831],$VA8=[1,832],$VB8=[27,142],$VC8=[2,1406],$VD8=[1,840],$VE8=[54,138],$VF8=[2,91,360,404,499],$VG8=[1,851],$VH8=[1,858],$VI8=[1,860],$VJ8=[41,64,242,254,461,462,465,503,504,526],$VK8=[2,1550],$VL8=[2,91,360,404,499,771],$VM8=[2,1564],$VN8=[2,89,91,404,411,463,483,499],$VO8=[2,27,89,91,95,404,411,463,483,499],$VP8=[27,404,499],$VQ8=[2,1379],$VR8=[1,934],$VS8=[2,209],$VT8=[26,27,404,499],$VU8=[26,404,499],$VV8=[26,27,41,51,64,242,254,404,461,462,465,499,503,504,526],$VW8=[2,1475],$VX8=[26,41,51,64,242,254,404,461,462,465,499,503,504,526],$VY8=[2,27,41,64,73,89,138,146,179,180,224,236,241,242,254,361,391,423,461,462,465,503,504,506,507,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,752,769,774,775,778,779,782,783,784,794,796,962],$VZ8=[2,1562],$V_8=[1,966],$V$8=[2,27,41,64,73,89,91,95,138,146,179,180,224,236,241,242,254,361,391,411,423,461,462,465,503,504,506,507,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,746,752,769,774,775,778,779,782,783,784,794,796,962],$V09=[27,41,64,242,254,404,461,462,465,499,503,504,526,622],$V19=[2,1372],$V29=[1,979],$V39=[2,1369],$V49=[1,991],$V59=[1,1014],$V69=[1,1015],$V79=[1,1016],$V89=[1,1018],$V99=[27,208],$Va9=[1,1027],$Vb9=[1,1026],$Vc9=[1,1028],$Vd9=[27,179,208,404,499],$Ve9=[2,1376],$Vf9=[1,1038],$Vg9=[2,1357],$Vh9=[27,149],$Vi9=[27,50,51],$Vj9=[2,164],$Vk9=[2,100],$Vl9=[1,1045],$Vm9=[1,1049],$Vn9=[1,1051],$Vo9=[1,1052],$Vp9=[1,1054],$Vq9=[1,1055],$Vr9=[1,1059],$Vs9=[1,1058],$Vt9=[1,1065],$Vu9=[1,1066],$Vv9=[2,165],$Vw9=[1,1078],$Vx9=[1,1091],$Vy9=[1,1096],$Vz9=[1,1098],$VA9=[1,1100],$VB9=[1,1099],$VC9=[1,1102],$VD9=[50,51],$VE9=[1,1105],$VF9=[27,117],$VG9=[1,1111],$VH9=[1,1118],$VI9=[2,857],$VJ9=[1,1120],$VK9=[27,41,64,129,242,254,461,462,465,503,504,526],$VL9=[1,1127],$VM9=[1,1125],$VN9=[1,1126],$VO9=[1,1129],$VP9=[2,1874],$VQ9=[27,41,64,89,242,254,461,462,465,503,504,526],$VR9=[2,1881],$VS9=[1,1138],$VT9=[1,1137],$VU9=[2,27,41,64,89,91,242,254,404,427,428,429,430,431,432,433,434,435,461,462,465,488,499,503,504,526,534,771],$VV9=[1,1140],$VW9=[1,1142],$VX9=[1,1144],$VY9=[1,1146],$VZ9=[1,1148],$V_9=[1,1150],$V$9=[1,1153],$V0a=[1,1159],$V1a=[41,64,89,242,254,461,462,465,503,504,526],$V2a=[2,1928],$V3a=[1,1179],$V4a=[2,27,91,95,142,360,394,404,417,427,428,429,430,431,432,433,434,435,453,499,619,649,682,757,771,776,789,877],$V5a=[2,27,54,64,85,86,87,88,91,95,101,106,109,136,142,146,224,238,253,287,306,360,394,404,417,427,428,429,430,431,432,433,434,435,453,499,535,619,649,653,682,757,771,776,789,877],$V6a=[1,1183],$V7a=[1,1182],$V8a=[1,1185],$V9a=[1,1184],$Vaa=[2,27,91,95,142,360,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,776,789,877],$Vba=[1,1187],$Vca=[2,91,95,142,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,776,789,877],$Vda=[1,1198],$Vea=[1,1204],$Vfa=[1,1203],$Vga=[1,1231],$Vha=[1,1230],$Via=[1,1232],$Vja=[1,1233],$Vka=[1,1254],$Vla=[1,1247],$Vma=[1,1253],$Vna=[1,1249],$Voa=[1,1246],$Vpa=[1,1245],$Vqa=[1,1255],$Vra=[1,1250],$Vsa=[2,26,38,41,44,51,56,57,63,64,70,73,86,89,91,95,101,106,109,111,136,142,179,180,242,254,256,268,275,287,306,360,390,394,404,411,427,428,429,430,431,432,433,434,435,453,461,462,465,488,489,499,503,504,526,535,619,649,653,682,757,771,776,789,877],$Vta=[1,1265],$Vua=[2,91,95,360,394,404,453,499,619,649,682,771,789,877],$Vva=[2,91,95,142,360,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,757,771,776,789,877],$Vwa=[1,1276],$Vxa=[2,89,91,95,404,411,463,483,499],$Vya=[2,201],$Vza=[1,1341],$VAa=[1,1347],$VBa=[1,1363],$VCa=[1,1393],$VDa=[1,1375],$VEa=[1,1382],$VFa=[1,1370],$VGa=[1,1391],$VHa=[1,1392],$VIa=[1,1394],$VJa=[1,1364],$VKa=[1,1371],$VLa=[1,1366],$VMa=[1,1373],$VNa=[1,1413],$VOa=[1,1431],$VPa=[1,1432],$VQa=[1,1376],$VRa=[1,1414],$VSa=[1,1424],$VTa=[1,1374],$VUa=[1,1415],$VVa=[1,1430],$VWa=[1,1433],$VXa=[1,1390],$VYa=[1,1401],$VZa=[1,1437],$V_a=[1,1438],$V$a=[1,1439],$V0b=[1,1434],$V1b=[1,1435],$V2b=[1,1436],$V3b=[1,1425],$V4b=[1,1429],$V5b=[1,1395],$V6b=[1,1443],$V7b=[1,1444],$V8b=[1,1440],$V9b=[1,1441],$Vab=[1,1442],$Vbb=[1,1372],$Vcb=[1,1396],$Vdb=[26,38,44,51,56,63,73,111,404,499],$Veb=[2,241],$Vfb=[1,1470],$Vgb=[2,653],$Vhb=[208,404,499],$Vib=[1,1508],$Vjb=[2,2226],$Vkb=[1,1514],$Vlb=[1,1534],$Vmb=[1,1535],$Vnb=[1,1538],$Vob=[1,1539],$Vpb=[1,1540],$Vqb=[1,1541],$Vrb=[1,1542],$Vsb=[1,1543],$Vtb=[1,1544],$Vub=[1,1546],$Vvb=[2,1467],$Vwb=[1,1551],$Vxb=[1,1556],$Vyb=[2,91],$Vzb=[2,26,27,41,50,54,63,64,85,86,87,88,89,91,95,136,138,144,146,179,180,208,224,236,237,238,241,242,253,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,530,532,542,574,578,582,586,588,606,619,624,625,630,634,649,673,681,682,701,706,719,723,735,747,758,759,762,771,781,787,789,877],$VAb=[2,1504],$VBb=[1,1577],$VCb=[1,1595],$VDb=[1,1597],$VEb=[1,1603],$VFb=[1,1605],$VGb=[95,404,499],$VHb=[1,1613],$VIb=[1,1608],$VJb=[1,1609],$VKb=[1,1611],$VLb=[1,1621],$VMb=[1,1614],$VNb=[1,1622],$VOb=[1,1624],$VPb=[1,1612],$VQb=[1,1623],$VRb=[1,1620],$VSb=[1,1625],$VTb=[1,1610],$VUb=[2,866],$VVb=[1,1635],$VWb=[1,1637],$VXb=[1,1645],$VYb=[2,1590],$VZb=[1,1651],$V_b=[1,1653],$V$b=[1,1659],$V0c=[2,27,41,64,89,91,95,242,254,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,526,619,649,682,771,789,877],$V1c=[2,41,64,89,91,95,242,254,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,488,499,503,504,526,534,619,649,682,771,789,877],$V2c=[1,1660],$V3c=[1,1664],$V4c=[1,1666],$V5c=[1,1668],$V6c=[1,1670],$V7c=[1,1674],$V8c=[1,1676],$V9c=[1,1678],$Vac=[1,1680],$Vbc=[2,91,95,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,789,877],$Vcc=[1,1687],$Vdc=[1,1689],$Vec=[2,27,41,50,54,64,85,86,87,88,91,95,101,106,109,136,142,144,146,179,180,208,224,237,238,242,253,254,277,287,303,304,306,347,348,349,350,351,352,353,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,535,578,586,588,619,624,625,634,649,653,673,681,682,706,719,723,757,758,771,776,787,789,877],$Vfc=[1,1690],$Vgc=[2,27,41,50,54,64,85,86,87,88,91,95,101,106,109,136,142,144,146,179,180,208,224,237,238,242,253,254,277,287,306,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,535,578,586,588,619,624,625,634,649,653,673,681,682,706,719,723,757,758,771,776,787,789,877],$Vhc=[2,41,54,64,91,95,136,142,179,180,208,224,237,238,242,254,277,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,757,758,771,776,787,789,877],$Vic=[2,1424],$Vjc=[1,1695],$Vkc=[2,26,38,41,44,51,54,56,63,64,73,86,89,91,95,101,106,109,111,136,138,142,179,180,206,208,224,237,238,242,254,256,268,275,277,287,306,390,394,404,411,427,428,429,430,431,432,433,434,435,453,461,462,465,488,489,499,503,504,507,508,510,513,517,520,526,529,535,578,586,588,619,624,625,634,649,653,673,681,682,706,719,757,758,771,776,787,789,877],$Vlc=[2,27,41,50,54,64,91,95,136,142,144,179,180,208,224,237,238,242,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,723,757,758,771,776,787,789,877],$Vmc=[2,41,51,54,64,71,86,89,91,95,101,106,109,136,142,179,180,208,224,237,238,242,254,256,268,275,277,287,306,342,394,404,411,427,428,429,430,431,432,433,434,435,453,461,462,463,465,483,488,489,499,503,504,507,508,510,513,517,520,526,529,535,578,586,588,619,624,625,634,649,653,673,681,682,684,706,719,757,758,771,776,787,789,877],$Vnc=[1,1698],$Voc=[1,1711],$Vpc=[1,1712],$Vqc=[2,91,95],$Vrc=[27,41,64,101,136,242,254,360,404,461,462,465,499,503,504],$Vsc=[2,27,41,50,54,64,85,86,87,88,91,95,101,106,109,136,144,146,179,180,208,224,237,238,242,253,254,268,277,287,306,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,535,578,586,588,619,624,625,634,649,653,673,681,682,706,719,723,758,771,787,789,877],$Vtc=[1,1729],$Vuc=[1,1728],$Vvc=[2,91,404,499,771],$Vwc=[1,1787],$Vxc=[2,916],$Vyc=[1,1793],$Vzc=[27,404,499,789],$VAc=[2,2257],$VBc=[404,499,789],$VCc=[1,1802],$VDc=[27,95,394,404,499,789],$VEc=[394,404,499,789],$VFc=[95,394,404,499,789],$VGc=[2,27,54,86,91,95],$VHc=[2,27,41,50,54,64,85,86,87,88,89,91,95,136,138,144,146,179,180,208,224,237,238,242,253,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,723,758,771,787,789,877],$VIc=[1,1808],$VJc=[1,1814],$VKc=[91,360,404,499,771],$VLc=[2,729],$VMc=[1,1815],$VNc=[1,1822],$VOc=[1,1827],$VPc=[1,1826],$VQc=[1,1837],$VRc=[1,1836],$VSc=[1,1828],$VTc=[1,1829],$VUc=[1,1830],$VVc=[1,1833],$VWc=[1,1832],$VXc=[1,1834],$VYc=[1,1838],$VZc=[1,1839],$V_c=[1,1831],$V$c=[1,1841],$V0d=[1,1840],$V1d=[2,741],$V2d=[2,27,91,95,360,394,404,417,499,771],$V3d=[2,91,394,404,499,771],$V4d=[95,394],$V5d=[1,1848],$V6d=[1,1847],$V7d=[1,1862],$V8d=[1,1852],$V9d=[1,1849],$Vad=[1,1850],$Vbd=[1,1851],$Vcd=[1,1858],$Vdd=[1,1857],$Ved=[1,1856],$Vfd=[1,1859],$Vgd=[1,1854],$Vhd=[1,1863],$Vid=[1,1853],$Vjd=[1,1864],$Vkd=[1,1855],$Vld=[1,1866],$Vmd=[1,1865],$Vnd=[2,1842],$Vod=[2,91,95,394,404,499,771],$Vpd=[1,1868],$Vqd=[1,1872],$Vrd=[1,1869],$Vsd=[1,1870],$Vtd=[1,1871],$Vud=[1,1878],$Vvd=[1,1877],$Vwd=[1,1876],$Vxd=[1,1879],$Vyd=[1,1874],$Vzd=[1,1873],$VAd=[1,1875],$VBd=[1,1881],$VCd=[2,27,41,50,54,64,91,95,136,144,179,180,208,224,237,238,242,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,723,758,771,787,789,877],$VDd=[1,1891],$VEd=[1,1907],$VFd=[1,1910],$VGd=[2,41,54,64,91,95,136,179,180,208,224,237,238,242,254,277,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,758,771,787,789,877],$VHd=[2,27,41,50,54,64,85,86,87,88,91,95,136,144,146,179,180,208,224,237,238,242,253,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,723,758,771,787,789,877],$VId=[2,1798],$VJd=[1,1913],$VKd=[2,1810],$VLd=[2,2007],$VMd=[1,1921],$VNd=[1,1927],$VOd=[2,27,41,50,54,64,85,86,87,88,91,95,136,144,146,179,180,208,224,237,238,242,253,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,684,706,719,723,758,771,787,789,877],$VPd=[2,252],$VQd=[1,1952],$VRd=[41,64,242,254,404,461,462,465,499,503,504,526],$VSd=[27,86,136],$VTd=[2,601],$VUd=[86,136],$VVd=[1,1960],$VWd=[27,51,86,89,101,106,109,136,206,208,256,268,287,306,360,404,499,535,653],$VXd=[2,1438],$VYd=[51,86,89,101,106,109,136,206,208,256,268,287,306,404,499,535,653],$VZd=[1,1965],$V_d=[1,1969],$V$d=[2,1366],$V0e=[1,1977],$V1e=[1,1978],$V2e=[27,41,50,51,64,242,254,404,461,462,465,499,503,504,526],$V3e=[2,678],$V4e=[1,1993],$V5e=[2,2186],$V6e=[1,2002],$V7e=[2,2194],$V8e=[2,1399],$V9e=[27,51,109,404,499,535],$Vae=[2,1456],$Vbe=[27,101,109,136,360,404,499,535,653],$Vce=[2,116],$Vde=[27,101,136,360,404,499],$Vee=[1,2033],$Vfe=[101,136,404,499],$Vge=[2,145],$Vhe=[2,146],$Vie=[2,120],$Vje=[1,2069],$Vke=[1,2070],$Vle=[1,2071],$Vme=[1,2059],$Vne=[1,2060],$Voe=[1,2066],$Vpe=[1,2065],$Vqe=[1,2062],$Vre=[1,2061],$Vse=[1,2058],$Vte=[1,2063],$Vue=[1,2057],$Vve=[1,2064],$Vwe=[1,2068],$Vxe=[1,2056],$Vye=[1,2067],$Vze=[1,2073],$VAe=[1,2074],$VBe=[1,2075],$VCe=[2,134],$VDe=[2,686],$VEe=[51,109,404,499,535],$VFe=[1,2096],$VGe=[1,2101],$VHe=[1,2102],$VIe=[1,2103],$VJe=[1,2107],$VKe=[1,2108],$VLe=[2,91,95,682],$VMe=[2,1782],$VNe=[1,2110],$VOe=[1,2109],$VPe=[1,2114],$VQe=[1,2111],$VRe=[1,2112],$VSe=[1,2113],$VTe=[1,2120],$VUe=[1,2119],$VVe=[1,2118],$VWe=[1,2121],$VXe=[1,2116],$VYe=[1,2115],$VZe=[1,2117],$V_e=[1,2129],$V$e=[1,2130],$V0f=[2,27,41,50,54,64,85,86,87,88,89,91,95,136,144,146,179,180,208,224,237,238,242,253,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,723,758,771,787,789,877],$V1f=[1,2142],$V2f=[1,2145],$V3f=[1,2144],$V4f=[2,91,682],$V5f=[27,91,95,682],$V6f=[51,275,404,411,488,489,499],$V7f=[2,27,91,360,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,877],$V8f=[2,1591],$V9f=[27,91,95,360,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,789,877],$Vaf=[2,1911],$Vbf=[1,2171],$Vcf=[1,2172],$Vdf=[1,2174],$Vef=[2,91,95,360,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,789,877],$Vff=[2,1425],$Vgf=[2,26,27,38,41,44,51,56,57,63,64,70,73,86,89,91,95,101,106,109,111,136,138,142,179,180,242,254,256,268,275,287,306,360,390,394,404,411,427,428,429,430,431,432,433,434,435,453,461,462,465,488,489,499,503,504,526,535,619,649,653,682,757,771,776,789,877],$Vhf=[1,2182],$Vif=[27,57,394],$Vjf=[2,51,71,86,89,91,95,101,106,109,136,268,275,287,306,404,411,488,489,499,535,653,757],$Vkf=[1,2200],$Vlf=[404,499,653],$Vmf=[1,2216],$Vnf=[275,411,488,489],$Vof=[2,215],$Vpf=[1,2245],$Vqf=[2,51,86,101,106,109,136,256,268,287,306,343,344,347,404,484,487,499,535,653],$Vrf=[91,360,404,453,499,619,649,682,771,877],$Vsf=[1,2287],$Vtf=[1,2306],$Vuf=[1,2308],$Vvf=[146,581,601,769,879],$Vwf=[2,1839],$Vxf=[1,2354],$Vyf=[2,27,41,50,64,91,95,136,179,180,224,242,254,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,529,578,586,588,619,649,673,681,682,723,758,771,787,789,877],$Vzf=[2,1669],$VAf=[2,41,64,91,95,136,179,180,224,242,254,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,529,578,586,588,619,649,673,681,682,758,771,787,789,877],$VBf=[2,41,64,91,95,136,179,180,224,242,254,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,508,510,513,520,526,529,578,586,588,619,625,649,673,681,682,758,771,787,789,877],$VCf=[1,2146],$VDf=[2,1670],$VEf=[2,1671],$VFf=[1,2147],$VGf=[2,27,41,50,54,64,91,95,136,179,180,224,237,238,242,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,649,673,681,682,723,758,771,787,789,877],$VHf=[2,1672],$VIf=[2,41,54,64,91,95,136,179,180,224,237,238,242,254,277,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,649,673,681,682,758,771,787,789,877],$VJf=[1,2382],$VKf=[1,2394],$VLf=[1,2390],$VMf=[1,2393],$VNf=[1,2392],$VOf=[1,2397],$VPf=[2,27,586,588,787],$VQf=[2,586,588],$VRf=[1,2410],$VSf=[1,2414],$VTf=[1,2424],$VUf=[1,2429],$VVf=[1,2434],$VWf=[1,2439],$VXf=[1,2438],$VYf=[1,2442],$VZf=[1,2441],$V_f=[1,2445],$V$f=[27,86,101,106,109,136,268,287,306,360,404,499,535,653],$V0g=[2,384],$V1g=[86,101,106,109,136,268,287,306,404,499,535,653],$V2g=[1,2458],$V3g=[1,2457],$V4g=[27,51,86,101,106,109,136,256,268,287,306,360,404,499,535,653],$V5g=[2,283],$V6g=[51,86,101,106,109,136,256,268,287,306,404,499,535,653],$V7g=[1,2466],$V8g=[1,2467],$V9g=[2,242],$Vag=[1,2491],$Vbg=[1,2493],$Vcg=[1,2494],$Vdg=[2,672],$Veg=[2,2179],$Vfg=[1,2519],$Vgg=[27,109,404,499,535],$Vhg=[2,166],$Vig=[109,404,499,535],$Vjg=[1,2538],$Vkg=[1,2546],$Vlg=[1,2543],$Vmg=[1,2544],$Vng=[1,2545],$Vog=[1,2547],$Vpg=[1,2548],$Vqg=[91,95],$Vrg=[1,2558],$Vsg=[2,117],$Vtg=[27,101,109,136,287,304,306,360,404,499,535,653],$Vug=[2,484],$Vvg=[1,2566],$Vwg=[1,2570],$Vxg=[1,2569],$Vyg=[27,91,95,404,499],$Vzg=[2,310],$VAg=[1,2582],$VBg=[1,2583],$VCg=[1,2581],$VDg=[1,2580],$VEg=[1,2584],$VFg=[1,2578],$VGg=[1,2586],$VHg=[2,91,95,404,499],$VIg=[1,2589],$VJg=[1,2590],$VKg=[2,27,64,85,86,87,88,91,95,146,224,238,253,404,499],$VLg=[2,64,85,86,87,88,91,95,146,224,238,253,404,499],$VMg=[2,27,64,85,86,87,88,91,95,146,224,238,253,341,404,499,653],$VNg=[2,1526],$VOg=[1,2595],$VPg=[1,2600],$VQg=[1,2603],$VRg=[2,296],$VSg=[1,2612],$VTg=[1,2617],$VUg=[101,109,136,287,304,306,360,404,499,535,653],$VVg=[2,41,50,64,91,95,136,179,180,224,242,254,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,529,578,586,588,619,649,673,681,682,723,758,771,787,789,877],$VWg=[2,41,50,54,64,91,95,136,179,180,224,237,238,242,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,649,673,681,682,723,758,771,787,789,877],$VXg=[41,64,73,89,138,146,179,180,224,236,241,242,254,361,391,461,462,465,503,504,506,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,752,769,774,775,778,779,782,783,784,794,962],$VYg=[1,2655],$VZg=[2,91,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,877],$V_g=[2,1666],$V$g=[2,27,91,95,360,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,789,877],$V0h=[2,839],$V1h=[1,2675],$V2h=[86,101,106,109,136,268,287,306,360,404,499,535,653],$V3h=[2,2230],$V4h=[2,2255],$V5h=[2,1583],$V6h=[91,360,404,499,619,649,682,771,877],$V7h=[2,1595],$V8h=[1,2717],$V9h=[2,91,404,427,428,429,430,431,432,433,434,435,499,619,649,682,771,877],$Vah=[1,2722],$Vbh=[2,91,360,404,427,428,429,430,431,432,433,434,435,499,619,649,682,771,877],$Vch=[2,1586],$Vdh=[2,91,404,453,499,619,649,682,771,789,877],$Veh=[2,27,91,95,360,404,453,499,619,649,682,771,789,877],$Vfh=[2,742],$Vgh=[1,2732],$Vhh=[2,2266],$Vih=[2,2267],$Vjh=[2,2268],$Vkh=[2,2269],$Vlh=[2,2270],$Vmh=[1,2734],$Vnh=[2,744],$Voh=[1,2735],$Vph=[1,2737],$Vqh=[1,2736],$Vrh=[1,2738],$Vsh=[2,1840],$Vth=[2,27,41,50,54,64,91,95,136,179,180,224,237,238,242,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,529,578,586,588,619,649,673,681,682,723,758,771,787,789,877],$Vuh=[2,1680],$Vvh=[2,41,54,64,91,95,136,179,180,224,237,238,242,254,277,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,529,578,586,588,619,649,673,681,682,758,771,787,789,877],$Vwh=[2,1681],$Vxh=[2,1682],$Vyh=[2,1683],$Vzh=[2,41,50,64,91,95,136,179,180,242,254,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,529,578,586,588,619,649,673,681,682,723,758,771,787,789,877],$VAh=[2,1689],$VBh=[2,41,64,91,95,136,179,180,242,254,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,529,578,586,588,619,649,673,681,682,758,771,787,789,877],$VCh=[2,27,41,50,64,91,95,136,179,180,242,254,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,578,586,588,619,649,673,681,682,723,758,771,787,789,877],$VDh=[2,1690],$VEh=[2,41,64,91,95,136,179,180,242,254,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,578,586,588,619,649,673,681,682,758,771,787,789,877],$VFh=[2,1691],$VGh=[2,1692],$VHh=[2,1693],$VIh=[2,1694],$VJh=[1,2762],$VKh=[2,586,588,787],$VLh=[1,2781],$VMh=[91,682],$VNh=[2,2018],$VOh=[1,2793],$VPh=[27,684],$VQh=[1,2794],$VRh=[2,27,41,64,73,89,91,138,146,179,180,224,236,241,242,254,361,391,461,462,465,503,504,506,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,752,769,774,775,778,779,782,783,784,794,796,962],$VSh=[1,2813],$VTh=[1,2821],$VUh=[27,86,101,106,109,136,287,306,360,404,499,535,653],$VVh=[2,417],$VWh=[86,101,106,109,136,287,306,404,499,535,653],$VXh=[1,2832],$VYh=[1,2852],$VZh=[27,91,95],$V_h=[1,2857],$V$h=[27,342,404,499],$V0i=[2,572],$V1i=[1,2869],$V2i=[2,27,91,95,341],$V3i=[1,2874],$V4i=[2,1460],$V5i=[1,2892],$V6i=[2,167],$V7i=[1,2904],$V8i=[1,2905],$V9i=[1,2906],$Vai=[1,2903],$Vbi=[27,41,64,138,146,179,180,242,254,361,461,462,465,503,504,508,601,769,774,900],$Vci=[1,2917],$Vdi=[27,101,109,136,287,360,404,499,535,653],$Vei=[27,101,109,136,287,306,360,404,499,535,653],$Vfi=[2,490],$Vgi=[101,109,136,287,306,404,499,535,653],$Vhi=[1,2925],$Vii=[2,41,54,64,91,95,136,138,179,180,208,224,237,238,242,254,277,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,758,771,787,789,877],$Vji=[2,311],$Vki=[2,27,64,85,86,87,88,91,95,146,224,253,404,499],$Vli=[2,64,85,86,87,88,91,95,146,224,253,404,499],$Vmi=[1,2933],$Vni=[1,2939],$Voi=[1,2943],$Vpi=[1,2947],$Vqi=[1,2957],$Vri=[1,2951],$Vsi=[2,1451],$Vti=[1,2960],$Vui=[101,109,136,287,306,360,404,499,535,653],$Vvi=[2,1783],$Vwi=[2,41,50,54,64,91,95,136,179,180,224,237,238,242,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,529,578,586,588,619,649,673,681,682,723,758,771,787,789,877],$Vxi=[2,41,50,64,91,95,136,179,180,242,254,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,510,513,520,526,578,586,588,619,649,673,681,682,723,758,771,787,789,877],$Vyi=[2,1912],$Vzi=[2,807],$VAi=[1,3005],$VBi=[91,360,404,499,649,682,771,877],$VCi=[2,2062],$VDi=[1,3027],$VEi=[2,1596],$VFi=[2,91,404,427,428,429,430,431,432,433,434,435,499,649,682,771,877],$VGi=[1,3032],$VHi=[2,91,360,404,427,428,429,430,431,432,433,434,435,499,649,682,771,877],$VIi=[2,1688],$VJi=[1,3060],$VKi=[1,3070],$VLi=[2,2024],$VMi=[1,3090],$VNi=[1,3093],$VOi=[2,41,54,64,91,95,136,179,180,208,224,237,238,242,254,277,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,684,706,719,758,771,787,789,877],$VPi=[1,3119],$VQi=[1,3123],$VRi=[1,3127],$VSi=[101,106,109,136,287,306,404,499,535,653],$VTi=[1,3147],$VUi=[1,3149],$VVi=[1,3152],$VWi=[1,3153],$VXi=[2,605],$VYi=[1,3164],$VZi=[342,404,499],$V_i=[2,39],$V$i=[27,138,179,180,275,361,601,769,774],$V0j=[1,3189],$V1j=[101,109,136,287,304,306,404,499,535,653],$V2j=[1,3206],$V3j=[1,3205],$V4j=[1,3211],$V5j=[2,95,238],$V6j=[1,3217],$V7j=[2,41,64,95,238,242,254,461,462,465,503,504,526],$V8j=[2,297],$V9j=[1,3227],$Vaj=[1,3228],$Vbj=[1,3232],$Vcj=[1,3243],$Vdj=[2,808],$Vej=[91,360,404,499,649,771,877],$Vfj=[2,1624],$Vgj=[2,2063],$Vhj=[2,91,404,427,428,429,430,431,432,433,434,435,499,649,771,877],$Vij=[649,682,877],$Vjj=[2,91,360,404,427,428,429,430,431,432,433,434,435,499,649,771,877],$Vkj=[1,3289],$Vlj=[2,745],$Vmj=[2,743],$Vnj=[1,3296],$Voj=[2,2303],$Vpj=[1,3308],$Vqj=[2,2029],$Vrj=[1,3307],$Vsj=[1,3325],$Vtj=[2,463],$Vuj=[1,3339],$Vvj=[2,387],$Vwj=[86,95,101,106,109,136,268,287,306,404,499,535,653],$Vxj=[27,86,95,101,106,109,136,268,287,306,360,404,499,535,653],$Vyj=[2,577],$Vzj=[347,404,499],$VAj=[1,3366],$VBj=[1,3379],$VCj=[2,905],$VDj=[91,360,404,499,771,877],$VEj=[2,1656],$VFj=[1,3408],$VGj=[2,1625],$VHj=[2,91,404,427,428,429,430,431,432,433,434,435,499,771,877],$VIj=[1,3413],$VJj=[649,877],$VKj=[2,2064],$VLj=[2,1597],$VMj=[2,27,91,95,360,404,499,619,649,682,771,877],$VNj=[2,1612],$VOj=[1,3435],$VPj=[2,91,95,360,404,427,428,429,430,431,432,433,434,435,499,619,649,682,771,877],$VQj=[2,91,360,404,427,428,429,430,431,432,433,434,435,499,771,877],$VRj=[2,1677],$VSj=[27,529,982],$VTj=[2,2020],$VUj=[2,494],$VVj=[101,109,136,287,404,499,535,653],$VWj=[1,3464],$VXj=[1,3478],$VYj=[2,606],$VZj=[1,3497],$V_j=[2,485],$V$j=[2,1661],$V0k=[2,1657],$V1k=[2,91,404,427,428,429,430,431,432,433,434,435,499,771],$V2k=[1,3534],$V3k=[2,91,360,404,427,428,429,430,431,432,433,434,435,499,771],$V4k=[27,91,513],$V5k=[2,2049],$V6k=[1,3575],$V7k=[1,3574],$V8k=[1,3576],$V9k=[2,1626],$Vak=[2,27,50,91,95,360,404,427,428,429,430,431,432,433,434,435,499,649,723,771,877],$Vbk=[2,1640],$Vck=[1,3582],$Vdk=[1,3583],$Vek=[2,91,95,404,427,428,429,430,431,432,433,434,435,499,649,673,771,877],$Vfk=[2,91,513],$Vgk=[1,3588],$Vhk=[1,3590],$Vik=[2,469],$Vjk=[101,109,136,404,499,535,653],$Vkk=[1,3598],$Vlk=[1,3600],$Vmk=[1,3611],$Vnk=[1,3612],$Vok=[1,3617],$Vpk=[1,3618],$Vqk=[1,3629],$Vrk=[1,3643],$Vsk=[1,3650],$Vtk=[2,1658],$Vuk=[1,3659],$Vvk=[2,1613],$Vwk=[2,91,95,404,427,428,429,430,431,432,433,434,435,499,619,649,682,771,877],$Vxk=[2,2054],$Vyk=[1,3684],$Vzk=[1,3685],$VAk=[1,3687],$VBk=[27,607,696],$VCk=[2,1643],$VDk=[2,27,50,91,95,360,404,427,428,429,430,431,432,433,434,435,499,649,673,723,771,877],$VEk=[2,91,95,404,427,428,429,430,431,432,433,434,435,499,649,771,877],$VFk=[1,3697],$VGk=[101,109,136,404,499,535],$VHk=[1,3715],$VIk=[1,3716],$VJk=[27,350,351,352,353,404,499],$VKk=[2,584],$VLk=[350,351,352,353,404,499],$VMk=[1,3735],$VNk=[2,1663],$VOk=[2,2031],$VPk=[2,27,91,513],$VQk=[1,3762],$VRk=[1,3763],$VSk=[1,3782],$VTk=[1,3783],$VUk=[27,351,352,353,404,499],$VVk=[2,587],$VWk=[351,352,353,404,499],$VXk=[1,3802],$VYk=[1,3817],$VZk=[1,3819],$V_k=[27,136,360,404,499],$V$k=[2,499],$V0l=[1,3824],$V1l=[136,404,499],$V2l=[2,449],$V3l=[2,450],$V4l=[27,41,64,73,89,138,146,179,180,224,236,241,242,254,361,391,461,462,465,503,504,506,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,752,769,774,775,778,779,782,783,784,794,962],$V5l=[27,352,353,404,499],$V6l=[2,590],$V7l=[352,353,404,499],$V8l=[1,3848],$V9l=[2,27,91],$Val=[360,404,499],$Vbl=[2,502],$Vcl=[1,3870],$Vdl=[2,434],$Vel=[2,433],$Vfl=[27,353,404,499],$Vgl=[2,593],$Vhl=[353,404,499],$Vil=[1,3888],$Vjl=[2,506],$Vkl=[2,596],$Vll=[1,3915],$Vml=[2,432],$Vnl=[2,534]; +var parser = {trace: function trace () { }, +yy: {}, +symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"RefreshStatement":5,"InvalidateStatement":6,"ComputeStatsStatement":7,"CreateStatement":8,"DropStatement":9,"GrantStatement":10,"RevokeStatement":11,"DescribeStatement":12,"SetSpecification":13,"ShowStatement":14,"UseStatement":15,"DataDefinition_EDIT":16,"AlterStatement_EDIT":17,"RefreshStatement_EDIT":18,"InvalidateStatement_EDIT":19,"ComputeStatsStatement_EDIT":20,"CreateStatement_EDIT":21,"DropStatement_EDIT":22,"GrantStatement_EDIT":23,"RevokeStatement_EDIT":24,"DescribeStatement_EDIT":25,"SET":26,"CURSOR":27,"ShowStatement_EDIT":28,"UseStatement_EDIT":29,"AlterDatabase":30,"AlterTable":31,"AlterView":32,"CommentOn":33,"AlterDatabase_EDIT":34,"AlterTable_EDIT":35,"AlterView_EDIT":36,"CommentOn_EDIT":37,"ALTER":38,"DatabaseOrSchema":39,"RegularOrBacktickedIdentifier":40,"OWNER":41,"RoleOrUser":42,"AlterTableLeftSide":43,"ADD":44,"OptionalIfNotExists":45,"PartitionSpec":46,"OptionalHdfsLocation":47,"OptionalPartitionSpecs":48,"OptionalCachedInOrUncached":49,"RANGE":50,"PARTITION":51,"RangePartitionSpec":52,"PARTITION_VALUE":53,"=":54,"UnsignedValueSpecification":55,"RENAME":56,"TO":57,"RegularOrBackTickedSchemaQualifiedName":58,"OptionalColumn":59,"ColumnIdentifier":60,"KuduStorageAttribute":61,"SetValue":62,"DROP":63,"DEFAULT":64,"COLUMN":65,"STATS":66,"ParenthesizedStatsList":67,"DropOperations":68,"OptionalPartitionOperations":69,"RECOVER":70,"PARTITIONS":71,"AlterTableLeftSide_EDIT":72,"REPLACE":73,"OptionalIfNotExists_EDIT":74,"HdfsLocation_EDIT":75,"OptionalPartitionSpecs_EDIT":76,"CachedIn_EDIT":77,"PartitionSpec_EDIT":78,"OptionalCachedIn":79,"RangePartitionSpec_EDIT":80,"ParenthesizedStatsList_EDIT":81,"OptionalPartitionOperations_EDIT":82,"DropOperations_EDIT":83,"AddOrReplace":84,"BLOCK_SIZE":85,"COMMENT":86,"COMPRESSION":87,"ENCODING":88,"(":89,"StatsList":90,")":91,"StatsList_EDIT":92,"RightParenthesisOrError":93,"StatsAssignment":94,",":95,"StatsAssignment_EDIT":96,"QuotedValue":97,"FILEFORMAT":98,"FileFormat":99,"HdfsLocation":100,"TBLPROPERTIES":101,"ParenthesizedPropertyAssignmentList":102,"SERDEPROPERTIES":103,"CachedIn":104,"OptionalWithReplication":105,"ROW":106,"FORMAT":107,"DelimitedRowFormat":108,"UNCACHED":109,"AddReplaceColumns":110,"CHANGE":111,"ColumnSpecification":112,"AddReplaceColumns_EDIT":113,"ColumnSpecification_EDIT":114,"WithReplication_EDIT":115,"DelimitedRowFormat_EDIT":116,"COLUMNS":117,"ParenthesizedColumnSpecificationList":118,"ParenthesizedColumnSpecificationList_EDIT":119,"ExchangePartitionSpec":120,"OneOrMorePartitionSpecLists":121,"PartitionSpecList":122,"ExchangePartitionSpec_EDIT":123,"OneOrMorePartitionSpecLists_EDIT":124,"PartitionSpecList_EDIT":125,"OptionalIfExists":126,"OptionalIfExists_EDIT":127,"ColumnIdentifier_EDIT":128,"TABLE":129,"SchemaQualifiedTableIdentifier":130,"SchemaQualifiedTableIdentifier_EDIT":131,"PartitionSpecWithLocationList":132,"PartitionSpecWithLocation":133,"PartitionSpecWithLocation_EDIT":134,"AlterViewLeftSide":135,"AS":136,"QuerySpecification":137,".":138,"AlterViewLeftSide_EDIT":139,"QuerySpecification_EDIT":140,"VIEW":141,"ON":142,"DATABASE":143,"IS":144,"NullableComment":145,"NULL":146,"REFRESH":147,"OptionalPartitionSpec":148,"FUNCTIONS":149,"DatabaseIdentifier":150,"AUTHORIZATION":151,"OptionalPartitionSpec_EDIT":152,"INVALIDATE":153,"METADATA":154,"COMPUTE":155,"OptionalParenthesizedColumnList":156,"OptionalTableSample":157,"INCREMENTAL":158,"ParenthesizedColumnList_EDIT":159,"TableSample_EDIT":160,"DatabaseDefinition":161,"TableDefinition":162,"ViewDefinition":163,"RoleDefinition":164,"FunctionDefinition":165,"DatabaseDefinition_EDIT":166,"TableDefinition_EDIT":167,"ViewDefinition_EDIT":168,"FunctionDefinition_EDIT":169,"CREATE":170,"OptionalExternal":171,"RegularIdentifier":172,"DatabaseDefinitionOptionals":173,"DatabaseDefinitionOptionals_EDIT":174,"OptionalComment":175,"OptionalComment_INVALID":176,"Comment":177,"Comment_INVALID":178,"SINGLE_QUOTE":179,"DOUBLE_QUOTE":180,"VALUE":181,"PropertyAssignmentList":182,"PropertyAssignment":183,"TableDefinitionRightPart":184,"LifeCyclePart":185,"TableDefinitionRightPart_EDIT":186,"TableIdentifierAndOptionalColumnSpecification":187,"OptionalPartitionedBy":188,"OptionalSortBy":189,"OptionalRowFormat":190,"OptionalWithSerdeproperties":191,"OptionalStoredAs":192,"OptionalTblproperties":193,"OptionalAsSelectStatement":194,"TableIdentifierAndOptionalColumnSpecification_EDIT":195,"PartitionedBy_EDIT":196,"SortBy_EDIT":197,"RowFormat_EDIT":198,"WithSerdeproperties_EDIT":199,"StoredAs_EDIT":200,"OptionalAsSelectStatement_EDIT":201,"SchemaQualifiedIdentifier":202,"OptionalColumnSpecificationsOrLike":203,"OptionalColumnSpecificationsOrLike_EDIT":204,"SchemaQualifiedIdentifier_EDIT":205,"LIKE_PARQUET":206,"HdfsPath":207,"LIKE":208,"HdfsPath_EDIT":209,"ColumnSpecificationList":210,"PrimaryKeySpecification":211,"ColumnSpecificationList_EDIT":212,"PrimaryKeySpecification_EDIT":213,"ColumnDataType":214,"OptionalColumnOptions":215,"ColumnDataType_EDIT":216,"ColumnOptions_EDIT":217,"ColumnOptions":218,"ColumnOption":219,"ColumnOption_EDIT":220,"PrimaryKey":221,"NonParenthesizedValueExpressionPrimary":222,"UnsignedNumericLiteral":223,"NOT":224,"PrimaryKey_EDIT":225,"PrimitiveType":226,"ArrayType":227,"MapType":228,"StructType":229,"ArrayType_INVALID":230,"MapType_INVALID":231,"StructType_INVALID":232,"ArrayType_EDIT":233,"MapType_EDIT":234,"StructType_EDIT":235,"ARRAY":236,"<":237,">":238,"AnyCursor":239,"GreaterThanOrError":240,"MAP":241,"STRUCT":242,"StructDefinitionList":243,"StructDefinitionList_EDIT":244,"StructDefinition":245,"StructDefinition_EDIT":246,"Commas":247,":":248,"ColumnDataTypeList":249,"ColumnDataTypeList_EDIT":250,"ColumnDataTypeListInner_EDIT":251,"ParenthesizedColumnList":252,"PRIMARY":253,"KEY":254,"PartitionedBy":255,"PARTITIONED":256,"BY":257,"HashClauses":258,"RangeClause":259,"HashClauses_EDIT":260,"RangeClause_EDIT":261,"HashClause":262,"HashClause_EDIT":263,"HASH":264,"ParenthesizedPartitionValuesList":265,"ParenthesizedPartitionValuesList_EDIT":266,"SortBy":267,"SORT":268,"PartitionValueList":269,"PartitionValueList_EDIT":270,"PartitionValue":271,"PartitionValue_EDIT":272,"ValueExpression":273,"LessThanOrEqualTo":274,"VALUES":275,"ValueExpression_EDIT":276,"COMPARISON_OPERATOR":277,"ParenthesizedSortList":278,"SortList":279,"ParenthesizedSortList_EDIT":280,"SortList_EDIT":281,"SortIdentifier":282,"SortIdentifier_EDIT":283,"OptionalAscOrDesc":284,"RowFormat":285,"StoredAs":286,"STORED":287,"AVRO":288,"KUDU":289,"ORC":290,"PARQUET":291,"RCFILE":292,"SEQUENCEFILE":293,"TEXTFILE":294,"DELIMITED":295,"OptionalFieldsTerminatedBy":296,"OptionalLinesTerminatedBy":297,"OptionalFieldsTerminatedBy_EDIT":298,"OptionalLinesTerminatedBy_EDIT":299,"FIELDS":300,"TERMINATED":301,"SingleQuotedValue":302,"ESCAPED":303,"LINES":304,"WithSerdeproperties":305,"WITH":306,"TblProperties":307,"CommitLocations":308,"OptionalParenthesizedViewColumnList":309,"ParenthesizedViewColumnList_EDIT":310,"GenericFunctionDefinition":311,"AggregateFunctionDefinition":312,"GenericFunctionDefinition_EDIT":313,"AggregateFunctionDefinition_EDIT":314,"FUNCTION":315,"ParenthesizedArgumentList":316,"ReturnType":317,"SymbolDefinition":318,"ParenthesizedArgumentList_EDIT":319,"ReturnType_EDIT":320,"AGGREGATE":321,"OptionalInitFn":322,"UpdateFn":323,"MergeFn":324,"OptionalPrepareFn":325,"OptionalCloseFn":326,"OptionalSerializeFn":327,"OptionalFinalizeFn":328,"OptionalIntermediate":329,"OptionalInitFn_EDIT":330,"UpdateFn_EDIT":331,"MergeFn_EDIT":332,"OptionalPrepareFn_EDIT":333,"OptionalCloseFn_EDIT":334,"OptionalSerializeFn_EDIT":335,"OptionalFinalizeFn_EDIT":336,"Intermediate_EDIT":337,"ArgumentList":338,"OptionalVariableArguments":339,"ArgumentList_EDIT":340,"...":341,"RETURNS":342,"SYMBOL":343,"INIT_FN":344,"FunctionReference":345,"FunctionReference_EDIT":346,"UPDATE_FN":347,"MERGE_FN":348,"PREPARE_FN":349,"CLOSE_FN":350,"SERIALIZE_FN":351,"FINALIZE_FN":352,"INTERMEDIATE":353,"SingleQuotedValue_EDIT":354,"ParenthesizedViewColumnList":355,"ViewColumnList":356,"ViewColumnList_EDIT":357,"ColumnReference":358,"ROLE":359,"LIFECYCLE":360,"UNSIGNED_INTEGER":361,"DataManipulation":362,"DeleteStatement":363,"InsertStatement":364,"LoadStatement":365,"UpdateStatement":366,"DataManipulation_EDIT":367,"DeleteStatement_EDIT":368,"InsertOrUpsertStatement_EDIT":369,"CommonTableExpression":370,"CommonTableExpression_EDIT":371,"InsertOrUpsertStatement":372,"LoadStatement_EDIT":373,"UpdateStatement_EDIT":374,"DropDatabaseStatement":375,"DropFunctionStatement":376,"DropRoleStatement":377,"DropStatsStatement":378,"DropTableStatement":379,"DropViewStatement":380,"TruncateTableStatement":381,"DropDatabaseStatement_EDIT":382,"DropFunctionStatement_EDIT":383,"DropStatsStatement_EDIT":384,"DropTableStatement_EDIT":385,"DropViewStatement_EDIT":386,"TruncateTableStatement_EDIT":387,"OptionalCascadeOrRestrict":388,"OptionalPurge":389,"PURGE":390,"TRUNCATE":391,"DELETE":392,"OptionalDeleteTableRef":393,"FROM":394,"TableReference":395,"OptionalWhereClause":396,"DeleteTableRef_EDIT":397,"TableReference_EDIT":398,"WhereClause_EDIT":399,"TransactionIdList":400,"SqlStatements":401,"NonStartingToken":402,"SqlStatement":403,";":404,"NewStatement":405,"SqlStatement_EDIT":406,"ExplainClause_EDIT":407,"SetSpecification_EDIT":408,"ExplainClause":409,"SelectStatement":410,"SELECT":411,"OptionalAllOrDistinct":412,"OptionalStraightJoin":413,"SelectList_ERROR":414,"TableExpression":415,"SelectList":416,"TableExpression_ERROR":417,"SelectStatement_EDIT":418,"SelectList_ERROR_EDIT":419,"TableExpression_EDIT":420,"SelectList_EDIT":421,"ErrorList":422,"Errors":423,"SetOption":424,"ALL":425,"JoinType_EDIT":426,"FULL":427,"LEFT":428,"RIGHT":429,"ANTI":430,"CROSS":431,"INNER":432,"OUTER":433,"SEMI":434,"JOIN":435,"OptionalSelectConditions_EDIT":436,"WhereClause":437,"OptionalGroupByClause":438,"OptionalHavingClause":439,"OptionalOrderByClause":440,"OptionalLimitClause":441,"OptionalOffsetClause":442,"HavingClause":443,"OrderByClause":444,"LimitClause":445,"GroupByClause_EDIT":446,"HavingClause_EDIT":447,"OrderByClause_EDIT":448,"LimitClause_EDIT":449,"OffsetClause_EDIT":450,"GroupByClause":451,"GRANT":452,"GROUP":453,"PrivilegeType":454,"ObjectSpecification":455,"OptionalWithGrantOption":456,"GroupRoleOrUser":457,"PrivilegeType_EDIT":458,"ObjectSpecification_EDIT":459,"WithGrantOption_EDIT":460,"SERVER":461,"URI":462,"INSERT":463,"UserOrRoleList":464,"OPTION":465,"REVOKE":466,"OptionalTable":467,"SelectWithoutTableExpression":468,"SelectWithoutTableExpression_EDIT":469,"InsertOrUpsertStatementWithoutCTE":470,"InsertOrUpsertStatementWithoutCTE_EDIT":471,"InsertOrUpsertLeftPart":472,"OptionalShuffleOrNoShuffle":473,"OptionalUnions":474,"RowValuesLists":475,"InsertOrUpsertLeftPart_EDIT":476,"OptionalUnions_EDIT":477,"RowValuesLists_EDIT":478,"UpsertStatementLeftPart":479,"InsertLeftPart":480,"UpsertStatementLeftPart_EDIT":481,"InsertLeftPart_EDIT":482,"UPSERT":483,"INTO":484,"OptionalParenthesizedColumnList_EDIT":485,"IntoOrOverwrite":486,"OVERWRITE":487,"SHUFFLE":488,"NOSHUFFLE":489,"ParenthesizedValueExpressionList":490,"ParenthesizedValueExpressionList_EDIT":491,"ValueExpressionList":492,"ValueExpressionList_EDIT":493,"LOAD":494,"DATA":495,"INPATH":496,"OptionalOverwrite":497,"SqlSyntax":498,"EOF":499,"SqlAutocomplete":500,"SqlStatements_EDIT":501,"NonReservedKeyword":502,"REGULAR_IDENTIFIER":503,"VARIABLE_REFERENCE":504,"EXPLAIN":505,"!":506,"*":507,"-":508,"[":509,"]":510,"ALLOCATE":511,"ANALYTIC":512,"AND":513,"ANY":514,"APPX_MEDIAN":515,"ARE":516,"ARITHMETIC_OPERATOR":517,"ARRAY_AGG":518,"ARRAY_MAX_CARDINALITY":519,"ASC":520,"ASENSITIVE":521,"ASYMMETRIC":522,"AT":523,"ATOMIC":524,"AVG":525,"BACKTICK":526,"BEGIN_FRAME":527,"BEGIN_PARTITION":528,"BETWEEN":529,"BIGINT":530,"BLOB":531,"BOOLEAN":532,"BOTH":533,"BROADCAST":534,"CACHED":535,"CALLED":536,"CARDINALITY":537,"CASCADE":538,"CASCADED":539,"CASE":540,"CAST":541,"CHAR":542,"CHARACTER":543,"CLOB":544,"COLLATE":545,"COLLECT":546,"COMMIT":547,"CONDITION":548,"CONNECT":549,"CONSTRAINT":550,"CONTAINS":551,"CONVERT":552,"COPY":553,"CORR":554,"CORRESPONDING":555,"COUNT":556,"COVAR_POP":557,"COVAR_SAMP":558,"CUBE":559,"CURRENT":560,"CURRENT_DATE":561,"CURRENT_DEFAULT_TRANSFORM_GROUP":562,"CURRENT_PATH":563,"CURRENT_ROLE":564,"CURRENT_ROW":565,"CURRENT_SCHEMA":566,"CURRENT_TIME":567,"CURRENT_TRANSFORM_GROUP_FOR_TYPE":568,"CYCLE":569,"DATABASES":570,"DEALLOCATE":571,"DEC":572,"DECFLOAT":573,"DECIMAL":574,"DECLARE":575,"DEFINE":576,"DEREF":577,"DESC":578,"DETERMINISTIC":579,"DISCONNECT":580,"DISTINCT":581,"DOUBLE":582,"DYNAMIC":583,"EACH":584,"ELEMENT":585,"ELSE":586,"EMPTY":587,"END":588,"END_FRAME":589,"END_PARTITION":590,"EQUALS":591,"ESCAPE":592,"EVERY":593,"EXCEPT":594,"EXEC":595,"EXECUTE":596,"EXISTS":597,"EXTENDED":598,"EXTERNAL":599,"EXTRACT":600,"FALSE":601,"FETCH":602,"FILES":603,"FILTER":604,"FIRST":605,"FLOAT":606,"FOLLOWING":607,"FOR":608,"FOREIGN":609,"FORMATTED":610,"FRAME_ROW":611,"FREE":612,"FUSION":613,"GET":614,"GLOBAL":615,"GROUP_CONCAT":616,"GROUPING":617,"GROUPS":618,"HAVING":619,"HDFS_START_QUOTE":620,"HOLD":621,"IF":622,"IGNORE":623,"ILIKE":624,"IN":625,"INDICATOR":626,"INITIAL":627,"INOUT":628,"INSENSITIVE":629,"INT":630,"INTERSECT":631,"INTERSECTION":632,"INTERVAL":633,"IREGEXP":634,"JSON_ARRAY":635,"JSON_ARRAYAGG":636,"JSON_EXISTS":637,"JSON_OBJECT":638,"JSON_OBJECTAGG":639,"JSON_QUERY":640,"JSON_TABLE":641,"JSON_TABLE_PRIMITIVE":642,"JSON_VALUE":643,"LARGE":644,"LAST":645,"LATERAL":646,"LEADING":647,"LIKE_REGEX":648,"LIMIT":649,"LISTAGG":650,"LOCAL":651,"LOCALTIMESTAMP":652,"LOCATION":653,"MATCH":654,"MATCH_NUMBER":655,"MATCH_RECOGNIZE":656,"MATCHES":657,"MAX":658,"MERGE":659,"METHOD":660,"MIN":661,"MODIFIES":662,"MULTISET":663,"NATIONAL":664,"NATURAL":665,"NCHAR":666,"NCLOB":667,"NDV":668,"NO":669,"NONE":670,"NORMALIZE":671,"NTH_VALUE":672,"NULLS":673,"NUMERIC":674,"OCCURRENCES_REGEX":675,"OCTET_LENGTH":676,"OF":677,"OMIT":678,"ONE":679,"ONLY":680,"OR":681,"ORDER":682,"OUT":683,"OVER":684,"OVERLAPS":685,"OVERLAY":686,"PATTERN":687,"PER":688,"PERCENT":689,"PERCENTILE_CONT":690,"PERCENTILE_DISC":691,"PORTION":692,"POSITION":693,"POSITION_REGEX":694,"PRECEDES":695,"PRECEDING":696,"PREPARE":697,"PROCEDURE":698,"PTF":699,"READS":700,"REAL":701,"RECURSIVE":702,"REF":703,"REFERENCES":704,"REFERENCING":705,"REGEXP":706,"REGR_AVGX":707,"REGR_AVGY":708,"REGR_COUNT":709,"REGR_INTERCEPT":710,"REGR_R2REGR_SLOPE":711,"REGR_SXX":712,"REGR_SXY":713,"REGR_SYY":714,"RELEASE":715,"REPEATABLE":716,"REPLICATION":717,"RESTRICT":718,"RLIKE":719,"ROLES":720,"ROLLBACK":721,"ROLLUP":722,"ROWS":723,"RUNNING":724,"SAVEPOINT":725,"SCHEMA":726,"SCHEMAS":727,"SCOPE":728,"SCROLL":729,"SEARCH":730,"SEEK":731,"SENSITIVE":732,"SIMILAR":733,"SKIP":734,"SMALLINT":735,"SOME":736,"SPECIFIC":737,"SPECIFICTYPE":738,"SQLEXCEPTION":739,"SQLSTATE":740,"SQLWARNING":741,"STATIC":742,"STDDEV":743,"STDDEV_POP":744,"STDDEV_SAMP":745,"STRAIGHT_JOIN":746,"STRING":747,"SUBMULTISET":748,"SUBSET":749,"SUBSTRING_REGEX":750,"SUCCEEDS":751,"SUM":752,"SYMMETRIC":753,"SYSTEM_TIME":754,"SYSTEM_USER":755,"TABLES":756,"TABLESAMPLE":757,"THEN":758,"TIMESTAMP":759,"TIMEZONE_HOUR":760,"TIMEZONE_MINUTE":761,"TINYINT":762,"TRAILING":763,"TRANSLATE_REGEX":764,"TRANSLATION":765,"TREAT":766,"TRIGGER":767,"TRIM_ARRAY":768,"TRUE":769,"UESCAPE":770,"UNION":771,"UNIQUE":772,"UNNEST":773,"UNSIGNED_INTEGER_E":774,"USER":775,"USING":776,"VALUE_OF":777,"VAR_POP":778,"VAR_SAMP":779,"VARBINARY":780,"VARCHAR":781,"VARIANCE":782,"VARIANCE_POP":783,"VARIANCE_SAMP":784,"VARYING":785,"VERSIONING":786,"WHEN":787,"WHENEVER":788,"WHERE":789,"WIDTH_BUCKET":790,"WINDOW":791,"WITHIN":792,"WITHOUT":793,"~":794,"AggregateOrAnalytic":795,"PARTIAL_CURSOR":796,"FromOrIn":797,"DatabasesOrSchemas":798,"PARTIAL_VALUE":799,"DoubleQuotedValue":800,"DoubleQuotedValue_EDIT":801,"QuotedValue_EDIT":802,"OptionalAggregateOrAnalytic":803,"OptionalExtendedOrFormatted":804,"OptionalFromDatabase":805,"OptionalFromDatabase_EDIT":806,"DatabaseIdentifier_EDIT":807,"OptionalInDatabase":808,"RangePartitionComparisonOperator":809,"ConfigurationName":810,"PartialBacktickedOrAnyCursor":811,"PartialBacktickedIdentifier":812,"PartialBacktickedOrCursor":813,"PartialBacktickedOrPartialCursor":814,"ColumnList":815,"ColumnList_EDIT":816,"ParenthesizedSimpleValueList":817,"SimpleValueList":818,"FieldsList":819,"FieldsList_EDIT":820,"Field":821,"Field_EDIT":822,"PartitionExpression":823,"PartitionExpression_EDIT":824,"WithReplication":825,"SignedInteger":826,"RegularOrBackTickedSchemaQualifiedName_EDIT":827,"LocalOrSchemaQualifiedName":828,"LocalOrSchemaQualifiedName_EDIT":829,"BasicIdentifierChain":830,"ColumnReference_EDIT":831,"BasicIdentifierChain_EDIT":832,"DerivedColumnChain":833,"DerivedColumnChain_EDIT":834,"PartialBacktickedIdentifierOrPartialCursor":835,"RightSquareBracketOrError":836,"OptionalTypePrecision":837,"OptionalTypeLength":838,"DESCRIBE":839,"Unions":840,"Unions_EDIT":841,"UnionClause":842,"UnionClause_EDIT":843,"WithQueries":844,"WithQueries_EDIT":845,"WithQuery":846,"WithQuery_EDIT":847,"TableSubQueryInner":848,"TableSubQueryInner_EDIT":849,"FromClause":850,"OptionalSelectConditions":851,"FromClause_EDIT":852,"OptionalJoins":853,"Joins":854,"Joins_INVALID":855,"TableReferenceList":856,"TableReferenceList_EDIT":857,"SearchCondition":858,"SearchCondition_EDIT":859,"GroupByColumnList":860,"GroupByColumnList_EDIT":861,"ColumnGroupingSets":862,"ColumnGroupingSets_EDIT":863,"ColumnGroupingSet_EDIT":864,"GroupByColumnListPartTwo_EDIT":865,"OrderByColumnList":866,"OrderByColumnList_EDIT":867,"OrderByIdentifier":868,"OrderByIdentifier_EDIT":869,"OptionalNullsFirstOrLast":870,"NullsFirstOrLast_EDIT":871,"SortByList":872,"SortByIdentifier":873,"SortByList_EDIT":874,"SortByIdentifier_EDIT":875,"OffsetClause":876,"OFFSET":877,"OptionalNot":878,"UNKNOWN":879,"TableSubQuery":880,"LikeRightPart":881,"CaseRightPart":882,"NonParenthesizedValueExpressionPrimary_EDIT":883,"TableSubQuery_EDIT":884,"ValueExpressionInSecondPart_EDIT":885,"LikeRightPart_EDIT":886,"CaseRightPart_EDIT":887,"EndOrError":888,"InValueList":889,"ColumnOrArbitraryFunctionRef":890,"ArbitraryFunctionRightPart":891,"ArbitraryFunctionName":892,"UserDefinedFunction":893,"IntervalSpecification":894,"UnsignedValueSpecification_EDIT":895,"ColumnOrArbitraryFunctionRef_EDIT":896,"ArbitraryFunctionRightPart_EDIT":897,"UserDefinedFunction_EDIT":898,"IntervalSpecification_EDIT":899,"+":900,"UnsignedLiteral":901,"UnsignedLiteral_EDIT":902,"GeneralLiteral":903,"GeneralLiteral_EDIT":904,"ExactNumericLiteral":905,"ApproximateNumericLiteral":906,"TruthValue":907,"SelectSpecification":908,"OptionalCorrelationName":909,"SelectSpecification_EDIT":910,"OptionalCorrelationName_EDIT":911,"TablePrimaryOrJoinedTable":912,"TablePrimaryOrJoinedTable_EDIT":913,"TablePrimary":914,"JoinedTable":915,"TablePrimary_EDIT":916,"JoinedTable_EDIT":917,"Joins_EDIT":918,"JoinType":919,"OptionalBroadcastOrShuffle":920,"OptionalJoinCondition":921,"Join_EDIT":922,"JoinCondition_EDIT":923,"UsingColList":924,"TableOrQueryName":925,"DerivedTable":926,"TableOrQueryName_EDIT":927,"DerivedTable_EDIT":928,"SYSTEM":929,"OptionalOnColumn":930,"OptionalOnColumn_EDIT":931,"PushQueryState":932,"PopQueryState":933,"SubQuery":934,"SubQuery_EDIT":935,"QueryExpression":936,"QueryExpression_EDIT":937,"QueryExpressionBody":938,"QueryExpressionBody_EDIT":939,"NonJoinQueryExpression":940,"NonJoinQueryExpression_EDIT":941,"NonJoinQueryTerm":942,"NonJoinQueryTerm_EDIT":943,"NonJoinQueryPrimary":944,"NonJoinQueryPrimary_EDIT":945,"SimpleTable":946,"SimpleTable_EDIT":947,"AggregateFunction":948,"OptionalOverClause":949,"AnalyticFunction":950,"OverClause":951,"CastFunction":952,"ExtractFunction":953,"AggregateFunction_EDIT":954,"OptionalOverClause_EDIT":955,"AnalyticFunction_EDIT":956,"OverClause_EDIT":957,"CastFunction_EDIT":958,"ExtractFunction_EDIT":959,"ArbitraryFunction":960,"ArbitraryFunction_EDIT":961,"LEFT_F":962,"CountFunction":963,"SumFunction":964,"OtherAggregateFunction":965,"CountFunction_EDIT":966,"SumFunction_EDIT":967,"OtherAggregateFunction_EDIT":968,"WindowExpression":969,"WindowExpression_EDIT":970,"OptionalPartitionBy":971,"OptionalOrderByAndWindow":972,"PartitionBy_EDIT":973,"OptionalOrderByAndWindow_EDIT":974,"PartitionBy":975,"OptionalWindowSpec":976,"WindowSpec_EDIT":977,"WindowSpec":978,"RowsOrRange":979,"OptionalCurrentOrPreceding":980,"OptionalAndFollowing":981,"UNBOUNDED":982,"OptionalCurrentOrPreceding_EDIT":983,"OptionalAndFollowing_EDIT":984,"PopLexerState":985,"PushHdfsLexerState":986,"HDFS_PATH":987,"HDFS_END_QUOTE":988,"IntegerOrUnbounded":989,"OtherAggregateFunction_Type":990,"FromOrComma":991,"OptionalOuter":992,"ShowColumnStatsStatement":993,"ShowCreateTableStatement":994,"ShowCurrentRolesStatement":995,"ShowDatabasesStatement":996,"ShowFilesStatement":997,"ShowFunctionsStatement":998,"ShowGrantStatement":999,"ShowPartitionsStatement":1000,"ShowRoleStatement":1001,"ShowRolesStatement":1002,"ShowTableStatsStatement":1003,"ShowTablesStatement":1004,"SHOW":1005,"ShowColumnStatsStatement_EDIT":1006,"ShowCreateTableStatement_EDIT":1007,"ShowCurrentRolesStatement_EDIT":1008,"ShowDatabasesStatement_EDIT":1009,"ShowFilesStatement_EDIT":1010,"ShowFunctionsStatement_EDIT":1011,"ShowGrantStatement_EDIT":1012,"ShowPartitionsStatement_EDIT":1013,"ShowRoleStatement_EDIT":1014,"ShowTableStatsStatement_EDIT":1015,"ShowTablesStatement_EDIT":1016,"TableOrView":1017,"OptionalPrincipalName":1018,"OptionalPrincipalName_EDIT":1019,"UPDATE":1020,"TargetTable":1021,"SetClauseList":1022,"OptionalFromJoinedTable":1023,"TargetTable_EDIT":1024,"SetClauseList_EDIT":1025,"FromJoinedTable_EDIT":1026,"TableName":1027,"TableName_EDIT":1028,"SetClause":1029,"SetClause_EDIT":1030,"SetTarget":1031,"UpdateSource":1032,"UpdateSource_EDIT":1033,"USE":1034,"CaseWhenThenList":1035,"CaseWhenThenList_EDIT":1036,"CaseWhenThenListPartTwo":1037,"CaseWhenThenListPartTwo_EDIT":1038,"$accept":0,"$end":1}, +terminals_: {2:"error",26:"SET",27:"CURSOR",38:"ALTER",41:"OWNER",44:"ADD",50:"RANGE",51:"PARTITION",53:"PARTITION_VALUE",54:"=",56:"RENAME",57:"TO",63:"DROP",64:"DEFAULT",65:"COLUMN",66:"STATS",70:"RECOVER",71:"PARTITIONS",73:"REPLACE",85:"BLOCK_SIZE",86:"COMMENT",87:"COMPRESSION",88:"ENCODING",89:"(",91:")",95:",",98:"FILEFORMAT",101:"TBLPROPERTIES",103:"SERDEPROPERTIES",106:"ROW",107:"FORMAT",109:"UNCACHED",111:"CHANGE",117:"COLUMNS",129:"TABLE",136:"AS",138:".",141:"VIEW",142:"ON",143:"DATABASE",144:"IS",146:"NULL",147:"REFRESH",149:"FUNCTIONS",151:"AUTHORIZATION",153:"INVALIDATE",154:"METADATA",155:"COMPUTE",158:"INCREMENTAL",170:"CREATE",179:"SINGLE_QUOTE",180:"DOUBLE_QUOTE",181:"VALUE",206:"LIKE_PARQUET",208:"LIKE",224:"NOT",236:"ARRAY",237:"<",238:">",241:"MAP",242:"STRUCT",248:":",253:"PRIMARY",254:"KEY",256:"PARTITIONED",257:"BY",264:"HASH",268:"SORT",275:"VALUES",277:"COMPARISON_OPERATOR",287:"STORED",288:"AVRO",289:"KUDU",290:"ORC",291:"PARQUET",292:"RCFILE",293:"SEQUENCEFILE",294:"TEXTFILE",295:"DELIMITED",300:"FIELDS",301:"TERMINATED",303:"ESCAPED",304:"LINES",306:"WITH",315:"FUNCTION",321:"AGGREGATE",341:"...",342:"RETURNS",343:"SYMBOL",344:"INIT_FN",347:"UPDATE_FN",348:"MERGE_FN",349:"PREPARE_FN",350:"CLOSE_FN",351:"SERIALIZE_FN",352:"FINALIZE_FN",353:"INTERMEDIATE",359:"ROLE",360:"LIFECYCLE",361:"UNSIGNED_INTEGER",390:"PURGE",391:"TRUNCATE",392:"DELETE",394:"FROM",404:";",408:"SetSpecification_EDIT",411:"SELECT",417:"TableExpression_ERROR",423:"Errors",425:"ALL",427:"FULL",428:"LEFT",429:"RIGHT",430:"ANTI",431:"CROSS",432:"INNER",433:"OUTER",434:"SEMI",435:"JOIN",452:"GRANT",453:"GROUP",461:"SERVER",462:"URI",463:"INSERT",465:"OPTION",466:"REVOKE",483:"UPSERT",484:"INTO",487:"OVERWRITE",488:"SHUFFLE",489:"NOSHUFFLE",494:"LOAD",495:"DATA",496:"INPATH",499:"EOF",503:"REGULAR_IDENTIFIER",504:"VARIABLE_REFERENCE",505:"EXPLAIN",506:"!",507:"*",508:"-",509:"[",510:"]",511:"ALLOCATE",512:"ANALYTIC",513:"AND",514:"ANY",515:"APPX_MEDIAN",516:"ARE",517:"ARITHMETIC_OPERATOR",518:"ARRAY_AGG",519:"ARRAY_MAX_CARDINALITY",520:"ASC",521:"ASENSITIVE",522:"ASYMMETRIC",523:"AT",524:"ATOMIC",525:"AVG",526:"BACKTICK",527:"BEGIN_FRAME",528:"BEGIN_PARTITION",529:"BETWEEN",530:"BIGINT",531:"BLOB",532:"BOOLEAN",533:"BOTH",534:"BROADCAST",535:"CACHED",536:"CALLED",537:"CARDINALITY",538:"CASCADE",539:"CASCADED",540:"CASE",541:"CAST",542:"CHAR",543:"CHARACTER",544:"CLOB",545:"COLLATE",546:"COLLECT",547:"COMMIT",548:"CONDITION",549:"CONNECT",550:"CONSTRAINT",551:"CONTAINS",552:"CONVERT",553:"COPY",554:"CORR",555:"CORRESPONDING",556:"COUNT",557:"COVAR_POP",558:"COVAR_SAMP",559:"CUBE",560:"CURRENT",561:"CURRENT_DATE",562:"CURRENT_DEFAULT_TRANSFORM_GROUP",563:"CURRENT_PATH",564:"CURRENT_ROLE",565:"CURRENT_ROW",566:"CURRENT_SCHEMA",567:"CURRENT_TIME",568:"CURRENT_TRANSFORM_GROUP_FOR_TYPE",569:"CYCLE",570:"DATABASES",571:"DEALLOCATE",572:"DEC",573:"DECFLOAT",574:"DECIMAL",575:"DECLARE",576:"DEFINE",577:"DEREF",578:"DESC",579:"DETERMINISTIC",580:"DISCONNECT",581:"DISTINCT",582:"DOUBLE",583:"DYNAMIC",584:"EACH",585:"ELEMENT",586:"ELSE",587:"EMPTY",588:"END",589:"END_FRAME",590:"END_PARTITION",591:"EQUALS",592:"ESCAPE",593:"EVERY",594:"EXCEPT",595:"EXEC",596:"EXECUTE",597:"EXISTS",598:"EXTENDED",599:"EXTERNAL",600:"EXTRACT",601:"FALSE",602:"FETCH",603:"FILES",604:"FILTER",605:"FIRST",606:"FLOAT",607:"FOLLOWING",608:"FOR",609:"FOREIGN",610:"FORMATTED",611:"FRAME_ROW",612:"FREE",613:"FUSION",614:"GET",615:"GLOBAL",616:"GROUP_CONCAT",617:"GROUPING",618:"GROUPS",619:"HAVING",620:"HDFS_START_QUOTE",621:"HOLD",622:"IF",623:"IGNORE",624:"ILIKE",625:"IN",626:"INDICATOR",627:"INITIAL",628:"INOUT",629:"INSENSITIVE",630:"INT",631:"INTERSECT",632:"INTERSECTION",633:"INTERVAL",634:"IREGEXP",635:"JSON_ARRAY",636:"JSON_ARRAYAGG",637:"JSON_EXISTS",638:"JSON_OBJECT",639:"JSON_OBJECTAGG",640:"JSON_QUERY",641:"JSON_TABLE",642:"JSON_TABLE_PRIMITIVE",643:"JSON_VALUE",644:"LARGE",645:"LAST",646:"LATERAL",647:"LEADING",648:"LIKE_REGEX",649:"LIMIT",650:"LISTAGG",651:"LOCAL",652:"LOCALTIMESTAMP",653:"LOCATION",654:"MATCH",655:"MATCH_NUMBER",656:"MATCH_RECOGNIZE",657:"MATCHES",658:"MAX",659:"MERGE",660:"METHOD",661:"MIN",662:"MODIFIES",663:"MULTISET",664:"NATIONAL",665:"NATURAL",666:"NCHAR",667:"NCLOB",668:"NDV",669:"NO",670:"NONE",671:"NORMALIZE",672:"NTH_VALUE",673:"NULLS",674:"NUMERIC",675:"OCCURRENCES_REGEX",676:"OCTET_LENGTH",677:"OF",678:"OMIT",679:"ONE",680:"ONLY",681:"OR",682:"ORDER",683:"OUT",684:"OVER",685:"OVERLAPS",686:"OVERLAY",687:"PATTERN",688:"PER",689:"PERCENT",690:"PERCENTILE_CONT",691:"PERCENTILE_DISC",692:"PORTION",693:"POSITION",694:"POSITION_REGEX",695:"PRECEDES",696:"PRECEDING",697:"PREPARE",698:"PROCEDURE",699:"PTF",700:"READS",701:"REAL",702:"RECURSIVE",703:"REF",704:"REFERENCES",705:"REFERENCING",706:"REGEXP",707:"REGR_AVGX",708:"REGR_AVGY",709:"REGR_COUNT",710:"REGR_INTERCEPT",711:"REGR_R2REGR_SLOPE",712:"REGR_SXX",713:"REGR_SXY",714:"REGR_SYY",715:"RELEASE",716:"REPEATABLE",717:"REPLICATION",718:"RESTRICT",719:"RLIKE",720:"ROLES",721:"ROLLBACK",722:"ROLLUP",723:"ROWS",724:"RUNNING",725:"SAVEPOINT",726:"SCHEMA",727:"SCHEMAS",728:"SCOPE",729:"SCROLL",730:"SEARCH",731:"SEEK",732:"SENSITIVE",733:"SIMILAR",734:"SKIP",735:"SMALLINT",736:"SOME",737:"SPECIFIC",738:"SPECIFICTYPE",739:"SQLEXCEPTION",740:"SQLSTATE",741:"SQLWARNING",742:"STATIC",743:"STDDEV",744:"STDDEV_POP",745:"STDDEV_SAMP",746:"STRAIGHT_JOIN",747:"STRING",748:"SUBMULTISET",749:"SUBSET",750:"SUBSTRING_REGEX",751:"SUCCEEDS",752:"SUM",753:"SYMMETRIC",754:"SYSTEM_TIME",755:"SYSTEM_USER",756:"TABLES",757:"TABLESAMPLE",758:"THEN",759:"TIMESTAMP",760:"TIMEZONE_HOUR",761:"TIMEZONE_MINUTE",762:"TINYINT",763:"TRAILING",764:"TRANSLATE_REGEX",765:"TRANSLATION",766:"TREAT",767:"TRIGGER",768:"TRIM_ARRAY",769:"TRUE",770:"UESCAPE",771:"UNION",772:"UNIQUE",773:"UNNEST",774:"UNSIGNED_INTEGER_E",775:"USER",776:"USING",777:"VALUE_OF",778:"VAR_POP",779:"VAR_SAMP",780:"VARBINARY",781:"VARCHAR",782:"VARIANCE",783:"VARIANCE_POP",784:"VARIANCE_SAMP",785:"VARYING",786:"VERSIONING",787:"WHEN",788:"WHENEVER",789:"WHERE",790:"WIDTH_BUCKET",791:"WINDOW",792:"WITHIN",793:"WITHOUT",794:"~",796:"PARTIAL_CURSOR",799:"PARTIAL_VALUE",839:"DESCRIBE",877:"OFFSET",879:"UNKNOWN",900:"+",929:"SYSTEM",962:"LEFT_F",982:"UNBOUNDED",987:"HDFS_PATH",988:"HDFS_END_QUOTE",1005:"SHOW",1020:"UPDATE",1034:"USE"}, +productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,2],[16,1],[16,1],[4,1],[4,1],[4,1],[4,1],[17,1],[17,1],[17,1],[17,1],[17,2],[30,7],[34,3],[34,4],[34,5],[34,6],[31,7],[31,6],[31,7],[31,4],[31,7],[31,6],[31,6],[31,5],[31,2],[31,2],[31,3],[31,3],[35,1],[35,7],[35,4],[35,7],[35,6],[35,6],[35,5],[35,2],[35,2],[35,3],[35,4],[35,3],[35,3],[35,7],[35,7],[35,7],[35,8],[35,7],[35,5],[35,6],[35,6],[35,6],[35,4],[35,5],[35,6],[35,6],[35,7],[35,4],[35,5],[35,6],[35,6],[35,4],[35,5],[35,2],[35,2],[35,2],[35,3],[35,4],[35,4],[35,3],[35,3],[35,3],[35,4],[35,3],[61,1],[61,1],[61,1],[61,1],[61,1],[59,0],[59,1],[67,3],[81,3],[90,1],[90,3],[92,1],[92,3],[92,5],[92,3],[94,3],[96,1],[69,3],[69,2],[69,3],[69,3],[69,3],[69,4],[69,2],[69,1],[69,3],[82,1],[82,2],[82,3],[82,4],[82,3],[82,2],[82,2],[82,4],[82,3],[82,3],[82,4],[82,5],[82,4],[110,3],[113,3],[113,4],[120,4],[120,4],[123,4],[123,4],[121,3],[121,5],[124,3],[124,5],[68,3],[68,3],[68,5],[68,6],[68,3],[83,3],[83,3],[83,4],[83,2],[83,4],[83,5],[83,5],[83,5],[83,2],[83,3],[83,3],[43,3],[72,3],[72,3],[84,1],[84,1],[48,0],[48,1],[132,1],[132,2],[76,1],[76,2],[76,2],[76,3],[134,2],[134,2],[133,2],[32,5],[32,3],[32,4],[32,6],[36,1],[36,2],[36,3],[36,4],[36,5],[36,3],[36,3],[36,3],[36,4],[135,3],[139,3],[139,3],[33,6],[37,2],[37,3],[37,4],[37,5],[37,6],[145,1],[145,1],[5,3],[5,3],[5,2],[18,2],[18,3],[18,4],[18,3],[18,3],[6,2],[6,3],[19,2],[19,3],[19,3],[19,3],[7,5],[7,5],[20,2],[20,3],[20,3],[20,4],[20,6],[20,5],[20,5],[20,5],[20,3],[20,5],[20,4],[20,5],[20,6],[20,5],[8,1],[8,1],[8,1],[8,1],[8,1],[21,1],[21,1],[21,1],[21,1],[21,3],[161,3],[161,5],[166,4],[166,3],[166,5],[166,4],[166,6],[166,6],[173,2],[174,2],[174,2],[175,0],[175,1],[177,2],[176,1],[178,2],[178,2],[178,3],[178,3],[102,3],[182,1],[182,3],[183,3],[162,6],[167,5],[167,5],[167,4],[184,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,12],[186,11],[186,11],[187,2],[195,2],[195,2],[203,0],[203,1],[203,2],[203,2],[204,1],[204,2],[204,2],[204,2],[118,3],[118,5],[119,3],[119,5],[119,5],[210,1],[210,3],[212,1],[212,3],[212,3],[212,5],[212,2],[212,4],[212,4],[212,6],[112,3],[114,3],[114,3],[114,3],[215,0],[215,1],[218,1],[218,2],[217,1],[217,2],[217,2],[217,3],[219,1],[219,2],[219,2],[219,2],[219,2],[219,2],[219,1],[219,1],[220,1],[220,2],[214,1],[214,1],[214,1],[214,1],[214,1],[214,1],[214,1],[216,1],[216,1],[216,1],[227,4],[230,3],[233,4],[233,4],[228,6],[231,3],[234,6],[234,4],[234,6],[234,5],[229,4],[232,3],[235,4],[243,1],[243,3],[244,1],[244,2],[244,3],[244,3],[244,5],[245,4],[246,5],[246,4],[246,4],[246,4],[246,3],[246,3],[249,1],[249,3],[250,1],[250,2],[250,3],[250,3],[250,5],[251,2],[251,2],[251,1],[251,1],[240,1],[240,1],[211,2],[213,1],[213,2],[213,2],[221,2],[225,2],[188,0],[188,1],[255,3],[255,3],[255,5],[255,3],[196,2],[196,3],[196,3],[196,2],[196,2],[196,3],[196,3],[196,3],[196,5],[196,5],[196,5],[258,1],[258,3],[260,1],[260,3],[260,5],[262,4],[263,3],[263,2],[263,4],[263,4],[259,3],[261,2],[261,2],[261,3],[261,3],[261,3],[189,0],[189,1],[267,3],[197,2],[197,3],[265,3],[266,3],[266,3],[269,1],[269,3],[270,1],[270,3],[270,5],[270,3],[270,5],[271,6],[271,4],[271,4],[271,3],[272,2],[272,2],[272,3],[272,2],[272,3],[272,4],[272,4],[272,5],[272,6],[272,6],[272,3],[272,4],[272,4],[274,1],[274,1],[278,3],[280,3],[279,1],[279,3],[281,1],[281,3],[281,3],[281,5],[282,2],[283,3],[283,2],[283,2],[190,0],[190,1],[285,3],[198,2],[198,3],[198,3],[192,0],[192,1],[286,3],[200,2],[200,3],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[108,3],[116,3],[116,3],[296,0],[296,4],[296,7],[298,2],[298,3],[298,6],[297,0],[297,4],[299,2],[299,3],[191,0],[191,1],[305,3],[199,2],[199,3],[193,0],[193,1],[307,2],[194,0],[194,3],[201,3],[201,3],[308,0],[163,8],[168,4],[168,9],[168,3],[168,6],[168,7],[168,8],[168,8],[168,8],[165,1],[165,1],[169,1],[169,1],[311,8],[313,4],[313,9],[313,6],[313,7],[313,8],[313,3],[313,5],[313,6],[313,7],[313,8],[313,8],[313,8],[313,8],[312,16],[314,3],[314,17],[314,5],[314,4],[314,16],[314,6],[314,16],[314,7],[314,8],[314,10],[314,11],[314,17],[314,7],[314,9],[314,9],[314,10],[314,10],[314,16],[314,16],[314,16],[314,16],[314,16],[314,16],[314,16],[314,16],[314,16],[314,16],[316,2],[316,4],[319,3],[319,4],[338,1],[338,3],[340,1],[340,3],[340,3],[340,5],[339,0],[339,1],[317,2],[320,2],[318,3],[322,0],[322,3],[330,3],[323,3],[331,3],[324,3],[332,3],[325,0],[325,3],[333,3],[326,0],[326,3],[334,3],[327,0],[327,3],[335,3],[328,0],[328,3],[336,3],[329,0],[329,2],[337,2],[345,1],[346,1],[309,0],[309,1],[355,3],[310,3],[356,2],[356,4],[357,3],[357,5],[357,5],[357,7],[164,3],[185,0],[185,2],[362,1],[362,1],[362,1],[362,1],[367,1],[367,1],[367,2],[367,2],[367,1],[367,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[22,1],[22,1],[22,1],[22,1],[22,1],[22,1],[22,2],[375,5],[382,3],[382,3],[382,4],[382,5],[382,5],[382,6],[376,5],[376,6],[383,4],[383,5],[383,6],[383,3],[383,6],[383,5],[383,3],[383,7],[383,4],[383,6],[383,5],[383,6],[377,3],[378,3],[378,5],[384,3],[384,3],[384,4],[384,5],[384,3],[384,4],[384,4],[384,5],[384,5],[384,5],[379,5],[385,3],[385,4],[385,5],[385,5],[385,6],[389,0],[389,1],[380,4],[386,4],[386,5],[386,3],[386,4],[386,4],[381,4],[387,2],[387,4],[387,3],[387,4],[387,5],[387,5],[387,4],[363,5],[368,3],[368,2],[368,4],[368,6],[368,3],[368,5],[368,5],[368,5],[393,0],[393,1],[397,1],[400,1],[400,3],[401,1],[401,2],[401,0],[401,1],[401,4],[406,2],[406,1],[406,2],[406,1],[406,1],[406,1],[406,1],[406,1],[406,2],[406,2],[406,2],[406,2],[406,2],[406,2],[410,5],[410,5],[410,4],[410,5],[418,5],[418,5],[418,4],[418,4],[418,5],[418,5],[418,5],[418,6],[418,7],[418,5],[414,1],[414,3],[414,5],[414,3],[414,5],[419,3],[419,5],[419,7],[419,3],[419,5],[419,7],[13,4],[13,4],[13,2],[422,1],[422,3],[426,3],[426,3],[426,3],[426,2],[426,2],[426,2],[426,2],[426,2],[426,3],[426,3],[426,3],[426,3],[426,3],[426,3],[426,3],[426,3],[426,3],[426,3],[426,3],[426,3],[436,8],[436,8],[436,8],[436,8],[436,7],[436,7],[436,7],[436,7],[436,7],[436,7],[436,7],[436,7],[436,7],[436,7],[436,7],[436,7],[436,7],[436,7],[436,6],[436,6],[436,6],[436,6],[436,6],[436,6],[436,7],[436,7],[436,7],[436,7],[436,7],[10,6],[10,7],[10,8],[23,2],[23,4],[23,5],[23,2],[23,3],[23,4],[23,4],[23,5],[23,6],[23,8],[23,7],[23,9],[23,8],[455,2],[455,2],[455,2],[455,2],[459,2],[459,2],[459,2],[454,1],[454,1],[454,1],[454,1],[454,1],[454,1],[454,2],[458,2],[464,1],[464,3],[456,0],[456,3],[460,2],[460,3],[11,6],[11,6],[11,7],[24,2],[24,4],[24,5],[24,2],[24,3],[24,4],[24,4],[24,5],[24,6],[364,1],[364,2],[467,0],[467,1],[468,4],[469,5],[469,4],[469,4],[372,1],[369,1],[470,4],[470,3],[471,1],[471,3],[471,4],[471,4],[471,4],[471,3],[471,3],[472,1],[472,1],[476,1],[476,1],[479,5],[481,2],[481,4],[481,6],[481,5],[481,5],[480,6],[482,2],[482,4],[482,7],[482,6],[482,6],[482,6],[486,1],[486,1],[473,0],[473,1],[473,1],[475,1],[475,3],[478,1],[478,3],[478,5],[478,3],[490,3],[491,3],[491,3],[365,9],[373,2],[373,3],[373,5],[373,6],[373,7],[373,8],[373,9],[373,10],[373,9],[373,9],[497,0],[497,1],[498,3],[500,3],[500,3],[405,0],[501,1],[501,4],[501,4],[501,7],[403,1],[403,1],[403,1],[403,2],[403,2],[403,2],[502,1],[502,1],[502,1],[502,1],[502,1],[502,1],[502,1],[172,1],[172,1],[172,1],[409,1],[407,2],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[402,1],[795,1],[795,1],[247,1],[247,2],[239,1],[239,1],[39,1],[39,1],[797,1],[797,1],[798,1],[798,1],[457,1],[457,1],[457,1],[42,1],[42,1],[302,3],[302,2],[354,2],[800,3],[800,2],[801,2],[97,1],[97,1],[802,1],[802,1],[803,0],[803,1],[171,0],[171,1],[804,0],[804,1],[804,1],[805,0],[805,2],[806,2],[388,0],[388,1],[388,1],[126,0],[126,2],[127,2],[45,0],[45,3],[74,2],[74,3],[808,0],[808,2],[808,2],[148,0],[148,1],[152,1],[46,4],[78,4],[52,5],[80,2],[80,3],[80,4],[80,5],[80,5],[80,5],[809,1],[809,1],[809,1],[809,1],[810,1],[810,1],[811,1],[811,1],[813,1],[813,1],[814,1],[814,1],[812,2],[93,1],[93,1],[156,0],[156,1],[485,1],[252,3],[159,3],[159,3],[815,1],[815,3],[816,1],[816,3],[816,3],[816,3],[816,5],[816,5],[817,3],[818,1],[818,3],[130,1],[130,3],[130,4],[131,1],[131,3],[131,3],[131,4],[819,1],[819,2],[820,1],[820,2],[820,3],[820,2],[821,2],[822,2],[202,1],[202,3],[205,1],[205,3],[205,3],[150,1],[807,1],[122,1],[122,3],[125,1],[125,3],[125,3],[125,5],[823,3],[824,3],[824,3],[824,3],[824,1],[47,0],[47,1],[100,2],[75,2],[49,0],[49,2],[49,1],[79,0],[79,2],[104,3],[77,2],[105,0],[105,1],[825,4],[115,2],[115,3],[40,1],[40,3],[40,2],[58,1],[58,3],[827,1],[827,3],[828,1],[828,2],[829,1],[829,2],[358,1],[358,3],[831,1],[830,1],[830,3],[832,1],[832,3],[832,5],[832,3],[832,3],[832,5],[833,1],[833,3],[834,1],[834,3],[834,5],[834,3],[834,1],[834,3],[834,5],[834,3],[60,1],[60,4],[60,3],[128,4],[128,4],[835,1],[835,1],[836,1],[836,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,2],[226,2],[226,2],[226,1],[838,0],[838,3],[837,0],[837,3],[837,5],[12,3],[12,4],[25,3],[25,3],[25,4],[25,4],[25,5],[137,2],[137,3],[137,5],[140,2],[140,2],[140,4],[140,3],[140,3],[140,1],[140,4],[140,3],[474,0],[474,1],[477,1],[840,1],[840,2],[841,1],[841,2],[841,2],[841,3],[842,4],[843,3],[843,4],[843,4],[413,0],[413,1],[370,2],[371,2],[844,1],[844,3],[845,1],[845,3],[845,3],[845,5],[846,5],[847,2],[847,5],[847,5],[412,0],[412,1],[412,1],[415,2],[420,2],[420,4],[420,3],[853,0],[853,1],[853,1],[850,2],[852,2],[852,2],[851,6],[396,0],[396,1],[437,2],[399,2],[399,2],[438,0],[438,1],[451,3],[446,3],[446,3],[446,2],[862,0],[862,1],[862,3],[862,3],[863,1],[863,3],[863,3],[863,5],[863,3],[864,1],[864,1],[860,1],[860,3],[861,1],[861,2],[861,3],[861,3],[861,3],[861,4],[861,5],[865,1],[865,2],[865,1],[440,0],[440,1],[444,3],[448,3],[448,2],[866,1],[866,3],[867,1],[867,2],[867,3],[867,4],[867,5],[868,3],[869,3],[869,3],[869,3],[284,0],[284,1],[284,1],[870,0],[870,2],[870,2],[871,2],[872,1],[872,3],[874,1],[874,3],[874,3],[874,5],[873,2],[875,2],[875,2],[441,0],[441,1],[445,2],[449,2],[449,2],[442,0],[442,1],[876,2],[450,2],[450,2],[858,1],[859,1],[273,1],[273,2],[273,2],[273,2],[273,2],[273,4],[273,4],[273,4],[273,4],[273,6],[273,2],[273,3],[273,3],[273,3],[273,3],[273,3],[273,6],[273,6],[273,5],[273,5],[273,4],[273,3],[273,3],[273,3],[273,3],[273,3],[273,3],[273,2],[273,3],[273,2],[273,3],[276,1],[276,3],[276,2],[276,2],[276,2],[276,2],[276,2],[276,2],[276,2],[276,2],[276,3],[276,4],[276,5],[276,4],[276,4],[276,4],[276,6],[276,6],[276,2],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,4],[276,3],[276,6],[276,6],[276,5],[276,5],[276,4],[276,4],[276,5],[276,4],[276,3],[276,3],[276,4],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,2],[276,3],[276,2],[276,3],[276,2],[276,3],[276,2],[276,3],[276,3],[276,4],[276,3],[276,3],[276,3],[492,1],[492,3],[493,1],[493,3],[493,3],[493,5],[493,3],[493,5],[493,4],[493,3],[493,2],[493,2],[493,4],[889,1],[889,3],[222,1],[222,1],[222,2],[222,2],[222,1],[222,1],[222,1],[883,1],[883,1],[883,2],[883,2],[883,1],[883,1],[890,1],[890,3],[896,1],[894,3],[899,3],[826,1],[826,2],[826,2],[55,1],[895,1],[901,1],[901,1],[902,1],[223,1],[223,1],[905,1],[905,2],[905,3],[905,2],[906,2],[906,3],[906,4],[903,1],[903,1],[903,1],[904,1],[904,1],[907,1],[907,1],[878,0],[878,1],[908,2],[908,1],[910,2],[910,3],[910,2],[416,1],[416,3],[421,1],[421,2],[421,3],[421,3],[421,3],[421,4],[421,3],[421,3],[421,4],[421,4],[421,4],[421,5],[421,5],[856,1],[856,3],[857,1],[857,3],[857,3],[857,5],[857,3],[395,1],[398,1],[912,1],[912,1],[913,1],[913,1],[915,2],[917,2],[917,2],[854,4],[854,5],[855,2],[855,3],[920,0],[920,1],[920,1],[922,4],[922,2],[922,4],[922,4],[922,4],[918,1],[918,2],[918,2],[918,3],[919,1],[919,2],[919,2],[919,2],[919,2],[919,2],[919,2],[919,3],[919,2],[919,3],[919,3],[919,3],[919,3],[919,2],[919,3],[919,3],[919,3],[919,3],[921,0],[921,2],[921,4],[924,1],[924,3],[923,2],[923,2],[914,3],[914,3],[916,3],[916,3],[916,3],[916,3],[925,1],[927,1],[926,1],[928,1],[157,0],[157,5],[157,9],[160,2],[930,0],[930,2],[931,2],[931,2],[932,0],[933,0],[880,3],[880,4],[884,3],[884,3],[848,2],[849,3],[934,1],[935,1],[936,1],[937,1],[938,1],[939,1],[940,1],[941,1],[942,1],[943,1],[944,1],[945,1],[946,1],[947,1],[909,0],[909,1],[909,1],[909,2],[909,2],[911,1],[911,1],[911,2],[911,2],[911,2],[893,2],[893,2],[893,1],[893,1],[898,1],[898,2],[898,1],[898,2],[898,2],[898,2],[898,1],[898,1],[960,2],[960,2],[961,2],[961,2],[892,1],[892,1],[892,1],[892,1],[892,1],[892,1],[892,1],[891,2],[891,3],[897,3],[897,4],[897,3],[948,1],[948,1],[948,1],[954,1],[954,1],[954,1],[950,3],[950,4],[956,4],[956,5],[956,4],[949,0],[949,1],[955,1],[951,2],[951,2],[957,2],[969,4],[970,4],[970,4],[970,5],[970,7],[971,0],[971,1],[975,3],[973,2],[973,3],[973,3],[972,0],[972,2],[974,1],[974,3],[974,2],[976,0],[976,1],[978,4],[978,4],[977,2],[977,5],[977,4],[977,4],[977,4],[977,3],[985,0],[986,0],[207,3],[209,5],[209,4],[209,3],[209,3],[209,2],[979,1],[979,1],[980,0],[980,2],[980,2],[983,2],[983,2],[981,0],[981,3],[981,3],[984,2],[984,3],[984,3],[989,1],[989,1],[439,0],[439,1],[443,2],[447,2],[447,2],[952,6],[952,3],[958,6],[958,5],[958,4],[958,6],[958,5],[958,4],[958,6],[958,5],[958,6],[958,5],[963,4],[963,3],[963,5],[966,5],[966,6],[966,5],[965,4],[965,5],[968,5],[968,6],[968,5],[990,1],[990,1],[990,1],[990,1],[990,1],[990,1],[990,1],[990,1],[990,1],[990,1],[990,1],[990,1],[990,1],[990,1],[953,6],[953,3],[959,6],[959,5],[959,4],[959,6],[959,5],[959,4],[959,6],[959,5],[959,6],[959,5],[959,6],[959,5],[991,1],[991,1],[964,5],[964,3],[967,5],[967,6],[967,5],[992,0],[992,1],[424,1],[424,3],[62,1],[62,1],[62,2],[62,1],[62,1],[62,1],[62,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[28,2],[28,3],[28,4],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[993,4],[1006,3],[1006,4],[1006,4],[994,4],[1007,3],[1007,4],[1007,4],[1007,4],[1017,1],[1017,1],[995,3],[1008,3],[1008,3],[996,4],[996,3],[1009,3],[997,5],[1010,3],[1010,4],[1010,5],[1010,6],[1010,5],[1010,5],[998,4],[998,6],[1011,3],[1011,4],[1011,5],[1011,6],[1011,6],[1011,6],[999,4],[999,7],[999,6],[999,7],[999,7],[1012,3],[1012,4],[1012,5],[1012,6],[1012,7],[1012,7],[1012,7],[1012,7],[1018,0],[1018,1],[1019,1],[1019,2],[1000,3],[1000,4],[1013,3],[1013,3],[1013,4],[1013,4],[1001,5],[1014,3],[1014,4],[1014,5],[1002,2],[1003,4],[1015,3],[1015,4],[1015,4],[1004,3],[1004,4],[1004,5],[1016,4],[366,6],[374,6],[374,6],[374,6],[374,6],[374,7],[374,3],[374,2],[374,2],[374,2],[1021,1],[1024,1],[1027,1],[1028,1],[1022,1],[1022,3],[1025,1],[1025,3],[1025,3],[1025,5],[1029,3],[1030,3],[1030,2],[1030,1],[1031,1],[1032,1],[1033,1],[1023,0],[1023,2],[1026,2],[1026,2],[15,2],[29,2],[885,3],[885,3],[885,3],[881,2],[881,2],[881,2],[881,2],[881,2],[886,2],[886,2],[886,2],[886,2],[886,2],[886,2],[886,2],[886,2],[886,2],[886,2],[882,2],[882,4],[887,2],[887,4],[887,4],[887,3],[887,4],[887,3],[887,4],[887,4],[887,3],[887,4],[887,3],[888,1],[888,1],[1035,1],[1035,2],[1036,1],[1036,2],[1036,3],[1036,3],[1036,2],[1037,4],[1038,2],[1038,3],[1038,4],[1038,4],[1038,3],[1038,3],[1038,4],[1038,2],[1038,3],[1038,2],[1038,3],[1038,3],[1038,4],[1038,3],[1038,4],[1038,4],[1038,5],[1038,4],[1038,3]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 22: + + parser.suggestSetOptions(); + parser.suggestKeywords(['ALL']); + +break; +case 33: case 2167: + + parser.suggestKeywords(['TABLE', 'VIEW']); + +break; +case 34: + + parser.addDatabaseLocation(_$[$0-4], [ { name: $$[$0-4] } ]); + +break; +case 35: case 196: case 208: case 826: case 1444: case 2203: case 2262: + + parser.suggestDatabases(); + +break; +case 36: + + parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); + parser.suggestKeywords(['SET OWNER']); + +break; +case 37: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.suggestKeywords(['OWNER']); + +break; +case 38: + + parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); + parser.suggestKeywords(['ROLE', 'USER']); + +break; +case 43: case 54: case 77: + + parser.addColumnLocation($$[$0-3].location, [ $$[$0-3].identifier ]); + +break; +case 44: case 55: case 124: + + parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); + +break; +case 45: case 56: case 80: case 81: case 120: case 123: + + parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); + +break; +case 61: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 4 }, { value: 'COLUMNS', weight: 3 }, { value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); + } else { + parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); + } + +break; +case 62: case 88: + + parser.suggestKeywords(['COLUMNS']); + +break; +case 67: + + if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['LOCATION', 'CACHED IN', 'UNCACHED']); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['CACHED IN', 'UNCACHED']); + } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { + parser.suggestKeywords($$[$0-1].suggestKeywords); + } + +break; +case 69: case 154: case 423: case 428: case 429: + + parser.suggestKeywords(['PARTITION']); + +break; +case 70: case 155: + + parser.suggestKeywords(['VALUE']); + +break; +case 71: case 156: case 437: case 1471: + + parser.suggestKeywords(['=']); + +break; +case 73: + + if (!$$[$0-1]) { + parser.suggestKeywords(['COLUMN']); + } + parser.suggestColumns(); + +break; +case 74: + + parser.suggestKeywords(['DROP DEFAULT', 'SET BLOCK_SIZE', 'SET COMMENT', 'SET COMPRESSION', 'SET DEFAULT', + 'SET ENCODING']); + parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); + +break; +case 75: + + parser.suggestKeywords(['DEFAULT']); + parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); + +break; +case 76: + + parser.suggestKeywords(['BLOCK_SIZE', 'COMMENT', 'COMPRESSION', 'DEFAULT', 'ENCODING']); + parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); + +break; +case 78: case 225: case 666: case 2163: case 2223: + + parser.suggestKeywords(['STATS']); + +break; +case 79: case 122: case 159: case 462: case 1411: case 1415: case 1419: case 1454: case 1455: case 1500: case 1503: case 1610: case 1655: case 2253: + + parser.suggestColumns(); + +break; +case 82: case 184: + + parser.suggestKeywords(['ROLE', 'USER']); + +break; +case 86: + + parser.suggestKeywords(['ADD COLUMNS', 'ADD PARTITION', 'ADD RANGE PARTITION', 'ALTER', 'ALTER COLUMN', 'CHANGE', + 'DROP COLUMN', 'DROP PARTITION', 'DROP RANGE PARTITION', 'PARTITION', 'RECOVER PARTITIONS', 'RENAME TO', + 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', + 'SET ROW FORMAT', 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); + +break; +case 87: + + parser.suggestKeywords(['SET CACHED IN', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', + 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); + +break; +case 89: + + parser.suggestKeywords(['CACHED IN', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES','TBLPROPERTIES', 'UNCACHED']); + +break; +case 90: + + parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'OWNER ROLE', 'OWNER USER', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); + +break; +case 92: case 188: case 816: + + parser.suggestKeywords(['TO']); + +break; +case 93: case 189: case 1440: + + parser.suggestDatabases({ appendDot: true }); + +break; +case 94: case 407: + + parser.suggestKeywords(['PARTITIONS']); + +break; +case 111: + + parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); + +break; +case 125: case 473: + + parser.suggestFileFormats(); + +break; +case 128: + + if (!$$[$0-1]) { + parser.suggestKeywords(['WITH REPLICATION =']); + } + +break; +case 130: case 466: + + parser.suggestKeywords(['FORMAT']); + +break; +case 131: case 467: + + parser.suggestKeywords(['DELIMITED']); + +break; +case 132: case 1885: + + if ($$[$0-1].suggestKeywords) { + parser.suggestKeywords($$[$0-1].suggestKeywords); + } + +break; +case 149: + + parser.addColumnLocation($$[$0].location, [ $$[$0].identifier ]); + +break; +case 150: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'COLUMN', weight: 1 }, { value: 'PARTITION', weight: 1 }, { value: 'RANGE PARTITION', weight: 1 }, { value: 'IF EXISTS', weight: 2 }]); + parser.suggestColumns(); + } else { + parser.suggestKeywords(['PARTITION', 'RANGE PARTITION']); + } + +break; +case 161: case 190: case 210: case 660: case 680: case 684: case 686: case 823: case 1531: case 2162: case 2166: case 2211: case 2222: case 2242: + + parser.addTablePrimary($$[$0]); + +break; +case 162: case 675: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + +break; +case 163: + + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 169: case 465: case 746: case 747: case 748: case 1564: case 1592: case 1613: case 1626: case 1630: case 1648: case 1671: case 1697: case 1698: case 1775: case 1777: case 1845: case 1855: case 1862: case 1874: case 2020: case 2258: case 2302: case 2303: +this.$ = $$[$0]; +break; +case 176: + + if (!$$[$0]) { + this.$ = { suggestKeywords: ['LOCATION'] }; + } + +break; +case 182: + + parser.suggestKeywords(['AS', 'RENAME TO', 'SET OWNER']); + +break; +case 183: + + parser.suggestKeywords(['OWNER ROLE', 'OWNER USER']); + +break; +case 186: case 504: case 513: case 1574: case 1941: + + parser.suggestKeywords(['SELECT']); + +break; +case 191: case 685: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + +break; +case 192: + + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 193: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + +break; +case 194: + + parser.suggestKeywords(['ON DATABASE']); + +break; +case 195: + + parser.suggestKeywords(['DATABASE']); + +break; +case 197: + + parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); + parser.suggestKeywords(['IS']); + +break; +case 198: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.suggestKeywords(['NULL']); + +break; +case 201: case 216: case 230: case 661: case 671: case 672: case 691: case 905: case 914: case 915: case 2179: case 2212: + + parser.addTablePrimary($$[$0-1]); + +break; +case 202: case 1532: + + parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 204: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + parser.suggestKeywords(['AUTHORIZATION', 'FUNCTIONS']); + +break; +case 206: case 913: case 2183: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 211: + + parser.suggestKeywords(['METADATA']); + +break; +case 212: case 218: case 227: case 662: case 667: case 697: case 827: case 911: case 1426: case 2239: case 2259: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 214: + + parser.addTablePrimary($$[$0]); + parser.suggestKeywords(['METADATA']); + +break; +case 215: case 222: case 223: + + parser.addTablePrimary($$[$0-2]); + +break; +case 217: + + parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); + +break; +case 220: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); + +break; +case 221: + + parser.addTablePrimary($$[$0-3]); + if (!$$[$0-1]) { + parser.suggestKeywords(['TABLESAMPLE']); + } else if ($$[$0-1].suggestKeywords) { + parser.suggestKeywords($$[$0-1].suggestKeywords); + } + +break; +case 224: case 665: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['INCREMENTAL']); + +break; +case 226: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['STATS']); + +break; +case 229: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 240: + + if ($$[$0-1]) { + parser.suggestKeywords(['TABLE']); + } else { + parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + +break; +case 242: + + parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); + +break; +case 243: case 266: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 245: + + if (!$$[$0-2]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 246: + + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 247: + + parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); + +break; +case 249: + + var keywords = []; + if (!$$[$0]) { + keywords.push('LOCATION'); + } + if (!$$[$0-1] && !$$[$0]) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + +break; +case 279: + + var keywords = []; + if (!$$[$0-10] && !$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'LIKE', weight: 1 }); + keywords.push({ value: 'LIKE PARQUET', weight: 1 }); + } else { + if (!$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + keywords.push({ value: 'PARTITION BY', weight: 12 }); + } + if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'SORT BY', weight: 11 }); + } + if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'COMMENT', weight: 10 }); + } + if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'ROW FORMAT', weight: 7 }); + } else if ($$[$0-6] && $$[$0-6].suggestKeywords && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 7)); + } + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 6 }); + } + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'STORED AS', weight: 5 }); + } + if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'LOCATION', weight: 4 }); + } + if (!$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'CACHED IN', weight: 3 }, { value: 'UNCACHED', weight: 3 }); + } else if ($$[$0-2] && $$[$0-2].suggestKeywords && !$$[$0-1]) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 3)); + } + if (!$$[$0-1]) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + parser.suggestKeywords(keywords); + +break; +case 280: + + parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); + this.$ = $$[$0]; + +break; +case 285: case 286: case 1432: case 1435: +this.$ = []; +break; +case 289: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + parser.suggestKeywords(['PARQUET']); + +break; +case 291: case 607: case 609: case 1346: case 1349: case 1433: case 1473: case 1538: case 1679: case 1858: case 1938: case 1995: +this.$ = $$[$0-1]; +break; +case 292: case 608: case 610: +this.$ = $$[$0-3]; +break; +case 295: + + parser.suggestKeywords(['PRIMARY KEY']); + +break; +case 296: case 1430: case 1566: +this.$ = [$$[$0]]; +break; +case 297: +this.$ = $$[$0-2].concat($$[$0]); +break; +case 302: case 304: case 460: + + parser.checkForKeywords($$[$0-1]); + +break; +case 303: case 305: + + parser.checkForKeywords($$[$0-3]); + +break; +case 306: + + this.$ = $$[$0-2]; + this.$.type = $$[$0-1]; + var keywords = []; + if (!$$[$0]['primary']) { + keywords.push('PRIMARY KEY'); + } + if (!$$[$0]['encoding']) { + keywords.push('ENCODING'); + } + if (!$$[$0]['compression']) { + keywords.push('COMPRESSION'); + } + if (!$$[$0]['default']) { + keywords.push('DEFAULT'); + } + if (!$$[$0]['block_size']) { + keywords.push('BLOCK_SIZE'); + } + if (!$$[$0]['null']) { + keywords.push('NOT NULL'); + keywords.push('NULL'); + } + if (!$$[$0]['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 307: case 340: case 346: case 347: case 360: case 363: case 372: case 374: + + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + +break; +case 310: case 1913: +this.$ = {}; +break; +case 312: + + this.$ = {}; + this.$[$$[$0]] = true; + +break; +case 313: + + $$[$0-1][$$[$0]] = true; + +break; +case 318: +this.$ = 'primary'; +break; +case 319: +this.$ = 'encoding'; +break; +case 320: +this.$ = 'compression'; +break; +case 321: +this.$ = 'default'; +break; +case 322: +this.$ = 'block_size'; +break; +case 323: case 324: +this.$ = 'null'; +break; +case 325: +this.$ = 'comment'; +break; +case 327: + + parser.suggestKeywords(['NULL']); + +break; +case 345: case 564: case 575: case 598: + + parser.suggestKeywords(parser.getTypeKeywords()); + +break; +case 359: case 362: + + parser.suggestKeywords(['COMMENT']); + +break; +case 383: + + parser.suggestKeywords(['KEY']); + +break; +case 390: case 391: case 394: case 420: case 488: case 489: case 493: case 2021: + + parser.suggestKeywords(['BY']); + +break; +case 395: case 398: + + parser.suggestKeywords(['HASH', 'RANGE']); + +break; +case 436: + + parser.suggestKeywords(['VALUE', 'VALUES']); + +break; +case 438: case 444: case 447: case 903: + + parser.suggestFunctions(); + +break; +case 439: + + if ($$[$0].endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + +break; +case 440: case 443: case 446: + + parser.suggestKeywords(['<', '<=']); + +break; +case 441: case 1386: case 1389: + + parser.suggestKeywords(['VALUES']); + +break; +case 472: case 1573: + + parser.suggestKeywords(['AS']); + +break; +case 481: + + if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 2 }, { value: 'LINES TERMINATED BY', weight: 1 }] }; + } else if ($$[$0-1] && $$[$0-1].suggestKeywords && !$$[$0]) { + this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat(['LINES TERMINATED BY']) }; + } else if (!$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 1 }] }; + } + +break; +case 485: +this.$ = { suggestKeywords: ['ESCAPED BY'] }; +break; +case 487: case 492: + + parser.suggestKeywords(['TERMINATED BY']); + +break; +case 497: case 498: + + parser.suggestKeywords(['SERDEPROPERTIES']); + +break; +case 506: + + parser.commitLocations(); + +break; +case 508: case 521: case 537: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + +break; +case 509: case 522: + + if (!$$[$0-6]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 512: + + var keywords = [{value: 'AS', weight: 1 }]; + if (!$$[$0-1]) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + +break; +case 523: case 542: + + parser.suggestKeywords(['RETURNS']); + +break; +case 524: case 543: + + parser.suggestKeywords(['LOCATION']); + +break; +case 525: + + parser.suggestKeywords(['SYMBOL']); + +break; +case 535: case 653: + + parser.suggestKeywords(['FUNCTION']); + +break; +case 536: + + if (!$$[$0-13]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 544: + + if (!$$[$0-1]) { + parser.suggestKeywords([{value: 'INIT_FN', weight: 2 }, {value: 'UPDATE_FN', weight: 1 }]); + } else { + parser.suggestKeywords([{value: 'UPDATE_FN', weight: 1 }]); + } + +break; +case 545: + + parser.suggestKeywords(['MERGE_FN']); + +break; +case 546: + + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{value: 'PREPARE_FN', weight: 5 }, {value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{value: 'INTERMEDIATE', weight: 1 }]); + } + +break; +case 565: + + parser.suggestKeywords(['...']); + +break; +case 600: + + parser.suggestFunctions(); + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + +break; +case 604: + + if (!$$[$0-1]) { + parser.suggestKeywords(['COMMENT']); + } + +break; +case 620: + + parser.addCommonTableExpressions($$[$0-1]); + +break; +case 637: + + parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'FUNCTION', 'INCREMENTAL STATS', 'ROLE', 'SCHEMA', 'STATS', 'TABLE', 'VIEW']); + +break; +case 641: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + +break; +case 642: + + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + +break; +case 644: case 649: case 654: + + if (!$$[$0-3]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 647: case 648: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + +break; +case 651: + + parser.suggestKeywords(['AGGREGATE']); + +break; +case 664: + + parser.addTablePrimary($$[$0]); + parser.suggestKeywords(['INCREMENTAL']); + +break; +case 670: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['PARTITION']); + +break; +case 674: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 677: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PURGE']); + } + +break; +case 681: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 682: + + parser.addTablePrimary($$[$0]); + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 687: + + parser.suggestKeywords(['TABLE']); + +break; +case 688: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 692: + + parser.addTablePrimary($$[$0-1]); + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 695: + + parser.suggestKeywords(['FROM']); + if (!$$[$0-1]) { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + +break; +case 698: + + var keywords = [{ value: 'FULL JOIN', weight: 1 }, { value: 'FULL OUTER JOIN', weight: 1 }, { value: 'JOIN', weight: 1 }, { value: 'LEFT JOIN', weight: 1 }, { value: 'LEFT OUTER JOIN', weight: 1 }, { value: 'RIGHT JOIN', weight: 1 }, { value: 'RIGHT OUTER JOIN', weight: 1 }, { value: 'INNER JOIN', weight: 1 }, { value: 'LEFT ANTI JOIN', weight: 1 }, { value: 'LEFT SEMI JOIN', weight: 1 }, { value: 'RIGHT ANTI JOIN', weight: 1 }, { value: 'RIGHT SEMI JOIN', weight: 1 }]; + if (!$$[$0]) { + keywords.push({ value: 'WHERE', weight: 3 }); + } + if ($$[$0-2].suggestJoinConditions) { + parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); + } + if ($$[$0-2].suggestJoins) { + parser.suggestJoins($$[$0-2].suggestJoins); + } + if ($$[$0-2].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2)); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + +break; +case 711: case 922: case 924: + + parser.addStatementLocation(_$[$0]); + +break; +case 713: case 714: + + parser.suggestDdlAndDmlKeywords(['EXPLAIN']); + +break; +case 715: + + parser.suggestKeywords(['INSERT', 'SELECT']); + +break; +case 729: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); + this.$ = { selectList: $$[$0] }; + +break; +case 730: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); + this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } + +break; +case 731: + + parser.selectListNoTableSuggest($$[$0-1], $$[$0-3]); + +break; +case 733: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); + if ($$[$0].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1] && !$$[$0-2]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$$[$0-1]) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($$[$0]); + } + if ($$[$0].suggestFunctions) { + parser.suggestFunctions(); + } + if ($$[$0].suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($$[$0].suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($$[$0].suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($$[$0].suggestAggregateFunctions && (!$$[$0-2] || $$[$0-2] === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + +break; +case 734: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2] || $$[$0-2] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-1] && !$$[$0-2]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$$[$0-1]) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 735: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); + +break; +case 736: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); + parser.selectListNoTableSuggest($$[$0-1], $$[$0-3]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + +break; +case 737: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-3] || $$[$0-3] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-2] && !$$[$0-3]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$$[$0-2]) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 738: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-2]); + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 739: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]), _$[$0-3]); + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 740: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); + parser.checkForSelectListKeywords($$[$0-1]); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + +break; +case 749: case 750: + + this.$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 751: case 1849: case 1850: + + this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 757: + + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + +break; +case 758: case 759: + + parser.suggestKeywords(['ANTI JOIN', 'INNER JOIN', 'JOIN', 'OUTER JOIN', 'SEMI JOIN']); + +break; +case 760: case 761: case 762: case 763: case 764: case 765: case 767: case 768: case 769: case 770: case 772: case 773: case 774: case 775: +this.$ = { suggestKeywords: ['JOIN'] }; +break; +case 766: +this.$ = { suggestKeywords: ['OUTER'] }; +break; +case 771: case 776: +this.$ = { suggestKeywords: ['ANTI', 'INNER', 'OUTER', 'SEMI'] }; +break; +case 777: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true, true, true, true]), + cursorAtEnd: !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] + }; + +break; +case 778: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [{ value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true, true]), + cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] + } + +break; +case 779: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true]), + cursorAtEnd: !$$[$0-1] && !$$[$0] + } + +break; +case 780: + + this.$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'OFFSET', weight: 2 }], [true]), + cursorAtEnd: !$$[$0] + } + +break; +case 795: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + +break; +case 796: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + +break; +case 798: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + +break; +case 801: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], + [true, true, true, true, true]); + if ($$[$0-6].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 1)); + } + this.$ = parser.getValueExpressionKeywords($$[$0-6], keywords); + this.$.cursorAtEnd = !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if ($$[$0-6].columnReference) { + this.$.columnReference = $$[$0-6].columnReference; + } + if (!$$[$0-4]) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-6], _$[$0-6]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + +break; +case 802: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], + [true, true, true, true]); + if ($$[$0-5].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 6)); + } + if ($$[$0-5].valueExpression) { + this.$ = parser.getValueExpressionKeywords($$[$0-5].valueExpression, keywords); + if ($$[$0-5].valueExpression.columnReference) { + this.$.columnReference = $$[$0-5].valueExpression.columnReference; + } + } else { + this.$ = { suggestKeywords: keywords }; + } + this.$.cursorAtEnd = !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if (!$$[$0-3] && !$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + +break; +case 803: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], + [true, true, true]); + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + if (!$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + +break; +case 804: + + var keywords = parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true]); + if ($$[$0-3].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].suggestKeywords, 4)); + } + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-3], _$[$0-3]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + +break; +case 805: + + var keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'OFFSET', weight: 2 }], [true]); + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]); + this.$.limitClauseLocation = _$[$0-2]; + +break; +case 809: case 846: + + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); + +break; +case 810: + + parser.suggestKeywords(['TO GROUP']); + +break; +case 811: case 848: case 2219: case 2220: + + parser.suggestKeywords(['GROUP']); + +break; +case 813: case 850: + + if ($$[$0-1].isCreate) { + parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); + } else { + parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); + } + +break; +case 814: + + if ($$[$0-2].isCreate) { + parser.suggestKeywords(['DATABASE', 'SERVER']); + } else { + parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); + } + +break; +case 817: case 854: case 2199: + + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + +break; +case 818: case 820: + + if (!$$[$0-1]) { + parser.suggestKeywords(['WITH GRANT OPTION']); + } + +break; +case 822: case 2195: + + parser.addDatabaseLocation(_$[$0], [ { name: $$[$0] } ]); + +break; +case 831: +this.$ = { isCreate: true }; +break; +case 841: + + parser.suggestKeywords(['GRANT OPTION']); + +break; +case 842: + + parser.suggestKeywords(['OPTION']); + +break; +case 847: + + parser.suggestKeywords(['FROM GROUP']); + +break; +case 851: + + if ($$[$0-2].isCreate) { + parser.suggestKeywords(['DATABASE', 'SERVER']); + } else { + parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); + } + +break; +case 853: + + parser.suggestKeywords(['FROM']); + +break; +case 859: +this.$ = { selectList: $$[$0] }; +break; +case 860: + + this.$ = $$[$0-1]; + this.$.cursorAtEnd = true; + +break; +case 861: + + parser.selectListNoTableSuggest($$[$0], $$[$0-2]); + +break; +case 862: + + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2] || $$[$0-2] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-1] && !$$[$0-2]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$$[$0-1]) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns(); + +break; +case 868: + + var keywords = $$[$0-2].suggestKeywords && !$$[$0-1] ? parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2) : []; + if (!$$[$0-1]) { + keywords = keywords.concat(['[NOSHUFFLE]', '[SHUFFLE]', 'SELECT', 'VALUES']) + } else { + keywords = keywords.concat(['SELECT']) + } + parser.suggestKeywords(keywords); + +break; +case 878: + + $$[$0-1].owner = 'upsert'; + parser.addTablePrimary($$[$0-1]); + +break; +case 879: + + parser.suggestKeywords(['INTO']); + +break; +case 880: case 886: + + if (!$$[$0-1]) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 881: + + if (!$$[$0-3]) { + parser.suggestKeywords(['TABLE']); + } + $$[$0-1].owner = 'upsert'; + parser.addTablePrimary($$[$0-1]); + +break; +case 883: + + $$[$0-1].owner = 'upsert'; + parser.addTablePrimary($$[$0-1]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'upsert'; + } + +break; +case 884: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + if (!$$[$0]) { + this.$ = { suggestKeywords: ['PARTITION'] }; + } + +break; +case 885: + + parser.suggestKeywords(['INTO', 'OVERWRITE']); + +break; +case 887: + + if (!$$[$0-4]) { + parser.suggestKeywords(['TABLE']); + } + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + +break; +case 889: case 890: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + +break; +case 906: + + parser.suggestKeywords(['DATA INPATH']); + +break; +case 907: + + parser.suggestKeywords(['INPATH']); + +break; +case 909: + + if (!$$[$0-1]) { + parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); + } else { + parser.suggestKeywords(['INTO TABLE']); + } + +break; +case 910: + + parser.suggestKeywords([ 'TABLE' ]); + +break; +case 919: case 920: + + return parser.yy.result; + +break; +case 921: + + parser.prepareNewStatement(); + +break; +case 923: case 925: + + parser.addStatementLocation(_$[$0-3]); + +break; +case 943: + + parser.suggestDdlAndDmlKeywords(); + +break; +case 1347: case 1350: case 1474: +this.$ = ''; +break; +case 1370: case 1373: + + parser.yy.correlatedSubQuery = false; + +break; +case 1371: case 1375: + + parser.suggestKeywords(['EXISTS']); + +break; +case 1374: + + parser.suggestKeywords(['NOT EXISTS']); + +break; +case 1385: case 1387: case 1388: case 1390: + + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + +break; +case 1423: case 1475: + + parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0] } ] }; + +break; +case 1424: case 1476: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; + +break; +case 1425: + + // This is a special case for expression like "SELECT | FROM db.table.col" + this.$ = { identifierChain: [ { name: $$[$0-3] }, { name: $$[$0-1] } ].concat($$[$0]) }; + +break; +case 1427: case 1441: + + parser.suggestDatabases(); + this.$ = { identifierChain: [{ name: $$[$0-2] }] }; + +break; +case 1428: + + // You can have statements like 'SELECT ... FROM testTable t, t.|' + parser.suggestTablesOrColumns($$[$0-2]); + +break; +case 1429: + + // TODO: switch to suggestColumns, it's currently handled in sqlAutocompleter2.js + // Issue is that suggestColumns is deleted if no tables are defined and this is + // only cases like "SELECT | FROM db.table.col" + parser.suggestTables({ identifierChain: [{ name: $$[$0-3] }, { name: $$[$0-1] }].concat($$[$0]) }); + +break; +case 1431: + + $$[$0-1].push($$[$0]); + +break; +case 1434: case 1540: case 1860: +this.$ = $$[$0-2]; +break; +case 1436: +this.$ = { name: $$[$0] }; +break; +case 1438: +this.$ = [{ name: $$[$0] }]; +break; +case 1439: +this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; +break; +case 1453: case 1615: case 1616: case 1622: case 1623: case 1934: case 2022: + + parser.valueExpressionSuggest(); + +break; +case 1461: case 1464: + + if (!$$[$0]) { + this.$ = { suggestKeywords: ['WITH REPLICATION ='] }; + } + +break; +case 1466: case 2180: + + parser.suggestKeywords(['IN']); + +break; +case 1470: + + parser.suggestKeywords(['REPLICATION =']); + +break; +case 1477: + + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + +break; +case 1478: + + parser.suggestTablesOrColumns($$[$0-2]); + +break; +case 1480: +this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; +break; +case 1483: + + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + +break; +case 1484: case 1811: + + parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); + +break; +case 1486: + + this.$ = [ $$[$0].identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); + +break; +case 1487: + + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $$[$0-2].push($$[$0].identifier); + parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); + +break; +case 1488: case 1496: + + if ($$[$0].insideKey) { + parser.suggestKeyValues({ identifierChain: [ $$[$0].identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1489: case 1497: + + if ($$[$0].insideKey) { + parser.suggestKeyValues({ identifierChain: $$[$0-2].concat([ $$[$0].identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1492: + + parser.suggestColumns({ + identifierChain: $$[$0-2] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 1493: + + parser.suggestColumns({ + identifierChain: $$[$0-4] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 1494: +this.$ = [ $$[$0].identifier ]; +break; +case 1495: + + $$[$0-2].push($$[$0].identifier); + +break; +case 1498: + + if ($$[$0-2].insideKey) { + parser.suggestKeyValues({ identifierChain: $$[$0-4].concat([ $$[$0-2].identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1499: + + if ($$[$0-2].insideKey) { + parser.suggestKeyValues({ identifierChain: [ $$[$0-2].identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1501: + + parser.suggestColumns({ identifierChain: $$[$0-2] }); + +break; +case 1502: + + parser.suggestColumns({ identifierChain: $$[$0-4] }); + +break; +case 1504: +this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; +break; +case 1505: +this.$ = { identifier: { name: $$[$0-3], keySet: true }, location: _$[$0-3] }; +break; +case 1506: +this.$ = { identifier: { name: $$[$0-2], keySet: true }, location: _$[$0-2] }; +break; +case 1507: +this.$ = { identifier: { name: $$[$0-3] }, insideKey: true }; +break; +case 1508: +this.$ = { identifier: { name: $$[$0-3] }}; +break; +case 1533: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 1535: + + parser.addTablePrimary($$[$0]); + if (!$$[$0-2]) { + parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); + } + +break; +case 1536: + + if (!$$[$0-1]) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + parser.suggestDatabases(); + +break; +case 1537: + + if (!$$[$0-2]) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 1543: + + parser.addCommonTableExpressions($$[$0-3]); + +break; +case 1544: case 1545: case 1569: + + parser.addCommonTableExpressions($$[$0-2]); + +break; +case 1559: + + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + +break; +case 1560: + + parser.suggestKeywords(['ALL', 'DISTINCT']); + +break; +case 1567: +this.$ = $$[$0-2].concat([$$[$0]]); +break; +case 1571: + + parser.addCommonTableExpressions($$[$0-4]); + +break; +case 1572: + + parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); + $$[$0-1].alias = $$[$0-4]; + this.$ = $$[$0-1]; + +break; +case 1579: case 1580: + + parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); + +break; +case 1581: + + var keywords = []; + + parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); + + if ($$[$0-3]) { + if (typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + keywords.push({ value: 'USING', weight: 3 }); + } + if ($$[$0-3].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); + } + if ($$[$0-3].tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); + } + if ($$[$0-3].tableReferenceList.suggestJoins) { + parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); + } + if ($$[$0-3].tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { + keyword.weight = 1.1; + } + }); + + if ($$[$0-3].tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($$[$0-3].tableReferenceList); + } + } + } + + if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + keywords = keywords.concat(['ANTI', 'CROSS', 'INNER', 'LEFT ANTI', 'LEFT INNER', 'LEFT SEMI', 'OUTER', 'RIGHT ANTI', 'RIGHT INNER', 'RIGHT SEMI', 'SEMI']); + parser.suggestKeywords(keywords); + return; + } + + if ($$[$0-1].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].suggestFilters) { + parser.suggestFilters($$[$0-1].suggestFilters); + } + if ($$[$0-1].suggestGroupBys) { + parser.suggestGroupBys($$[$0-1].suggestGroupBys); + } + if ($$[$0-1].suggestOrderBys) { + parser.suggestOrderBys($$[$0-1].suggestOrderBys); + } + + if ($$[$0-1].empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'ANTI JOIN', weight: 1 }, + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT ANTI JOIN', weight: 1 }, + { value: 'LEFT INNER JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'LEFT SEMI JOIN', weight: 1 }, + { value: 'OUTER JOIN', weight: 1 }, + { value: 'RIGHT ANTI JOIN', weight: 1 }, + { value: 'RIGHT INNER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 }, + { value: 'RIGHT SEMI JOIN', weight: 1 }, + { value: 'SEMI JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + +break; +case 1582: + + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$$[$0-1]) { + parser.addClauseLocation('whereClause', _$[$0-2]); + parser.addClauseLocation('limitClause', _$[$0-2]); + return; + } + parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); + var keywords = []; + + if ($$[$0-1].suggestColRefKeywords) { + parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); + parser.addColRefIfExists($$[$0-1]); + } + + if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + +break; +case 1586: + + this.$ = { tableReferenceList : $$[$0] } + +break; +case 1587: case 1867: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 1589: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'WHERE', weight: 9 }, + { value: 'GROUP BY', weight: 8 }, + { value: 'HAVING', weight: 7 }, + { value: 'ORDER BY', weight: 5 }, + { value: 'LIMIT', weight: 3 }, + { value: 'OFFSET', weight: 2 }], + [true, true, true, true, true, true]); + + if (keywords.length > 0) { + this.$ = { suggestKeywords: keywords, empty: !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + } else { + this.$ = {}; + } + + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + +break; +case 1593: + + if ($$[$0].suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 1594: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1597: + + this.$ = { valueExpression: $$[$0] }; + +break; +case 1598: case 1637: + + parser.suggestSelectListAliases(); + +break; +case 1599: + + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1600: + + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1627: + + if ($$[$0].emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 1628: + + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1632: + + this.$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 1633: case 1634: case 1635: +this.$ = { emptyOrderBy: false }; +break; +case 1636: +this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]); +break; +case 1639: + + this.$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 1640: + + this.$ = { suggestKeywords: ['ASC', 'DESC'] }; + +break; +case 1643: + + this.$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; + +break; +case 1646: + + parser.suggestKeywords(['FIRST', 'LAST']); + +break; +case 1653: + + parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); + this.$ = $$[$0]; + +break; +case 1659: case 1664: + + parser.suggestFunctions({ types: ['BIGINT'] }); + +break; +case 1660: case 1665: + + delete parser.yy.result.suggestColumns; + +break; +case 1669: case 1670: + + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1672: + + // verifyType($$[$0], 'NUMBER'); + this.$ = $$[$0]; + $$[$0].types = ['NUMBER']; + +break; +case 1673: case 1674: case 1675: case 1676: case 1677: case 1684: case 1685: case 1686: case 1687: case 1688: case 1689: case 1695: case 1696: case 1717: case 1771: case 1772: case 1834: +this.$ = { types: [ 'BOOLEAN' ] }; +break; +case 1678: + + this.$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + +break; +case 1680: case 1681: case 1682: case 1683: + + parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1690: case 1691: + + // verifyType($$[$0-2], 'BOOLEAN'); + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1692: case 1693: case 1694: + + // verifyType($$[$0-2], 'NUMBER'); + // verifyType($$[$0], 'NUMBER'); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 1700: + + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'ILIKE', 'IREGEXP', 'LIKE', 'REGEXP', 'RLIKE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1701: case 1703: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 1702: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1704: + + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1705: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 1706: + + parser.suggestFunctions(); + parser.suggestColumns(); + this.$ = { types: [ 'T' ] }; + +break; +case 1707: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 1708: + + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 1709: + + var keywords = ['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'NOT DISTINCT FROM', 'NOT UNKNOWN', 'UNKNOWN']; + parser.suggestKeywords(keywords); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1710: + + var keywords = ['FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'UNKNOWN']; + parser.suggestKeywords(keywords); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1711: + + parser.suggestKeywords(['FROM']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1712: case 1713: case 1714: + + parser.suggestKeywords(['NOT']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1715: + + parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1716: + + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 1718: + + this.$ = $$[$0-1]; + +break; +case 1719: + + parser.valueExpressionSuggest(); + this.$ = { types: ['T'], typeSet: true }; + +break; +case 1720: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1721: case 1722: case 1723: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1724: case 1725: case 1726: case 1727: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0].types); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 1728: case 1730: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1729: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + +break; +case 1731: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; + +break; +case 1732: case 1733: case 1734: case 1735: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 1736: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-3].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1737: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1738: case 1739: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; +break; +case 1740: case 1741: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; +break; +case 1742: + + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-3].suggestFilters }; + +break; +case 1743: + + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 1744: case 1748: + + parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1745: + + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1746: + + if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; + +break; +case 1747: + + if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 1749: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1750: case 1752: case 1754: case 1756: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + +break; +case 1751: case 1755: + + parser.addColRefIfExists($$[$0]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 1753: case 1757: + + parser.addColRefIfExists($$[$0-2]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 1758: case 1759: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 1760: case 1761: case 1762: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 1763: case 1764: case 1765: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions(['NUMBER']); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 1766: case 1767: case 1768: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 1769: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 1770: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 1773: + + parser.valueExpressionSuggest(undefined, $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1774: + + parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1776: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 1778: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 1779: + + this.$ = $$[$0]; + this.$.suggestFilters = $$[$0-1].suggestFilters; + +break; +case 1780: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 1781: case 2068: case 2073: case 2074: +this.$ = { types: [ 'T' ] }; +break; +case 1782: case 1784: + + $$[$0].position = 1; + +break; +case 1783: + + $$[$0].position = $$[$0-2].position + 1; + this.$ = $$[$0]; + +break; +case 1785: + + $$[$0-2].position += 1; + +break; +case 1786: + + $$[$0-2].position = 1; + +break; +case 1787: + + $$[$0-4].position += 1; + +break; +case 1788: + + parser.valueExpressionSuggest(); + $$[$0-2].position += 1; + +break; +case 1789: + + parser.valueExpressionSuggest(); + $$[$0-4].position += 1; + +break; +case 1790: + + parser.suggestValueExpressionKeywords($$[$0-3]); + +break; +case 1791: case 1792: + + parser.valueExpressionSuggest(); + this.$ = { cursorAtStart : true, position: 1 }; + +break; +case 1793: case 1794: + + parser.valueExpressionSuggest(); + this.$ = { position: 2 }; + +break; +case 1798: +this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; +break; +case 1799: + + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].expression) { + this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } + } else { + this.$ = { function: fn, types: parser.findReturnTypes(fn) } + } + +break; +case 1800: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 1802: +this.$ = { types: [ 'NULL' ] }; +break; +case 1803: +this.$ = { types: [ 'TIMESTAMP' ] }; +break; +case 1805: + + if ($$[$0].suggestKeywords) { + this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; + } else { + this.$ = { types: ['COLREF'], columnReference: $$[$0] }; + } + +break; +case 1806: + + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); + } + this.$ = { types: parser.findReturnTypes(fn) }; + +break; +case 1807: case 1982: case 1983: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-1]) }; + +break; +case 1810: + + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; + this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } + +break; +case 1814: + + parser.suggestKeywords(['DAYS', 'HOURS', 'MICROSECONDS', 'MILLISECONDS', 'MINUTES', 'MONTHS', 'NANOSECONDS', 'SECONDS', 'WEEKS', 'YEARS']); + +break; +case 1819: + + parser.suggestValues($$[$0]); + +break; +case 1820: +this.$ = { types: [ 'NUMBER' ] }; +break; +case 1826: case 1828: +this.$ = $$[$0-1] + $$[$0]; +break; +case 1827: +this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; +break; +case 1832: case 1833: + + if (/\$\{[^}]*\}/.test($$[$0])) { + parser.addVariableLocation(_$[$0], $$[$0]); + this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } + } else { + this.$ = { types: [ 'STRING' ] } + } + +break; +case 1835: + + this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 1836: + + this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 1841: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); + } else { + this.$ = { valueExpression: $$[$0-1] } + } + +break; +case 1842: + + parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); + this.$ = { asterisk: true } + +break; +case 1843: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + } + +break; +case 1844: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); + this.$ = { suggestAggregateFunctions: true }; + +break; +case 1846: +this.$ = [ $$[$0] ]; +break; +case 1847: + + $$[$0-2].push($$[$0]); + +break; +case 1852: + + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 1853: + + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 1854: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 1856: case 1857: case 1859: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + +break; +case 1870: + + this.$ = $$[$0]; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + this.$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + +break; +case 1877: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-3]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 1878: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-4]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 1879: +this.$ = { joinType: $$[$0-1] }; +break; +case 1880: +this.$ = { joinType: $$[$0-2] }; +break; +case 1884: + + if ($$[$0-3].suggestKeywords) { + parser.suggestKeywords($$[$0-3].suggestKeywords); + } + +break; +case 1888: + + if (!$$[$0-2]) { + parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']); + } + if (!$$[$0-2] && parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $$[$0-3], + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 1893: +this.$ = 'JOIN'; +break; +case 1894: +this.$ = 'ANTI JOIN'; +break; +case 1895: +this.$ = 'CROSS JOIN'; +break; +case 1896: +this.$ = 'INNER JOIN'; +break; +case 1897: +this.$ = 'OUTER JOIN'; +break; +case 1898: +this.$ = 'SEMI JOIN'; +break; +case 1899: +this.$ = 'FULL JOIN'; +break; +case 1900: +this.$ = 'FULL OUTER JOIN'; +break; +case 1901: +this.$ = 'LEFT JOIN'; +break; +case 1902: +this.$ = 'LEFT ANTI JOIN'; +break; +case 1903: +this.$ = 'LEFT INNER JOIN'; +break; +case 1904: +this.$ = 'LEFT OUTER JOIN'; +break; +case 1905: +this.$ = 'LEFT SEMI JOIN'; +break; +case 1906: +this.$ = 'RIGHT JOIN'; +break; +case 1907: +this.$ = 'RIGHT ANTI JOIN'; +break; +case 1908: case 1909: +this.$ = 'RIGHT OUTER JOIN'; +break; +case 1910: +this.$ = 'RIGHT SEMI JOIN'; +break; +case 1911: +this.$ = { noJoinCondition: true, suggestKeywords: ['ON', 'USING'] }; +break; +case 1912: +this.$ = { valueExpression: $$[$0] }; +break; +case 1917: + + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + +break; +case 1918: + + this.$ = { + primary: $$[$0-2] + } + if ($$[$0-2].identifierChain) { + if ($$[$0-1]) { + $$[$0-2].alias = $$[$0-1].alias; + parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + parser.addTablePrimary($$[$0-2]); + } + var keywords = []; + if ($$[$0] && $$[$0].suggestKeywords) { + keywords = $$[$0].suggestKeywords; + } else if (!$$[$0-1] && !$$[$0]) { + keywords = [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }]; + } else if (!$$[$0]) { + keywords = [{ value: 'TABLESAMPLE', weight: 3 }]; + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 1919: + + this.$ = { + primary: $$[$0-2] + }; + + if ($$[$0-1]) { + this.$.primary.alias = $$[$0-1].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); + parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + + var keywords = []; + if ($$[$0] && $$[$0].suggestKeywords) { + keywords = $$[$0].suggestKeywords; + } else { + keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1]], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }], [true, true]); + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 1920: + + if ($$[$0-1]) { + parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + +break; +case 1921: + + if ($$[$0-1]) { + $$[$0-2].alias = $$[$0-1].alias; + parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + parser.addTablePrimary($$[$0-2]); + +break; +case 1922: + + if ($$[$0-1]) { + parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); + parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias); + } + +break; +case 1929: +this.$ = { suggestKeywords: ['REPEATABLE()'] }; +break; +case 1931: + + parser.suggestKeywords(['SYSTEM()']); + +break; +case 1936: + + parser.pushQueryState(); + +break; +case 1937: + + parser.popQueryState(); + +break; +case 1939: + + if ($$[$0-1]) { + $$[$0-2].alias = $$[$0-1].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); + parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + this.$ = $$[$0-2]; + +break; +case 1942: + + var subQuery = parser.getSubQuery($$[$0]); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + this.$ = subQuery; + +break; +case 1959: case 1960: case 1961: case 1962: +this.$ = { alias: $$[$0], location: _$[$0] }; +break; +case 1968: + + if (!$$[$0]) { + $$[$0-1].suggestKeywords = ['OVER']; + } + +break; +case 1976: + + parser.suggestKeywords(['OVER']); + +break; +case 1980: case 1981: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 1992: +this.$ = { expression: $$[$0-1] }; +break; +case 1993: + + parser.valueExpressionSuggest(); + this.$ = { position: 1 } + +break; +case 1994: + + parser.suggestValueExpressionKeywords($$[$0-1]); + +break; +case 2002: case 2080: case 2121: +this.$ = { types: parser.findReturnTypes($$[$0-2]) }; +break; +case 2003: +this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; +break; +case 2004: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-3], 1); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 2005: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2006: + + parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 2014: case 2015: + + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + +break; +case 2016: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$$[$0-2]) { + parser.suggestKeywords(['PARTITION BY']); + } + +break; +case 2017: + + if (!$$[$0-1]) { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3]); + } + +break; +case 2026: + + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + +break; +case 2027: + + var keywords = []; + if ($$[$0-2].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); + } + if (!$$[$0]) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + +break; +case 2033: + + parser.suggestKeywords(['BETWEEN']); + +break; +case 2034: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['AND']); + } + +break; +case 2039: + + lexer.popState(); + +break; +case 2040: + + lexer.begin('hdfs'); + +break; +case 2042: + + parser.suggestHdfs({ path: $$[$0-3] }); + +break; +case 2043: + + parser.suggestHdfs({ path: $$[$0-2] }); + +break; +case 2044: + + parser.suggestHdfs({ path: $$[$0-1] }); + +break; +case 2045: + + parser.suggestHdfs({ path: '' }); + +break; +case 2046: + + parser.suggestHdfs({ path: '' }); + +break; +case 2052: + + parser.suggestKeywords(['PRECEDING']); + +break; +case 2053: case 2058: + + parser.suggestKeywords(['ROW']); + +break; +case 2057: + + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + +break; +case 2059: + + parser.suggestKeywords(['FOLLOWING']); + +break; +case 2065: + + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 2066: + + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 2067: case 2072: +this.$ = { types: [ $$[$0-1].toUpperCase() ] }; +break; +case 2069: + + parser.valueExpressionSuggest(); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 2070: case 2071: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ] }; + +break; +case 2075: + + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 2076: + + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ 'T' ] }; + +break; +case 2077: case 2078: + + parser.suggestKeywords(parser.getTypeKeywords()); + this.$ = { types: [ 'T' ] }; + +break; +case 2079: case 2085: +this.$ = { types: parser.findReturnTypes($$[$0-3]) }; +break; +case 2081: case 2086: case 2120: +this.$ = { types: parser.findReturnTypes($$[$0-4]) }; +break; +case 2082: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + keywords.push('ALL'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2083: case 2088: case 2123: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2084: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + keywords.push('ALL'); + } + parser.suggestKeywords(keywords); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2087: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('ALL'); + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2089: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('ALL'); + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2106: + + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2107: + + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2108: + + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 2109: + + parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2110: + + parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2111: + + parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 2112: + + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2113: + + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2114: + + parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2115: + + parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2116: + + if ($$[$0-3].types[0] === 'STRING') { + parser.suggestValueExpressionKeywords($$[$0-3], ['FROM']); + } else { + parser.suggestValueExpressionKeywords($$[$0-3]); + } + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2117: + + if ($$[$0-2].types[0] === 'STRING') { + parser.suggestValueExpressionKeywords($$[$0-2], ['FROM']); + } else { + parser.suggestValueExpressionKeywords($$[$0-2]); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2122: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + keywords.push('ALL'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2124: + + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2148: + + parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'CREATE VIEW', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'GRANT USER', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); + +break; +case 2149: + + parser.addTablePrimary($$[$0]); + parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'CREATE VIEW', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); + +break; +case 2150: + + parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'DATABASES', 'FUNCTIONS', 'SCHEMAS', 'TABLES']); + +break; +case 2164: case 2181: case 2213: case 2215: case 2224: + + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 2168: + + if ($$[$0-1].isView) { + parser.suggestTables({ onlyViews: true }); + } else { + parser.suggestTables(); + } + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 2169: + + if (parser.yy.result.suggestTables && $$[$0-1].isView) { + parser.yy.result.suggestTables.onlyViews = true; + } + +break; +case 2170: + + parser.addTablePrimary($$[$0]); + parser.suggestKeywords(['TABLE', 'VIEW']); + +break; +case 2172: +this.$ = { isView: true }; +break; +case 2174: + + parser.suggestKeywords([ 'ROLES' ]); + +break; +case 2175: + + parser.suggestKeywords([ 'CURRENT' ]); + +break; +case 2178: + + parser.suggestKeywords(['LIKE']); + +break; +case 2185: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['IN']); + +break; +case 2188: case 2191: + + parser.suggestKeywords(['FUNCTIONS']); + +break; +case 2189: case 2192: + + parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); + +break; +case 2190: case 2229: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IN', 'LIKE']); + } else { + parser.suggestKeywords(['LIKE']); + } + +break; +case 2193: + + if (!$$[$0-2]) { + parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'LIKE', weight: 1 }]); + } else { + parser.suggestKeywords(['LIKE']); + } + +break; +case 2201: + + parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); + +break; +case 2202: + + parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); + +break; +case 2204: + + parser.suggestDatabases({ + appendDot: true + }); + parser.suggestTables(); + +break; +case 2218: + + parser.suggestKeywords(['GRANT']); + +break; +case 2235: + + if (!$$[$0-1] && !$$[$0-2]) { + parser.suggestKeywords([{ value: 'FROM', weight: 2 }, { value: 'WHERE', weight: 1 }]); + } else if (!$$[$0-1] && $$[$0-2]) { + var keywords = [{ value: 'FULL JOIN', weight: 2 }, { value: 'FULL OUTER JOIN', weight: 2 }, { value: 'JOIN', weight: 2 }, { value: 'LEFT JOIN', weight: 2 }, { value: 'LEFT OUTER JOIN', weight: 2 }, { value: 'RIGHT JOIN', weight: 2 }, { value: 'RIGHT OUTER JOIN', weight: 2 }, { value: 'INNER JOIN', weight: 2 }, { value: 'LEFT ANTI JOIN', weight: 2 }, { value: 'LEFT SEMI JOIN', weight: 2 }, { value: 'RIGHT ANTI JOIN', weight: 2 }, { value: 'RIGHT SEMI JOIN', weight: 2 }, { value: 'WHERE', weight: 1 }]; + if ($$[$0-2].suggestJoinConditions) { + parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); + } + if ($$[$0-2].suggestJoins) { + parser.suggestJoins($$[$0-2].suggestJoins); + } + if ($$[$0-2].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 3)); + } + parser.suggestKeywords(keywords); + } else if (!$$[$0-1]) { + parser.suggestKeywords([ 'WHERE' ]); + } + +break; +case 2236: + + parser.suggestKeywords([ 'SET' ]); + +break; +case 2252: + + parser.suggestKeywords([ '=' ]); + +break; +case 2261: + + if (!parser.yy.cursorFound) { + parser.yy.result.useDatabase = $$[$0]; + } + +break; +case 2264: +this.$ = { inValueEdit: true }; +break; +case 2265: +this.$ = { inValueEdit: true, cursorAtStart: true }; +break; +case 2266: case 2267: case 2268: case 2269: case 2270: +this.$ = { suggestKeywords: ['NOT'] }; +break; +case 2276: case 2277: case 2278: case 2279: case 2280: + + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + this.$ = { types: ['BOOLEAN'] } + +break; +case 2281: case 2283: +this.$ = parser.findCaseType($$[$0-1]); +break; +case 2282: case 2285: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2284: + + parser.suggestValueExpressionKeywords($$[$0-1], ['END']); + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2286: +this.$ = parser.findCaseType($$[$0-2]); +break; +case 2287: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2288: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-2]); + +break; +case 2289: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + this.$.suggestFilters = $$[$0-1].suggestFilters + +break; +case 2290: + + parser.valueExpressionSuggest(); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2291: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 2292: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = $$[$0-1]; + +break; +case 2293: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ] }; + +break; +case 2296: +this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; +break; +case 2297: + + $$[$0-1].caseTypes.push($$[$0]); + this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; + +break; +case 2301: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + +break; +case 2304: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; +break; +case 2305: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 2306: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 2307: case 2308: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; +break; +case 2309: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2310: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [$$[$0]] }; + +break; +case 2311: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2312: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2313: case 2315: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 2314: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 2316: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; + +break; +case 2317: + + parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2318: + + parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2319: case 2320: case 2321: case 2322: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +} +}, +table: [o($V0,$V1,{500:1,405:2}),{1:[3]},o($V2,$V3,{401:3,501:4,402:6,403:7,406:8,3:394,362:395,137:396,409:397,239:398,370:399,407:400,16:401,367:402,140:403,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,363:417,364:418,365:419,366:420,410:421,17:426,18:427,19:428,20:429,21:430,22:431,23:432,24:433,25:434,28:435,29:436,368:437,369:438,371:439,373:440,374:441,418:442,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,375:455,376:456,377:457,378:458,379:459,380:460,381:461,993:464,994:465,995:466,996:467,997:468,998:469,999:470,1000:471,1001:472,1002:473,1003:474,1004:475,372:477,34:481,35:482,36:483,37:484,166:486,167:487,168:488,169:489,382:491,383:492,384:493,385:494,386:495,387:496,1006:499,1007:500,1008:501,1009:502,1010:503,1011:504,1012:505,1013:506,1014:507,1015:508,1016:509,471:510,43:511,135:512,311:514,312:515,470:517,72:518,139:519,313:520,314:521,476:522,472:523,481:524,482:525,479:526,480:527,2:$V4,26:$V5,27:$V6,38:$V7,41:$V8,50:$V9,51:$Va,54:$Vb,63:$Vc,65:$Vd,66:$Ve,70:$Vf,71:$Vg,85:$Vh,86:$Vi,89:$Vj,91:$Vk,95:$Vl,101:$Vm,103:$Vn,106:$Vo,107:$Vp,129:$Vq,136:$Vr,138:$Vs,142:$Vt,143:$Vu,144:$Vv,146:$Vw,147:$Vx,149:$Vy,151:$Vz,153:$VA,155:$VB,158:$VC,170:$VD,179:$VE,180:$VF,208:$VG,224:$VH,236:$VI,237:$VJ,238:$VK,241:$VL,242:$VM,253:$VN,254:$VO,256:$VP,257:$VQ,264:$VR,268:$VS,275:$VT,277:$VU,287:$VV,288:$VW,289:$VX,291:$VY,292:$VZ,293:$V_,294:$V$,295:$V01,300:$V11,301:$V21,303:$V31,304:$V41,306:$V51,315:$V61,321:$V71,341:$V81,342:$V91,343:$Va1,344:$Vb1,347:$Vc1,348:$Vd1,349:$Ve1,350:$Vf1,351:$Vg1,352:$Vh1,353:$Vi1,359:$Vj1,361:$Vk1,390:$Vl1,391:$Vm1,392:$Vn1,394:$Vo1,408:$Vp1,411:$Vq1,425:$Vr1,427:$Vs1,428:$Vt1,429:$Vu1,430:$Vv1,431:$Vw1,432:$Vx1,433:$Vy1,434:$Vz1,435:$VA1,452:$VB1,453:$VC1,461:$VD1,462:$VE1,463:$VF1,465:$VG1,466:$VH1,483:$VI1,484:$VJ1,488:$VK1,489:$VL1,494:$VM1,495:$VN1,496:$VO1,503:$VP1,504:$VQ1,505:$VR1,506:$VS1,507:$VT1,508:$VU1,509:$VV1,510:$VW1,511:$VX1,512:$VY1,513:$VZ1,514:$V_1,515:$V$1,516:$V02,517:$V12,518:$V22,519:$V32,520:$V42,521:$V52,522:$V62,523:$V72,524:$V82,525:$V92,526:$Va2,527:$Vb2,528:$Vc2,529:$Vd2,530:$Ve2,531:$Vf2,532:$Vg2,533:$Vh2,534:$Vi2,535:$Vj2,536:$Vk2,537:$Vl2,538:$Vm2,539:$Vn2,540:$Vo2,541:$Vp2,542:$Vq2,543:$Vr2,544:$Vs2,545:$Vt2,546:$Vu2,547:$Vv2,548:$Vw2,549:$Vx2,550:$Vy2,551:$Vz2,552:$VA2,553:$VB2,554:$VC2,555:$VD2,556:$VE2,557:$VF2,558:$VG2,559:$VH2,560:$VI2,561:$VJ2,562:$VK2,563:$VL2,564:$VM2,565:$VN2,566:$VO2,567:$VP2,568:$VQ2,569:$VR2,570:$VS2,571:$VT2,572:$VU2,573:$VV2,574:$VW2,575:$VX2,576:$VY2,577:$VZ2,578:$V_2,579:$V$2,580:$V03,581:$V13,582:$V23,583:$V33,584:$V43,585:$V53,586:$V63,587:$V73,588:$V83,589:$V93,590:$Va3,591:$Vb3,592:$Vc3,593:$Vd3,594:$Ve3,595:$Vf3,596:$Vg3,597:$Vh3,598:$Vi3,599:$Vj3,600:$Vk3,601:$Vl3,602:$Vm3,603:$Vn3,604:$Vo3,605:$Vp3,606:$Vq3,607:$Vr3,608:$Vs3,609:$Vt3,610:$Vu3,611:$Vv3,612:$Vw3,613:$Vx3,614:$Vy3,615:$Vz3,616:$VA3,617:$VB3,618:$VC3,619:$VD3,620:$VE3,621:$VF3,622:$VG3,623:$VH3,624:$VI3,625:$VJ3,626:$VK3,627:$VL3,628:$VM3,629:$VN3,630:$VO3,631:$VP3,632:$VQ3,633:$VR3,634:$VS3,635:$VT3,636:$VU3,637:$VV3,638:$VW3,639:$VX3,640:$VY3,641:$VZ3,642:$V_3,643:$V$3,644:$V04,645:$V14,646:$V24,647:$V34,648:$V44,649:$V54,650:$V64,651:$V74,652:$V84,653:$V94,654:$Va4,655:$Vb4,656:$Vc4,657:$Vd4,658:$Ve4,659:$Vf4,660:$Vg4,661:$Vh4,662:$Vi4,663:$Vj4,664:$Vk4,665:$Vl4,666:$Vm4,667:$Vn4,668:$Vo4,669:$Vp4,670:$Vq4,671:$Vr4,672:$Vs4,673:$Vt4,674:$Vu4,675:$Vv4,676:$Vw4,677:$Vx4,678:$Vy4,679:$Vz4,680:$VA4,681:$VB4,682:$VC4,683:$VD4,684:$VE4,685:$VF4,686:$VG4,687:$VH4,688:$VI4,689:$VJ4,690:$VK4,691:$VL4,692:$VM4,693:$VN4,694:$VO4,695:$VP4,696:$VQ4,697:$VR4,698:$VS4,699:$VT4,700:$VU4,701:$VV4,702:$VW4,703:$VX4,704:$VY4,705:$VZ4,706:$V_4,707:$V$4,708:$V05,709:$V15,710:$V25,711:$V35,712:$V45,713:$V55,714:$V65,715:$V75,716:$V85,717:$V95,718:$Va5,719:$Vb5,720:$Vc5,721:$Vd5,722:$Ve5,723:$Vf5,724:$Vg5,725:$Vh5,726:$Vi5,727:$Vj5,728:$Vk5,729:$Vl5,730:$Vm5,731:$Vn5,732:$Vo5,733:$Vp5,734:$Vq5,735:$Vr5,736:$Vs5,737:$Vt5,738:$Vu5,739:$Vv5,740:$Vw5,741:$Vx5,742:$Vy5,743:$Vz5,744:$VA5,745:$VB5,746:$VC5,747:$VD5,748:$VE5,749:$VF5,750:$VG5,751:$VH5,752:$VI5,753:$VJ5,754:$VK5,755:$VL5,756:$VM5,757:$VN5,758:$VO5,759:$VP5,760:$VQ5,761:$VR5,762:$VS5,763:$VT5,764:$VU5,765:$VV5,766:$VW5,767:$VX5,768:$VY5,769:$VZ5,770:$V_5,771:$V$5,772:$V06,773:$V16,774:$V26,775:$V36,776:$V46,777:$V56,778:$V66,779:$V76,780:$V86,781:$V96,782:$Va6,783:$Vb6,784:$Vc6,785:$Vd6,786:$Ve6,787:$Vf6,788:$Vg6,789:$Vh6,790:$Vi6,791:$Vj6,792:$Vk6,793:$Vl6,794:$Vm6,796:$Vn6,839:$Vo6,1005:$Vp6,1020:$Vq6,1034:$Vr6}),{404:[1,531],499:[1,530]},{499:[1,532]},o($V2,[2,708]),{2:[1,533]},o($V2,[2,711]),{404:[1,534],499:[2,922]},{2:[2,944]},{2:[2,945]},{2:[2,946]},{2:[2,947]},{2:[2,948]},{2:[2,949]},{2:[2,950]},{2:[2,951]},{2:[2,952]},{2:[2,953]},{2:[2,954]},{2:[2,955]},{2:[2,956]},{2:[2,957]},{2:[2,958]},{2:[2,959]},{2:[2,960]},{2:[2,961]},{2:[2,962]},{2:[2,963]},{2:[2,964]},{2:[2,965]},{2:[2,966]},{2:[2,967]},{2:[2,968]},{2:[2,969]},{2:[2,970]},{2:[2,971]},{2:[2,972]},{2:[2,973]},{2:[2,974]},{2:[2,975]},{2:[2,976]},{2:[2,977]},{2:[2,978]},{2:[2,979]},{2:[2,980]},{2:[2,981]},{2:[2,982]},{2:[2,983]},{2:[2,984]},{2:[2,985]},{2:[2,986]},{2:[2,987]},{2:[2,988]},{2:[2,989]},{2:[2,990]},{2:[2,991]},{2:[2,992]},{2:[2,993]},{2:[2,994]},{2:[2,995]},{2:[2,996]},{2:[2,997]},{2:[2,998]},{2:[2,999]},{2:[2,1000]},{2:[2,1001]},{2:[2,1002]},{2:[2,1003]},{2:[2,1004]},{2:[2,1005]},{2:[2,1006]},{2:[2,1007]},{2:[2,1008]},{2:[2,1009]},{2:[2,1010]},{2:[2,1011]},{2:[2,1012]},{2:[2,1013]},{2:[2,1014]},{2:[2,1015]},{2:[2,1016]},{2:[2,1017]},{2:[2,1018]},{2:[2,1019]},{2:[2,1020]},{2:[2,1021]},{2:[2,1022]},{2:[2,1023]},{2:[2,1024]},{2:[2,1025]},{2:[2,1026]},{2:[2,1027]},{2:[2,1028]},{2:[2,1029]},{2:[2,1030]},{2:[2,1031]},{2:[2,1032]},{2:[2,1033]},{2:[2,1034]},{2:[2,1035]},{2:[2,1036]},{2:[2,1037]},o($Vs6,$Vt6,{393:535,397:536,395:537,398:538,912:539,913:540,914:541,915:542,916:543,917:544,925:545,926:546,927:547,928:548,130:549,880:550,131:551,884:552,40:553,812:555,172:556,502:560,2:$Vu6,41:$Vv6,64:$Vw6,89:$Vx6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$VF6}),{2:[2,1039]},{2:[2,1040]},{2:[2,1041]},{2:[2,1042]},{2:[2,1043]},{2:[2,1044]},{2:[2,1045]},{2:[2,1046]},{2:[2,1047]},{2:[2,1048]},{2:[2,1049]},{2:[2,1050]},{2:[2,1051]},{2:[2,1052]},{2:[2,1053]},{2:[2,1054]},{2:[2,1055]},{2:[2,1056]},{2:[2,1057]},{2:[2,1058]},{2:[2,1059]},{2:[2,1060]},{2:[2,1061]},{2:[2,1062]},{2:[2,1063]},{2:[2,1064]},{2:[2,1065]},{2:[2,1066]},{2:[2,1067]},{2:[2,1068]},{2:[2,1069]},{2:[2,1070]},{2:[2,1071]},{2:[2,1072]},{2:[2,1073]},{2:[2,1074]},{2:[2,1075]},{2:[2,1076]},{2:[2,1077]},{2:[2,1078]},{2:[2,1079]},{2:[2,1080]},{2:[2,1081]},{2:[2,1082]},{2:[2,1083]},{2:[2,1084]},{2:[2,1085]},{2:[2,1086]},{2:[2,1087]},{2:$VG6,27:$VH6,38:$VI6,63:$VJ6,147:$VK6,170:$VL6,359:$VM6,411:$VN6,425:$VO6,454:569,458:571,463:$VP6},{2:[2,1089]},{2:[2,1090]},{2:[2,1091]},{2:[2,1092]},{2:[2,1093]},{2:[2,1094]},{2:[2,1095]},{2:[2,1096]},{2:[2,1097]},{2:[2,1098]},{2:[2,1099]},{2:[2,1100]},{2:[2,1101]},{2:[2,1102]},{2:[2,1103]},{2:[2,1104]},{2:[2,1105]},{2:[2,1106]},{2:[2,1107]},{2:[2,1108]},{2:[2,1109]},{2:[2,1110]},{2:[2,1111]},{2:[2,1112]},{2:[2,1113]},{2:[2,1114]},{2:[2,1115]},{2:[2,1116]},{2:[2,1117]},{2:[2,1118]},{2:[2,1119]},{2:[2,1120]},{2:[2,1121]},{2:[2,1122]},{2:[2,1123]},{2:[2,1124]},{2:[2,1125]},{2:[2,1126]},{2:[2,1127]},{2:[2,1128]},{2:[2,1129]},{2:[2,1130]},{2:[2,1131]},{2:[2,1132]},{2:[2,1133]},{2:[2,1134]},{2:[2,1135]},{2:[2,1136]},{2:[2,1137]},{2:[2,1138]},{2:[2,1139]},{2:[2,1140]},{2:[2,1141]},{2:[2,1142]},{2:[2,1143]},{2:[2,1144]},{2:[2,1145]},{2:[2,1146]},{2:[2,1147]},{2:[2,1148]},{2:[2,1149]},{2:[2,1150]},{2:[2,1151]},{2:[2,1152]},{2:[2,1153]},{2:[2,1154]},{2:[2,1155]},{2:[2,1156]},{2:[2,1157]},{2:[2,1158]},{2:[2,1159]},{2:[2,1160]},{2:[2,1161]},{2:[2,1162]},{2:[2,1163]},{2:[2,1164]},{2:[2,1165]},{2:[2,1166]},{2:[2,1167]},{2:[2,1168]},{2:[2,1169]},{2:[2,1170]},{2:[2,1171]},{2:[2,1172]},{2:[2,1173]},{2:[2,1174]},{2:[2,1175]},{2:[2,1176]},{2:[2,1177]},{2:[2,1178]},{2:[2,1179]},{2:[2,1180]},{2:[2,1181]},{2:[2,1182]},{2:[2,1183]},{2:[2,1184]},{2:[2,1185]},{2:[2,1186]},{2:[2,1187]},{2:[2,1188]},{2:[2,1189]},{2:[2,1190]},{2:[2,1191]},{2:[2,1192]},{2:[2,1193]},{2:[2,1194]},{2:[2,1195]},{2:[2,1196]},{2:[2,1197]},{2:[2,1198]},{2:[2,1199]},{2:[2,1200]},{2:[2,1201]},{2:[2,1202]},{2:[2,1203]},{2:[2,1204]},{2:[2,1205]},{2:[2,1206]},{2:[2,1207]},{2:[2,1208]},{2:[2,1209]},{2:[2,1210]},{2:[2,1211]},{2:[2,1212]},{2:[2,1213]},{2:[2,1214]},{2:[2,1215]},{2:[2,1216]},{2:[2,1217]},{2:[2,1218]},{2:[2,1219]},{2:[2,1220]},{2:[2,1221]},{2:[2,1222]},{2:[2,1223]},{2:[2,1224]},{2:[2,1225]},{2:[2,1226]},{2:[2,1227]},{2:[2,1228]},{2:[2,1229]},{2:[2,1230]},{2:[2,1231]},{2:[2,1232]},{2:[2,1233]},{2:[2,1234]},{2:[2,1235]},{2:[2,1236]},{2:[2,1237]},{2:[2,1238]},{2:[2,1239]},{2:[2,1240]},{2:[2,1241]},{2:[2,1242]},{2:[2,1243]},{2:[2,1244]},{2:[2,1245]},{2:[2,1246]},{2:[2,1247]},{2:[2,1248]},{2:[2,1249]},{2:$VQ6,27:$VR6,41:$Vv6,64:$Vw6,172:582,242:$Vy6,254:$Vz6,424:580,425:$VS6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},{2:[2,1251]},{2:[2,1252]},{2:[2,1253]},{2:[2,1254]},{2:[2,1255]},{2:[2,1256]},{2:[2,1257]},{2:[2,1258]},{2:[2,1259]},{2:[2,1260]},{2:[2,1261]},{2:[2,1262]},{2:[2,1263]},{2:[2,1264]},{2:[2,1265]},{2:[2,1266]},{2:[2,1267]},{2:[2,1268]},{2:[2,1269]},{2:[2,1270]},{2:[2,1271]},{2:[2,1272]},{2:[2,1273]},{2:[2,1274]},{2:[2,1275]},{2:[2,1276]},{2:[2,1277]},{2:[2,1278]},{2:[2,1279]},{2:[2,1280]},{2:[2,1281]},{2:[2,1282]},{2:[2,1283]},{2:[2,1284]},{2:[2,1285]},{2:[2,1286]},{2:[2,1287]},{2:[2,1288]},{2:[2,1289]},{2:[2,1290]},{2:[2,1291]},{2:[2,1292]},{2:[2,1293]},{2:[2,1294]},{2:[2,1295]},{2:[2,1296]},{2:[2,1297]},{2:[2,1298]},{2:[2,1299]},{2:[2,1300]},{2:[2,1301]},{2:[2,1302]},{2:[2,1303]},{2:[2,1304]},{2:[2,1305]},{2:[2,1306]},{2:[2,1307]},{2:[2,1308]},{2:[2,1309]},{2:[2,1310]},{2:[2,1311]},{2:[2,1312]},{2:[2,1313]},{2:[2,1314]},{2:[2,1315]},{2:[2,1316]},{2:[2,1317]},{2:[2,1318]},{2:[2,1319]},{2:[2,1320]},{2:[2,1321]},{2:[2,1322]},{2:[2,1323]},{2:[2,1324]},{2:[2,1325]},{2:[2,1326]},{2:[2,1327]},{2:[2,1328]},o($V2,[2,926]),o($V2,[2,927]),o($V2,[2,928]),{3:583,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,16:586,17:426,18:427,19:428,20:429,21:430,22:431,23:432,24:433,25:434,26:[1,590],28:435,29:436,30:443,31:444,32:445,33:446,34:481,35:482,36:483,37:484,38:$V7,43:511,63:$Vc,72:518,86:$Vi,135:512,137:585,139:519,140:588,147:$Vx,153:$VA,155:$VB,161:450,162:451,163:452,164:453,165:454,166:486,167:487,168:488,169:489,170:$VD,306:$V51,311:514,312:515,313:520,314:521,362:584,363:417,364:418,365:419,366:420,367:587,368:437,369:438,370:589,371:439,372:477,373:440,374:441,375:455,376:456,377:457,378:458,379:459,380:460,381:461,382:491,383:492,384:493,385:494,386:495,387:496,391:$Vm1,392:[1,592],410:421,411:$Vq1,418:442,452:[1,591],463:$VF1,466:$VH1,470:517,471:510,472:523,476:522,479:526,480:527,481:524,482:525,483:$VI1,494:$VM1,839:$Vo6,993:464,994:465,995:466,996:467,997:468,998:469,999:470,1000:471,1001:472,1002:473,1003:474,1004:475,1005:$Vp6,1006:499,1007:500,1008:501,1009:502,1010:503,1011:504,1012:505,1013:506,1014:507,1015:508,1016:509,1020:$Vq6,1034:$Vr6},o($V2,[2,714],{2:[1,593]}),{27:[1,594],89:$VT6,369:597,372:599,410:595,411:$Vq1,418:598,463:$VF1,470:517,471:510,472:523,476:522,479:526,480:527,481:524,482:525,483:$VI1},o($V2,[2,716],{4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,363:417,364:418,365:419,366:420,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,375:455,376:456,377:457,378:458,379:459,380:460,381:461,993:464,994:465,995:466,996:467,997:468,998:469,999:470,1000:471,1001:472,1002:473,1003:474,1004:475,372:477,311:514,312:515,470:517,479:526,480:527,3:600,362:601,137:602,410:603,370:604,43:619,135:620,472:626,26:$VU6,38:$VV6,63:$VW6,86:$VX6,147:$VY6,153:$VZ6,155:$V_6,170:$V$6,306:$V07,391:$V17,392:$V27,411:$V37,452:$V47,463:$V57,466:$V67,483:$V77,494:$V87,839:$V97,1005:$Va7,1020:$Vb7,1034:$Vc7}),o($V2,[2,717]),o($V2,[2,718]),o($V2,[2,719]),o($V2,[2,720]),o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,8]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,614]),o($V2,[2,615]),o($V2,[2,616]),o($V2,[2,617]),o($Vd7,$Ve7,{474:629,477:630,840:631,841:632,842:633,843:634,771:$Vf7}),o($Vg7,$Vh7,{27:[1,636]}),o([2,51,91,95,238,394,404,453,499,619,649,682,771,789,877],$Vi7),o([2,41,51,54,64,73,89,91,95,136,138,146,179,180,208,224,236,237,238,241,242,254,277,361,391,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,506,507,508,510,512,513,515,517,520,525,526,529,540,541,556,578,586,588,597,600,601,616,619,622,624,625,633,634,649,658,661,668,673,681,682,706,719,743,744,745,752,758,769,771,774,775,778,779,782,783,784,787,789,794,877,962],[2,1334]),{40:641,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,844:637,845:638,846:639,847:640},o($V2,[2,13]),o($V2,[2,14]),o($V2,[2,15]),o($V2,[2,16]),o($V2,[2,17]),o($V2,[2,18]),o($V2,[2,19]),o($V2,[2,20]),o($V2,[2,21]),o($V2,[2,23]),o($V2,[2,24]),o($V2,[2,618]),o($V2,[2,619]),o($V2,$Vk7,{470:517,479:526,480:527,472:626,372:643,410:645,89:$Vl7,411:$V37,463:$V57,483:$V77}),o($V2,[2,622]),o($V2,[2,623]),o($Vm7,$Ve7,{842:633,474:646,840:647,771:$Vn7}),o($V2,[2,25]),o($V2,[2,26]),o($V2,[2,27]),o($V2,[2,28]),{27:[1,652],40:553,41:$Vv6,64:$Vw6,130:649,131:653,149:[1,650],151:$Vo7,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},{27:[1,655],154:[1,654]},{27:[1,658],66:[1,656],158:[1,657]},o($V2,[2,231]),o($V2,[2,232]),o($V2,[2,233]),o($V2,[2,234]),o($V2,[2,235]),o($V2,[2,624]),o($V2,[2,625]),o($V2,[2,626]),o($V2,[2,627]),o($V2,[2,628]),o($V2,[2,629]),o($V2,[2,630]),{27:[1,661],38:$VI6,63:$VJ6,147:$VK6,170:$VL6,359:[1,659],411:$VN6,425:$VO6,454:660,458:662,463:$VP6},o($Vp7,$Vq7,{804:663,143:[1,664],598:$Vr7,610:$Vs7}),o($V2,[2,2136]),o($V2,[2,2137]),o($V2,[2,2138]),o($V2,[2,2139]),o($V2,[2,2140]),o($V2,[2,2141]),o($V2,[2,2142]),o($V2,[2,2143]),o($V2,[2,2144]),o($V2,[2,2145]),o($V2,[2,2146]),o($V2,[2,2147]),{27:[1,668],41:$Vv6,64:$Vw6,172:667,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},o($V2,[2,855]),{27:[1,670],495:[1,669]},{27:[1,673],40:680,41:$Vv6,58:678,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:681,827:679,828:676,829:677,1021:671,1024:672,1027:674,1028:675},o([2,27,41,64,73,89,138,146,179,180,224,236,241,242,254,361,391,423,461,462,465,503,504,506,507,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,746,752,769,774,775,778,779,782,783,784,794,796,962],$Vt7,{412:682,425:$Vu7,581:$Vv7}),o($V2,[2,29]),o($V2,[2,30]),o($V2,[2,31]),o($V2,[2,32]),{27:[1,685],39:686,129:[1,687],141:[1,688],143:$Vw7,726:$Vx7},o($V2,[2,236]),o($V2,[2,237]),o($V2,$Vy7),o($V2,[2,239]),o($Vz7,$VA7,{171:691,39:692,141:[1,693],143:$Vw7,315:[1,695],321:[1,696],359:$VB7,599:$VC7,726:$Vx7}),o($V2,[2,631]),o($V2,[2,632]),o($V2,[2,633]),o($V2,[2,634]),o($V2,[2,635]),o($V2,[2,636]),{27:[1,698],39:699,66:[1,703],129:[1,705],141:[1,706],143:$Vw7,158:[1,704],315:[1,700],321:[1,701],359:$VD7,726:$Vx7},{27:[1,707],50:[1,717],65:[1,708],71:[1,716],129:[1,720],149:$VE7,170:[1,709],321:$VF7,359:[1,718],452:[1,715],512:$VG7,560:[1,710],570:$VH7,603:[1,713],720:$VI7,727:$VJ7,756:[1,721],795:722,798:711,803:714},o($V2,[2,2151]),o($V2,[2,2152]),o($V2,[2,2153]),o($V2,[2,2154]),o($V2,[2,2155]),o($V2,[2,2156]),o($V2,[2,2157]),o($V2,[2,2158]),o($V2,[2,2159]),o($V2,[2,2160]),o($V2,[2,2161]),o($V2,[2,864]),{26:[1,729],27:[1,737],38:[1,728],44:[1,726],46:732,51:$VK7,56:[1,727],63:[1,738],68:730,69:731,70:[1,733],73:[1,734],82:735,83:736,84:743,110:739,111:$VL7,113:742},{26:[1,744],27:[1,747],56:[1,746],136:[1,745]},{27:[1,749],142:[1,748]},o($V2,[2,516]),o($V2,[2,517]),{27:[1,751],129:[1,750]},o($V2,[2,863]),o($V2,[2,51],{110:739,68:756,69:757,46:758,84:761,26:[1,755],38:[1,754],44:[1,752],51:$VK7,56:[1,753],63:$VM7,73:$VN7,111:$VO7}),o($V2,[2,181]),o($V2,[2,518]),o($V2,[2,519]),o($V2,[2,867],{473:763,275:[1,764],411:$VP7,488:$VQ7,489:$VR7}),o($VS7,$VP7,{473:767,275:[1,768],488:$VQ7,489:$VR7}),o($VT7,[2,876]),o($VT7,[2,877]),o($VU7,[2,874]),o($VU7,[2,875]),{27:[1,769],484:[1,770]},{27:[1,771],484:$VV7,486:772,487:$VW7},{1:[2,919]},o($V0,$V1,{405:775}),{1:[2,920]},o($V2,[2,709]),o($VX7,$V1,{405:776}),{27:[1,778],394:[1,777]},o($V2,[2,696],{394:[1,779]}),o($Vs6,[2,704]),o([394,404,499],[2,705]),o($VY7,[2,1868]),o($VZ7,[2,1869]),o($V_7,$V$7,{854:780,918:781,919:782,922:783,426:793,427:$V08,428:$V18,429:$V28,430:$V38,431:$V48,432:$V58,433:$V68,434:$V78,435:$V88}),o($VY7,[2,1871]),o($VZ7,[2,1872],{854:794,919:795,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o($VZ7,[2,1873]),o($Vh8,$Vi8,{172:556,502:560,909:804,40:805,97:806,302:808,800:809,41:$Vv6,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($Vh8,$Vi8,{172:556,502:560,40:805,97:806,302:808,800:809,909:812,911:813,812:815,802:816,354:817,801:818,41:$Vv6,64:$Vw6,136:$Vm8,179:$Vn8,180:$Vo8,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$VF6}),o($Vp8,$Vi8,{172:556,502:560,40:805,97:806,302:808,800:809,909:821,41:$Vv6,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($Vp8,$Vi8,{172:556,502:560,40:805,97:806,302:808,800:809,909:822,41:$Vv6,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($Vq8,[2,1924]),o($Vq8,[2,1926]),o($Vr8,[2,1925]),o($Vr8,[2,1927]),o($Vs8,$Vt8,{138:[1,823]}),o($Vu8,$Vv8,{880:550,848:824,926:825,849:826,239:827,932:828,27:$V6,89:$Vw8,796:$Vn6}),o($Vx8,[2,1426],{138:[1,830]}),o($Vy8,[2,1472]),{181:$Vz8,526:$VA8,799:[1,833]},o($Vy8,[2,939]),o($Vy8,[2,940]),o($Vy8,[2,941]),o($Vy8,[2,932]),o($Vy8,[2,933]),o($Vy8,[2,934]),o($Vy8,[2,935]),o($Vy8,[2,936]),o($Vy8,[2,937]),o($Vy8,[2,938]),{40:834,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{27:[1,836],142:[1,835]},o($V2,[2,809]),o($V2,[2,812]),o($VB8,[2,829]),o($VB8,[2,830]),o($VB8,[2,831]),o($VB8,[2,832]),o($VB8,[2,833]),o($VB8,[2,834]),o($VB8,$VC8,{156:837,159:838,252:839,89:$VD8}),o($V2,[2,22]),{54:[1,841],138:[1,842]},o($V2,[2,754]),o($VE8,[2,2127]),o($V2,[2,929]),o($V2,[2,930]),o($V2,[2,931]),o($V2,[2,721]),o($V2,[2,722]),o($V2,[2,723]),{89:$VT6,369:597,372:599,410:595,411:$Vq1,418:598,463:$VF1,470:517,471:510,472:523,476:522,479:526,480:527,481:524,482:525,483:$VI1},{27:$VR6,41:$Vv6,64:$Vw6,172:582,242:$Vy6,254:$Vz6,424:580,425:$VS6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},{27:$VH6,38:$VI6,63:$VJ6,147:$VK6,170:$VL6,359:$VM6,411:$VN6,425:$VO6,454:569,458:571,463:$VP6},o($Vs6,$Vt6,{393:535,397:536,395:537,398:538,912:539,913:540,914:541,915:542,916:543,917:544,925:545,926:546,927:547,928:548,130:549,880:550,131:551,884:552,40:553,812:555,172:556,502:560,41:$Vv6,64:$Vw6,89:$Vx6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$VF6}),o($V2,[2,713]),o($V2,[2,715]),o($Vd7,$Ve7,{840:631,841:632,842:633,843:634,474:843,477:844,771:$Vf7}),{137:845,140:846,306:$V51,370:847,371:848,410:421,411:$Vq1,418:442},o($V2,[2,620]),o($Vm7,$Ve7,{842:633,840:647,474:849,771:$Vn7}),o($V2,[2,856]),o($V2,[2,724]),o($V2,[2,725]),o($V2,[2,726]),o($VF8,$Ve7,{474:629,842:633,840:647,771:$Vn7}),{89:$VG8,372:599,410:850,411:$V37,463:$V57,470:517,472:626,479:526,480:527,483:$V77},{40:854,41:$Vv6,64:$Vw6,130:852,149:[1,853],151:$Vo7,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{154:[1,855]},{66:[1,856],158:[1,857]},{38:$VI6,63:$VJ6,147:$VK6,170:$VL6,359:$VH8,411:$VI8,425:$VO6,454:859,463:$VP6},{38:$VI6,63:$VJ6,147:$VK6,170:$VL6,359:[1,861],411:$VI8,425:$VO6,454:862,463:$VP6},o($VJ8,$Vq7,{804:863,143:[1,864],598:$Vr7,610:$Vs7}),{41:$Vv6,64:$Vw6,172:582,242:$Vy6,254:$Vz6,424:580,425:$VS6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},{41:$Vv6,64:$Vw6,172:667,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,393:865,394:$Vt6,395:537,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,880:550,912:539,914:866,915:542,925:867,926:868},{495:[1,869]},{40:871,41:$Vv6,58:678,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,828:676,1021:870,1027:674},o([2,41,64,73,89,138,146,179,180,224,236,241,242,254,361,391,423,461,462,465,503,504,506,507,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,746,752,769,774,775,778,779,782,783,784,794,962],$Vt7,{412:872,425:$Vu7,581:$Vv7}),{40:874,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,844:873,846:639},{39:875,129:[1,876],141:[1,877],143:$Vw7,726:$Vx7},{26:[1,881],38:[1,880],44:[1,878],46:882,51:$VK7,56:[1,879],63:$VM7,68:730,69:731,70:[1,883],73:$VN7,84:761,110:739,111:$VO7},{26:[1,884],56:[1,886],136:[1,885]},{142:[1,887]},{39:888,129:$VA7,141:[1,890],143:$Vw7,171:889,315:[1,891],321:[1,892],359:$VB7,599:$VC7,726:$Vx7},{39:893,66:[1,896],129:[1,898],141:[1,899],143:$Vw7,158:[1,897],315:[1,894],321:[1,895],359:$VD7,726:$Vx7},{129:[1,900]},{50:[1,909],65:[1,901],71:[1,908],129:[1,911],149:$VE7,170:[1,902],321:$VF7,359:[1,910],452:[1,907],512:$VG7,560:[1,903],570:$VH7,603:[1,905],720:$VI7,727:$VJ7,756:[1,912],795:913,798:904,803:906},{275:[1,915],411:$VP7,473:914,488:$VQ7,489:$VR7},{484:[1,916]},{484:$VV7,486:917,487:$VW7},o($VF8,[2,1538]),o($Vm7,[2,1542]),o($Vd7,$VK8,{842:918,843:919,771:$Vf7}),o($Vm7,[2,1551]),o($VL8,[2,1552]),o($Vm7,[2,1554],{842:633,840:920,771:$Vn7}),o([27,411,425,581],$V1,{405:921}),o([26,38,63,86,147,153,155,170,306,391,392,404,411,452,463,466,483,494,499,839,1005,1020,1034],[2,943]),o([27,89,411,463,483],$VM8,{95:[1,922]}),o($VN8,[2,1565]),o($VO8,[2,1566]),o($VN8,[2,1568],{95:[1,923]}),{27:[1,925],136:[1,924]},{181:$Vz8,526:$VA8},o($V2,[2,621]),{137:926,306:$V07,370:927,410:603,411:$V37},o($Vm7,$Ve7,{842:633,840:647,474:928,771:$Vn7}),o($Vm7,[2,1541]),o($VF8,$VK8,{842:918,771:$Vn7}),o([411,425,581],$V1,{405:929}),o($VP8,$VQ8,{148:930,152:931,46:932,78:933,51:$VR8}),{27:[1,936],40:937,41:$Vv6,64:$Vw6,150:935,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,203]),o($V2,[2,204]),o($V2,$VQ8,{46:932,148:938,51:$VK7}),o($V2,$VS8,{40:553,812:555,172:556,502:560,130:939,131:941,27:[1,940],41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$VF6}),o($V2,[2,211],{172:556,502:560,40:854,130:942,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{27:[1,944],40:553,41:$Vv6,64:$Vw6,130:943,131:945,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},{27:[1,947],66:[1,946]},o($V2,[2,217],{172:556,502:560,40:854,130:948,41:$Vv6,64:$Vw6,66:[1,949],242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{40:950,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{27:[1,952],142:[1,951]},o($V2,[2,846]),o($V2,[2,849]),{27:[1,954],40:553,41:$Vv6,64:$Vw6,130:953,131:955,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($Vp7,$Vq7,{804:956,598:$Vr7,610:$Vs7}),o($Vp7,[2,1361]),o($Vp7,[2,1362]),o($V2,[2,2261]),o($V2,[2,2262]),{27:[1,958],496:[1,957]},o($V2,[2,906]),o($V2,[2,2238],{26:[1,959],27:[1,960]}),o($V2,[2,2237],{26:[1,961]}),o($V2,[2,2239]),o($VT8,[2,2240]),o($VU8,[2,2241]),o($VT8,[2,2242]),o($VU8,[2,2243]),o($VT8,[2,1479],{172:556,502:560,40:962,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($VU8,[2,1481],{172:556,502:560,40:963,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($VV8,$VW8,{138:[1,964]}),o($VX8,[2,1477]),o($VY8,$VZ8,{413:965,746:$V_8}),o($V$8,[2,1577]),o($V$8,[2,1578]),o($V2,[2,33]),{27:[1,968],40:967,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{27:[1,971],40:553,41:$Vv6,64:$Vw6,130:969,131:970,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},{27:[1,974],40:553,41:$Vv6,64:$Vw6,130:972,131:973,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($V09,[2,1335]),o($V09,[2,1336]),{27:[1,975],129:[1,976]},o([27,41,64,242,254,404,461,462,465,499,503,504],$V19,{45:977,74:978,622:$V29}),o($Vp7,$V19,{45:980,74:981,622:$V29}),{41:$Vv6,64:$Vw6,172:982,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},o($Vp7,$V19,{45:983,74:984,622:$V29}),{27:[1,986],315:[1,985]},o($Vz7,[2,1359]),o($V2,[2,637],{66:[1,988],315:[1,987]}),o([27,41,64,242,254,404,461,462,465,499,503,504,526],$V39,{126:989,127:990,622:$V49}),o($Vp7,$V39,{126:992,127:993,622:$V49}),{27:[1,995],315:[1,994]},{41:$Vv6,64:$Vw6,172:996,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},{27:[1,998],40:553,41:$Vv6,64:$Vw6,130:997,131:999,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},{27:[1,1001],66:[1,1000]},o($Vp7,$V39,{126:1002,127:1003,622:$V49}),o($Vp7,$V39,{126:1004,127:1005,622:$V49}),o($V2,[2,2148],{172:556,502:560,40:871,58:1006,41:$Vv6,64:$Vw6,149:[1,1009],208:[1,1007],242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7,720:[1,1008]}),{27:[1,1011],66:[1,1010]},{27:[1,1013],129:$V59,141:$V69,1017:1012},{27:[1,1017],720:$V79},{27:[1,1019],208:$V89},o($V99,[2,1339],{302:1020,179:$Vk8}),{27:[1,1022],625:[1,1021]},{149:[1,1023]},{27:[1,1025],359:$Va9,453:$Vb9,457:1024,775:$Vc9},{27:[1,1030],40:680,41:$Vv6,58:1029,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:681,827:1031},{71:[1,1032]},{27:[1,1034],452:[1,1033]},o($V2,[2,2221]),{27:[1,1036],66:[1,1035]},o($Vd9,$Ve9,{808:1037,625:$Vf9}),{27:[1,1039],149:$Vg9},o($V99,[2,1340]),o($Vh9,[2,1329]),o($Vh9,[2,1330]),o($Vi9,$V19,{45:1040,74:1041,117:$Vj9,622:$V29}),{27:[1,1043],57:[1,1042]},o($Vp7,$Vk9,{59:1044,65:$Vl9}),{27:[1,1048],41:[1,1047],65:[1,1046],75:1056,77:1057,98:$Vm9,100:1050,101:$Vn9,103:$Vo9,104:1053,106:$Vp9,109:$Vq9,535:$Vr9,653:$Vs9},o($V2,[2,47]),o($V2,[2,48]),{26:[1,1063],27:[1,1061],44:$Vt9,69:1060,73:$VN7,82:1064,84:1062,110:739,111:$VL7,113:742},{27:[1,1067],71:$Vu9},{27:[1,1068],117:$Vv9},o($V2,[2,84]),o($V2,[2,85]),o($V2,[2,86]),o($Vi9,$V39,{172:556,502:560,126:1069,127:1071,128:1072,40:1073,41:$Vv6,64:$Vw6,65:[1,1070],242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7,622:$V49}),o($V2,[2,119]),{27:[1,1075],40:1076,41:$Vv6,60:1074,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{89:[1,1077]},o($V2,[2,121]),{117:$Vw9},{27:[1,1080],41:[1,1079]},{27:[1,1082],137:1081,140:1083,306:$V51,370:847,371:848,410:421,411:$Vq1,418:442},{27:[1,1085],57:[1,1084]},o($V2,[2,182]),{27:[1,1087],143:[1,1086]},o($V2,[2,194]),o($Vp7,$V39,{126:1088,127:1089,622:$V49}),o($V2,[2,687]),{45:1090,51:$V19,117:$Vj9,622:$Vx9},{57:[1,1092]},o($VJ8,$Vk9,{59:1093,65:$Vl9}),{41:[1,1095],65:[1,1094],98:$Vy9,100:1050,101:$Vn9,103:$Vo9,104:1097,106:$Vz9,109:$Vq9,535:$VA9,653:$VB9},o($V2,[2,58]),o($V2,[2,59]),{26:$VC9,44:$Vt9,69:1101,73:$VN7,84:761,110:739,111:$VO7},o($VD9,$V39,{126:1103,65:[1,1104],622:$VE9}),{40:1076,41:$Vv6,60:1106,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{117:[1,1107]},o($VF9,$Vv9),{410:1108,411:$V37},{89:$VG9,475:1109,490:1110},o($VS7,[2,894]),o($VS7,[2,895]),{27:[1,1112],410:1114,411:$Vq1,418:1113},{89:$VH9,475:1116,478:1115,490:1110,491:1117},o($VT7,[2,879]),o($Vp7,$VI9,{467:1119,129:$VJ9}),o($VT7,[2,885]),o($Vp7,$VI9,{467:1121,129:$VJ9}),o($VK9,[2,891]),o($VK9,[2,892]),o($V2,$V3,{402:6,403:7,3:394,362:395,137:396,409:397,239:398,370:399,407:400,16:401,367:402,140:403,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,363:417,364:418,365:419,366:420,410:421,17:426,18:427,19:428,20:429,21:430,22:431,23:432,24:433,25:434,28:435,29:436,368:437,369:438,371:439,373:440,374:441,418:442,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,375:455,376:456,377:457,378:458,379:459,380:460,381:461,993:464,994:465,995:466,996:467,997:468,998:469,999:470,1000:471,1001:472,1002:473,1003:474,1004:475,372:477,34:481,35:482,36:483,37:484,166:486,167:487,168:488,169:489,382:491,383:492,384:493,385:494,386:495,387:496,1006:499,1007:500,1008:501,1009:502,1010:503,1011:504,1012:505,1013:506,1014:507,1015:508,1016:509,471:510,43:511,135:512,311:514,312:515,470:517,72:518,139:519,313:520,314:521,476:522,472:523,481:524,482:525,479:526,480:527,401:1122,406:1123,2:$V4,26:$V5,27:$V6,38:$V7,41:$V8,50:$V9,51:$Va,54:$Vb,63:$Vc,65:$Vd,66:$Ve,70:$Vf,71:$Vg,85:$Vh,86:$Vi,89:$Vj,91:$Vk,95:$Vl,101:$Vm,103:$Vn,106:$Vo,107:$Vp,129:$Vq,136:$Vr,138:$Vs,142:$Vt,143:$Vu,144:$Vv,146:$Vw,147:$Vx,149:$Vy,151:$Vz,153:$VA,155:$VB,158:$VC,170:$VD,179:$VE,180:$VF,208:$VG,224:$VH,236:$VI,237:$VJ,238:$VK,241:$VL,242:$VM,253:$VN,254:$VO,256:$VP,257:$VQ,264:$VR,268:$VS,275:$VT,277:$VU,287:$VV,288:$VW,289:$VX,291:$VY,292:$VZ,293:$V_,294:$V$,295:$V01,300:$V11,301:$V21,303:$V31,304:$V41,306:$V51,315:$V61,321:$V71,341:$V81,342:$V91,343:$Va1,344:$Vb1,347:$Vc1,348:$Vd1,349:$Ve1,350:$Vf1,351:$Vg1,352:$Vh1,353:$Vi1,359:$Vj1,361:$Vk1,390:$Vl1,391:$Vm1,392:$Vn1,394:$Vo1,408:$Vp1,411:$Vq1,425:$Vr1,427:$Vs1,428:$Vt1,429:$Vu1,430:$Vv1,431:$Vw1,432:$Vx1,433:$Vy1,434:$Vz1,435:$VA1,452:$VB1,453:$VC1,461:$VD1,462:$VE1,463:$VF1,465:$VG1,466:$VH1,483:$VI1,484:$VJ1,488:$VK1,489:$VL1,494:$VM1,495:$VN1,496:$VO1,503:$VP1,504:$VQ1,505:$VR1,506:$VS1,507:$VT1,508:$VU1,509:$VV1,510:$VW1,511:$VX1,512:$VY1,513:$VZ1,514:$V_1,515:$V$1,516:$V02,517:$V12,518:$V22,519:$V32,520:$V42,521:$V52,522:$V62,523:$V72,524:$V82,525:$V92,526:$Va2,527:$Vb2,528:$Vc2,529:$Vd2,530:$Ve2,531:$Vf2,532:$Vg2,533:$Vh2,534:$Vi2,535:$Vj2,536:$Vk2,537:$Vl2,538:$Vm2,539:$Vn2,540:$Vo2,541:$Vp2,542:$Vq2,543:$Vr2,544:$Vs2,545:$Vt2,546:$Vu2,547:$Vv2,548:$Vw2,549:$Vx2,550:$Vy2,551:$Vz2,552:$VA2,553:$VB2,554:$VC2,555:$VD2,556:$VE2,557:$VF2,558:$VG2,559:$VH2,560:$VI2,561:$VJ2,562:$VK2,563:$VL2,564:$VM2,565:$VN2,566:$VO2,567:$VP2,568:$VQ2,569:$VR2,570:$VS2,571:$VT2,572:$VU2,573:$VV2,574:$VW2,575:$VX2,576:$VY2,577:$VZ2,578:$V_2,579:$V$2,580:$V03,581:$V13,582:$V23,583:$V33,584:$V43,585:$V53,586:$V63,587:$V73,588:$V83,589:$V93,590:$Va3,591:$Vb3,592:$Vc3,593:$Vd3,594:$Ve3,595:$Vf3,596:$Vg3,597:$Vh3,598:$Vi3,599:$Vj3,600:$Vk3,601:$Vl3,602:$Vm3,603:$Vn3,604:$Vo3,605:$Vp3,606:$Vq3,607:$Vr3,608:$Vs3,609:$Vt3,610:$Vu3,611:$Vv3,612:$Vw3,613:$Vx3,614:$Vy3,615:$Vz3,616:$VA3,617:$VB3,618:$VC3,619:$VD3,620:$VE3,621:$VF3,622:$VG3,623:$VH3,624:$VI3,625:$VJ3,626:$VK3,627:$VL3,628:$VM3,629:$VN3,630:$VO3,631:$VP3,632:$VQ3,633:$VR3,634:$VS3,635:$VT3,636:$VU3,637:$VV3,638:$VW3,639:$VX3,640:$VY3,641:$VZ3,642:$V_3,643:$V$3,644:$V04,645:$V14,646:$V24,647:$V34,648:$V44,649:$V54,650:$V64,651:$V74,652:$V84,653:$V94,654:$Va4,655:$Vb4,656:$Vc4,657:$Vd4,658:$Ve4,659:$Vf4,660:$Vg4,661:$Vh4,662:$Vi4,663:$Vj4,664:$Vk4,665:$Vl4,666:$Vm4,667:$Vn4,668:$Vo4,669:$Vp4,670:$Vq4,671:$Vr4,672:$Vs4,673:$Vt4,674:$Vu4,675:$Vv4,676:$Vw4,677:$Vx4,678:$Vy4,679:$Vz4,680:$VA4,681:$VB4,682:$VC4,683:$VD4,684:$VE4,685:$VF4,686:$VG4,687:$VH4,688:$VI4,689:$VJ4,690:$VK4,691:$VL4,692:$VM4,693:$VN4,694:$VO4,695:$VP4,696:$VQ4,697:$VR4,698:$VS4,699:$VT4,700:$VU4,701:$VV4,702:$VW4,703:$VX4,704:$VY4,705:$VZ4,706:$V_4,707:$V$4,708:$V05,709:$V15,710:$V25,711:$V35,712:$V45,713:$V55,714:$V65,715:$V75,716:$V85,717:$V95,718:$Va5,719:$Vb5,720:$Vc5,721:$Vd5,722:$Ve5,723:$Vf5,724:$Vg5,725:$Vh5,726:$Vi5,727:$Vj5,728:$Vk5,729:$Vl5,730:$Vm5,731:$Vn5,732:$Vo5,733:$Vp5,734:$Vq5,735:$Vr5,736:$Vs5,737:$Vt5,738:$Vu5,739:$Vv5,740:$Vw5,741:$Vx5,742:$Vy5,743:$Vz5,744:$VA5,745:$VB5,746:$VC5,747:$VD5,748:$VE5,749:$VF5,750:$VG5,751:$VH5,752:$VI5,753:$VJ5,754:$VK5,755:$VL5,756:$VM5,757:$VN5,758:$VO5,759:$VP5,760:$VQ5,761:$VR5,762:$VS5,763:$VT5,764:$VU5,765:$VV5,766:$VW5,767:$VX5,768:$VY5,769:$VZ5,770:$V_5,771:$V$5,772:$V06,773:$V16,774:$V26,775:$V36,776:$V46,777:$V56,778:$V66,779:$V76,780:$V86,781:$V96,782:$Va6,783:$Vb6,784:$Vc6,785:$Vd6,786:$Ve6,787:$Vf6,788:$Vg6,789:$Vh6,790:$Vi6,791:$Vj6,792:$Vk6,793:$Vl6,794:$Vm6,796:$Vn6,839:$Vo6,1005:$Vp6,1020:$Vq6,1034:$Vr6}),o($V2,$V3,{402:6,403:7,3:394,362:395,137:396,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,363:417,364:418,365:419,366:420,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,375:455,376:456,377:457,378:458,379:459,380:460,381:461,993:464,994:465,995:466,996:467,997:468,998:469,999:470,1000:471,1001:472,1002:473,1003:474,1004:475,372:477,311:514,312:515,470:517,479:526,480:527,410:603,370:604,43:619,135:620,472:626,401:1124,409:1128,2:$V4,26:$VL9,38:$VV6,41:$V8,50:$V9,51:$Va,54:$Vb,63:$VW6,65:$Vd,66:$Ve,70:$Vf,71:$Vg,85:$Vh,86:$VX6,89:$Vj,91:$Vk,95:$Vl,101:$Vm,103:$Vn,106:$Vo,107:$Vp,129:$Vq,136:$Vr,138:$Vs,142:$Vt,143:$Vu,144:$Vv,146:$Vw,147:$VY6,149:$Vy,151:$Vz,153:$VZ6,155:$V_6,158:$VC,170:$V$6,179:$VE,180:$VF,208:$VG,224:$VH,236:$VI,237:$VJ,238:$VK,241:$VL,242:$VM,253:$VN,254:$VO,256:$VP,257:$VQ,264:$VR,268:$VS,275:$VT,277:$VU,287:$VV,288:$VW,289:$VX,291:$VY,292:$VZ,293:$V_,294:$V$,295:$V01,300:$V11,301:$V21,303:$V31,304:$V41,306:$V07,315:$V61,321:$V71,341:$V81,342:$V91,343:$Va1,344:$Vb1,347:$Vc1,348:$Vd1,349:$Ve1,350:$Vf1,351:$Vg1,352:$Vh1,353:$Vi1,359:$Vj1,361:$Vk1,390:$Vl1,391:$V17,392:$VM9,394:$Vo1,411:$V37,425:$Vr1,427:$Vs1,428:$Vt1,429:$Vu1,430:$Vv1,431:$Vw1,432:$Vx1,433:$Vy1,434:$Vz1,435:$VA1,452:$VN9,453:$VC1,461:$VD1,462:$VE1,463:$V57,465:$VG1,466:$V67,483:$V77,484:$VJ1,488:$VK1,489:$VL1,494:$V87,495:$VN1,496:$VO1,503:$VP1,504:$VQ1,505:$VO9,506:$VS1,507:$VT1,508:$VU1,509:$VV1,510:$VW1,511:$VX1,512:$VY1,513:$VZ1,514:$V_1,515:$V$1,516:$V02,517:$V12,518:$V22,519:$V32,520:$V42,521:$V52,522:$V62,523:$V72,524:$V82,525:$V92,526:$Va2,527:$Vb2,528:$Vc2,529:$Vd2,530:$Ve2,531:$Vf2,532:$Vg2,533:$Vh2,534:$Vi2,535:$Vj2,536:$Vk2,537:$Vl2,538:$Vm2,539:$Vn2,540:$Vo2,541:$Vp2,542:$Vq2,543:$Vr2,544:$Vs2,545:$Vt2,546:$Vu2,547:$Vv2,548:$Vw2,549:$Vx2,550:$Vy2,551:$Vz2,552:$VA2,553:$VB2,554:$VC2,555:$VD2,556:$VE2,557:$VF2,558:$VG2,559:$VH2,560:$VI2,561:$VJ2,562:$VK2,563:$VL2,564:$VM2,565:$VN2,566:$VO2,567:$VP2,568:$VQ2,569:$VR2,570:$VS2,571:$VT2,572:$VU2,573:$VV2,574:$VW2,575:$VX2,576:$VY2,577:$VZ2,578:$V_2,579:$V$2,580:$V03,581:$V13,582:$V23,583:$V33,584:$V43,585:$V53,586:$V63,587:$V73,588:$V83,589:$V93,590:$Va3,591:$Vb3,592:$Vc3,593:$Vd3,594:$Ve3,595:$Vf3,596:$Vg3,597:$Vh3,598:$Vi3,599:$Vj3,600:$Vk3,601:$Vl3,602:$Vm3,603:$Vn3,604:$Vo3,605:$Vp3,606:$Vq3,607:$Vr3,608:$Vs3,609:$Vt3,610:$Vu3,611:$Vv3,612:$Vw3,613:$Vx3,614:$Vy3,615:$Vz3,616:$VA3,617:$VB3,618:$VC3,619:$VD3,620:$VE3,621:$VF3,622:$VG3,623:$VH3,624:$VI3,625:$VJ3,626:$VK3,627:$VL3,628:$VM3,629:$VN3,630:$VO3,631:$VP3,632:$VQ3,633:$VR3,634:$VS3,635:$VT3,636:$VU3,637:$VV3,638:$VW3,639:$VX3,640:$VY3,641:$VZ3,642:$V_3,643:$V$3,644:$V04,645:$V14,646:$V24,647:$V34,648:$V44,649:$V54,650:$V64,651:$V74,652:$V84,653:$V94,654:$Va4,655:$Vb4,656:$Vc4,657:$Vd4,658:$Ve4,659:$Vf4,660:$Vg4,661:$Vh4,662:$Vi4,663:$Vj4,664:$Vk4,665:$Vl4,666:$Vm4,667:$Vn4,668:$Vo4,669:$Vp4,670:$Vq4,671:$Vr4,672:$Vs4,673:$Vt4,674:$Vu4,675:$Vv4,676:$Vw4,677:$Vx4,678:$Vy4,679:$Vz4,680:$VA4,681:$VB4,682:$VC4,683:$VD4,684:$VE4,685:$VF4,686:$VG4,687:$VH4,688:$VI4,689:$VJ4,690:$VK4,691:$VL4,692:$VM4,693:$VN4,694:$VO4,695:$VP4,696:$VQ4,697:$VR4,698:$VS4,699:$VT4,700:$VU4,701:$VV4,702:$VW4,703:$VX4,704:$VY4,705:$VZ4,706:$V_4,707:$V$4,708:$V05,709:$V15,710:$V25,711:$V35,712:$V45,713:$V55,714:$V65,715:$V75,716:$V85,717:$V95,718:$Va5,719:$Vb5,720:$Vc5,721:$Vd5,722:$Ve5,723:$Vf5,724:$Vg5,725:$Vh5,726:$Vi5,727:$Vj5,728:$Vk5,729:$Vl5,730:$Vm5,731:$Vn5,732:$Vo5,733:$Vp5,734:$Vq5,735:$Vr5,736:$Vs5,737:$Vt5,738:$Vu5,739:$Vv5,740:$Vw5,741:$Vx5,742:$Vy5,743:$Vz5,744:$VA5,745:$VB5,746:$VC5,747:$VD5,748:$VE5,749:$VF5,750:$VG5,751:$VH5,752:$VI5,753:$VJ5,754:$VK5,755:$VL5,756:$VM5,757:$VN5,758:$VO5,759:$VP5,760:$VQ5,761:$VR5,762:$VS5,763:$VT5,764:$VU5,765:$VV5,766:$VW5,767:$VX5,768:$VY5,769:$VZ5,770:$V_5,771:$V$5,772:$V06,773:$V16,774:$V26,775:$V36,776:$V46,777:$V56,778:$V66,779:$V76,780:$V86,781:$V96,782:$Va6,783:$Vb6,784:$Vc6,785:$Vd6,786:$Ve6,787:$Vf6,788:$Vg6,789:$Vh6,790:$Vi6,791:$Vj6,792:$Vk6,793:$Vl6,794:$Vm6,839:$V97,1005:$Va7,1020:$Vb7,1034:$Vc7}),{27:[1,1131],40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,242:$Vy6,254:$Vz6,395:1130,398:1132,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555,880:550,884:552,912:539,913:540,914:541,915:542,916:543,917:544,925:545,926:546,927:547,928:548},o($V2,[2,695]),o($V2,[2,699],{912:539,915:542,130:549,880:550,172:556,502:560,40:854,914:866,925:867,926:868,395:1133,41:$Vv6,64:$Vw6,89:$Vw8,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($V_7,$VP9,{426:793,919:1134,922:1135,427:$V08,428:$V18,429:$V28,430:$V38,431:$V48,432:$V58,433:$V68,434:$V78,435:$V88}),o($VZ7,[2,1875]),o($VQ9,$VR9,{920:1136,488:$VS9,534:$VT9}),o($VZ7,[2,1889],{919:795,854:1139,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o($VU9,[2,1893]),{27:[1,1141],435:$VV9},{27:[1,1143],435:$VW9},{27:[1,1145],435:$VX9},{27:[1,1147],435:$VY9},{27:[1,1149],435:$VZ9},{27:[1,1152],433:[1,1151],435:$V_9},{27:[1,1158],430:[1,1154],432:[1,1155],433:[1,1156],434:[1,1157],435:$V$9},{27:[1,1164],430:[1,1160],432:[1,1161],433:[1,1162],434:[1,1163],435:$V0a},o([2,41,64,89,91,95,242,254,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,526,619,649,682,771,789,877],$VR9,{920:1165,488:$VS9,534:$VT9}),o($VZ7,[2,1876],{919:1166,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o($V1a,$VR9,{920:1167,488:$VS9,534:$VT9}),{435:$VV9},{435:$VW9},{435:$VX9},{435:$VY9},{435:$VZ9},{433:[1,1168],435:$V_9},{430:[1,1169],432:[1,1170],433:[1,1171],434:[1,1172],435:$V$9},{430:[1,1173],432:[1,1174],433:[1,1175],434:[1,1176],435:$V0a},o([27,91,95,142,360,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,776,789,877],$V2a,{157:1177,160:1178,757:$V3a}),o($V4a,[2,1959]),o($V4a,[2,1960]),{40:1180,41:$Vv6,64:$Vw6,97:1181,172:556,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,302:808,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,800:809},o($V5a,[2,1352]),o($V5a,[2,1353]),{179:$V6a,181:$V7a},{180:$V8a,181:$V9a},o($Vaa,$V2a,{157:1186,757:$Vba}),o($Vca,$V2a,{157:1188,757:$Vba}),{27:[1,1191],40:1180,41:$Vv6,64:$Vw6,97:1181,172:556,179:$Vn8,180:$Vo8,242:$Vy6,254:$Vz6,302:808,354:817,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,800:809,801:818,802:1190,812:1189},o($Vp8,[2,1963]),o($Vp8,[2,1964]),o($Vp8,[2,1354]),o($Vp8,[2,1355]),{179:$V6a,181:$V7a,799:[1,1192]},{180:$V8a,181:$V9a,799:[1,1193]},o($Vca,$V2a,{157:1194,757:$Vba}),o($Vca,$V2a,{157:1195,757:$Vba}),{40:1196,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,796:$Vda,812:1199,814:1197},{91:[1,1200]},{40:805,41:$Vv6,64:$Vw6,91:$Vi8,97:806,136:$Vj8,172:556,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,302:808,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,800:809,909:1201},{2:$Vea,91:$Vfa,93:1202},{2:$Vea,91:$Vfa,93:1205},{137:1220,140:1221,306:$V51,370:847,371:848,410:421,411:$Vq1,418:442,934:1206,935:1207,936:1208,937:1209,938:1210,939:1211,940:1212,941:1213,942:1214,943:1215,944:1216,945:1217,946:1218,947:1219},o($Vu8,$Vv8,{880:550,848:824,926:825,932:1222,89:$Vw8}),{40:1223,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{526:[1,1224]},o($Vy8,[2,1474]),o([2,26,27,38,41,44,51,54,56,63,64,73,86,89,91,95,101,106,109,111,136,138,142,179,180,206,208,224,237,238,242,254,256,268,275,277,287,306,390,394,404,411,427,428,429,430,431,432,433,434,435,453,461,462,465,488,489,499,503,504,507,508,510,513,517,520,526,529,535,578,586,588,619,624,625,634,649,653,673,681,682,706,719,757,758,771,776,787,789,877],[2,1403]),{27:[1,1226],57:[1,1225]},{27:[1,1228],129:$Vga,143:$Vha,455:1227,459:1229,461:$Via,462:$Vja},o($V2,[2,813]),o($VB8,[2,835]),o($V2,[2,836]),o([27,51,71,142,275,404,411,488,489,499,757],[2,1407]),{27:$V6,40:1239,41:$Vv6,60:1238,64:$Vw6,128:1237,172:556,239:1235,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,796:$Vn6,815:1236,816:1234},{2:[1,1240],41:$Vv6,62:1241,64:$Vw6,97:1244,138:$Vka,146:$Vla,172:1242,179:$Vk8,180:$Vl8,223:1248,242:$Vy6,254:$Vz6,302:808,361:$Vma,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,508:$Vna,601:$Voa,769:$Vpa,774:$Vqa,800:809,826:1243,900:$Vra,905:1251,906:1252},{41:$Vv6,64:$Vw6,172:1256,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},o($VF8,[2,1539]),o($Vm7,[2,1545]),{91:[1,1257]},{91:[1,1258]},{89:$VT6,410:595,411:$Vq1,418:598},o($Vm7,$Vk7,{410:645,89:$Vl7,411:$V37}),o($Vm7,[2,1544]),o($VF8,$Ve7,{842:633,840:647,474:843,771:$Vn7}),{137:845,306:$V07,370:927,410:603,411:$V37},o($V2,$VQ8,{46:932,148:1259,51:$VK7}),{40:937,41:$Vv6,64:$Vw6,150:935,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($Vsa,$Vt8,{138:[1,1260]}),o($V2,$VS8,{172:556,502:560,40:854,130:939,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{40:854,41:$Vv6,64:$Vw6,130:1261,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{66:[1,1262]},{40:1263,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{142:[1,1264]},{89:$Vta,142:$VC8,156:837,252:839},{40:1266,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{142:[1,1267]},{40:854,41:$Vv6,64:$Vw6,130:953,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($VJ8,$Vq7,{804:1268,598:$Vr7,610:$Vs7}),{394:[1,1269]},o($Vua,$V$7,{919:795,854:1270,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o($Vva,$Vi8,{172:556,502:560,40:805,97:806,302:808,800:809,909:1271,41:$Vv6,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($Vva,$Vi8,{172:556,502:560,40:805,97:806,302:808,800:809,909:812,41:$Vv6,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{496:[1,1272]},{26:[1,1273]},o($VX8,$VW8,{138:[1,1274]}),o([2,41,64,73,89,138,146,179,180,224,236,241,242,254,361,391,423,461,462,465,503,504,506,507,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,752,769,774,775,778,779,782,783,784,794,962],$VZ8,{413:1275,746:$V_8}),o([89,411,463,483],$VM8,{95:$Vwa}),{136:[1,1277]},{40:1278,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:969,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:972,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($VD9,$V19,{45:1279,117:$Vj9,622:$Vx9}),{57:[1,1280]},o($VJ8,$Vk9,{59:1281,65:$Vl9}),{41:[1,1283],65:[1,1282],98:$Vy9,100:1050,101:$Vn9,103:$Vo9,104:1097,106:$Vz9,109:$Vq9,535:$VA9,653:$VB9},{26:$VC9,44:$Vt9,69:1060,73:$VN7,84:761,110:739,111:$VO7},{71:$Vu9},{41:[1,1284]},{137:1081,306:$V07,370:927,410:603,411:$V37},{57:[1,1285]},{143:[1,1286]},o([41,64,242,254,404,461,462,465,499,503,504],$V19,{45:1287,622:$Vx9}),{129:[1,1288]},o($VJ8,$V19,{45:1289,622:$Vx9}),o($VJ8,$V19,{45:1290,622:$Vx9}),{315:[1,1291]},o($VJ8,$V39,{126:1292,622:$VE9}),o($VJ8,$V39,{126:1293,622:$VE9}),{315:[1,1294]},{40:854,41:$Vv6,64:$Vw6,130:997,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{66:[1,1295]},o($VJ8,$V39,{126:1296,622:$VE9}),o($VJ8,$V39,{126:1297,622:$VE9}),o($VJ8,$V39,{126:1298,622:$VE9}),{66:[1,1299]},{129:$V59,141:$V69,1017:1300},{720:$V79},{208:$V89},{625:[1,1301]},{149:[1,1302]},{359:$Va9,453:$Vb9,457:1303,775:$Vc9},{40:871,41:$Vv6,58:1029,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{71:[1,1304]},{452:[1,1305]},{66:[1,1306]},o([179,208,404,499],$Ve9,{808:1307,625:$Vf9}),{149:$Vg9},{410:1308,411:$V37},{89:$VG9,475:1309,490:1110},o($VJ8,$VI9,{467:1310,129:$VJ9}),o($VJ8,$VI9,{467:1311,129:$VJ9}),o($VL8,[2,1553]),o($Vm7,[2,1555],{842:633,840:1312,771:$Vn7}),o($Vm7,[2,1556],{842:918,771:$Vn7}),{27:[1,1314],411:$Vt7,412:1313,425:$Vu7,581:$Vv7},{40:641,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,846:1315,847:1316},{40:874,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,844:1317,846:639},{89:[1,1318]},o($Vxa,[2,1573]),{91:[1,1319]},{89:$VG8,410:850,411:$V37},o($Vm7,[2,1548]),{411:$Vt7,412:1320,425:$Vu7,581:$Vv7},o($V2,$Vya,{27:[1,1321]}),o($V2,[2,207]),o([27,275,404,411,488,489,499],[2,1380]),o($VT7,[2,1381]),{89:[1,1322]},o($V2,[2,202]),o($V2,[2,208]),o($Vd9,[2,1443]),o($V2,[2,205]),o($V2,[2,210]),o($V2,[2,212]),o($V2,[2,213]),o($V2,[2,214]),o([27,404,499,757],$VC8,{252:839,156:1323,159:1324,89:$VD8}),o($V2,[2,218]),o($V2,[2,219]),{27:[1,1326],40:553,41:$Vv6,64:$Vw6,130:1325,131:1327,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($V2,[2,225],{172:556,502:560,40:854,130:1328,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($V2,$VQ8,{46:932,148:1329,51:$VK7}),{40:854,41:$Vv6,64:$Vw6,130:1330,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{27:[1,1332],394:[1,1331]},{27:[1,1334],129:$Vga,143:$Vha,455:1333,459:1335,461:$Via,462:$Vja},o($V2,[2,850]),o($V2,[2,1531]),o($V2,[2,1533],{172:556,502:560,40:854,130:1336,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($V2,[2,1534]),{27:[1,1338],40:937,41:$Vv6,64:$Vw6,150:1337,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{207:1339,209:1340,620:$Vza},o($V2,[2,907]),{27:$VAa,40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,358:1348,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349,1022:1342,1025:1343,1029:1344,1030:1345,1031:1346},o($V2,[2,2236]),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,358:1348,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349,1022:1351,1029:1344,1031:1352},o($VT8,[2,1480]),o($VU8,[2,1482]),{40:1353,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,796:$Vda,812:1199,814:1354},{2:$VBa,27:[1,1359],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:1368,241:$VHa,242:$Vy6,254:$Vz6,273:1365,276:1367,302:1421,354:1427,361:$Vma,391:$VIa,414:1355,416:1356,419:1357,421:1358,422:1360,423:$VJa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,507:$VLa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,908:1361,910:1362,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($VY8,[2,1563]),{26:[1,1445],27:[1,1446]},o($V2,[2,35]),o([26,27,38,44,51,56,63,70,73,111],[2,161]),o($Vdb,[2,162]),o($Vdb,[2,163]),o([26,27,56,136],[2,190]),o($V2,[2,191]),o($V2,[2,192]),o($V2,[2,240]),o($Vp7,$V19,{45:1447,74:1448,622:$V29}),o($V2,$Veb,{502:560,172:1449,27:[1,1450],41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6}),o($V2,[2,244],{502:560,172:1451,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6}),{27:[1,1453],224:[1,1452]},{27:[1,1455],40:1457,41:$Vv6,64:$Vw6,172:556,202:1454,205:1456,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:1458},o($V2,[2,510]),o($V2,[2,611]),{27:[1,1460],40:1461,41:$Vv6,64:$Vw6,172:556,202:1459,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,526],{172:556,502:560,40:1461,202:1462,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($Vp7,$V19,{45:1463,74:1464,622:$V29}),o($V2,[2,535]),o($VJ8,$V39,{126:1465,622:$VE9}),{40:854,41:$Vv6,64:$Vw6,130:1466,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,639],{172:556,502:560,40:1467,27:[1,1468],41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($V2,[2,640],{172:556,502:560,40:1469,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{27:[1,1471],597:$Vfb},{27:[1,1473],40:1457,41:$Vv6,64:$Vw6,172:556,202:1472,205:1474,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:1458},o($V2,[2,650]),o($Vp7,$V39,{126:1475,127:1476,622:$V49}),o($V2,$Vgb),o($V2,[2,659]),o($V2,[2,660]),o($V2,[2,662]),o($V2,[2,663]),{27:[1,1478],40:553,41:$Vv6,64:$Vw6,130:1477,131:1479,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($V2,[2,666]),{27:[1,1481],40:553,41:$Vv6,64:$Vw6,130:1480,131:1482,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($V2,[2,673],{172:556,502:560,40:854,130:1483,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{27:[1,1485],40:553,41:$Vv6,64:$Vw6,130:1484,131:1486,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($V2,[2,683],{172:556,502:560,40:854,130:1487,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($V2,[2,2149]),{179:$Vk8,302:1488},o($V2,[2,2175]),o($Vhb,$Ve9,{808:1489,625:$Vf9}),{27:[1,1491],40:680,41:$Vv6,58:1490,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:681,827:1492},o($V2,[2,2163]),{27:[1,1494],40:680,41:$Vv6,58:1493,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:681,827:1495},o($V2,[2,2167],{172:556,502:560,40:871,58:1496,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($Vp7,[2,2171]),o($Vp7,[2,2172]),o($V2,[2,2173]),o($V2,[2,2174]),{179:$Vk8,302:1497},o($V2,[2,2178]),o($V2,[2,2177]),{27:[1,1499],40:680,41:$Vv6,58:1498,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:681,827:1500},o($V2,[2,2180],{172:556,502:560,40:871,58:1501,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o([27,208,404,499],$Ve9,{808:1502,625:$Vf9}),{27:[1,1504],40:1503,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,2199]),o($Vp7,[2,1341]),o($Vp7,[2,1342]),o($Vp7,[2,1343]),o($V2,[2,2211]),o($V2,[2,2213]),o($V2,[2,2214]),{27:[1,1506],40:680,41:$Vv6,58:1505,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:681,827:1507},{27:[1,1509],453:$Vib},o($V2,[2,2218]),{27:[1,1511],40:680,41:$Vv6,58:1510,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:681,827:1512},o($V2,[2,2223]),o($V2,$Vjb,{302:1513,27:[1,1515],179:$Vk8,208:$Vkb}),{27:[1,1519],40:937,41:$Vv6,64:$Vw6,150:1516,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,807:1517,812:1520,813:1518},o($V2,[2,2188],{808:1521,208:$Ve9,625:$Vf9}),{27:[1,1524],46:1522,50:[1,1523],51:$VR8,78:1525},o($V2,[2,63]),{27:[1,1527],40:871,41:$Vv6,58:1526,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,92]),{27:[1,1529],40:1076,41:$Vv6,60:1528,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($Vp7,[2,101]),{27:[1,1531],66:[1,1530]},{27:[1,1533],42:1532,359:$Vlb,775:$Vmb},o($V2,[2,90]),{27:[1,1537],99:1536,288:$Vnb,289:$Vob,290:$Vpb,291:$Vqb,292:$Vrb,293:$Vsb,294:$Vtb},o($V2,[2,113]),{89:$Vub,102:1545},{89:$Vub,102:1547},o($VP8,$Vvb,{105:1548,115:1549,825:1550,306:$Vwb}),{27:[1,1553],107:[1,1552]},o($V2,[2,118]),o($V2,[2,126]),o($V2,[2,127]),{207:1554,209:1555,620:$Vza},{27:[1,1557],625:$Vxb},o($V2,[2,49]),o($V2,[2,87]),{27:[1,1558],117:$Vw9},{27:[1,1559],75:1056,77:1057,98:$Vm9,100:1050,101:$Vn9,103:$Vo9,104:1053,106:$Vp9,109:$Vq9,535:$Vr9,653:$Vs9},o($V2,$Vyb),o($VF9,$Vj9),o($V2,[2,50]),o($V2,[2,94]),o($V2,[2,62]),{27:[1,1562],46:1560,50:[1,1561],51:$VR8,78:1563},{27:[1,1565],40:1239,41:$Vv6,60:1564,64:$Vw6,128:1566,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,153]),o($V2,[2,158]),{509:[1,1567]},{40:1076,41:$Vv6,60:1570,64:$Vw6,112:1568,114:1569,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,122]),o($Vzb,$VAb,{509:[1,1571]}),{40:1076,41:$Vv6,60:1574,64:$Vw6,122:1572,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,823:1573},{89:$VBb,118:1575,119:1576},{27:[1,1579],42:1578,359:$Vlb,775:$Vmb},o($V2,[2,183]),o($V2,[2,178]),o($V2,[2,186]),o($V2,[2,187]),{27:[1,1581],40:1580,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,188]),{27:[1,1583],40:1582,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,195]),{27:[1,1585],40:553,41:$Vv6,64:$Vw6,130:1584,131:1586,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($V2,[2,689],{172:556,502:560,40:854,130:1587,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{46:1588,51:$VK7},{224:[1,1589]},{40:871,41:$Vv6,58:1590,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:1076,41:$Vv6,60:1591,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{66:[1,1592]},{42:1593,359:$Vlb,775:$Vmb},{99:1536,288:$Vnb,289:$Vob,290:$Vpb,291:$Vqb,292:$Vrb,293:$Vsb,294:$Vtb},o($V2,$Vvb,{825:1550,105:1594,306:$VCb}),{107:[1,1596]},{207:1554,620:$VDb},{625:$Vxb},o($V2,[2,60]),{98:$Vy9,100:1050,101:$Vn9,103:$Vo9,104:1097,106:$Vz9,109:$Vq9,535:$VA9,653:$VB9},{46:1598,50:[1,1599],51:$VK7},{40:1076,41:$Vv6,60:1564,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{597:$Vfb},{40:1076,41:$Vv6,60:1601,64:$Vw6,112:1600,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{89:$VEb,118:1602},o($V2,$Ve7,{842:633,840:647,474:1604,771:$Vn7}),o($V2,[2,872],{95:$VFb}),o($VGb,[2,896]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:1606,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V2,[2,868]),o($V2,$Ve7,{842:633,840:647,474:1627,771:$Vn7}),o($V2,$Ve7,{840:631,841:632,842:633,843:634,477:1628,474:1629,771:$Vf7}),o($V2,[2,873]),o($V2,$VUb,{95:[1,1630]}),o($V2,[2,898],{95:[1,1631]}),{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,95:$VWb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:1632,241:$VHa,242:$Vy6,254:$Vz6,273:1638,276:1636,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:1634,493:1633,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:[1,1639],40:553,41:$Vv6,64:$Vw6,130:1641,131:1640,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($Vp7,[2,858]),{27:[1,1642],40:553,41:$Vv6,64:$Vw6,130:1644,131:1643,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($V2,[2,712]),{404:[1,1646],499:[2,924]},{404:$VXb,499:[2,923]},{2:$Vu6,40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,393:865,394:$Vt6,395:537,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,880:550,912:539,914:866,915:542,925:867,926:868},{2:$VG6,38:$VI6,63:$VJ6,147:$VK6,170:$VL6,359:$VH8,411:$VI8,425:$VO6,454:859,463:$VP6},{2:$VQ6,41:$Vv6,64:$Vw6,172:582,242:$Vy6,254:$Vz6,424:580,425:$VS6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},{3:583,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,26:$VU6,30:443,31:444,32:445,33:446,38:$VV6,43:619,63:$VW6,86:$VX6,135:620,137:585,147:$VY6,153:$VZ6,155:$V_6,161:450,162:451,163:452,164:453,165:454,170:$V$6,306:$V07,311:514,312:515,362:584,363:417,364:418,365:419,366:420,370:604,372:477,375:455,376:456,377:457,378:458,379:459,380:460,381:461,391:$V17,392:$V27,410:603,411:$V37,452:$V47,463:$V57,466:$V67,470:517,472:626,479:526,480:527,483:$V77,494:$V87,839:$V97,993:464,994:465,995:466,996:467,997:468,998:469,999:470,1000:471,1001:472,1002:473,1003:474,1004:475,1005:$Va7,1020:$Vb7,1034:$Vc7},o($Vg7,$Vh7),o($V2,$VYb,{396:1647,399:1649,437:1650,27:[1,1648],789:$VZb}),o($V2,[2,697]),o($V2,$VYb,{437:1650,396:1652,789:$V_b}),o($V2,$VYb,{437:1650,396:1654,789:$V_b}),o($VQ9,$VR9,{920:1655,488:$VS9,534:$VT9}),o($VZ7,[2,1891],{919:795,854:1656,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),{27:$V$b,40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555,880:550,884:552,914:1657,916:1658,925:545,926:546,927:547,928:548},o($V0c,[2,1882]),o($V0c,[2,1883]),o($VZ7,[2,1890],{919:1166,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o($VU9,[2,1894]),o($V1c,[2,760]),o($VU9,[2,1895]),o($V1c,[2,761]),o($VU9,[2,1896]),o($V1c,[2,762]),o($VU9,[2,1897]),o($V1c,[2,763]),o($VU9,[2,1898]),o($V1c,[2,764]),o($VU9,[2,1899]),{27:[1,1661],435:$V2c},{2:[1,1662],435:[1,1663]},o($VU9,[2,1901]),{27:[1,1665],435:$V3c},{27:[1,1667],435:$V4c},{27:[1,1669],435:$V5c},{27:[1,1671],435:$V6c},{2:[1,1672],435:[1,1673]},o($VU9,[2,1906]),{27:[1,1675],435:$V7c},{27:[1,1677],435:$V8c},{27:[1,1679],435:$V9c},{27:[1,1681],435:$Vac},{2:[1,1682],435:[1,1683]},o($Vbc,[2,1885],{130:549,880:550,172:556,502:560,40:854,925:867,926:868,914:1684,41:$Vv6,64:$Vw6,89:$Vw8,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($V1a,$VR9,{920:1685,488:$VS9,534:$VT9}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,880:550,914:1686,925:867,926:868},{435:$V2c},{435:$V3c},{435:$V4c},{435:$V5c},{435:$V6c},{435:$V7c},{435:$V8c},{435:$V9c},{435:$Vac},o($Vaa,[2,1918]),o($Vca,[2,1921]),{27:[1,1688],929:$Vcc},o($V4a,[2,1961]),o($V4a,[2,1962]),{179:$Vdc},o($Vec,[2,1347]),{180:$Vfc},o($Vgc,[2,1350]),o($Vaa,[2,1919]),{929:$Vcc},o($Vca,[2,1923]),o($Vp8,[2,1965]),o($Vp8,[2,1966]),o($Vp8,[2,1967]),o([2,41,54,64,91,95,136,142,179,180,208,224,237,238,242,254,277,347,348,349,350,351,352,353,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,757,758,771,776,787,789,877],[2,1348]),o($Vhc,[2,1351]),o($Vca,[2,1920]),o($Vca,[2,1922]),o($Vs8,$Vic,{819:1691,820:1692,821:1693,822:1694,138:$Vjc}),o($Vx8,[2,1428]),o($Vkc,[2,1401]),o($Vkc,[2,1402]),o($Vlc,[2,1938]),{91:[1,1696]},o($Vhc,[2,1940]),o($Vmc,[2,1404]),o($Vmc,[2,1405]),o($Vhc,[2,1941]),o($Vyb,[2,1942]),o($Vyb,[2,1937],{933:1697}),o($Vyb,[2,1944]),o($Vyb,[2,1945]),o($Vyb,[2,1946]),o($Vyb,[2,1947]),o($Vyb,[2,1948]),o($Vyb,[2,1949]),o($Vyb,[2,1950]),o($Vyb,[2,1951]),o($Vyb,[2,1952]),o($Vyb,[2,1953]),o($Vyb,[2,1954]),o($Vyb,[2,1955]),o($Vyb,[2,1956]),o($Vyb,[2,1957]),{137:1220,306:$V07,370:927,410:603,411:$V37,934:1206,936:1208,938:1210,940:1212,942:1214,944:1216,946:1218},o($Vx8,[2,1427]),o($Vy8,[2,1473]),{27:[1,1699],453:$Vnc},o($V2,[2,810]),{27:[1,1701],57:[1,1700]},o($V2,[2,814]),o($V2,[2,815]),{27:[1,1703],40:1702,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{27:[1,1705],40:553,41:$Vv6,64:$Vw6,130:1704,131:1706,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},{40:1707,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:1708,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{2:$Vea,91:$Vfa,93:1709},{2:$Vea,91:$Vfa,93:1710},{91:$Voc,95:$Vpc},o($Vyb,[2,1414],{95:[1,1713]}),o($Vqc,[2,1412]),o([2,27,41,50,54,64,89,91,95,136,138,144,179,180,208,224,237,238,242,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,723,758,771,787,789,877],$VAb,{509:[1,1714]}),o($V2,[2,752]),o($V2,[2,753]),o($V2,[2,2129]),o($V2,[2,2130],{502:560,172:1715,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6}),o($V2,[2,2132]),o($V2,[2,2133]),o($V2,[2,2134]),o($V2,[2,2135]),o($Vrc,[2,1815]),{138:$Vka,223:1716,361:$Vma,774:$Vqa,905:1251,906:1252},{138:$Vka,223:1717,361:$Vma,774:$Vqa,905:1251,906:1252},o($Vsc,[2,1823]),o($Vsc,[2,1824]),o($Vsc,[2,1825],{138:[1,1718]}),{361:[1,1719],774:[1,1720]},{361:[1,1721]},o($VE8,[2,2128]),o($VF8,$Ve7,{842:633,840:647,474:1722,771:$Vn7}),o($Vm7,[2,1543]),o($V2,$Vya),{40:1723,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o([404,499,757],$VC8,{252:839,156:1724,89:$Vta}),{40:854,41:$Vv6,64:$Vw6,130:1725,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{57:[1,1726]},{129:$Vtc,143:$Vuc,455:1727,461:$Via,462:$Vja},{40:1076,41:$Vv6,60:1238,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,815:1730},{394:[1,1731]},{129:$Vtc,143:$Vuc,455:1732,461:$Via,462:$Vja},{40:937,41:$Vv6,64:$Vw6,150:1337,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,395:1733,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,880:550,912:539,914:866,915:542,925:867,926:868},o($Vua,$VP9,{919:1166,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o([2,91,95,142,360,394,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,776,789,877],$V2a,{157:1177,757:$Vba}),{207:1734,620:$VDb},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,358:1348,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349,1022:1735,1029:1344,1031:1352},{40:1353,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{2:$VBa,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,414:1736,416:1737,422:1738,423:$VJa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:1361,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:874,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,846:1315},{89:[1,1740]},{26:[1,1741]},{46:1742,50:[1,1743],51:$VK7},{40:871,41:$Vv6,58:1526,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:1076,41:$Vv6,60:1744,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{66:[1,1745]},{42:1746,359:$Vlb,775:$Vmb},{42:1747,359:$Vlb,775:$Vmb},{40:1580,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:1748,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,$Veb,{502:560,172:1749,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6}),o($VJ8,$V19,{45:1750,622:$Vx9}),{40:1461,41:$Vv6,64:$Vw6,172:556,202:1751,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:1461,41:$Vv6,64:$Vw6,172:556,202:1752,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($VJ8,$V19,{45:1753,622:$Vx9}),{40:1754,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:1461,41:$Vv6,64:$Vw6,172:556,202:1755,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($VJ8,$V39,{126:1756,622:$VE9}),{40:854,41:$Vv6,64:$Vw6,130:1757,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:1758,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:1484,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:1759,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:871,41:$Vv6,58:1490,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:871,41:$Vv6,58:1493,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:871,41:$Vv6,58:1760,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($Vhb,$Ve9,{808:1761,625:$Vf9}),{40:1762,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:871,41:$Vv6,58:1505,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{453:$Vib},{40:871,41:$Vv6,58:1510,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,$Vjb,{302:1513,179:$Vk8,208:$Vkb}),o($V2,$Ve7,{842:633,840:647,474:1629,771:$Vn7}),o($V2,$VUb,{95:$VFb}),{40:854,41:$Vv6,64:$Vw6,130:1763,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:1764,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($Vm7,[2,1557],{842:918,771:$Vn7}),{410:1765,411:$Vq1,418:1766},o($Vvc,[2,1559],{410:1767,411:$V37}),o($VO8,[2,1567]),o($VN8,[2,1569],{95:[1,1768]}),o($VN8,[2,1570],{95:$Vwa}),o($Vu8,$Vv8,{932:828,848:1769,239:1770,849:1771,27:$V6,796:$Vn6}),o($Vm7,[2,1547]),{410:1765,411:$V37},o($V2,[2,206]),{27:$V6,40:1076,41:$Vv6,60:1775,64:$Vw6,122:1772,125:1773,172:556,239:1777,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,796:$Vn6,812:1776,823:1573,824:1774},o($VP8,$V2a,{157:1778,160:1779,757:$V3a}),o($V2,$V2a,{157:1780,757:$Vba}),o($V2,$VQ8,{46:932,148:1781,78:1783,27:[1,1782],51:$VR8}),o($V2,[2,227]),o($V2,$VQ8,{46:932,148:1784,51:$VK7}),o($V2,$VQ8,{46:932,148:1785,51:$VK7}),o($V2,[2,220]),o($V2,$VQ8,{46:932,148:1786,51:$VK7}),{27:[1,1788],453:$Vwc},o($V2,[2,847]),{27:[1,1790],394:[1,1789]},o($V2,[2,851]),o($V2,[2,852]),o($V2,[2,1535]),o($V2,[2,1532]),o($V2,[2,1536],{172:556,502:560,40:937,150:1791,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o([27,484],$Vxc,{497:1792,487:$Vyc}),o([404,484,499],$Vxc,{497:1794,487:$Vyc}),{796:[1,1796],987:[1,1795]},o($Vzc,$VAc,{1023:1797,1026:1798,95:[1,1799],394:[1,1800]}),o($VBc,$VAc,{1023:1801,394:$VCc}),o($VDc,[2,2244]),o($VEc,[2,2246],{95:[1,1803]}),{27:[1,1805],54:[1,1804]},o($VFc,[2,2253]),o([27,54],[2,2254]),o($VGc,[2,1483],{138:[1,1806]}),o($VHc,[2,1486]),o($VBc,$VAc,{1023:1807,95:$VIc,394:$VCc}),{54:[1,1809]},o($VV8,[2,1476]),o($VX8,[2,1478]),{394:$VJc,415:1810,420:1811,850:1812,852:1813},o($VKc,$VLc,{850:1812,852:1813,415:1816,420:1817,27:[1,1818],95:[1,1819],394:$VJc,417:$VMc}),{394:$VNc,415:1820,850:1821},o($Vvc,[2,733],{850:1821,415:1823,394:$VNc}),o($Vvc,[2,734],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,908:1361,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:1739,850:1821,415:1824,416:1825,881:1835,41:$Vv6,54:$VOc,64:$Vw6,73:$VCa,89:$VHb,95:$VPc,136:$Vi7,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VQc,224:$VRc,236:$VGa,237:$VSc,238:$VTc,241:$VHa,242:$Vy6,254:$Vz6,277:$VUc,361:$Vma,391:$VIa,394:$VNc,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VVc,508:$VKb,512:$VLb,513:$VWc,515:$VOa,517:$VXc,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,624:$VYc,633:$VRb,634:$VZc,658:$VZa,661:$V_a,668:$V$a,681:$V_c,706:$V$c,719:$V0d,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),{95:[1,1842],394:$V1d},o($V2d,[2,1846]),o($V3d,[2,1848],{95:[1,1843]}),o($V4d,[2,755]),{95:[1,1844]},o([27,91,95,360,394,404,417,499,771],$Vi8,{172:556,502:560,40:805,97:806,302:808,800:809,812:815,802:816,354:817,801:818,909:1845,911:1846,881:1860,886:1861,41:$Vv6,54:$V5d,64:$Vw6,136:$Vm8,144:$V6d,179:$Vn8,180:$Vo8,208:$V7d,224:$V8d,237:$V9d,238:$Vad,242:$Vy6,254:$Vz6,277:$Vbd,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,526:$VF6,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($V2d,$Vnd),o($Vod,$Vi8,{172:556,502:560,40:805,97:806,302:808,800:809,909:1867,881:1880,41:$Vv6,54:$Vpd,64:$Vw6,136:$Vj8,179:$Vk8,180:$Vl8,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,242:$Vy6,254:$Vz6,277:$Vtd,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,526:$Vj7,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),{136:$VBd},o($VCd,[2,1668]),{27:[1,1884],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1882,276:1883,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:1887,241:$VHa,242:$Vy6,254:$Vz6,273:1885,276:1886,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VDd,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1888,276:1889,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:[1,1890],800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VDd,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1892,276:1893,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:[1,1894],800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{89:$Vx6,880:1895,884:1896},{27:[1,1899],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1897,276:1898,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:[1,1903],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1901,276:1904,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,586:$VEd,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,787:$VFd,794:$Vbb,800:1422,801:1428,830:1389,832:1403,882:1900,883:1377,887:1902,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426,1035:1905,1036:1906,1037:1908,1038:1909},o($VGd,[2,1699]),o($VHd,[2,1797]),o($VCd,$VId,{891:1911,897:1912,89:$VJd}),{89:$VJd,891:1914,897:1915},o($VHd,[2,1801]),o($VHd,[2,1802]),o($VHd,[2,1803]),o($VGd,[2,1804]),o($VGd,[2,1805]),o($VGd,[2,1808]),o($VGd,[2,1809]),o($VHd,[2,1818]),o([2,27,41,50,54,64,89,91,95,136,144,179,180,208,224,237,238,242,254,277,360,394,404,417,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,723,758,771,787,789,877],$VKd,{138:[1,1916]}),{89:[2,1984]},{89:[2,1985]},{89:[2,1986]},{89:[2,1987]},{89:[2,1988]},{89:[2,1989]},{89:[2,1990]},o($VCd,$VLd,{949:1917,955:1918,951:1919,957:1920,684:$VMd}),{27:[1,1923],684:$VMd,951:1922,957:1924},o($VHd,[2,1970]),o($VHd,[2,1971]),{138:$Vka,223:1248,361:$Vma,508:$Vna,774:$Vqa,826:1925,900:$Vra,905:1251,906:1252},o($VGd,[2,1819]),o($VGd,[2,1812]),o($VGd,[2,1972]),o($VGd,[2,1974],{951:1926,684:$VNd}),o($VGd,[2,1978]),o($VGd,[2,1979]),o($VHd,[2,1820]),o($VHd,[2,1821]),o($VOd,[2,1996]),o($VOd,[2,1997]),o($VOd,[2,1998]),{89:[1,1928]},{89:[1,1929]},{89:[1,1930]},o($VGd,[2,1822]),o($VGd,[2,1488],{138:[1,1931]}),o($VGd,[2,1999]),o($VGd,[2,2000]),o($VGd,[2,2001]),o($VHd,[2,1832]),o($VHd,[2,1833]),o($VHd,[2,1834]),{89:[1,1932]},{89:[1,1933]},{89:[1,1934]},o($VGd,[2,1835]),o($VGd,[2,1836]),o($VHd,[2,1837]),o($VHd,[2,1838]),{89:[2,2090]},{89:[2,2091]},{89:[2,2092]},{89:[2,2093]},{89:[2,2094]},{89:[2,2095]},{89:[2,2096]},{89:[2,2097]},{89:[2,2098]},{89:[2,2099]},{89:[2,2100]},{89:[2,2101]},{89:[2,2102]},{89:[2,2103]},{27:[1,1936],41:[1,1935]},o($V2,[2,36]),{27:[1,1939],40:1457,41:$Vv6,64:$Vw6,172:556,184:1937,186:1938,187:1940,195:1941,202:1942,205:1943,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:1458},o($V2,[2,267]),o([27,404,499,653],$VPd,{173:1944,174:1945,175:1946,176:1947,177:1948,178:1949,86:[1,1950]}),o($V2,[2,243],{502:560,172:1951,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6}),o($V2,[2,246]),{27:[1,1953],597:$VQd},o($VRd,[2,1374]),o($VSd,$VTd,{309:1954,310:1955,355:1956,89:[1,1957]}),o($V2,[2,508],{172:556,502:560,40:1461,202:1958,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($VUd,$VTd,{355:1956,309:1959,89:$VVd}),o($VWd,$VXd,{138:[1,1961]}),o($VYd,[2,1440],{138:[1,1962]}),{89:$VZd,316:1963,319:1964},o($V2,[2,521],{172:556,502:560,40:1461,202:1966,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o([51,86,89,101,106,109,136,206,208,256,268,287,306,360,404,499,535,653],$VXd,{138:[1,1967]}),{89:$V_d,316:1968},{27:[1,1971],40:1461,41:$Vv6,64:$Vw6,172:556,202:1970,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,538],{172:556,502:560,40:1461,202:1972,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{40:1461,41:$Vv6,64:$Vw6,172:556,202:1973,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,664],{46:1974,51:$VK7}),o($V2,$V$d,{388:1975,27:[1,1976],538:$V0e,718:$V1e}),o($V2,[2,641],{172:556,502:560,40:1979,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($V2,$V$d,{388:1980,538:$V0e,718:$V1e}),o($V2e,[2,1370]),o($VRd,[2,1371]),{89:$VZd,316:1981,319:1982},o($V2,[2,647],{172:556,502:560,40:1461,202:1983,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{89:$V_d,316:1984},{27:[1,1986],40:1457,41:$Vv6,64:$Vw6,172:556,202:1985,205:1987,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:1458},o($V2,[2,655]),{27:[1,1989],46:1988,51:$VR8,78:1990},o($V2,[2,667]),o($V2,[2,668],{46:1991,51:$VK7}),o($VP8,$V3e,{389:1992,390:$V4e}),o($V2,[2,674]),o($V2,$V3e,{389:1994,390:$V4e}),o($V2,$V3e,{389:1995,390:$V4e}),o($V2,[2,680]),o($V2,[2,681],{172:556,502:560,40:854,130:1996,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($V2,[2,685]),o($V2,[2,684]),o($V2,[2,2150]),o($V2,[2,2189],{208:[1,1997]}),o($V2,[2,2162]),o($V2,[2,2164]),o($V2,[2,2165]),o($V2,[2,2166]),o($V2,[2,2168]),o($V2,[2,2169]),o($V2,[2,2170]),o($V2,[2,2176]),o($VP8,$VQ8,{46:932,78:933,148:1998,152:1999,51:$VR8}),o($V2,[2,2181]),o($V2,$VQ8,{46:932,148:2000,51:$VK7}),o($V2,$VQ8,{46:932,148:2001,51:$VK7}),o($V2,$V5e,{27:[1,2003],208:$V6e}),o($V2,$V7e,{27:[1,2005],142:[1,2004]}),o($V2,[2,2200]),o($V2,[2,2212]),o($V2,[2,2215]),o($V2,[2,2216]),{41:$Vv6,64:$Vw6,172:2006,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},o($V2,[2,2219],{502:560,172:2007,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6}),o($V2,[2,2222]),o($V2,[2,2224]),o($V2,[2,2225]),o($V2,[2,2227]),{179:$Vk8,302:2008},o($V2,[2,2229]),o($Vd9,[2,1377]),o($Vd9,[2,1378]),o($Vd9,[2,1444]),o($Vd9,$V8e),o([2,27,41,54,64,91,95,136,179,180,208,224,237,238,242,254,277,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,624,625,634,649,673,681,682,706,719,758,771,787,789,877],[2,1400]),{208:[1,2009]},o($V9e,$Vae,{47:2010,75:2011,100:2012,653:$Vs9}),{27:[1,2015],51:[1,2013],53:[1,2014]},o($V2,[2,61]),o([51,404,499,535],$Vae,{100:2012,47:2016,653:$VB9}),o($V2,[2,42]),o($V2,[2,93]),{26:[1,2017],27:[1,2019],63:[1,2018]},o($V2,[2,73]),{27:[1,2021],40:1076,41:$Vv6,60:2020,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,78]),{27:[1,2023],40:2022,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,82]),o($Vp7,[2,1344]),o($Vp7,[2,1345]),o($V2,[2,112]),o($V2,[2,125]),o($Vbe,[2,474]),o($Vbe,[2,475]),o($Vbe,[2,476]),o($Vbe,[2,477]),o($Vbe,[2,478]),o($Vbe,[2,479]),o($Vbe,[2,480]),o($V2,[2,114]),{97:2026,179:$Vk8,180:$Vl8,182:2024,183:2025,302:808,800:809},o($V2,[2,115]),o($V2,$Vce,{27:[1,2027]}),o($V2,[2,129]),o($Vde,[2,1468]),{27:[1,2028],717:[1,2029]},{27:[1,2031],108:2030,116:2032,295:$Vee},o($V2,[2,130]),o([2,27,51,101,109,136,343,344,347,360,404,499,535],[2,1458]),o([2,51,101,109,136,343,344,347,404,499,535],[2,1459]),{97:2034,179:$Vk8,180:$Vl8,302:808,800:809},o($Vfe,[2,1466]),o($V2,[2,88]),o($V2,[2,89]),o($V2,$Vge,{27:[1,2035]}),o($V2,$Vhe,{27:[1,2038],51:[1,2036],53:[1,2037]}),o($V2,[2,150]),o($V2,[2,151]),o($V2,[2,149]),o($V2,[2,159]),o($V2,[2,160]),{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2039,241:$VHa,242:$Vy6,254:$Vz6,273:2041,276:2040,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($V2,$Vie,{27:[1,2042]}),o($V2,[2,123]),{27:[1,2044],214:2043,216:2045,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,241:$Vke,242:$Vle,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2072,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,510:$Vze,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{91:$VAe,95:$VBe},o($Vqc,[2,1445]),{54:[1,2076]},o($V2,$VCe,{27:[1,2077]}),o($V2,[2,135]),{40:1076,41:$Vv6,60:1570,64:$Vw6,112:2080,114:2081,172:556,210:2078,212:2079,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{27:[1,2083],40:2082,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,184]),o($V2,[2,179],{138:[1,2084]}),o($V2,[2,189]),{27:[1,2086],144:[1,2085]},o($V2,[2,196]),o($V2,$VDe,{27:[1,2087]}),o($V2,[2,688],{172:556,502:560,40:854,130:2088,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($V2,[2,690]),o($V2,[2,693]),o($VEe,$Vae,{100:2012,47:2089,653:$VB9}),{597:$VQd},o($V2,[2,53]),{26:[1,2090],63:[1,2091]},{40:1076,41:$Vv6,60:2092,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:2093,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,$Vce),{717:[1,2094]},{108:2095,295:$VFe},{987:[1,2097]},o($V2,$Vge),o($V2,$Vhe,{51:[1,2098],53:[1,2099]}),o($V2,$Vie),{214:2100,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,236:$VGe,241:$VHe,242:$VIe,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},o($V2,$VCe),{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2105,172:556,210:2104,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,869]),{89:$VG9,490:2106},{91:$VJe,95:$VKe},o($VLe,$VMe,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2122,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2123,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2124,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2125,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{89:$Vw8,880:1895},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2126,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2127,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,787:$V_e,794:$VTb,800:1422,830:1617,882:1900,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626,1035:2128,1037:1908},o($VHd,$VId,{891:1911,89:$V$e}),{89:$V$e,891:1914},o($V0f,$VKd,{138:[1,2131]}),o($VHd,$VLd,{949:1917,951:1919,684:$VNd}),{684:$VNd,951:1922},{138:$Vka,223:1248,361:$Vma,508:$Vna,774:$Vqa,826:2132,900:$Vra,905:1251,906:1252},{89:[1,2133]},{89:[1,2134]},{89:[1,2135]},{89:[1,2136]},{89:[1,2137]},{89:[1,2138]},o($V2,[2,870]),o($V2,[2,871]),o($V2,[2,865]),{89:$VH9,490:2106,491:2139},{89:$VG9,475:2140,490:1110},{2:$Vea,91:$Vfa,93:2141,95:$V1f},{2:$Vea,91:$Vfa,93:2143},{27:$V2f,91:$VJe,95:$V3f},o([2,41,54,64,73,89,91,95,136,138,146,179,180,224,236,237,238,241,242,254,277,361,391,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,506,507,508,510,512,513,515,517,520,525,526,529,540,541,556,578,586,588,597,600,601,616,619,622,625,633,649,658,661,668,673,681,682,743,744,745,752,758,769,771,774,775,778,779,782,783,784,787,789,794,877,962],$Vi7,{881:1835,208:$VQc,624:$VYc,634:$VZc,706:$V$c,719:$V0d}),o($V4f,[2,1784],{881:1880,54:$Vpd,95:[1,2148],208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),{27:$V6,239:2149,796:$Vn6},o($V5f,$VMe,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($VT7,[2,880],{172:556,502:560,40:854,130:2150,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($VT7,$VC8,{252:839,156:2151,89:$Vta}),o($VU7,$VC8,{252:839,485:2152,156:2153,159:2154,89:$VD8}),o($VT7,[2,886],{172:556,502:560,40:854,130:2155,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($V6f,$VC8,{252:839,156:2156,89:$Vta}),o([27,51,275,411,488,489],$VC8,{252:839,159:2154,485:2157,156:2158,89:$VD8}),o($VX7,$V1,{405:2159}),o($VX7,$V1,{405:2160}),o($V2,[2,694]),o($V2,$VYb,{437:1650,396:2161,789:$V_b}),o($V2,[2,702]),o($V7f,$V8f),{27:[1,2163],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2166,276:2165,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,858:2164,859:2162,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($V2,[2,701]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2167,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,858:2164,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V2,[2,700]),{27:$V$b,40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555,880:550,884:552,914:2168,916:1658,925:545,926:546,927:547,928:548},o($VZ7,[2,1892],{919:1166,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o($V9f,$Vaf,{921:2169,923:2170,142:$Vbf,776:$Vcf}),o($Vbc,$Vaf,{921:2173,142:$Vdf,776:$Vcf}),o($Vbc,$Vaf,{921:2175,142:$Vdf,776:$Vcf}),o($VU9,[2,1900]),o($V1c,[2,765]),o($V1c,[2,757]),o($V1c,[2,766]),o($VU9,[2,1902]),o($V1c,[2,767]),o($VU9,[2,1903]),o($V1c,[2,768]),o($VU9,[2,1904]),o($V1c,[2,769]),o($VU9,[2,1905]),o($V1c,[2,770]),o($V1c,[2,758]),o($V1c,[2,771]),o($VU9,[2,1907]),o($V1c,[2,772]),o($VU9,[2,1908]),o($V1c,[2,773]),o($VU9,[2,1909]),o($V1c,[2,774]),o($VU9,[2,1910]),o($V1c,[2,775]),o($V1c,[2,759]),o($V1c,[2,776]),o($Vbc,$Vaf,{921:2176,142:$Vdf,776:$Vcf}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,880:550,914:2177,925:867,926:868},o($Vef,$Vaf,{921:2169,142:$Vdf,776:$Vcf}),{89:[1,2178]},o($Vca,[2,1931]),o($Vec,[2,1346]),o($Vgc,[2,1349]),o($Vs8,$Vff,{821:2179,822:2180,138:$Vjc}),o($Vx8,[2,1429]),o($Vgf,[2,1430]),o($Vx8,[2,1432],{821:1693,819:2181,138:$Vhf}),{40:2183,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,796:$Vda,812:1199,814:2184},o($Vlc,[2,1939]),o($Vyb,[2,1943]),{40:2185,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,811]),{27:[1,2188],40:2186,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:$Va9,453:$Vb9,457:2187,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,775:$Vc9},o($V2,[2,816]),o($Vif,[2,822]),o($V2,[2,826]),o($Vif,[2,823]),o($V2,[2,827]),o($V2,[2,828]),o($Vif,[2,824]),o($Vif,[2,825]),o($Vjf,[2,1410]),o($Vjf,[2,1411]),o([2,27,51,71,86,89,91,101,106,109,136,142,275,287,306,360,404,411,488,489,499,535,653,757],[2,1409]),{27:$V6,40:1239,41:$Vv6,60:2191,64:$Vw6,128:2190,172:556,239:2189,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,796:$Vn6},{40:1076,41:$Vv6,60:1238,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,815:2192},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2039,241:$VHa,242:$Vy6,254:$Vz6,273:2193,276:2040,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,510:$Vze,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($V2,[2,2131]),o($Vrc,[2,1816]),o($Vrc,[2,1817]),o($Vsc,[2,1826],{361:[1,2194],774:[1,2195]}),o($Vsc,[2,1828]),{361:[1,2196]},o($Vsc,[2,1829]),o($VF8,[2,1540]),o($Vsa,$Vic,{821:1693,819:2197,138:$Vhf}),o($V2,$V2a,{157:2198,757:$Vba}),o($V2,$VQ8,{46:932,148:1781,51:$VK7}),{453:$Vnc},{57:[1,2199]},{40:1702,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:1704,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{91:$Voc,95:$Vkf},{453:$Vwc},{394:[1,2201]},o($V2,$VYb,{396:1647,437:1650,789:$V_b}),{484:$Vxc,487:$Vyc,497:2202},o($VBc,$VAc,{1023:2203,95:$VIc,394:$VCc}),{394:$VNc,415:1810,850:1821},o($VL8,$VLc,{415:1816,850:1821,95:[1,2204],394:$VNc,417:$VMc}),{95:[1,2205],394:$V1d},o([2,91,95,360,394,404,417,499,771],$Vi8,{172:556,502:560,40:805,97:806,302:808,800:809,909:1845,881:1860,41:$Vv6,54:$VNe,64:$Vw6,136:$Vj8,144:$VOe,179:$Vk8,180:$Vl8,208:$VQc,224:$VPe,237:$VQe,238:$VRe,242:$Vy6,254:$Vz6,277:$VSe,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,507:$VTe,508:$VUe,513:$VVe,517:$VWe,526:$Vj7,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($Vu8,$Vv8,{932:1222,848:1769}),{41:[1,2206]},o($VEe,$Vae,{100:2012,47:2207,653:$VB9}),{51:[1,2208],53:[1,2209]},{26:[1,2210],63:[1,2211]},{40:1076,41:$Vv6,60:2212,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:2022,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:2082,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{144:[1,2213]},o($Vlf,$VPd,{177:1948,173:2214,175:2215,86:$Vmf}),{40:1461,41:$Vv6,64:$Vw6,172:556,184:1937,187:2217,202:2218,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($VUd,$VTd,{355:1956,309:2219,89:$VVd}),{89:$V_d,316:2220},{40:1461,41:$Vv6,64:$Vw6,172:556,202:2221,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,$V$d,{388:1975,538:$V0e,718:$V1e}),{89:$V_d,316:1981},{40:1461,41:$Vv6,64:$Vw6,172:556,202:2222,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{46:1988,51:$VK7},o($V2,$V3e,{389:2223,390:$V4e}),o($V2,$VDe),o($V2,$VQ8,{46:932,148:2224,51:$VK7}),o($V2,$V5e,{208:$V6e}),o($V2,$V7e,{142:[1,2225]}),o($Vnf,$VC8,{252:839,156:2153,89:$Vta}),o([51,275,411,488,489],$VC8,{252:839,156:2226,89:$Vta}),o($VL8,[2,1558]),o($Vvc,[2,1561]),o($Vvc,[2,1560]),{40:874,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,844:2227,846:639},{91:[1,2228]},{2:$Vea,91:$Vfa,93:2229},{2:$Vea,91:$Vfa,93:2230},{91:$VAe,95:[1,2231]},{2:$Vea,91:$Vfa,93:2232},o($Vyb,[2,1447],{95:[1,2233]}),{54:[1,2234]},{54:[1,2235]},o($Vqc,[2,1455]),o($V2,$Vof,{27:[1,2236]}),o($V2,[2,223]),o($V2,[2,222]),o($V2,[2,216]),o($V2,$VQ8,{46:932,148:2237,51:$VK7}),o($V2,[2,230]),o($V2,[2,228]),o($V2,[2,226]),o($V2,[2,224]),{40:2238,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,848]),{27:[1,2241],40:2239,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:$Va9,453:$Vb9,457:2240,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,775:$Vc9},o($V2,[2,853]),o($V2,[2,1537]),{27:[1,2243],484:[1,2242]},o([27,404,484,499],[2,917]),o($V2,[2,908],{484:[1,2244]}),{796:[1,2246],988:$Vpf},o($Vqf,[2,2046],{988:[1,2247]}),o($VP8,$VYb,{437:1650,396:2248,399:2249,789:$VZb}),o($V2,$VYb,{437:1650,396:2250,789:$V_b}),{27:$VAa,40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,358:1348,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349,1029:2251,1030:2252,1031:1346},{27:[1,2254],40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,242:$Vy6,254:$Vz6,395:2253,398:2255,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555,880:550,884:552,912:539,913:540,914:541,915:542,916:543,917:544,925:545,926:546,927:547,928:548},o($V2,$VYb,{437:1650,396:2256,789:$V_b}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,395:2253,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,880:550,912:539,914:866,915:542,925:867,926:868},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,358:1348,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349,1022:2257,1029:1344,1031:1352},{27:$VDd,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2260,276:2261,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426,1032:2258,1033:2259},o($VFc,[2,2252]),{40:1076,41:$Vv6,60:2263,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,507:[1,2262],526:$Vj7},o($V2,$VYb,{437:1650,396:2264,789:$V_b}),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,358:1348,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349,1029:2251,1031:1352},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2265,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626,1032:2258},o($VL8,[2,727]),o($Vvc,[2,732]),o($Vrf,$VYb,{851:2266,436:2268,396:2269,437:2270,399:2271,27:[1,2267],789:$VZb}),o([2,91,404,453,499,619,649,682,771,877],$VYb,{437:1650,851:2272,396:2273,789:$V_b}),{27:[1,2275],40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,242:$Vy6,254:$Vz6,395:2277,398:2278,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555,856:2274,857:2276,880:550,884:552,912:539,913:540,914:541,915:542,916:543,917:544,925:545,926:546,927:547,928:548},o($VL8,[2,728]),o($VL8,[2,730]),o($Vvc,[2,735]),o($Vvc,[2,740],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,908:1361,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:1739,850:1821,415:2279,416:2281,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,95:[1,2280],138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,394:$VNc,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),{2:$VBa,27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2284,241:$VHa,242:$Vy6,254:$Vz6,273:1365,276:1367,302:1421,354:1427,361:$Vma,391:$VIa,422:2282,423:$VJa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,507:$VLa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,908:2283,910:2285,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($Vvc,[2,731]),o([2,91,360,404,453,499,619,649,682,771,877],$VYb,{437:1650,851:2266,396:2273,789:$V_b}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,395:2277,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,856:2286,880:550,912:539,914:866,915:542,925:867,926:868},o($Vvc,[2,736]),o($Vvc,[2,737]),o($V3d,[2,1849],{95:$Vsf}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,416:2288,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:1361,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2289,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2290,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2291,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2292,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2293,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2294,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($Vod,$Vnd,{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:2295,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2296,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VGd,[2,1773]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,208:$VQc,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2122,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,624:$VYc,633:$VRb,634:$VZc,658:$VZa,661:$V_a,668:$V$a,706:$V$c,719:$V0d,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,881:2297,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2298,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2299,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2300,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2301,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2302,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{27:$Vtf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2305,241:$VHa,242:$Vy6,254:$Vz6,273:1365,276:1367,302:1421,354:1427,361:$Vma,391:$VIa,416:2303,421:2304,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,507:$VLa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,908:1361,910:1362,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,416:2307,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:1361,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{2:$Vuf},o($V2d,[2,1841]),o($Vod,[2,1845]),o($Vvf,$Vwf,{878:2309,27:[1,2310],224:[1,2311]}),{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2312,276:2314,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2313,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2317,276:2319,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2318,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2320,276:2322,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2321,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2323,276:2325,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2324,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:[1,2329],208:$V7d,529:[1,2327],624:$Vhd,625:[1,2326],634:$Vjd,706:$Vld,719:$Vmd,881:2328,886:2330},{89:[1,2331],885:2332},{27:[1,2335],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2333,276:2334,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2336,276:2338,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2337,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2339,276:2341,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2340,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2342,276:2344,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2343,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2345,276:2347,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2346,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2348,276:2350,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2349,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($VCd,[2,1695]),o($VGd,[2,1771]),{27:$Vxf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2351,276:2352,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,812:1520,813:2353,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$Vxf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2355,276:2356,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,812:1520,813:2357,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$Vxf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2358,276:2359,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,812:1520,813:2360,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$Vxf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2361,276:2362,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,812:1520,813:2363,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$Vxf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2364,276:2365,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,812:1520,813:2366,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($Vod,[2,1843]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2367,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2368,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2369,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2370,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{208:$VQc,529:[1,2372],624:$VYc,625:[1,2371],634:$VZc,706:$V$c,719:$V0d,881:2373},{89:[1,2374]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2375,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2376,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2377,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2378,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2379,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2380,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VGd,[2,1769]),{40:2381,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($Vyf,$Vzf,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,517:$Vfd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VAf,[2,1701],{881:1880,54:$Vpd,208:$VQc,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,517:$Vxd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($VBf,[2,1702],{881:1835,54:$VOc,208:$VQc,237:$VSc,238:$VTc,277:$VUc,507:$VCf,517:$VXc,624:$VYc,634:$VZc,706:$V$c,719:$V0d}),o($Vyf,$VDf,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,517:$Vfd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VAf,[2,1703],{881:1880,54:$Vpd,208:$VQc,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,517:$Vxd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($VGd,[2,1704]),o($Vyf,$VEf,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,517:$Vfd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VAf,[2,1705],{881:1880,54:$Vpd,208:$VQc,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,517:$Vxd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($VGd,[2,1706]),{54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d,881:1835},o($VGf,$VHf,{881:1860,886:1861}),o($VIf,[2,1707],{881:1880}),o($VGd,[2,1708]),o($VCd,[2,1678]),o($VGd,[2,1717]),{54:$V5d,91:$VJf,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,881:1860,886:1861},{2:$Vea,54:$Vpd,91:$Vfa,93:2383,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d,881:1880},{2:$Vea,54:$VOc,91:$Vfa,93:2384,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d,881:1835},o($VCd,[2,1697]),{27:[1,2387],54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,586:$VEd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,787:$VFd,881:1860,882:2385,886:1861,887:2386,1035:1905,1036:1906,1037:1908,1038:1909},o($VGd,[2,1775]),{2:$VKf,40:1076,41:$Vv6,54:$VOc,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,208:$VQc,222:1369,223:1408,224:$VRc,236:$VGa,237:$VSc,238:$VTc,241:$VHa,242:$Vy6,254:$Vz6,273:2391,277:$VUc,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VCf,508:$VKb,512:$VLb,513:$VWc,515:$VOa,517:$VXc,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,586:$VLf,588:$VMf,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,624:$VYc,633:$VRb,634:$VZc,658:$VZa,661:$V_a,668:$V$a,681:$V_c,706:$V$c,719:$V0d,743:$V0b,744:$V1b,745:$V2b,752:$VSb,758:$VNf,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,787:$V_e,794:$VTb,800:1422,830:1617,881:1835,882:2389,888:2388,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626,1035:2128,1037:1908},{2:$VKf,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,588:$VMf,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d,787:$V_e,881:1880,882:2395,888:2396,1035:2128,1037:1908},{27:[1,2399],586:[1,2398],588:$VOf,787:$VFd,1037:2400,1038:2401},{2:$VKf,586:[1,2403],588:$VMf,888:2402},{27:[1,2404]},o($VPf,[2,2296]),o($VQf,[2,2298],{1037:1908,1035:2405,787:$V_e}),{27:[1,2409],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2406,276:2407,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,758:[1,2408],769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($VHd,[2,1799]),o($VGd,[2,1806]),{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,91:$VRf,95:$VWb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2412,241:$VHa,242:$Vy6,254:$Vz6,273:1638,276:1636,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2411,493:2413,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($VHd,[2,1800]),o($VGd,[2,1807]),{40:1239,41:$Vv6,60:2263,64:$Vw6,128:2415,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,507:$VSf,526:$VF6,796:$Vda,812:1199,814:2416},o($VHd,[2,1968]),o($VGd,[2,1973]),o($VHd,[2,2008]),o($VGd,[2,2009]),{40:2417,41:$Vv6,64:$Vw6,89:[1,2420],172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,969:2418,970:2419},o($VHd,[2,1969]),o($VGd,[2,1976]),o($VGd,[2,1977]),{27:[1,2422],41:$Vv6,64:$Vw6,172:2421,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},o($VGd,[2,1975]),{40:2417,41:$Vv6,64:$Vw6,89:[1,2423],172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,969:2418},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,91:$VTf,95:$VWb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2426,241:$VHa,242:$Vy6,254:$Vz6,273:1638,276:1636,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2425,493:2427,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,91:$VUf,128:1417,136:[1,2432],138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2430,241:$VHa,242:$Vy6,254:$Vz6,273:2428,276:2431,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,91:$VVf,95:$VWf,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2435,241:$VHa,242:$Vy6,254:$Vz6,273:2433,276:2436,302:1421,354:1427,361:$Vma,391:$VIa,394:$VXf,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426,991:2437},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:2440},o([27,41,64,73,89,95,138,146,179,180,224,236,241,242,254,361,391,461,462,465,503,504,506,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,752,769,774,775,778,779,782,783,784,794,796,962],$Vt7,{412:2443,91:$VYf,425:$Vu7,507:$VZf,581:$Vv7}),o([27,41,64,73,89,138,146,179,180,224,236,241,242,254,361,391,461,462,465,503,504,506,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,752,769,774,775,778,779,782,783,784,794,796,962],$Vt7,{412:2444,91:$V_f,425:$Vu7,581:$Vv7}),o([27,41,64,73,89,91,95,138,146,179,180,224,236,241,242,254,361,391,461,462,465,503,504,506,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,752,769,774,775,778,779,782,783,784,794,796,962],$Vt7,{412:2446,425:$Vu7,581:$Vv7}),{27:[1,2448],42:2447,359:$Vlb,775:$Vmb},o($V2,[2,37]),o($V2,[2,612],{185:2449,360:[1,2450]}),o($V2,[2,265]),o($V2,[2,266]),o($V$f,$V0g,{188:2451,196:2452,255:2453,51:[1,2455],256:[1,2454]}),o($V1g,$V0g,{255:2453,188:2456,51:$V2g,256:$V3g}),o($V4g,$V5g,{203:2459,204:2460,118:2461,119:2464,89:$VBb,206:[1,2462],208:[1,2463]}),o($V6g,$V5g,{118:2461,203:2465,89:$VEb,206:$V7g,208:$V8g}),o($V2,$V9g,{27:[1,2468]}),{2:[1,2469]},o($VP8,$Vae,{100:2012,47:2470,75:2471,653:$Vs9}),{2:$Vae,47:2472,100:2012,653:$VB9},o([2,27,91,95,101,106,109,136,238,287,306,360,404,499,535,653],[2,253]),o($Vgb,[2,255]),{97:2473,179:[1,2474],180:[1,2475],302:808,800:809},o($V2,[2,245]),o($V2e,[2,1373]),o($VRd,[2,1375]),o([27,136],$VPd,{177:1948,175:2476,86:$Vmf}),o($V2,$VPd,{177:1948,175:2477,86:$Vmf}),o($VSd,[2,602]),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,356:2479,357:2478,358:2480,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349},o($VUd,$VTd,{355:1956,309:2481,89:$VVd}),{86:$Vmf,136:$VPd,175:2482,177:1948},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,356:2483,358:2484,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349},{40:2485,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,796:$Vda,812:1199,814:2486},{40:2487,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{27:[1,2489],317:2488,320:2490,342:$Vag},o($V2,[2,527],{317:2492,342:$Vbg}),{27:$V6,91:$Vcg,226:2497,239:2498,338:2495,340:2496,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye,796:$Vn6},{89:$V_d,316:2499},{40:2485,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{317:2500,342:$Vbg},{91:$Vcg,226:2497,338:2501,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{89:$VZd,316:2502,319:2503},o($V2,[2,537],{172:556,502:560,40:1461,202:2504,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{89:$V_d,316:2505},{89:$V_d,316:2506},o($V2,[2,665]),o($V2,[2,638]),o($V2,[2,642]),o($V2,[2,1367]),o($V2,[2,1368]),o($V2,$V$d,{388:2507,538:$V0e,718:$V1e}),o($V2,[2,643]),o($V2,[2,645]),o($V2,[2,652]),{89:$V_d,316:2508},o($V2,[2,657]),{89:$VZd,316:2509,319:2510},o($V2,[2,648],{172:556,502:560,40:1461,202:2511,41:$Vv6,64:$Vw6,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{89:$V_d,316:2512},o($V2,[2,661]),o($V2,[2,670]),o($V2,[2,671]),o($V2,[2,669]),o($V2,$Vdg,{27:[1,2513]}),o($VP8,[2,679]),o($V2,[2,675]),o($V2,[2,676]),o($V2,[2,682]),{97:2514,179:$Vk8,180:$Vl8,302:808,800:809},o($V2,$Veg,{27:[1,2515]}),o($V2,[2,2184]),o($V2,[2,2182]),o($V2,[2,2185]),{97:2516,179:$Vk8,180:$Vl8,302:808,800:809},o($V2,[2,2190],{302:808,800:809,97:2517,179:$Vk8,180:$Vl8}),{27:[1,2522],129:[1,2520],143:[1,2518],461:$Vfg,462:[1,2521]},o($V2,[2,2201]),o($V2,[2,2217]),o($V2,[2,2220]),o($V2,[2,2228]),{97:2523,179:$Vk8,180:$Vl8,302:808,800:809},o($Vgg,$Vhg,{48:2524,76:2525,132:2526,134:2527,133:2528,46:2529,78:2530,51:$VR8}),o($Vig,$Vhg,{133:2528,48:2531,132:2532,46:2533,51:$VK7}),o([2,27,51,101,109,136,360,404,499,535],[2,1457]),{27:[1,2535],52:2534,55:2537,80:2536,138:$Vka,179:$Vk8,180:$Vl8,223:1408,302:1421,361:$Vma,601:$VVa,769:$V4b,774:$Vqa,800:1422,901:1388,903:1409,905:1251,906:1252,907:1423},{27:[1,2539],54:$Vjg},o($V2,[2,69]),o([404,499,535],$Vhg,{133:2528,132:2532,46:2533,48:2540,51:$VK7}),{27:[1,2542],61:2541,64:$Vkg,85:$Vlg,86:$Vmg,87:$Vng,88:$Vog},{27:[1,2549],64:$Vpg},o($V2,[2,74]),{27:[1,2551],67:2550,81:2552,89:[1,2553]},o($V2,[2,79]),o($V2,[2,46]),o($V2,[2,83]),{91:[1,2554],95:[1,2555]},o($Vqg,[2,261]),{54:[1,2556]},o($V2,[2,128]),o($Vfe,[2,1470]),{27:[1,2557],54:$Vrg},o($V2,$Vsg,{27:[1,2559]}),o($V2,[2,131]),o($V2,[2,133]),o($Vtg,$Vug,{296:2560,298:2561,300:[1,2562]}),o([27,101,136,306,360,404,499],[2,1465]),o($V2,[2,152]),{27:[1,2564],52:2563,55:2537,80:2565,138:$Vka,179:$Vk8,180:$Vl8,223:1408,302:1421,361:$Vma,601:$VVa,769:$V4b,774:$Vqa,800:1422,901:1388,903:1409,905:1251,906:1252,907:1423},{27:[1,2567],54:$Vvg},o($V2,[2,154]),{2:$Vwg,510:$Vxg,836:2568},{2:$Vwg,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,510:$Vxg,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d,836:2571,881:1880},{54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,881:1860,886:1861},o($V2,[2,124]),o($Vyg,$Vzg,{215:2572,217:2573,218:2574,220:2575,219:2576,225:2577,221:2579,177:2585,64:$VAg,85:$VBg,86:$Vmf,87:$VCg,88:$VDg,146:$VEg,224:$VFg,253:$VGg}),o($VHg,$Vzg,{219:2576,221:2579,177:2585,215:2587,218:2588,64:$VAg,85:$VBg,86:$Vmf,87:$VCg,88:$VDg,146:$VEg,224:$VIg,253:$VJg}),o($VHg,$Vzg,{219:2576,221:2579,177:2585,218:2588,215:2591,64:$VAg,85:$VBg,86:$Vmf,87:$VCg,88:$VDg,146:$VEg,224:$VIg,253:$VJg}),o($VKg,[2,328]),o($VKg,[2,329]),o($VKg,[2,330]),o($VKg,[2,331]),o($VKg,[2,332]),o($VKg,[2,333]),o($VKg,[2,334]),o($VLg,[2,335]),o($VLg,[2,336]),o($VLg,[2,337]),o($VMg,[2,1513]),o($VMg,[2,1514]),o($VMg,[2,1515]),o($VMg,[2,1516]),o($VMg,[2,1517]),o($VMg,[2,1518]),o($VMg,[2,1519]),o($VMg,[2,1520]),o($VMg,[2,1521]),o($VMg,[2,1528],{837:2592,89:[1,2593]}),o($VMg,$VNg,{838:2594,89:$VOg}),o($VMg,$VNg,{838:2596,89:$VOg}),o($VMg,[2,1525]),{237:[1,2597]},{237:[1,2598]},{237:[1,2599]},{54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,510:$VPg,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860},o($Vzb,[2,1506]),o([26,27,44,51,73,109,111,275,404,411,488,489,499,535,653],[2,1382]),{40:1076,41:$Vv6,60:1574,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,823:2601},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2602,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V2,[2,136]),{91:$VQg,95:[1,2604]},{2:$Vea,91:$Vfa,93:2605},o($Vqg,$VRg,{27:[1,2606]}),o($Vyb,[2,298],{95:[1,2607]}),o($V2,[2,177]),o($V2,[2,185]),{40:2608,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{27:[1,2610],97:2611,145:2609,146:$VSg,179:$Vk8,180:$Vl8,302:808,800:809},o($V2,[2,197]),o($V2,[2,691]),o($V2,[2,692]),o($Vig,$Vhg,{133:2528,132:2532,46:2533,48:2613,51:$VK7}),{61:2614,64:$Vkg,85:$Vlg,86:$Vmg,87:$Vng,88:$Vog},{64:[1,2615]},{67:2616,89:$VTg},o($V2,[2,57]),{54:$Vrg},o($V2,$Vsg),o($VUg,$Vug,{296:2618,300:[1,2619]}),{988:$Vpf},{52:2563,55:2620,138:$Vka,179:$Vk8,180:$Vl8,223:1408,302:1421,361:$Vma,601:$VVa,769:$V4b,774:$Vqa,800:1422,901:1388,903:1409,905:1251,906:1252,907:1423},{54:$Vvg},o($VHg,$Vzg,{215:2572,219:2576,221:2579,177:2585,218:2588,64:$VAg,85:$VBg,86:$Vmf,87:$VCg,88:$VDg,146:$VEg,224:$VIg,253:$VJg}),{237:[1,2621]},{237:[1,2622]},{237:[1,2623]},{91:$VQg,95:[1,2624]},o($Vqc,$VRg),o($VGb,[2,897]),o($VGb,[2,902]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2625,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($Vvf,$Vwf,{878:2626,224:[1,2627]}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2628,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2629,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2630,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2631,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{208:$VQc,529:[1,2633],624:$VYc,625:[1,2632],634:$VZc,706:$V$c,719:$V0d,881:2328},{89:[1,2634]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2635,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2636,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2637,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2638,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2639,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2640,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VVg,$Vzf,{881:1860,54:$VNe,144:$VOe,208:$VQc,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VVg,$VDf,{881:1860,54:$VNe,144:$VOe,208:$VQc,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VVg,$VEf,{881:1860,54:$VNe,144:$VOe,208:$VQc,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VWg,$VHf,{881:1860}),{54:$VNe,91:$VJf,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860},{54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,787:$V_e,881:1860,882:2385,1035:2128,1037:1908},{586:[1,2641],588:$VOf,787:$V_e,1037:2400},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2642,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,91:$VRf,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2643,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,60:2263,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,507:$VSf,526:$Vj7},{41:$Vv6,64:$Vw6,172:2421,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,91:$VTf,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2644,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,91:$VUf,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2645,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,91:$VVf,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2646,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VXg,$Vt7,{412:2647,91:$VYf,425:$Vu7,507:$VZf,581:$Vv7}),o($VXg,$Vt7,{412:2648,91:$V_f,425:$Vu7,581:$Vv7}),o([41,64,73,89,91,138,146,179,180,224,236,241,242,254,361,391,461,462,465,503,504,506,508,512,515,525,526,540,541,556,597,600,601,616,622,633,658,661,668,743,744,745,752,769,774,775,778,779,782,783,784,794,962],$Vt7,{412:2649,425:$Vu7,581:$Vv7}),o($V2,[2,899],{95:[1,2650]}),o($V2,[2,901],{95:$VFb}),o($VGb,[2,903]),o($V4f,[2,1792],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,273:1607,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,492:2651,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VGb,[2,904]),{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2653,241:$VHa,242:$Vy6,254:$Vz6,273:2654,276:2652,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{95:$VYg},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2295,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{208:$VQc,624:$VYc,634:$VZc,706:$V$c,719:$V0d,881:2297},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2656,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V4f,[2,1793],{95:[1,2657]}),o($VT7,$VC8,{252:839,156:2658,89:$Vta}),o($VT7,[2,882]),o($VT7,[2,883]),o($VU7,[2,878]),o($V6f,[2,1408]),o($V6f,$VC8,{252:839,156:2659,89:$Vta}),o($VT7,$VQ8,{46:932,148:2660,51:$VK7}),o($VT7,$VQ8,{46:932,148:2661,51:$VK7}),o($VU7,$VQ8,{46:932,78:933,152:2662,148:2663,51:$VR8}),o($V2,$V3,{402:6,403:7,3:394,362:395,137:396,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,363:417,364:418,365:419,366:420,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,375:455,376:456,377:457,378:458,379:459,380:460,381:461,993:464,994:465,995:466,996:467,997:468,998:469,999:470,1000:471,1001:472,1002:473,1003:474,1004:475,372:477,311:514,312:515,470:517,479:526,480:527,410:603,370:604,43:619,135:620,472:626,401:1122,409:1128,2:$V4,26:$VL9,38:$VV6,41:$V8,50:$V9,51:$Va,54:$Vb,63:$VW6,65:$Vd,66:$Ve,70:$Vf,71:$Vg,85:$Vh,86:$VX6,89:$Vj,91:$Vk,95:$Vl,101:$Vm,103:$Vn,106:$Vo,107:$Vp,129:$Vq,136:$Vr,138:$Vs,142:$Vt,143:$Vu,144:$Vv,146:$Vw,147:$VY6,149:$Vy,151:$Vz,153:$VZ6,155:$V_6,158:$VC,170:$V$6,179:$VE,180:$VF,208:$VG,224:$VH,236:$VI,237:$VJ,238:$VK,241:$VL,242:$VM,253:$VN,254:$VO,256:$VP,257:$VQ,264:$VR,268:$VS,275:$VT,277:$VU,287:$VV,288:$VW,289:$VX,291:$VY,292:$VZ,293:$V_,294:$V$,295:$V01,300:$V11,301:$V21,303:$V31,304:$V41,306:$V07,315:$V61,321:$V71,341:$V81,342:$V91,343:$Va1,344:$Vb1,347:$Vc1,348:$Vd1,349:$Ve1,350:$Vf1,351:$Vg1,352:$Vh1,353:$Vi1,359:$Vj1,361:$Vk1,390:$Vl1,391:$V17,392:$VM9,394:$Vo1,411:$V37,425:$Vr1,427:$Vs1,428:$Vt1,429:$Vu1,430:$Vv1,431:$Vw1,432:$Vx1,433:$Vy1,434:$Vz1,435:$VA1,452:$VN9,453:$VC1,461:$VD1,462:$VE1,463:$V57,465:$VG1,466:$V67,483:$V77,484:$VJ1,488:$VK1,489:$VL1,494:$V87,495:$VN1,496:$VO1,503:$VP1,504:$VQ1,505:$VO9,506:$VS1,507:$VT1,508:$VU1,509:$VV1,510:$VW1,511:$VX1,512:$VY1,513:$VZ1,514:$V_1,515:$V$1,516:$V02,517:$V12,518:$V22,519:$V32,520:$V42,521:$V52,522:$V62,523:$V72,524:$V82,525:$V92,526:$Va2,527:$Vb2,528:$Vc2,529:$Vd2,530:$Ve2,531:$Vf2,532:$Vg2,533:$Vh2,534:$Vi2,535:$Vj2,536:$Vk2,537:$Vl2,538:$Vm2,539:$Vn2,540:$Vo2,541:$Vp2,542:$Vq2,543:$Vr2,544:$Vs2,545:$Vt2,546:$Vu2,547:$Vv2,548:$Vw2,549:$Vx2,550:$Vy2,551:$Vz2,552:$VA2,553:$VB2,554:$VC2,555:$VD2,556:$VE2,557:$VF2,558:$VG2,559:$VH2,560:$VI2,561:$VJ2,562:$VK2,563:$VL2,564:$VM2,565:$VN2,566:$VO2,567:$VP2,568:$VQ2,569:$VR2,570:$VS2,571:$VT2,572:$VU2,573:$VV2,574:$VW2,575:$VX2,576:$VY2,577:$VZ2,578:$V_2,579:$V$2,580:$V03,581:$V13,582:$V23,583:$V33,584:$V43,585:$V53,586:$V63,587:$V73,588:$V83,589:$V93,590:$Va3,591:$Vb3,592:$Vc3,593:$Vd3,594:$Ve3,595:$Vf3,596:$Vg3,597:$Vh3,598:$Vi3,599:$Vj3,600:$Vk3,601:$Vl3,602:$Vm3,603:$Vn3,604:$Vo3,605:$Vp3,606:$Vq3,607:$Vr3,608:$Vs3,609:$Vt3,610:$Vu3,611:$Vv3,612:$Vw3,613:$Vx3,614:$Vy3,615:$Vz3,616:$VA3,617:$VB3,618:$VC3,619:$VD3,620:$VE3,621:$VF3,622:$VG3,623:$VH3,624:$VI3,625:$VJ3,626:$VK3,627:$VL3,628:$VM3,629:$VN3,630:$VO3,631:$VP3,632:$VQ3,633:$VR3,634:$VS3,635:$VT3,636:$VU3,637:$VV3,638:$VW3,639:$VX3,640:$VY3,641:$VZ3,642:$V_3,643:$V$3,644:$V04,645:$V14,646:$V24,647:$V34,648:$V44,649:$V54,650:$V64,651:$V74,652:$V84,653:$V94,654:$Va4,655:$Vb4,656:$Vc4,657:$Vd4,658:$Ve4,659:$Vf4,660:$Vg4,661:$Vh4,662:$Vi4,663:$Vj4,664:$Vk4,665:$Vl4,666:$Vm4,667:$Vn4,668:$Vo4,669:$Vp4,670:$Vq4,671:$Vr4,672:$Vs4,673:$Vt4,674:$Vu4,675:$Vv4,676:$Vw4,677:$Vx4,678:$Vy4,679:$Vz4,680:$VA4,681:$VB4,682:$VC4,683:$VD4,684:$VE4,685:$VF4,686:$VG4,687:$VH4,688:$VI4,689:$VJ4,690:$VK4,691:$VL4,692:$VM4,693:$VN4,694:$VO4,695:$VP4,696:$VQ4,697:$VR4,698:$VS4,699:$VT4,700:$VU4,701:$VV4,702:$VW4,703:$VX4,704:$VY4,705:$VZ4,706:$V_4,707:$V$4,708:$V05,709:$V15,710:$V25,711:$V35,712:$V45,713:$V55,714:$V65,715:$V75,716:$V85,717:$V95,718:$Va5,719:$Vb5,720:$Vc5,721:$Vd5,722:$Ve5,723:$Vf5,724:$Vg5,725:$Vh5,726:$Vi5,727:$Vj5,728:$Vk5,729:$Vl5,730:$Vm5,731:$Vn5,732:$Vo5,733:$Vp5,734:$Vq5,735:$Vr5,736:$Vs5,737:$Vt5,738:$Vu5,739:$Vv5,740:$Vw5,741:$Vx5,742:$Vy5,743:$Vz5,744:$VA5,745:$VB5,746:$VC5,747:$VD5,748:$VE5,749:$VF5,750:$VG5,751:$VH5,752:$VI5,753:$VJ5,754:$VK5,755:$VL5,756:$VM5,757:$VN5,758:$VO5,759:$VP5,760:$VQ5,761:$VR5,762:$VS5,763:$VT5,764:$VU5,765:$VV5,766:$VW5,767:$VX5,768:$VY5,769:$VZ5,770:$V_5,771:$V$5,772:$V06,773:$V16,774:$V26,775:$V36,776:$V46,777:$V56,778:$V66,779:$V76,780:$V86,781:$V96,782:$Va6,783:$Vb6,784:$Vc6,785:$Vd6,786:$Ve6,787:$Vf6,788:$Vg6,789:$Vh6,790:$Vi6,791:$Vj6,792:$Vk6,793:$Vl6,794:$Vm6,839:$V97,1005:$Va7,1020:$Vb7,1034:$Vc7}),o($V2,$V3,{402:6,403:7,3:394,362:395,137:396,4:405,5:406,6:407,7:408,8:409,9:410,10:411,11:412,12:413,13:414,14:415,15:416,363:417,364:418,365:419,366:420,30:443,31:444,32:445,33:446,161:450,162:451,163:452,164:453,165:454,375:455,376:456,377:457,378:458,379:459,380:460,381:461,993:464,994:465,995:466,996:467,997:468,998:469,999:470,1000:471,1001:472,1002:473,1003:474,1004:475,372:477,311:514,312:515,470:517,479:526,480:527,410:603,370:604,43:619,135:620,472:626,409:1128,401:2664,2:$V4,26:$VL9,38:$VV6,41:$V8,50:$V9,51:$Va,54:$Vb,63:$VW6,65:$Vd,66:$Ve,70:$Vf,71:$Vg,85:$Vh,86:$VX6,89:$Vj,91:$Vk,95:$Vl,101:$Vm,103:$Vn,106:$Vo,107:$Vp,129:$Vq,136:$Vr,138:$Vs,142:$Vt,143:$Vu,144:$Vv,146:$Vw,147:$VY6,149:$Vy,151:$Vz,153:$VZ6,155:$V_6,158:$VC,170:$V$6,179:$VE,180:$VF,208:$VG,224:$VH,236:$VI,237:$VJ,238:$VK,241:$VL,242:$VM,253:$VN,254:$VO,256:$VP,257:$VQ,264:$VR,268:$VS,275:$VT,277:$VU,287:$VV,288:$VW,289:$VX,291:$VY,292:$VZ,293:$V_,294:$V$,295:$V01,300:$V11,301:$V21,303:$V31,304:$V41,306:$V07,315:$V61,321:$V71,341:$V81,342:$V91,343:$Va1,344:$Vb1,347:$Vc1,348:$Vd1,349:$Ve1,350:$Vf1,351:$Vg1,352:$Vh1,353:$Vi1,359:$Vj1,361:$Vk1,390:$Vl1,391:$V17,392:$VM9,394:$Vo1,411:$V37,425:$Vr1,427:$Vs1,428:$Vt1,429:$Vu1,430:$Vv1,431:$Vw1,432:$Vx1,433:$Vy1,434:$Vz1,435:$VA1,452:$VN9,453:$VC1,461:$VD1,462:$VE1,463:$V57,465:$VG1,466:$V67,483:$V77,484:$VJ1,488:$VK1,489:$VL1,494:$V87,495:$VN1,496:$VO1,503:$VP1,504:$VQ1,505:$VO9,506:$VS1,507:$VT1,508:$VU1,509:$VV1,510:$VW1,511:$VX1,512:$VY1,513:$VZ1,514:$V_1,515:$V$1,516:$V02,517:$V12,518:$V22,519:$V32,520:$V42,521:$V52,522:$V62,523:$V72,524:$V82,525:$V92,526:$Va2,527:$Vb2,528:$Vc2,529:$Vd2,530:$Ve2,531:$Vf2,532:$Vg2,533:$Vh2,534:$Vi2,535:$Vj2,536:$Vk2,537:$Vl2,538:$Vm2,539:$Vn2,540:$Vo2,541:$Vp2,542:$Vq2,543:$Vr2,544:$Vs2,545:$Vt2,546:$Vu2,547:$Vv2,548:$Vw2,549:$Vx2,550:$Vy2,551:$Vz2,552:$VA2,553:$VB2,554:$VC2,555:$VD2,556:$VE2,557:$VF2,558:$VG2,559:$VH2,560:$VI2,561:$VJ2,562:$VK2,563:$VL2,564:$VM2,565:$VN2,566:$VO2,567:$VP2,568:$VQ2,569:$VR2,570:$VS2,571:$VT2,572:$VU2,573:$VV2,574:$VW2,575:$VX2,576:$VY2,577:$VZ2,578:$V_2,579:$V$2,580:$V03,581:$V13,582:$V23,583:$V33,584:$V43,585:$V53,586:$V63,587:$V73,588:$V83,589:$V93,590:$Va3,591:$Vb3,592:$Vc3,593:$Vd3,594:$Ve3,595:$Vf3,596:$Vg3,597:$Vh3,598:$Vi3,599:$Vj3,600:$Vk3,601:$Vl3,602:$Vm3,603:$Vn3,604:$Vo3,605:$Vp3,606:$Vq3,607:$Vr3,608:$Vs3,609:$Vt3,610:$Vu3,611:$Vv3,612:$Vw3,613:$Vx3,614:$Vy3,615:$Vz3,616:$VA3,617:$VB3,618:$VC3,619:$VD3,620:$VE3,621:$VF3,622:$VG3,623:$VH3,624:$VI3,625:$VJ3,626:$VK3,627:$VL3,628:$VM3,629:$VN3,630:$VO3,631:$VP3,632:$VQ3,633:$VR3,634:$VS3,635:$VT3,636:$VU3,637:$VV3,638:$VW3,639:$VX3,640:$VY3,641:$VZ3,642:$V_3,643:$V$3,644:$V04,645:$V14,646:$V24,647:$V34,648:$V44,649:$V54,650:$V64,651:$V74,652:$V84,653:$V94,654:$Va4,655:$Vb4,656:$Vc4,657:$Vd4,658:$Ve4,659:$Vf4,660:$Vg4,661:$Vh4,662:$Vi4,663:$Vj4,664:$Vk4,665:$Vl4,666:$Vm4,667:$Vn4,668:$Vo4,669:$Vp4,670:$Vq4,671:$Vr4,672:$Vs4,673:$Vt4,674:$Vu4,675:$Vv4,676:$Vw4,677:$Vx4,678:$Vy4,679:$Vz4,680:$VA4,681:$VB4,682:$VC4,683:$VD4,684:$VE4,685:$VF4,686:$VG4,687:$VH4,688:$VI4,689:$VJ4,690:$VK4,691:$VL4,692:$VM4,693:$VN4,694:$VO4,695:$VP4,696:$VQ4,697:$VR4,698:$VS4,699:$VT4,700:$VU4,701:$VV4,702:$VW4,703:$VX4,704:$VY4,705:$VZ4,706:$V_4,707:$V$4,708:$V05,709:$V15,710:$V25,711:$V35,712:$V45,713:$V55,714:$V65,715:$V75,716:$V85,717:$V95,718:$Va5,719:$Vb5,720:$Vc5,721:$Vd5,722:$Ve5,723:$Vf5,724:$Vg5,725:$Vh5,726:$Vi5,727:$Vj5,728:$Vk5,729:$Vl5,730:$Vm5,731:$Vn5,732:$Vo5,733:$Vp5,734:$Vq5,735:$Vr5,736:$Vs5,737:$Vt5,738:$Vu5,739:$Vv5,740:$Vw5,741:$Vx5,742:$Vy5,743:$Vz5,744:$VA5,745:$VB5,746:$VC5,747:$VD5,748:$VE5,749:$VF5,750:$VG5,751:$VH5,752:$VI5,753:$VJ5,754:$VK5,755:$VL5,756:$VM5,757:$VN5,758:$VO5,759:$VP5,760:$VQ5,761:$VR5,762:$VS5,763:$VT5,764:$VU5,765:$VV5,766:$VW5,767:$VX5,768:$VY5,769:$VZ5,770:$V_5,771:$V$5,772:$V06,773:$V16,774:$V26,775:$V36,776:$V46,777:$V56,778:$V66,779:$V76,780:$V86,781:$V96,782:$Va6,783:$Vb6,784:$Vc6,785:$Vd6,786:$Ve6,787:$Vf6,788:$Vg6,789:$Vh6,790:$Vi6,791:$Vj6,792:$Vk6,793:$Vl6,794:$Vm6,839:$V97,1005:$Va7,1020:$Vb7,1034:$Vc7}),o($V2,[2,698]),o($VZg,[2,1593]),o($VZg,[2,1594],{881:1835,54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d}),o($V7f,[2,1592]),o($VZg,[2,1667],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o([2,27,91,360,404,453,499,619,649,682,771,877],$V_g,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o([2,91,360,404,427,428,429,430,431,432,433,434,435,453,499,619,649,682,771,877],$V_g,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($V9f,$Vaf,{923:2170,921:2665,142:$Vbf,776:$Vcf}),o($V$g,[2,1877]),o($Vbc,[2,1887]),{27:[1,2668],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2666,276:2667,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{89:[1,2669]},o($Vbc,[2,1886]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2670,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($Vbc,[2,1888]),o($Vbc,[2,1884]),o($Vef,$Vaf,{921:2665,142:$Vdf,776:$Vcf}),{361:[1,2671]},o($Vgf,[2,1431]),o($Vx8,[2,1433],{821:1693,819:2672,138:$Vhf}),o($Vx8,[2,1435],{821:2179,138:$Vhf}),{40:2183,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($Vgf,[2,1436]),o([2,26,38,41,44,51,56,63,64,73,86,89,91,95,101,106,109,111,136,138,142,179,180,242,254,256,268,275,287,306,390,394,404,411,427,428,429,430,431,432,433,434,435,453,461,462,465,488,489,499,503,504,526,535,619,649,653,682,757,771,776,789,877],[2,1437]),o($V2,[2,806]),o($VP8,$V0h,{456:2673,460:2674,306:$V1h}),{40:2676,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,817]),o($Vyb,[2,1415],{95:[1,2677]}),o($Vyb,[2,1416],{95:[1,2678]}),o($Vqc,[2,1413]),o($Vyb,[2,1417],{95:$Vkf}),{54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,510:$VPg,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,881:1860,886:1861},o($Vsc,[2,1827]),{361:[1,2679]},o($Vsc,[2,1830]),o($Vsa,$Vff,{821:2179,138:$Vhf}),o($V2,$Vof),{40:2680,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:$Va9,453:$Vb9,457:2681,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,775:$Vc9},{40:1076,41:$Vv6,60:2191,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:2239,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,359:$Va9,453:$Vb9,457:2240,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,775:$Vc9},{484:[1,2682]},o($V2,$VYb,{437:1650,396:2683,789:$V_b}),{2:$VBa,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,422:2684,423:$VJa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:2283,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,416:2685,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:1361,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{42:2447,359:$Vlb,775:$Vmb},o($Vig,$Vhg,{133:2528,132:2532,46:2533,48:2686,51:$VK7}),{52:2534,55:2620,138:$Vka,179:$Vk8,180:$Vl8,223:1408,302:1421,361:$Vma,601:$VVa,769:$V4b,774:$Vqa,800:1422,901:1388,903:1409,905:1251,906:1252,907:1423},{54:$Vjg},{61:2687,64:$Vkg,85:$Vlg,86:$Vmg,87:$Vng,88:$Vog},{64:$Vpg},{67:2550,89:$VTg},{97:2611,145:2609,146:$VSg,179:$Vk8,180:$Vl8,302:808,800:809},o($V2,$V9g),o($V2,$Vae,{100:2012,47:2470,653:$VB9}),{97:2473,179:$Vk8,180:$Vl8,302:808,800:809},o($V2h,$V0g,{255:2453,188:2688,51:$V2g,256:$V3g}),o([51,86,101,106,109,136,256,268,287,306,360,404,499,535,653],$V5g,{203:2459,118:2461,89:$VEb,206:$V7g,208:$V8g}),{86:$Vmf,136:$VPd,175:2689,177:1948},{317:2690,342:$Vbg},{89:$V_d,316:2691},{89:$V_d,316:2509},o($V2,$Vdg),o($V2,$Veg),{129:[1,2693],143:[1,2692],461:$Vfg,462:[1,2694]},o($Vnf,$VQ8,{46:932,148:2663,51:$VK7}),o($VN8,[2,1571],{95:$Vwa}),o($VO8,[2,1572]),o($Vxa,[2,1574]),o($Vxa,[2,1575]),{27:$V6,40:1076,41:$Vv6,60:1775,64:$Vw6,172:556,239:1777,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,796:$Vn6,812:1776,823:2601,824:2695},o([51,109,275,404,411,488,489,499,535,653],[2,1383]),{40:1076,41:$Vv6,60:1574,64:$Vw6,122:2696,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,823:1573},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2699,241:$VHa,242:$Vy6,254:$Vz6,273:2697,276:2698,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2700,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V2,[2,221]),o($V2,[2,229]),o($V2,[2,843]),o($V2,[2,844]),{40:2701,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,854]),{27:[1,2703],129:[1,2702]},o($V2,[2,909]),{129:[1,2704]},o([2,27,51,86,101,106,109,136,256,268,287,306,343,344,347,360,404,484,487,499,535,653],[2,2041]),o($Vqf,[2,2044],{987:[1,2705],988:[1,2706]}),o($Vqf,[2,2045]),o($V2,$V3h,{27:[1,2707]}),o($V2,[2,2234]),o($V2,[2,2233]),o($VDc,[2,2245]),o($VEc,[2,2247],{95:[1,2708]}),o($Vzc,[2,2258]),o($VBc,[2,2259]),o($VBc,[2,2260]),o($V2,[2,2232]),o($VEc,[2,2248],{95:$VIc}),o($VDc,[2,2250]),o($VFc,[2,2251]),o($VDc,$V4h,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($VFc,[2,2256],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($VGc,[2,1484]),o($VHc,[2,1487]),o($V2,[2,2231]),o($VFc,$V4h,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VL8,[2,1579]),o($VZg,$VYb,{437:1650,396:2273,851:2709,789:$V_b}),o($Vvc,$V5h,{853:2710,854:2711,855:2712,919:2713,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o($V6h,$V7h,{438:2714,451:2715,446:2716,453:$V8h}),o($Vrf,$V8f,{2:[1,2718],27:[1,2719]}),o($V9h,$V7h,{438:2720,451:2721,453:$Vah}),o($Vvc,[2,1580]),o($Vbh,$V7h,{451:2721,438:2723,453:$Vah}),o([27,91,360,404,453,499,619,649,682,771,789,877],$Vch,{95:[1,2724]}),o($Vdh,[2,1587]),o($Vdh,[2,1588]),o($Veh,[2,1861]),o($Vdh,[2,1863],{95:[1,2725]}),o($Vvc,[2,738]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,394:$VNc,415:2726,416:2727,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,850:1821,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:1361,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V3d,[2,1852],{95:$Vsf}),{95:[1,2728],394:$Vfh},o($V2d,[2,1847]),o($V3d,[2,1854],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,908:1361,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:1739,416:2729,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,95:[1,2730],136:$VBd,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($V3d,[2,1855],{95:[1,2731]}),o([2,91,360,404,453,499,619,649,682,771,789,877],$Vch,{95:$Vgh}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:2283,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V3d,[2,1850],{95:$Vsf}),o($VIf,[2,1720],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VIf,[2,1721],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VIf,[2,1722],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VIf,[2,1723],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VIf,[2,1750],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VIf,[2,1754],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VIf,[2,1758],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VIf,[2,1759],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VGd,[2,1774]),o($VWg,$Vhh,{881:1860}),o($VWg,$Vih,{881:1860}),o($VWg,$Vjh,{881:1860}),o($VWg,$Vkh,{881:1860}),o($VWg,$Vlh,{881:1860}),{27:$Vmh,95:[1,2733],394:$Vnh},{394:[2,746]},{136:$VBd,394:[2,749]},o([136,394],$Vi7,{172:556,502:560,40:1076,905:1251,906:1252,60:1350,908:1361,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:1739,416:1825,881:1835,41:$Vv6,54:$VOc,64:$Vw6,73:$VCa,89:$VHb,95:$VPc,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VQc,224:$VRc,236:$VGa,237:$VSc,238:$VTc,241:$VHa,242:$Vy6,254:$Vz6,277:$VUc,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VVc,508:$VKb,512:$VLb,513:$VWc,515:$VOa,517:$VXc,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,624:$VYc,633:$VRb,634:$VZc,658:$VZa,661:$V_a,668:$V$a,681:$V_c,706:$V$c,719:$V0d,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($V3d,[2,1851],{95:$Vsf}),o($V4d,[2,756]),{146:$Voh,581:[1,2739],601:$Vph,769:$Vqh,879:$Vrh},o($VGd,[2,1709],{146:[1,2740],601:[1,2741],769:[1,2742]}),o($Vvf,$Vsh,{27:[1,2743]}),o($Vth,$Vuh,{881:1860,886:1861,144:$V6d,208:$V7d,507:$Vcd,508:$Vdd,517:$Vfd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VGd,[2,1728]),o($Vvh,[2,1732],{881:1880,208:$VQc,507:$Vud,508:$Vvd,517:$Vxd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($VGd,[2,1397]),o($VGd,[2,1398]),o($Vth,$Vwh,{881:1860,886:1861,144:$V6d,208:$V7d,507:$Vcd,508:$Vdd,517:$Vfd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VGd,[2,1729]),o($Vvh,[2,1733],{881:1880,208:$VQc,507:$Vud,508:$Vvd,517:$Vxd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($Vth,$Vxh,{881:1860,886:1861,144:$V6d,208:$V7d,507:$Vcd,508:$Vdd,517:$Vfd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VGd,[2,1730]),o($Vvh,[2,1734],{881:1880,208:$VQc,507:$Vud,508:$Vvd,517:$Vxd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($Vth,$Vyh,{881:1860,886:1861,144:$V6d,208:$V7d,507:$Vcd,508:$Vdd,517:$Vfd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VGd,[2,1731]),o($Vvh,[2,1735],{881:1880,208:$VQc,507:$Vud,508:$Vvd,517:$Vxd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),{89:[1,2744],885:2745},{27:[1,2748],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2746,276:2747,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($VCd,[2,1696]),o($VGd,[2,1700]),o($VGd,[2,1772]),o($Vu8,$Vv8,{172:556,502:560,932:828,40:1239,905:1251,906:1252,60:1350,222:1369,883:1377,55:1378,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,830:1389,948:1397,950:1398,952:1399,953:1400,902:1402,832:1403,954:1404,956:1405,958:1406,959:1407,223:1408,903:1409,963:1410,964:1411,965:1412,904:1416,128:1417,966:1418,967:1419,968:1420,302:1421,800:1422,907:1423,990:1426,354:1427,801:1428,276:1636,273:1638,848:2749,492:2750,849:2751,493:2752,239:2753,27:$VVb,41:$Vv6,64:$Vw6,73:$VCa,89:$VDa,95:$VWb,138:$Vka,146:$VEa,179:$Vn8,180:$Vo8,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,962:$Vcb}),o($VGd,[2,1737]),o($Vzh,$VAh,{881:1860,886:1861,27:[1,2754],54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,517:$Vfd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VBh,[2,1747],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,517:$Vxd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o([2,41,64,91,95,136,179,180,242,254,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,508,510,513,520,526,529,578,586,588,619,625,649,673,681,682,758,771,787,789,877],[2,1749],{881:1835,54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,517:$VXc,624:$VYc,634:$VZc,706:$V$c,719:$V0d}),o($VCh,$VDh,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VGd,[2,1752]),o($VEh,[2,1753],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($VCh,$VFh,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VGd,[2,1756]),o($VEh,[2,1757],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($VGf,$VGh,{881:1860,886:1861,144:$V6d,208:$V7d,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VGd,[2,1763]),o($VIf,[2,1766],{881:1880,208:$VQc,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($VGf,$VHh,{881:1860,886:1861,144:$V6d,208:$V7d,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VGd,[2,1764]),o($VIf,[2,1767],{881:1880,208:$VQc,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($VGf,$VIh,{881:1860,886:1861,144:$V6d,208:$V7d,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VGd,[2,1765]),o($VIf,[2,1768],{881:1880,208:$VQc,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($VGf,$Vhh,{881:1860,886:1861}),o($VIf,[2,2271],{881:1880}),o($VGd,[2,2276]),o([2,41,54,64,91,95,136,179,180,224,237,238,242,254,277,394,404,427,428,429,430,431,432,433,434,435,453,461,462,465,499,503,504,507,508,510,513,517,520,526,529,578,586,588,619,625,649,673,681,682,758,771,787,789,877],$V8e,{881:1835,208:$VQc,624:$VYc,634:$VZc,706:$V$c,719:$V0d}),o($VGf,$Vih,{881:1860,886:1861}),o($VIf,[2,2272],{881:1880}),o($VGd,[2,2277]),o($VGf,$Vjh,{881:1860,886:1861}),o($VIf,[2,2273],{881:1880}),o($VGd,[2,2278]),o($VGf,$Vkh,{881:1860,886:1861}),o($VIf,[2,2274],{881:1880}),o($VGd,[2,2279]),o($VGf,$Vlh,{881:1860,886:1861}),o($VIf,[2,2275],{881:1880}),o($VGd,[2,2280]),o($Vvh,[2,1724],{881:1860,144:$VOe,208:$VQc,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($Vvh,[2,1725],{881:1860,144:$VOe,208:$VQc,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($Vvh,[2,1726],{881:1860,144:$VOe,208:$VQc,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($Vvh,[2,1727],{881:1860,144:$VOe,208:$VQc,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),{89:[1,2755]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2756,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VGd,[2,1770]),o($Vu8,$Vv8,{172:556,502:560,40:1076,932:1222,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,273:1607,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,492:2757,848:2758,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VBh,[2,1746],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VEh,[2,1751],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VEh,[2,1755],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VIf,[2,1760],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VIf,[2,1761],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VIf,[2,1762],{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($Vod,[2,1844]),o($VCd,[2,1679]),o($VGd,[2,1718]),o($VGd,[2,1719]),o($VCd,[2,1698]),o($VGd,[2,1777]),{2:$VKf,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2391,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,586:$VLf,588:$VMf,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,758:$VNf,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,888:2759,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VGd,[2,1776]),o($VGd,[2,1781]),{2:$VKf,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2760,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,588:$VMf,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,888:2761,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,758:$VJh,881:1860},o($VKh,[2,2311],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:2763,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VGd,[2,2294]),o($VGd,[2,2295]),o($VGd,[2,1779]),o($VGd,[2,1780]),o($VCd,[2,2281]),{27:[1,2766],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2764,276:2765,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{2:$VKf,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2767,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,588:$VMf,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,758:$VNf,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,787:$V_e,794:$VTb,800:1422,830:1617,888:2768,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626,1035:2769,1037:1908},o($VPf,[2,2297]),o($VQf,[2,2299],{1037:1908,1035:2770,787:$V_e}),o($VGd,[2,2283]),{2:$VKf,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2771,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,588:$VMf,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,888:2772,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{2:$VKf,588:$VMf,888:2773},o($VQf,[2,2302],{1037:2400,787:$V_e}),{27:[1,2775],54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,758:[1,2774],881:1860,886:1861},o($VKh,[2,2304],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d,758:[1,2776]}),{27:[1,2778],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2041,276:2777,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($VKh,[2,2313],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,881:1835,273:2779,41:$Vv6,54:$VOc,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VQc,224:$VRc,236:$VGa,237:$VSc,238:$VTc,241:$VHa,242:$Vy6,254:$Vz6,277:$VUc,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VCf,508:$VKb,512:$VLb,513:$VWc,515:$VOa,517:$VXc,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,624:$VYc,633:$VRb,634:$VZc,658:$VZa,661:$V_a,668:$V$a,681:$V_c,706:$V$c,719:$V0d,743:$V0b,744:$V1b,745:$V2b,752:$VSb,758:[1,2780],769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VHd,[2,1991]),{27:[1,2782],91:$VLh,95:$V3f},{2:$Vea,91:$Vfa,93:2783,95:$V1f},{2:$Vea,91:$Vfa,93:2784},o($V0f,[2,1811]),o($VGd,[2,1489],{138:[1,2785]}),o($VGd,[2,1492],{138:[1,2786]}),o($VHd,[2,2010]),o($VHd,[2,2011]),o($VGd,[2,2012]),o($VMh,$VNh,{971:2787,973:2788,239:2789,975:2791,27:$V6,51:[1,2790],796:$Vn6}),o($VHd,[2,1813]),o($VGd,[2,1814]),o($VMh,$VNh,{975:2791,971:2792,51:$VOh}),o($VPh,[2,2002]),{27:[1,2795],91:$VQh,95:$V3f},{2:$Vea,91:$Vfa,93:2796,95:$V1f},{2:$Vea,91:$Vfa,93:2797},{27:[1,2799],54:$V5d,136:[1,2798],144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,881:1860,886:1861},o($VHd,[2,2068]),{2:$Vea,91:$Vfa,93:2801,136:[1,2800]},{2:$Vea,54:$Vpd,91:$Vfa,93:2803,136:[1,2802],208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d,881:1880},{27:[1,2804]},{27:[1,2806],54:$V5d,95:$VWf,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,394:$VXf,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,881:1860,886:1861,991:2805},o($VHd,[2,2105]),{2:$Vea,91:$Vfa,93:2808,95:$VWf,394:$VXf,991:2807},{2:$Vea,54:$Vpd,91:$Vfa,93:2810,95:$VWf,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,394:$VXf,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d,881:1880,991:2809},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2811,241:$VHa,242:$Vy6,254:$Vz6,273:2041,276:2812,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($VRh,[2,2118]),o($VRh,[2,2119]),o($VGd,[2,1491],{138:$VSh}),{91:[1,2814]},o($VOd,[2,2080]),{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,95:$VWb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2816,241:$VHa,242:$Vy6,254:$Vz6,273:1638,276:1636,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2815,493:2817,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2819,241:$VHa,242:$Vy6,254:$Vz6,273:2818,276:2820,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($VOd,[2,2121]),{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,91:$VTh,95:$VWb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2823,241:$VHa,242:$Vy6,254:$Vz6,273:1638,276:1636,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2822,493:2824,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{40:2825,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,38]),o($V2,[2,264]),{361:[1,2826]},o($VUh,$VVh,{189:2827,197:2828,267:2829,268:[1,2830]}),o($VWh,$VVh,{267:2829,189:2831,268:$VXh}),o($V$f,[2,385]),{27:[1,2833],89:[1,2836],119:2835,257:[1,2834]},{27:[1,2837],257:[1,2838]},o($VWh,$VVh,{267:2829,189:2839,268:$VXh}),{257:[1,2840]},{257:[1,2841]},o($V4g,[2,280]),o($V6g,[2,281]),o($V4g,[2,284]),{207:2842,209:2843,620:$Vza},{27:[1,2845],40:553,41:$Vv6,64:$Vw6,130:2844,131:2846,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($V6g,[2,287]),o($V6g,[2,282]),{207:2842,620:$VDb},{40:854,41:$Vv6,64:$Vw6,130:2844,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,247]),o($V2,[2,248]),o($VP8,[2,249]),{2:[2,251]},{2:[2,250]},o([2,27,64,85,86,87,88,91,95,101,106,109,136,146,224,238,253,287,306,360,404,499,535,653],[2,254]),o($Vgb,[2,256],{179:$V6a,181:[1,2847]}),o($Vgb,[2,257],{180:$V8a,181:[1,2848]}),{27:[1,2850],136:[1,2849]},o($V2,[2,511]),{2:$Vea,91:$Vfa,93:2851},{91:$VYh,95:[1,2853]},o($VZh,$VPd,{177:1948,175:2854,86:$Vmf}),{86:$Vmf,136:$VPd,175:2855,177:1948},{136:[1,2856]},{91:$VYh,95:$V_h},o($Vqc,$VPd,{177:1948,175:2858,86:$Vmf}),o($VWd,[2,1439]),o($VYd,[2,1442]),o($VYd,[2,1441]),{27:[1,2860],75:2861,100:2859,653:$Vs9},o($V2,[2,523]),o($V2,[2,528],{100:2862,653:$VB9}),{27:[1,2864],226:2863,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{100:2865,653:$VB9},{226:2863,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},o($V$h,[2,562]),{27:[1,2867],91:$V0i,95:[1,2868],339:2866,341:$V1i},{2:$Vea,91:$Vfa,93:2870},o($V2i,[2,566]),o($Vyb,[2,568],{95:[1,2871]}),{317:2872,342:$Vbg},{100:2873,653:$VB9},{91:$V0i,95:$V3i,339:2866,341:$V1i},{27:[1,2876],317:2875,320:2877,342:$Vag},o($V2,[2,540],{317:2878,342:$Vbg}),{89:$V_d,316:2879},{317:2880,342:$Vbg},o($V2,[2,651]),o($V2,[2,644]),o($V2,[2,649]),o($V2,[2,646]),o($V2,[2,656]),{89:$V_d,316:2881},o($V2,[2,658]),o($V2,[2,677]),o($V2,[2,2192]),o($V2,[2,2183]),o($V2,[2,2187]),o($V2,[2,2193]),{27:[1,2883],40:2882,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,2196]),{27:[1,2885],40:553,41:$Vv6,64:$Vw6,130:2884,131:2886,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},{27:[1,2888],40:2887,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,2202]),o($V2,[2,2191]),o($VP8,$V4i,{49:2889,77:2890,104:2891,109:$V5i,535:$Vr9}),o($V2,$V4i,{104:2891,49:2893,109:$V5i,535:$VA9}),o($Vgg,$V6i,{46:2529,78:2530,134:2894,133:2895,51:$VR8}),o($Vig,[2,170],{133:2528,46:2533,132:2896,51:$VK7}),o($V9e,[2,168]),o($V9e,$Vae,{100:2012,75:2897,47:2898,653:$Vs9}),o($VEe,$Vae,{100:2012,47:2899,653:$VB9}),o($V2,$V4i,{104:2891,49:2900,109:$V5i,535:$VA9}),o($Vig,$V6i,{46:2533,133:2895,51:$VK7}),o($VEe,$Vae,{100:2012,47:2898,653:$VB9}),o($V2,[2,40]),o($V2,[2,70]),o($V2,[2,72]),{27:[1,2902],54:$V7i,237:$V8i,238:$V9i,277:$Vai,809:2901},{55:2907,138:$Vka,179:$Vk8,180:$Vl8,223:1408,302:1421,361:$Vma,601:$VVa,769:$V4b,774:$Vqa,800:1422,901:1388,903:1409,905:1251,906:1252,907:1423},o($V2,[2,71]),o($V2,[2,1463],{79:2908,104:2909,535:$VA9}),{27:[1,2911],41:$Vv6,62:2910,64:$Vw6,97:1244,138:$Vka,146:$Vla,172:1242,179:$Vk8,180:$Vl8,223:1248,242:$Vy6,254:$Vz6,302:808,361:$Vma,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,508:$Vna,601:$Voa,769:$Vpa,774:$Vqa,800:809,826:1243,900:$Vra,905:1251,906:1252},o($V2,[2,76]),o($Vbi,[2,95]),o($Vbi,[2,96]),o($Vbi,[2,97]),o($Vbi,[2,98]),o($Vbi,[2,99]),o($V2,[2,44]),o($V2,[2,75]),o($V2,[2,45]),o($V2,[2,80]),o($V2,[2,81]),{27:$Vci,90:2912,92:2913,94:2914,96:2915,97:2916,179:$Vk8,180:$Vl8,302:808,800:809},o($Vdi,[2,260]),{97:2026,179:$Vk8,180:$Vl8,183:2918,302:808,800:809},{55:2919,138:$Vka,179:$Vk8,180:$Vl8,223:1408,302:1421,361:$Vma,601:$VVa,769:$V4b,774:$Vqa,800:1422,901:1388,903:1409,905:1251,906:1252,907:1423},o($Vfe,[2,1471]),{138:$Vka,223:1248,361:$Vma,508:$Vna,774:$Vqa,826:2920,900:$Vra,905:1251,906:1252},o($V2,[2,132]),o($Vei,$Vfi,{297:2921,299:2922,304:[1,2923]}),o($Vgi,$Vfi,{297:2924,304:$Vhi}),{27:[1,2927],301:[1,2926]},o($V2,[2,147]),o($V2,[2,155]),o($V2,[2,157]),{55:2928,138:$Vka,179:$Vk8,180:$Vl8,223:1408,302:1421,361:$Vma,601:$VVa,769:$V4b,774:$Vqa,800:1422,901:1388,903:1409,905:1251,906:1252,907:1423},o($V2,[2,156]),o($Vii,[2,1507]),o($Vii,[2,1511]),o($Vii,[2,1512]),o($Vii,[2,1508]),o([2,27,91,95,404,499],[2,306]),o($VHg,[2,309]),o($Vyg,$Vji,{225:2577,221:2579,177:2585,220:2929,219:2930,64:$VAg,85:$VBg,86:$Vmf,87:$VCg,88:$VDg,146:$VEg,224:$VFg,253:$VGg}),o($VHg,[2,314],{219:2576,221:2579,177:2585,218:2931,64:$VAg,85:$VBg,86:$Vmf,87:$VCg,88:$VDg,146:$VEg,224:$VIg,253:$VJg}),o($Vki,[2,312]),o($Vli,[2,326]),{27:[1,2932],146:$Vmi},o($Vki,[2,318]),{41:$Vv6,64:$Vw6,172:2934,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},{41:$Vv6,64:$Vw6,172:2935,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:2936,223:1408,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,541:$VNb,556:$VOb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{138:$Vka,223:2937,361:$Vma,774:$Vqa,905:1251,906:1252},o($Vki,[2,324]),o($Vki,[2,325]),{27:[1,2938],254:$Vni},o($VHg,[2,307]),o($VHg,$Vji,{221:2579,177:2585,219:2930,64:$VAg,85:$VBg,86:$Vmf,87:$VCg,88:$VDg,146:$VEg,224:$VIg,253:$VJg}),{146:$Vmi},{254:$Vni},o($VHg,[2,308]),o($VMg,[2,1522]),{361:[1,2940]},o($VMg,[2,1523]),{361:[1,2941]},o($VMg,[2,1524]),{27:$V6,214:2942,216:2945,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,238:$Voi,239:2944,241:$Vke,242:$Vle,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye,796:$Vn6},{27:$V6,95:[1,2949],226:2946,238:$Vpi,239:2948,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye,796:$Vn6},{40:2955,41:$Vv6,64:$Vw6,95:$Vqi,172:556,238:$Vri,242:$Vy6,243:2950,244:2952,245:2953,246:2954,247:2956,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($Vzb,[2,1505]),o($Vqc,[2,1446]),o($Vqc,$Vsi,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($V4g,[2,291]),{27:$Vti,40:1076,41:$Vv6,60:1570,64:$Vw6,112:2961,114:2962,172:556,211:2958,213:2959,221:2963,225:2964,242:$Vy6,253:$VGg,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V6g,[2,293]),o($Vyb,[2,302],{95:[1,2965]}),{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2105,172:556,210:2966,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V2,[2,180]),o($V2,[2,193]),o($V2,[2,198]),o($V2,[2,199]),o($V2,[2,200]),o($V2,$V4i,{104:2891,49:2967,109:$V5i,535:$VA9}),{41:$Vv6,62:2968,64:$Vw6,97:1244,138:$Vka,146:$Vla,172:1242,179:$Vk8,180:$Vl8,223:1248,242:$Vy6,254:$Vz6,302:808,361:$Vma,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,508:$Vna,601:$Voa,769:$Vpa,774:$Vqa,800:809,826:1243,900:$Vra,905:1251,906:1252},o($V2,[2,55]),o($V2,[2,56]),{90:2969,94:2914,97:2916,179:$Vk8,180:$Vl8,302:808,800:809},o($Vui,$Vfi,{297:2921,304:$Vhi}),{301:[1,2970]},{54:$V7i,237:$V8i,238:$V9i,277:$Vai,809:2971},{214:2942,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,236:$VGe,238:$Voi,241:$VHe,242:$VIe,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{226:2972,238:$Vpi,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{40:2974,41:$Vv6,64:$Vw6,172:556,238:$Vri,242:$Vy6,243:2973,245:2953,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2975,172:556,211:2958,221:2976,242:$Vy6,253:$VJg,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($VLe,$Vvi,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),{146:$Voh,581:[1,2977],601:$Vph,769:$Vqh,879:$Vrh},o($Vvf,$Vsh),o($Vwi,$Vuh,{881:1860,144:$VOe,208:$VQc,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($Vwi,$Vwh,{881:1860,144:$VOe,208:$VQc,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($Vwi,$Vxh,{881:1860,144:$VOe,208:$VQc,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($Vwi,$Vyh,{881:1860,144:$VOe,208:$VQc,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),{89:[1,2978]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2979,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($Vu8,$Vv8,{172:556,502:560,40:1076,932:1222,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,273:1607,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,848:2749,492:2980,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($Vzh,$VAh,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($Vxi,$VDh,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($Vxi,$VFh,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VWg,$VGh,{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VWg,$VHh,{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),o($VWg,$VIh,{881:1860,144:$VOe,208:$VQc,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2981,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,758:[1,2982],881:1860},{91:$VLh,95:$VKe},{91:$VQh,95:$VKe},{54:$VNe,136:[1,2983],144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860},{54:$VNe,95:$VWf,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,394:$VXf,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860,991:2984},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2985,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2986,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,91:$VTh,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2987,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{89:$VG9,475:2988,490:1110},o($V4f,[2,1791],{95:$VKe}),o($V4f,[2,1785],{881:1880,54:$Vpd,95:[1,2989],208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($V4f,[2,1788],{95:[1,2990]}),o($V5f,$Vvi,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2991,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V4f,[2,1786],{95:$VKe}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:2992,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VT7,[2,881]),o($VT7,$VQ8,{46:932,148:2993,51:$VK7}),o($VT7,[2,888]),o($VT7,[2,889]),o($VT7,[2,890]),o($VU7,[2,884]),{404:$VXb,499:[2,925]},o($V$g,[2,1878]),o($V9f,$Vyi,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($Vbc,[2,1916],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($Vbc,[2,1917],{881:1835,54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d}),{40:2995,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,924:2994},o($Vef,$Vyi,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),{91:[1,2996]},o($Vx8,[2,1434],{821:2179,138:$Vhf}),o($V2,$Vzi,{27:[1,2997]}),o($V2,[2,819]),{27:[1,2999],452:[1,2998]},o($VP8,$V0h,{456:3000,460:3001,306:$V1h}),{40:1076,41:$Vv6,60:1238,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,815:3002},{40:1076,41:$Vv6,60:1238,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,815:3003},o($Vsc,[2,1831]),o($V2,$V0h,{456:3004,306:$VAi}),{40:3006,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{129:[1,3007]},o($V2,$V3h),{95:[1,3008],394:$Vfh},{95:[1,3009],394:$Vnh},o($V2,$V4i,{104:2891,49:3010,109:$V5i,535:$VA9}),{41:$Vv6,62:2910,64:$Vw6,97:1244,138:$Vka,146:$Vla,172:1242,179:$Vk8,180:$Vl8,223:1248,242:$Vy6,254:$Vz6,302:808,361:$Vma,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,508:$Vna,601:$Voa,769:$Vpa,774:$Vqa,800:809,826:1243,900:$Vra,905:1251,906:1252},o([86,101,106,109,136,287,306,360,404,499,535,653],$VVh,{267:2829,189:3011,268:$VXh}),{136:[1,3012]},{100:3013,653:$VB9},{317:3014,342:$Vbg},{40:2882,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:854,41:$Vv6,64:$Vw6,130:2884,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:2887,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($Vyb,[2,1448],{95:[1,3015]}),o($Vyb,[2,1449],{95:$VBe}),o($Vqg,$Vsi,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($Vqc,[2,1452],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($Vqc,[2,1453]),o($Vqc,[2,1454],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($V2,[2,845]),{27:[1,3017],40:553,41:$Vv6,64:$Vw6,130:3016,131:3018,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,812:555},o($V2,[2,910]),{40:854,41:$Vv6,64:$Vw6,130:3019,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{988:[1,3020]},o($Vqf,[2,2043]),o($V2,[2,2235]),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,358:1348,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349,1022:3021,1029:1344,1031:1352},o($Vvc,$V5h,{854:2711,855:2712,919:2713,853:3022,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o($Vvc,[2,1582]),o($Vvc,[2,1584],{919:1166,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o($Vvc,[2,1585]),o([2,41,64,89,91,242,254,404,427,428,429,430,431,432,433,434,435,461,462,465,499,503,504,526,771],$VR9,{920:3023,488:$VS9,534:$VT9}),o($VBi,$VCi,{439:3024,443:3025,447:3026,619:$VDi}),o($V6h,$VEi,{2:[1,3028],27:[1,3029]}),o($VFi,$VCi,{439:3030,443:3031,619:$VGi}),{27:[1,3034],257:[1,3033]},o([619,649,682,877],$V7h,{451:2721,446:3036,438:3037,27:[1,3035],453:$V8h}),o($V9h,$V7h,{451:2721,438:3038,453:$Vah}),o($VFi,$VCi,{443:3031,439:3039,619:$VGi}),o($Vbh,$VEi),{257:[1,3040]},o($VHi,$VCi,{443:3031,439:3041,619:$VGi}),{27:$V6,40:553,41:$Vv6,64:$Vw6,89:$Vx6,130:549,131:551,172:556,239:3044,242:$Vy6,254:$Vz6,395:3042,398:3043,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$VF6,796:$Vn6,812:555,880:550,884:552,912:539,913:540,914:541,915:542,916:543,917:544,925:545,926:546,927:547,928:548},{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,395:3045,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,880:550,912:539,914:866,915:542,925:867,926:868},o($Vvc,[2,739]),o($V3d,[2,1853],{95:$Vsf}),{27:$Vtf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3048,241:$VHa,242:$Vy6,254:$Vz6,273:1365,276:1367,302:1421,354:1427,361:$Vma,391:$VIa,416:3046,421:3047,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,507:$VLa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,908:1361,910:1362,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($V3d,[2,1856],{95:$Vsf}),o($V3d,[2,1857],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,908:1361,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:1739,416:3049,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($V3d,[2,1858],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,908:1361,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:1739,416:3050,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,395:3042,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,880:550,912:539,914:866,915:542,925:867,926:868},{2:$VBa,27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2284,241:$VHa,242:$Vy6,254:$Vz6,273:1365,276:1367,302:1421,354:1427,361:$Vma,391:$VIa,422:3051,423:[1,3052],461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,507:$VLa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,908:2283,910:2285,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,95:[1,3053],138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,416:2281,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:1361,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VCd,[2,1673]),o($VCd,[2,1674]),o($VCd,[2,1675]),o($VCd,[2,1676]),{27:[1,3055],394:[1,3054]},o($VGd,[2,1712]),o($VGd,[2,1713]),o($VGd,[2,1714]),o($VGd,[2,1710]),o($Vu8,$Vv8,{172:556,502:560,932:828,40:1239,905:1251,906:1252,60:1350,222:1369,883:1377,55:1378,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,830:1389,948:1397,950:1398,952:1399,953:1400,902:1402,832:1403,954:1404,956:1405,958:1406,959:1407,223:1408,903:1409,963:1410,964:1411,965:1412,904:1416,128:1417,966:1418,967:1419,968:1420,302:1421,800:1422,907:1423,990:1426,354:1427,801:1428,276:1636,273:1638,849:2751,493:2752,239:2753,848:3056,492:3057,27:$VVb,41:$Vv6,64:$Vw6,73:$VCa,89:$VDa,95:$VWb,138:$Vka,146:$VEa,179:$Vn8,180:$Vo8,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,962:$Vcb}),o($VGd,[2,1736]),o($VVg,$VIi,{881:1860,886:1861,27:[1,3058],54:$V5d,144:$V6d,208:$V7d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,517:$Vfd,624:$Vhd,625:$Vid,634:$Vjd,706:$Vld,719:$Vmd}),o($VAf,[2,1743],{881:1880,54:$Vpd,208:$VQc,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,517:$Vxd,624:$VYc,625:$Vzd,634:$VZc,706:$V$c,719:$V0d}),o($VBf,[2,1745],{881:1835,54:$VOc,208:$VQc,237:$VSc,238:$VTc,277:$VUc,507:$VCf,517:$VXc,624:$VYc,634:$VZc,706:$V$c,719:$V0d}),{91:[1,3059]},{27:$V2f,91:$VJi,95:$V3f},{2:$Vea,91:$Vfa,93:3061},{2:$Vea,91:$Vfa,93:3062},{2:$Vea,91:$Vfa,93:3063,95:$V1f},o($VGd,[2,1748]),o($Vu8,$Vv8,{172:556,502:560,40:1076,932:1222,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,273:1607,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,492:3064,848:3065,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VAf,[2,1742],{881:1860,54:$VNe,144:$VOe,208:$VQc,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),{2:$Vea,91:$Vfa,93:3066,95:$VKe},{2:$Vea,91:$Vfa,93:3067},o($VGd,[2,1778]),{2:$VKf,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,588:$VMf,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860,888:3068},o($VGd,[2,2293]),o($VKh,[2,2309],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:3069,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VKh,[2,2312],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),{27:[1,3071],54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,588:$VKi,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,881:1860,886:1861},{2:$VKf,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,588:$VMf,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d,881:1880,888:3072},{2:$VKf,54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,588:$VMf,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d,881:1835,888:3073},{2:$VKf,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,588:$VMf,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,758:$VJh,881:1860,888:3074},o($VGd,[2,2288]),o($VQf,[2,2301],{1037:2400,787:$V_e}),o($VQf,[2,2300],{1037:2400,787:$V_e}),{2:$VKf,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,588:$VMf,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860,888:3075},o($VGd,[2,2286]),o($VGd,[2,2291]),{27:[1,3078],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3076,276:3077,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($VKh,[2,2317],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:3079,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VKh,[2,2305],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:3080,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VKh,[2,2308],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($VKh,[2,2322],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,881:1835,273:3081,41:$Vv6,54:$VOc,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VQc,224:$VRc,236:$VGa,237:$VSc,238:$VTc,241:$VHa,242:$Vy6,254:$Vz6,277:$VUc,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VCf,508:$VKb,512:$VLb,513:$VWc,515:$VOa,517:$VXc,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,624:$VYc,633:$VRb,634:$VZc,658:$VZa,661:$V_a,668:$V$a,681:$V_c,706:$V$c,719:$V0d,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VKh,[2,2314],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VKh,[2,2315],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:3082,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VHd,[2,1992]),{2:$Vea,91:$Vfa,93:3083,95:$VYg},o($VGd,[2,1993]),o($VGd,[2,1995]),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:3084},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:3085},{91:$VLi,444:3088,448:3089,682:$VMi,972:3086,974:3087},o($Vyb,$VLi,{972:3091,444:3092,682:$VNi}),o($V4f,$VNh,{975:2791,971:3094,51:$VOh}),{27:[1,3096],257:[1,3095]},o($V4f,[2,2019]),{91:$VLi,444:3092,682:$VNi,972:3086},{257:[1,3097]},o($VPh,[2,2003]),{2:$Vea,91:$Vfa,93:3098,95:$VYg},o($VOi,[2,2004]),o($VOi,[2,2006]),{27:[1,3100],226:3099,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{2:$Vea,91:$Vfa,93:3102,226:3101,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{2:$Vea,91:$Vfa,93:3104,226:3103,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},o($VGd,[2,2071]),{2:$Vea,91:$Vfa,93:3106,226:3105,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},o($VGd,[2,2074]),{2:$Vea,91:$Vfa,93:3107},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3109,241:$VHa,242:$Vy6,254:$Vz6,273:3108,276:3110,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{2:$Vea,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,91:$Vfa,93:3112,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3111,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{2:$Vea,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,91:$Vfa,93:3114,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3113,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VGd,[2,2108]),{2:$Vea,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,91:$Vfa,93:3116,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3115,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VGd,[2,2111]),{2:$Vea,91:$Vfa,93:3117},{2:$Vea,54:$Vpd,91:$Vfa,93:3118,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d,881:1880},{40:1076,41:$Vv6,60:2263,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($VOd,[2,2079]),{27:[1,3120],91:$VPi,95:$V3f},{2:$Vea,91:$Vfa,93:3121,95:$V1f},{2:$Vea,91:$Vfa,93:3122},{27:[1,3124],54:$V5d,91:$VQi,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,881:1860,886:1861},{2:$Vea,91:$Vfa,93:3125},{2:$Vea,54:$Vpd,91:$Vfa,93:3126,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d,881:1880},o($VOd,[2,2085]),{27:[1,3128],91:$VRi,95:$V3f},{2:$Vea,91:$Vfa,93:3129,95:$V1f},{2:$Vea,91:$Vfa,93:3130},o($V2,[2,34]),o($V2,[2,613]),o([27,101,106,109,136,287,306,360,404,499,535,653],$VPd,{177:1948,175:3131,86:$Vmf}),o($VSi,$VPd,{177:1948,175:3132,86:$Vmf}),o($VUh,[2,418]),{27:[1,3133],257:[1,3134]},o($VSi,$VPd,{177:1948,175:3135,86:$Vmf}),{257:[1,3136]},o($V1g,[2,390],{118:3137,89:$VEb}),{89:$VBb,118:3139,119:3138},o($V1g,[2,393]),{40:1076,41:$Vv6,60:1570,64:$Vw6,112:2080,114:2081,172:556,210:3140,212:2079,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V1g,[2,394]),{27:[1,3141],50:$VTi,258:3144,259:3145,260:3142,261:3143,262:3148,263:3146,264:$VUi},o($VSi,$VPd,{177:1948,175:3150,86:$Vmf}),{89:$VEb,118:3139},{50:$VVi,258:3151,259:3145,262:3148,264:$VWi},o($V4g,[2,285]),o($V6g,[2,288]),o($V4g,[2,286]),o($V6g,[2,289]),o($V6g,[2,290]),o($Vgb,[2,258],{179:$Vdc}),o($Vgb,[2,259],{180:$Vfc}),{27:[1,3155],137:3154,140:3156,306:$V51,370:847,371:848,410:421,411:$Vq1,418:442},o($V2,[2,512]),o([86,404,499],[2,604]),o($VSd,[2,603]),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,358:3157,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349},o($Vqg,$VXi,{27:[1,3158]}),{136:[1,3159]},{137:3160,306:$V07,370:927,410:603,411:$V37},{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,358:3161,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349},o($Vqc,$VXi),{27:[1,3163],318:3162,343:$VYi},o($V2,[2,524]),o($V2,[2,529],{318:3165,343:$VYi}),{318:3166,343:$VYi},o([27,653],[2,574]),o($Vlf,[2,575]),{318:3167,343:$VYi},{91:[1,3168]},{2:$Vea,91:$Vfa,93:3169},{27:$V6,226:3170,239:3171,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye,796:$Vn6},{91:[2,573]},o($VZi,[2,564]),{226:2497,338:3172,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{100:3173,653:$VB9},{318:3174,343:$VYi},{226:3170,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{27:[1,3176],75:3177,100:3175,653:$Vs9},o($V2,[2,542]),o($V2,[2,547],{100:3178,653:$VB9}),{100:3179,653:$VB9},{317:3180,342:$Vbg},{100:3181,653:$VB9},o($V2,[2,654]),o($V2,[2,2195]),o($V2,[2,2203]),o($V2,[2,2197]),o($V2,[2,2204]),o($V2,[2,2205]),o($V2,[2,2198]),o($V2,[2,2206]),o($V2,$V_i,{27:[1,3182]}),o($V2,[2,66]),o($Vde,$Vvb,{825:1550,105:3183,306:$VCb}),o($Vde,[2,1462]),o($V2,[2,65]),o($Vig,[2,172],{133:2528,46:2533,132:3184,51:$VK7}),o($V9e,[2,169]),o($Vig,[2,171],{46:2533,133:2895,51:$VK7}),o($VEe,[2,174]),o($V9e,[2,176]),o($VEe,[2,175]),o($V2,[2,64]),{27:[1,3186],275:[1,3185]},o($V2,[2,1385],{275:[1,3187]}),o($V$i,[2,1391]),o($V$i,[2,1392]),o($V$i,[2,1393]),o($V$i,[2,1394]),o($V2,[2,41]),o($V2,[2,68]),o($V2,$Vvb,{825:1550,105:3188,306:$VCb}),o($V2,[2,43]),o($V2,[2,77]),{91:$V0j,95:[1,3190]},{2:$Vea,91:$Vfa,93:3191},o($Vqc,[2,104]),o($Vyb,[2,106],{95:[1,3192]}),{54:[1,3193]},o($Vqc,[2,111]),o($Vqg,[2,262]),o($Vqg,[2,263]),o($Vde,[2,1469]),o($Vei,[2,481]),o($Vgi,[2,483]),{27:[1,3195],301:[1,3194]},o($Vgi,[2,482]),{301:[1,3196]},{27:[1,3198],257:[1,3197]},o($V1j,[2,487]),o($V2,[2,148]),o($VHg,[2,316],{219:2576,221:2579,177:2585,218:3199,64:$VAg,85:$VBg,86:$Vmf,87:$VCg,88:$VDg,146:$VEg,224:$VIg,253:$VJg}),o($Vki,[2,313]),o($VHg,[2,315],{221:2579,177:2585,219:2930,64:$VAg,85:$VBg,86:$Vmf,87:$VCg,88:$VDg,146:$VEg,224:$VIg,253:$VJg}),o($Vli,[2,327]),o($Vki,[2,323]),o($Vki,[2,319]),o($Vki,[2,320]),o($Vki,[2,321]),o($Vki,[2,322]),o([2,64,85,86,87,88,89,91,95,146,224,253,404,499],[2,383]),o([2,27,64,85,86,87,88,89,91,95,146,224,253,404,499],[2,382]),{91:[1,3200],95:[1,3201]},{91:[1,3202]},{238:[1,3203]},o($VKg,[2,339]),{2:$V2j,238:$V3j,240:3204},{2:$V2j,238:$V3j,240:3207},{95:[1,3208]},o($VKg,[2,343]),{2:$V2j,238:$V3j,240:3209},{27:$V6,239:3210,796:$Vn6},{95:[1,3212],238:$V4j},o($VKg,[2,349]),{2:$V2j,238:$V3j,240:3213},o($V5j,[2,351]),o($Vy7,[2,353],{247:3214,95:$Vqi}),{248:[1,3215]},{40:3216,41:$Vv6,64:$Vw6,95:$V6j,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V7j,[2,1331]),{91:[1,3218]},{2:$Vea,91:$Vfa,93:3219},{2:$Vea,91:$Vfa,93:3220},o($Vqg,$V8j,{27:[1,3221]}),o($Vyb,[2,300],{95:[1,3222]}),{89:$VD8,159:3224,252:3223},o($Vyb,[2,379],{252:3225,89:$Vta}),{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2105,172:556,210:3226,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($Vyb,[2,299],{95:$V9j}),o($V2,[2,52]),o($V2,[2,54]),{91:$V0j,95:$Vaj},{257:[1,3229]},{275:[1,3230]},{95:[1,3231]},{95:$Vbj,238:$V4j},{248:[1,3233]},o($Vqc,$V8j),{89:$Vta,252:3223},{394:[1,3234]},o($Vu8,$Vv8,{172:556,502:560,40:1076,932:1222,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,273:1607,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,848:3056,492:3235,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VVg,$VIi,{881:1860,54:$VNe,144:$VOe,208:$VQc,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,517:$VWe,624:$VYc,625:$VYe,634:$VZc,706:$V$c,719:$V0d}),{91:$VJi,95:$VKe},{54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,588:$VKi,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3236,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{226:3099,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3237,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{91:$VPi,95:$VKe},{54:$VNe,91:$VQi,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860},{91:$VRi,95:$VKe},o($V2,[2,900],{95:$VFb}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:3238,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:3239,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V4f,[2,1790],{95:$VKe}),o($V4f,[2,1794],{95:$VKe}),o($VT7,[2,887]),{91:[1,3240],95:[1,3241]},o($Vqg,[2,1914]),o($Vaa,[2,1929],{716:[1,3242]}),o($V2,[2,818]),{27:[1,3244],465:$Vcj},o($V2,[2,841]),o($V2,$Vdj,{27:[1,3245]}),o($V2,[2,821]),o($Vyb,[2,1419],{95:$Vkf}),o($Vyb,[2,1418],{95:$Vkf}),o($V2,$Vzi),{452:[1,3246]},o($V2,$V0h,{456:3247,306:$VAi}),{40:854,41:$Vv6,64:$Vw6,130:3248,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,416:3249,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:1361,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{2:$VBa,40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,422:3250,423:$VJa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:2283,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V2,$V_i),o([101,106,109,136,287,306,360,404,499,535,653],$VPd,{177:1948,175:3251,86:$Vmf}),{137:3154,306:$V07,370:927,410:603,411:$V37},{318:3162,343:$VYi},{100:3252,653:$VB9},{40:1076,41:$Vv6,60:1574,64:$Vw6,122:3253,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,823:1573},o($VP8,$VQ8,{46:932,78:933,148:3254,152:3255,51:$VR8}),o($V2,[2,911]),o($V2,$VQ8,{46:932,148:3256,51:$VK7}),o($V2,$VQ8,{46:932,148:3257,51:$VK7}),o($Vqf,[2,2042]),o($VEc,[2,2249],{95:$VIc}),o($Vvc,[2,1581]),o($Vvc,[2,1879],{130:549,880:550,172:556,502:560,919:795,40:854,925:867,926:868,914:1686,854:3258,41:$Vv6,64:$Vw6,89:$Vw8,242:$Vy6,254:$Vz6,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),o($Vej,$Vfj,{440:3259,444:3260,448:3261,682:$VMi}),o($VBi,$Vgj,{2:[1,3262],27:[1,3263]}),o($Vhj,$Vfj,{440:3264,444:3265,682:$VNi}),{27:[1,3267],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3266,276:3268,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($Vij,$VCi,{443:3031,447:3269,439:3270,619:$VDi}),o($VFi,$VCi,{443:3031,439:3271,619:$VGi}),o($Vhj,$Vfj,{444:3265,440:3272,682:$VNi}),o($VHi,$Vgj),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3273,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{27:[1,3276],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3277,276:3278,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,860:3274,861:3275,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($V9h,[2,1600]),o($V9h,$V7h,{451:2721,438:3279,453:$Vah}),o($VFi,$VCi,{443:3031,439:3280,619:$VGi}),o($Vij,$VCi,{443:3031,447:3281,439:3282,619:$VDi}),o($VFi,$VCi,{443:3031,439:3283,619:$VGi}),o($Vhj,$Vfj,{444:3265,440:3284,682:$VNi}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3286,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,860:3285,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($Vjj,$Vfj,{444:3265,440:3287,682:$VNi}),o($Veh,[2,1862]),o($Vdh,[2,1865],{95:[1,3288]}),o($Vdh,[2,1867]),o($Vdh,[2,1864]),{27:$Vmh,95:$Vkj,394:$Vlj},{394:[2,747]},{136:$VBd,394:[2,750]},o($V3d,[2,1859],{95:$Vsf}),o($V3d,[2,1860],{95:$Vsf}),{95:[1,3290],394:$Vmj},{95:[1,3291]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1739,302:1421,361:$Vma,391:$VIa,416:2727,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,507:$VLa,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,908:1361,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:3292,276:3294,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:3293,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($VGd,[2,1711]),{91:[1,3295]},{27:$V2f,91:$Vnj,95:$V3f},o($VGd,[2,1744]),o($VCd,[2,1686]),o($VCd,[2,1687]),o($VGd,[2,2263]),o($VGd,[2,2264]),o($VGd,[2,2265]),{2:$Vea,91:$Vfa,93:3297,95:$VKe},{2:$Vea,91:$Vfa,93:3298},o($VGd,[2,1740]),o($VGd,[2,1741]),o($VGd,[2,2292]),o($VKh,[2,2310],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VCd,[2,2282]),o($VGd,[2,2284]),o($VGd,[2,2289]),o($VGd,[2,2290]),o($VGd,[2,2287]),o($VGd,[2,2285]),o([27,586,588,787],$Voj,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($VKh,[2,2307],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($VKh,[2,2319],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,881:1835,273:3299,41:$Vv6,54:$VOc,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VQc,224:$VRc,236:$VGa,237:$VSc,238:$VTc,241:$VHa,242:$Vy6,254:$Vz6,277:$VUc,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VCf,508:$VKb,512:$VLb,513:$VWc,515:$VOa,517:$VXc,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,624:$VYc,633:$VRb,634:$VZc,658:$VZa,661:$V_a,668:$V$a,681:$V_c,706:$V$c,719:$V0d,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VKh,[2,2318],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VKh,[2,2306],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VKh,[2,2321],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VKh,[2,2316],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VGd,[2,1994]),o($VGd,[2,1490],{138:$VSh}),o($VGd,[2,1493],{138:$VSh}),{91:[1,3300]},{2:$Vea,91:$Vfa,93:3301},{27:[1,3303],50:$Vpj,91:$Vqj,723:$Vrj,976:3302,977:3304,978:3305,979:3306},o($Vyb,[2,2026]),{27:[1,3310],257:[1,3309]},{2:$Vea,91:$Vfa,93:3311},o($Vyb,$Vqj,{976:3302,978:3305,979:3312,50:$Vpj,723:$Vrj}),{257:[1,3313]},o($Vyb,$VLi,{444:3092,972:3314,682:$VNi}),{27:[1,3316],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,95:$VWb,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3318,241:$VHa,242:$Vy6,254:$Vz6,273:1638,276:1636,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:3315,493:3317,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($V4f,[2,2021]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:1607,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,492:3319,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($VOi,[2,2005]),{91:[1,3320]},{2:$Vea,91:$Vfa,93:3321},{2:$Vea,91:$Vfa,93:3322},o($VGd,[2,2076]),{2:$Vea,91:$Vfa,93:3323},o($VGd,[2,2070]),{2:$Vea,91:$Vfa,93:3324},o($VGd,[2,2073]),o($VGd,[2,2078]),{54:$V5d,91:$Vsj,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,881:1860,886:1861},{2:$Vea,91:$Vfa,93:3326},{2:$Vea,54:$Vpd,91:$Vfa,93:3327,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d,881:1880},{2:$Vea,54:$VNe,91:$Vfa,93:3328,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860},o($VGd,[2,2117]),{2:$Vea,54:$VNe,91:$Vfa,93:3329,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860},o($VGd,[2,2107]),{2:$Vea,54:$VNe,91:$Vfa,93:3330,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860},o($VGd,[2,2110]),o($VGd,[2,2113]),o($VGd,[2,2115]),o($VOd,[2,2081]),{2:$Vea,91:$Vfa,93:3331,95:$VYg},o($VGd,[2,2082]),o($VGd,[2,2084]),o($VOd,[2,2120]),{2:$Vea,91:$Vfa,93:3332},o($VGd,[2,2122]),o($VGd,[2,2124]),o($VOd,[2,2086]),{2:$Vea,91:$Vfa,93:3333,95:$VYg},o($VGd,[2,2087]),o($VGd,[2,2089]),o($Vei,$Vtj,{190:3334,198:3335,285:3336,106:[1,3337]}),o($Vgi,$Vtj,{285:3336,190:3338,106:$Vuj}),o($VWh,[2,420]),{89:$VD8,159:3340,252:3341},o($Vgi,$Vtj,{285:3336,190:3342,106:$Vuj}),{89:$Vta,252:3341},o($V1g,[2,391]),o($V1g,[2,392]),o($V$f,[2,386]),{95:[1,3343]},o($V1g,[2,395]),o($V1g,[2,396],{95:[1,3344]}),o($V1g,[2,397]),o($V$f,$Vvj,{95:[1,3345]}),o($V$f,[2,389]),o($Vwj,[2,403]),{27:[1,3346],89:$VD8,159:3347,252:3348},o($Vxj,[2,401]),o([27,71],$VC8,{252:839,156:3349,159:3350,89:$VD8}),o($Vgi,$Vtj,{285:3336,190:3351,106:$Vuj}),o($V2h,$Vvj,{95:[1,3352]}),{89:$Vta,252:3353},{71:$VC8,89:$Vta,156:3354,252:839},o($V2,[2,507]),o($V2,[2,513]),o($V2,[2,514]),o($VZh,$VPd,{177:1948,175:3355,86:$Vmf}),o($Vyb,[2,607],{95:[1,3356]}),{137:3357,306:$V07,370:927,410:603,411:$V37},o($V2,[2,515]),o($Vqc,$VPd,{177:1948,175:3358,86:$Vmf}),o($V2,[2,520]),o($V2,[2,525]),{54:[1,3359]},o($V2,[2,533]),o($V2,[2,532]),o($V2,[2,531]),o($V$h,[2,563]),o($VZi,[2,565]),o($V2i,[2,567]),o($Vyb,[2,569],{95:[1,3360]}),o($Vyb,[2,570],{95:$V3i}),{318:3361,343:$VYi},o($V2,[2,530]),o([27,347],$Vyj,{322:3362,330:3363,344:[1,3364]}),o($V2,[2,543]),o($Vzj,$Vyj,{322:3365,344:$VAj}),{322:3367,344:$VAj,347:$Vyj},{322:3368,344:$VAj,347:$Vyj},{100:3369,653:$VB9},{322:3370,344:$VAj,347:$Vyj},o($V2,[2,67]),o($Vde,[2,1461]),o($Vig,[2,173],{46:2533,133:2895,51:$VK7}),{27:[1,3372],54:$V7i,237:$V8i,238:$V9i,277:$Vai,809:3371},o($V2,[2,1386],{809:3373,54:$V7i,237:$V8i,238:$V9i,277:$Vai}),{54:$V7i,237:$V8i,238:$V9i,277:$Vai,809:3374},o($V2,[2,1464]),o($V2,[2,102]),{27:$Vci,94:3375,96:3376,97:2916,179:$Vk8,180:$Vl8,302:808,800:809},o($V2,[2,103]),{90:3377,94:2914,97:2916,179:$Vk8,180:$Vl8,302:808,800:809},{97:3378,179:$Vk8,180:$Vl8,302:808,800:809},{27:[1,3380],257:$VBj},o($Vgi,[2,492]),{257:$VBj},{179:$Vk8,302:3381},o($V1j,[2,488]),o($VHg,[2,317],{221:2579,177:2585,219:2930,64:$VAg,85:$VBg,86:$Vmf,87:$VCg,88:$VDg,146:$VEg,224:$VIg,253:$VJg}),o($VMg,[2,1529]),{361:[1,3382]},o($VMg,[2,1527]),o($VKg,[2,338]),o($VLg,[2,340]),o($VLg,[2,376]),o($VLg,[2,377]),o($VLg,[2,341]),{27:$V6,214:3383,216:3384,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,239:3385,241:$Vke,242:$Vle,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye,796:$Vn6},o($VLg,[2,345]),{2:$V2j,238:$V3j,240:3386},o($VKg,[2,348]),{40:2955,41:$Vv6,64:$Vw6,95:$Vqi,172:556,242:$Vy6,245:3387,246:3388,247:2956,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($VLg,[2,350]),o($Vy7,[2,354],{172:556,502:560,245:2953,40:2974,243:3389,41:$Vv6,64:$Vw6,95:$V6j,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,526:$Vj7}),{27:$V6,214:3390,216:3392,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,239:3391,241:$Vke,242:$Vle,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye,796:$Vn6},{248:[1,3393]},o($V7j,[2,1332]),o($V4g,[2,292]),o($V6g,[2,294]),o($V6g,[2,295]),o($Vyb,[2,304],{95:[1,3394]}),{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2105,172:556,210:3395,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{91:[2,378]},o($Vyb,[2,381]),o($Vyb,[2,380]),o($Vyb,[2,303],{95:$V9j}),{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2975,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{94:3375,97:2916,179:$Vk8,180:$Vl8,302:808,800:809},{179:$Vk8,302:3396},{54:$V7i,237:$V8i,238:$V9i,277:$Vai,809:3371},{214:3383,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,236:$VGe,241:$VHe,242:$VIe,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{40:2974,41:$Vv6,64:$Vw6,172:556,242:$Vy6,245:3387,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{214:3397,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,236:$VGe,241:$VHe,242:$VIe,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3398,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{91:$Vnj,95:$VKe},o($VKh,$Voj,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),{54:$VNe,91:$Vsj,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860},o($V4f,[2,1787],{95:$VKe}),o($V4f,[2,1789],{95:$VKe}),o($V$g,[2,1913]),{40:3399,41:$Vv6,64:$Vw6,172:556,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{89:[1,3400]},o($VP8,[2,840]),o($V2,[2,842]),o($V2,[2,820]),{465:$Vcj},o($V2,$Vdj),o($V2,$VQ8,{46:932,148:3401,51:$VK7}),{95:$Vsf,394:$Vlj},{394:$Vmj},o($Vui,$Vtj,{285:3336,190:3402,106:$Vuj}),{322:3403,344:$VAj,347:$Vyj},o($Vyb,[2,1450],{95:$VBe}),o($V2,$VCj,{27:[1,3404]}),o($V2,[2,914]),o($V2,[2,912]),o($V2,[2,915]),o($Vvc,[2,1880],{919:1166,427:$V98,428:$Va8,429:$Vb8,430:$Vc8,431:$Vd8,432:$Ve8,433:$Vf8,434:$Vg8,435:$V88}),o($VDj,$VEj,{441:3405,445:3406,449:3407,649:$VFj}),o($Vej,$VGj,{2:[1,3409],27:[1,3410]}),o($VHj,$VEj,{441:3411,445:3412,649:$VIj}),o($VJj,$Vfj,{444:3265,448:3415,440:3416,27:[1,3414],682:$VMi}),o($Vhj,$Vfj,{444:3265,440:3417,682:$VNi}),o($VHj,$VEj,{445:3412,441:3418,649:$VIj}),o($Vjj,$VGj),o([2,27,91,360,404,499,649,682,771,877],$VKj,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($VFi,[2,2065],{881:1835,54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d}),o($VFi,[2,2066],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($Vhj,$Vfj,{444:3265,440:3419,682:$VNi}),o($VJj,$Vfj,{444:3265,448:3420,440:3421,682:$VMi}),o($Vhj,$Vfj,{444:3265,440:3422,682:$VNi}),o($VHj,$VEj,{445:3412,441:3423,649:$VIj}),o($VHi,$VKj,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o([2,27,91,360,404,499,619,649,682,771,877],$VLj,{95:[1,3424]}),o($V9h,[2,1598]),o($V9h,[2,1599],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,881:1835,273:3425,41:$Vv6,54:$VOc,64:$Vw6,73:$VCa,89:$VHb,95:[1,3426],138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VQc,224:$VRc,236:$VGa,237:$VSc,238:$VTc,241:$VHa,242:$Vy6,254:$Vz6,277:$VUc,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VCf,508:$VKb,512:$VLb,513:$VWc,515:$VOa,517:$VXc,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,624:$VYc,633:$VRb,634:$VZc,658:$VZa,661:$V_a,668:$V$a,681:$V_c,706:$V$c,719:$V0d,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($VMj,$VNj,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($V9h,[2,1614],{881:1880,54:$Vpd,95:[1,3427],208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($VFi,$VCi,{443:3031,439:3428,619:$VGi}),o($Vhj,$Vfj,{444:3265,440:3429,682:$VNi}),o($Vhj,$Vfj,{444:3265,440:3430,682:$VNi}),o($VJj,$Vfj,{444:3265,448:3431,440:3432,682:$VMi}),o($Vhj,$Vfj,{444:3265,440:3433,682:$VNi}),o($VHj,$VEj,{445:3412,441:3434,649:$VIj}),o($Vbh,$VLj,{95:$VOj}),o($VPj,$VNj,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VQj,$VEj,{445:3412,441:3436,649:$VIj}),{40:854,41:$Vv6,64:$Vw6,89:$Vw8,130:549,172:556,242:$Vy6,254:$Vz6,395:2277,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,856:3437,880:550,912:539,914:866,915:542,925:867,926:868},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2284,241:$VHa,242:$Vy6,254:$Vz6,273:1365,276:1367,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,507:$VLa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,908:2283,910:2285,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$Vtf,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:1368,241:$VHa,242:$Vy6,254:$Vz6,273:1365,276:1367,302:1421,354:1427,361:$Vma,391:$VIa,416:3439,421:3438,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,507:$VLa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,908:1361,910:1362,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{2:$Vuf,27:$V6,239:3440,796:$Vn6},o($VGf,$VRj,{881:1860,886:1861}),o($VGd,[2,1715]),o($VIf,[2,1716],{881:1880}),o($VCd,[2,1684]),o($VCd,[2,1685]),o($VGd,[2,1738]),o($VGd,[2,1739]),o($VKh,[2,2320],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VHd,[2,2013]),o($VGd,[2,2015]),o($Vyb,[2,2025]),o($Vyb,$Vqj,{978:3305,979:3312,976:3441,50:$Vpj,723:$Vrj}),o($Vyb,[2,2028]),o($Vyb,[2,2030]),{27:[1,3442],529:[1,3443],982:[1,3444]},o($VSj,[2,2047]),o($VSj,[2,2048]),{27:[1,3449],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3452,241:$VHa,242:$Vy6,254:$Vz6,273:3450,276:3451,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,866:3445,867:3446,868:3447,869:3448,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($Vhj,[2,1628]),o($VGd,[2,2014]),{529:[1,3453],982:[1,3454]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3456,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,866:3455,868:3447,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{2:$Vea,91:$Vfa,93:3457},o($VMh,$VTj,{27:[1,3458],95:$V3f}),o($V4f,[2,2022],{881:1835,54:$VOc,95:$Vi7,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d}),o($V4f,[2,2023]),{95:$V1f},o($V4f,$VTj,{95:$VKe}),o($VHd,[2,2067]),o($VGd,[2,2077]),o($VGd,[2,2075]),o($VGd,[2,2069]),o($VGd,[2,2072]),o($VHd,[2,2104]),o($VGd,[2,2112]),o($VGd,[2,2114]),o($VGd,[2,2116]),o($VGd,[2,2106]),o($VGd,[2,2109]),o($VGd,[2,2083]),o($VGd,[2,2123]),o($VGd,[2,2088]),o($Vdi,$VUj,{191:3459,199:3460,305:3461,306:[1,3462]}),o($VVj,$VUj,{305:3461,191:3463,306:$VWj}),o($Vei,[2,464]),{27:[1,3465],107:[1,3466]},o($VVj,$VUj,{305:3461,191:3467,306:$VWj}),{107:[1,3468]},o($VWh,[2,421]),o($VUh,[2,419]),o($VVj,$VUj,{305:3461,191:3469,306:$VWj}),{27:$Vti,40:1076,41:$Vv6,60:1570,64:$Vw6,112:2961,114:2962,172:556,213:2959,221:3470,225:2964,242:$Vy6,253:$VGg,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},{50:$VVi,259:3471},{27:[1,3472],50:$VTi,259:3474,261:3473,262:3476,263:3475,264:$VUi},o($V1g,[2,412]),o($V1g,[2,413],{265:3477,89:$VXj}),{27:[1,3479],89:[1,3482],265:3481,266:3480},{27:[1,3483],71:[1,3484]},o($Vwj,[2,408],{71:[1,3485]}),o($VVj,$VUj,{305:3461,191:3486,306:$VWj}),{50:$VVi,259:3474,262:3476,264:$VWi},{89:$VXj,265:3481},{71:[1,3487]},o($Vqg,$VYj,{27:[1,3488]}),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,356:3489,358:2484,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349},o($V2,[2,509]),o($Vqc,$VYj),{179:$Vk8,302:3490},{226:2497,338:3491,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},o($V2,[2,522]),{27:[1,3493],323:3492,331:3494,347:[1,3495]},o($V2,[2,549],{323:3496,347:$VZj}),{54:[1,3498]},o($V2,[2,548],{323:3499,347:$VZj}),{54:[1,3500]},{323:3501,347:$VZj},{323:3502,347:$VZj},{322:3503,344:$VAj,347:$Vyj},{323:3504,347:$VZj},{55:3505,138:$Vka,179:$Vk8,180:$Vl8,223:1408,302:1421,361:$Vma,601:$VVa,769:$V4b,774:$Vqa,800:1422,901:1388,903:1409,905:1251,906:1252,907:1423},o($V2,[2,1387],{905:1251,906:1252,901:1388,223:1408,903:1409,302:1421,800:1422,907:1423,55:3506,138:$Vka,179:$Vk8,180:$Vl8,361:$Vma,601:$VVa,769:$V4b,774:$Vqa}),{55:3507,138:$Vka,179:$Vk8,180:$Vl8,223:1408,302:1421,361:$Vma,601:$VVa,769:$V4b,774:$Vqa,800:1422,901:1388,903:1409,905:1251,906:1252,907:1423},{55:3508,138:$Vka,179:$Vk8,180:$Vl8,223:1408,302:1421,361:$Vma,601:$VVa,769:$V4b,774:$Vqa,800:1422,901:1388,903:1409,905:1251,906:1252,907:1423},o($Vqc,[2,105]),o($Vyb,[2,107],{95:[1,3509]}),o($Vyb,[2,109],{95:$Vaj}),o($Vqc,[2,110]),{179:$Vk8,302:3510},o($Vgi,[2,493]),o($Vtg,$V_j,{303:[1,3511]}),{91:[1,3512]},{238:[1,3513]},{2:$V2j,238:$V3j,240:3514},{2:$V2j,238:$V3j,240:3515},o($VLg,[2,347]),o($V5j,[2,352]),o($Vy7,[2,356],{247:3516,95:$Vqi}),o($Vy7,[2,355],{95:$Vbj}),o([95,238],$VPd,{177:1948,175:3517,27:[1,3518],86:$Vmf}),o($V5j,[2,363]),o($V5j,[2,364]),{27:$V6,214:3519,216:3521,226:2046,227:2047,228:2048,229:2049,230:2050,231:2051,232:2052,233:2053,234:2054,235:2055,236:$Vje,239:3520,241:$Vke,242:$Vle,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye,796:$Vn6},{40:1076,41:$Vv6,60:1601,64:$Vw6,112:2105,172:556,210:3522,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($Vyb,[2,301],{95:$V9j}),o($VUg,$V_j,{303:[1,3523]}),o($V5j,$VPd,{177:1948,175:3517,86:$Vmf}),o($VWg,$VRj,{881:1860}),o($Vqg,[2,1915]),{361:[1,3524]},o($V2,$VCj),o([101,109,136,287,360,404,499,535,653],$VUj,{305:3461,191:3525,306:$VWj}),{323:3526,347:$VZj},o($V2,[2,913]),o($VKc,$V$j,{442:3527,450:3528,876:3529,877:[1,3530]}),o($VDj,$V0k,{2:[1,3531],27:[1,3532]}),o($V1k,$V$j,{876:3529,442:3533,877:$V2k}),{27:[1,3536],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3535,276:3537,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:[1,3538],441:3540,445:3412,449:3539,649:$VFj,877:$VEj},o($VHj,$VEj,{445:3412,441:3541,649:$VIj}),o($V1k,$V$j,{876:3529,442:3542,877:$V2k}),o($VQj,$V0k),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3543,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($Vhj,$Vfj,{444:3265,440:3544,682:$VNi}),o($VHj,$VEj,{445:3412,441:3545,649:$VIj}),{441:3547,445:3412,449:3546,649:$VFj,877:$VEj},o($VHj,$VEj,{445:3412,441:3548,649:$VIj}),o($V1k,$V$j,{876:3529,442:3549,877:$V2k}),o($VHj,$VEj,{445:3412,441:3550,649:$VIj}),o($VHj,$VEj,{445:3412,441:3551,649:$VIj}),{441:3553,445:3412,449:3552,649:$VFj,877:$VEj},o($VHj,$VEj,{445:3412,441:3554,649:$VIj}),o($V1k,$V$j,{876:3529,442:3555,877:$V2k}),{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3559,241:$VHa,242:$Vy6,254:$Vz6,273:3556,276:3558,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,865:3557,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($V9h,[2,1615],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3286,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,860:3560,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3286,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,860:3561,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($Vhj,$Vfj,{444:3265,440:3562,682:$VNi}),o($VHj,$VEj,{445:3412,441:3563,649:$VIj}),o($VHj,$VEj,{445:3412,441:3564,649:$VIj}),o($VHj,$VEj,{445:3412,441:3565,649:$VIj}),{441:3567,445:3412,449:3566,649:$VFj,877:$VEj},o($VHj,$VEj,{445:3412,441:3568,649:$VIj}),o($V1k,$V$j,{876:3529,442:3569,877:$V2k}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3570,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V3k,$V$j,{442:3527,876:3529,877:$V2k}),o($Vdh,[2,1866],{95:$Vgh}),{394:[2,748]},{27:$Vmh,95:$Vkj},{394:[2,751]},o($Vyb,[2,2027]),o($Vyb,[2,2033]),o($V4k,$V5k,{980:3571,983:3572,989:3573,361:$V6k,560:$V7k,982:$V8k}),o($V4k,$V5k,{989:3573,980:3577,983:3578,361:$V6k,560:$V7k,982:$V8k}),o([2,27,50,91,360,404,499,649,723,771,877],$V9k,{95:[1,3579]}),o($Vhj,[2,1627]),o($Vak,[2,1629]),o($Vhj,[2,1631]),o([2,91,404,427,428,429,430,431,432,433,434,435,499,520,578,649,673,771,877],$Vi7,{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,881:1835,273:3456,868:3580,41:$Vv6,54:$VOc,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,208:$VQc,224:$VRc,236:$VGa,237:$VSc,238:$VTc,241:$VHa,242:$Vy6,254:$Vz6,277:$VUc,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,507:$VCf,508:$VKb,512:$VLb,513:$VWc,515:$VOa,517:$VXc,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,624:$VYc,633:$VRb,634:$VZc,658:$VZa,661:$V_a,668:$V$a,681:$V_c,706:$V$c,719:$V0d,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o([2,27,50,91,95,360,404,499,649,673,723,771,877],$Vbk,{881:1860,886:1861,284:3581,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,520:$Vck,529:$Vgd,578:$Vdk,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($Vek,$Vbk,{881:1880,284:3584,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,520:$Vck,529:$Vyd,578:$Vdk,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($Vek,$Vbk,{284:3585,520:$Vck,578:$Vdk}),o($Vfk,$V5k,{980:3586,989:3587,361:$V6k,560:$Vgk,982:$V8k}),o($Vfk,$V5k,{989:3587,980:3589,361:$V6k,560:$Vgk,982:$V8k}),o([2,50,91,360,404,427,428,429,430,431,432,433,434,435,499,649,723,771,877],$V9k,{95:$Vhk}),o([2,50,91,95,360,404,427,428,429,430,431,432,433,434,435,499,649,673,723,771,877],$Vbk,{881:1860,284:3591,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,520:$Vck,529:$VXe,578:$Vdk,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VGd,[2,2016]),o($Vyb,$VLi,{444:3092,972:3592,95:$VYg,682:$VNi}),o($Vbe,$Vik,{192:3593,200:3594,286:3595,287:[1,3596]}),o($Vjk,$Vik,{286:3595,192:3597,287:$Vkk}),o($Vdi,[2,495]),{27:[1,3599],103:$Vlk},o($Vjk,$Vik,{286:3595,192:3601,287:$Vkk}),{103:$Vlk},o($Vgi,[2,466]),{27:[1,3602],108:3604,116:3603,295:$Vee},o($Vjk,$Vik,{286:3595,192:3605,287:$Vkk}),{108:3604,295:$VFe},o($Vjk,$Vik,{286:3595,192:3606,287:$Vkk}),{89:[1,3607],159:3224},o($V1g,[2,400]),o($V1g,[2,398]),o($V1g,[2,399]),o($V$f,[2,388]),o($Vwj,[2,404]),o($Vxj,[2,402]),o($V1g,[2,416]),{51:$Vmk,53:$Vnk,269:3609,271:3610},o($V1g,[2,414]),o($V1g,[2,415]),o($V$f,[2,411]),{27:[1,3613],51:$Vok,53:$Vpk,269:3615,270:3614,271:3610,272:3616},o($Vwj,[2,407]),{27:[1,3619],138:$Vka,223:3620,361:$Vma,774:$Vqa,905:1251,906:1252},{138:$Vka,223:3621,361:$Vma,774:$Vqa,905:1251,906:1252},o($Vjk,$Vik,{286:3595,192:3622,287:$Vkk}),{138:$Vka,223:3620,361:$Vma,774:$Vqa,905:1251,906:1252},o($Vyb,[2,609],{95:[1,3623]}),o($Vyb,[2,608],{95:$V_h}),o($V2,[2,576]),o($Vyb,[2,571],{95:$V3i}),o($V2,[2,551],{324:3624,332:3626,27:[1,3625],348:[1,3627]}),o($V2,[2,544]),o($V2,[2,550],{324:3628,348:$Vqk}),{54:[1,3630]},{324:3631,348:$Vqk},{54:[1,3632]},{179:$Vn8,302:3635,345:3633,346:3634,354:3636},{324:3637,348:$Vqk},{179:$Vk8,302:3635,345:3633},{324:3638,348:$Vqk},{324:3639,348:$Vqk},{323:3640,347:$VZj},{324:3641,348:$Vqk},o($V2,[2,1384]),o($V2,[2,1390]),o($V2,[2,1389]),o($V2,[2,1388]),{90:3642,94:2914,97:2916,179:$Vk8,180:$Vl8,302:808,800:809},o($Vei,[2,491]),{27:[1,3644],257:$Vrk},o($VMg,[2,1530]),o($VKg,[2,342]),o($VLg,[2,344]),o($VLg,[2,346]),{40:2974,41:$Vv6,64:$Vw6,95:$V6j,172:556,242:$Vy6,243:3645,245:2953,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7},o($V5j,[2,358]),o($V5j,[2,362]),{27:[1,3646]},o($V5j,[2,360]),o($V5j,[2,361]),o($Vyb,[2,305],{95:$V9j}),{257:$Vrk},{91:[1,3647]},o([101,109,136,360,404,499,535,653],$Vik,{286:3595,192:3648,287:$Vkk}),{324:3649,348:$Vqk},o($V3k,[2,1589]),o($V1k,[2,800]),o($V3k,[2,1662]),{27:$Vsk,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3652,276:3651,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:[1,3653]},o($V1k,$V$j,{876:3529,442:3654,877:$V2k}),o($V1k,[2,799]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3655,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o([2,27,91,360,404,499,771,877],$Vtk,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($VHj,[2,1659],{881:1835,54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d}),o($VHj,[2,1660],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($VHj,$VEj,{445:3412,441:3656,649:$VIj}),o($V1k,$V$j,{876:3529,442:3657,877:$V2k}),{450:3658,877:$Vuk},o($V1k,$V$j,{876:3529,442:3660,877:$V2k}),o($V1k,[2,798]),o($VQj,$Vtk,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($VHj,$VEj,{445:3412,441:3661,649:$VIj}),o($V1k,$V$j,{876:3529,442:3662,877:$V2k}),o($V1k,$V$j,{876:3529,442:3663,877:$V2k}),{450:3664,877:$Vuk},o($V1k,$V$j,{876:3529,442:3665,877:$V2k}),o($V1k,[2,797]),o($V1k,$V$j,{876:3529,442:3666,877:$V2k}),o($V1k,$V$j,{876:3529,442:3667,877:$V2k}),o($V1k,$V$j,{876:3529,442:3668,877:$V2k}),{450:3669,877:$Vuk},o($V1k,$V$j,{876:3529,442:3670,877:$V2k}),o($V1k,[2,796]),o($VMj,$Vvk,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($V9h,[2,1618],{95:[1,3671]}),o($Vwk,[2,1621],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($Vwk,[2,1623],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:3672,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($V9h,[2,1616],{95:$VOj}),o($V9h,[2,1617],{95:$VOj}),o($VHj,$VEj,{445:3412,441:3673,649:$VIj}),o($V1k,$V$j,{876:3529,442:3674,877:$V2k}),o($V1k,$V$j,{876:3529,442:3675,877:$V2k}),o($V1k,$V$j,{876:3529,442:3676,877:$V2k}),o($V1k,$V$j,{876:3529,442:3677,877:$V2k}),{450:3678,877:$Vuk},o($V1k,$V$j,{876:3529,442:3679,877:$V2k}),o($V1k,[2,795]),o($VPj,$Vvk,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o([27,91],$Vxk,{981:3680,984:3681,513:[1,3682]}),o($Vyb,$Vxk,{981:3683,513:$Vyk}),{27:[1,3686],696:$Vzk},{27:[1,3688],106:$VAk},o($VBk,[2,2060]),o($VBk,[2,2061]),{27:[1,3689],91:$Vxk,513:$Vyk,981:3690},o($Vyb,[2,2038]),{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:3452,241:$VHa,242:$Vy6,254:$Vz6,273:3450,276:3451,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,830:1389,832:1403,868:3691,869:3692,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($Vhj,[2,1632]),o([2,27,50,91,95,360,404,499,649,723,771,877],$VCk,{870:3693,871:3694,673:[1,3695]}),o($VDk,[2,1641]),o($VDk,[2,1642]),o($VEk,$VCk,{870:3696,673:$VFk}),o($VEk,$VCk,{870:3698,673:$VFk}),o($Vyb,$Vxk,{981:3699,513:$Vyk}),{696:$Vzk},{106:$VAk},o($Vyb,$Vxk,{981:3690,513:$Vyk}),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3456,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,868:3691,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o([2,50,91,95,360,404,427,428,429,430,431,432,433,434,435,499,649,723,771,877],$VCk,{870:3693,673:$VFk}),{2:$Vea,91:$Vfa,93:3700},o([27,101,109,136,360,404,499,535],$Vae,{100:2012,47:3701,75:3702,653:$Vs9}),o($VGk,$Vae,{100:2012,47:3703,653:$VB9}),o($Vbe,[2,470]),{27:[1,3704],136:[1,3705]},o($VGk,$Vae,{100:2012,47:3706,653:$VB9}),{136:[1,3707]},o($VVj,[2,497],{102:3708,89:$Vub}),{89:$Vub,102:3709},o($VGk,$Vae,{100:2012,47:3710,653:$VB9}),o($Vgi,[2,467]),o($Vgi,[2,468]),o($Vei,[2,465]),o($VGk,$Vae,{100:2012,47:3711,653:$VB9}),o($VGk,$Vae,{100:2012,47:3712,653:$VB9}),{27:$V6,40:1239,41:$Vv6,60:1238,64:$Vw6,128:1237,172:556,239:1235,242:$Vy6,254:$Vz6,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,796:$Vn6,815:3713,816:1234},{258:3714,262:3148,264:$VWi},{91:$VHk,95:$VIk},o($Vqc,[2,425]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3717,275:[1,3718],302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{54:[1,3719]},{2:$Vea,91:$Vfa,93:3720},{2:$Vea,91:$Vfa,93:3721},{91:$VHk,95:[1,3722]},o($Vyb,[2,427]),{27:[1,3723],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3725,275:[1,3726],276:3724,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:[1,3727],54:[1,3728]},o($Vwj,[2,409]),o($Vxj,[2,406]),o($Vwj,[2,410]),o($VGk,$Vae,{100:2012,47:3729,653:$VB9}),{40:1076,41:$Vv6,60:1350,64:$Vw6,172:556,242:$Vy6,254:$Vz6,356:3730,358:2484,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,526:$Vj7,830:1349},o($VJk,$VKk,{325:3731,333:3732,349:[1,3733]}),o($V2,[2,545]),o($VLk,$VKk,{325:3734,349:$VMk}),{54:[1,3736]},o($VLk,$VKk,{325:3737,349:$VMk}),{54:[1,3738]},{179:$Vn8,302:3635,345:3739,346:3740,354:3636},o($VLk,$VKk,{325:3741,349:$VMk}),{179:$Vk8,302:3635,345:3739},o([27,347,404,499],[2,578]),o($Vzj,[2,579]),o([27,347,348,349,350,351,352,353,404,499],[2,599]),o([347,348,349,350,351,352,353,404,499],[2,600]),o($VLk,$VKk,{325:3742,349:$VMk}),o($VLk,$VKk,{325:3743,349:$VMk}),o($VLk,$VKk,{325:3744,349:$VMk}),{324:3745,348:$Vqk},o($VLk,$VKk,{325:3746,349:$VMk}),o($Vyb,[2,108],{95:$Vaj}),{179:$Vk8,302:3747},o($V1j,[2,489]),o($Vy7,[2,357],{95:$Vbj}),o($V5j,[2,359]),o($Vaa,[2,1930]),o([101,109,136,360,404,499,535],$Vae,{100:2012,47:3748,653:$VB9}),o($VLk,$VKk,{325:3749,349:$VMk}),o($V1k,[2,1664],{881:1835,54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d}),o($V1k,[2,1665],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($VKc,$VNk,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($V1k,$V$j,{876:3529,442:3750,877:$V2k}),o($V1k,[2,805]),o($V3k,$VNk,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($V1k,$V$j,{876:3529,442:3751,877:$V2k}),o($V1k,[2,793]),o($V1k,[2,794]),{27:$Vsk,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2041,276:3651,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($V1k,[2,804]),o($V1k,$V$j,{876:3529,442:3752,877:$V2k}),o($V1k,[2,790]),o($V1k,[2,791]),o($V1k,[2,792]),o($V1k,[2,803]),o($V1k,[2,786]),o($V1k,[2,787]),o($V1k,[2,788]),o($V1k,[2,789]),o($V1k,[2,802]),o($V9h,[2,1619],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,273:3286,860:3753,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($Vwk,[2,1622],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($V1k,$V$j,{876:3529,442:3754,877:$V2k}),o($V1k,[2,781]),o($V1k,[2,782]),o($V1k,[2,783]),o($V1k,[2,784]),o($V1k,[2,785]),o($V1k,[2,801]),{27:[1,3755],91:$VOk},o($Vyb,[2,2036]),{27:[1,3758],361:$V6k,560:[1,3756],982:$V8k,989:3757},o($Vyb,[2,2035]),{361:$V6k,560:[1,3759],982:$V8k,989:3760},o($VPk,[2,2050]),o($Vfk,[2,2052]),o($VPk,[2,2051]),o($Vfk,[2,2053]),o($Vyb,[2,2037]),o($Vyb,[2,2032]),o($Vak,[2,1630]),o($Vhj,[2,1633],{95:[1,3761]}),o($Vak,[2,1636]),o($VEk,[2,1638]),{27:[1,3764],605:$VQk,645:$VRk},o($VEk,[2,1637]),{605:$VQk,645:$VRk},o($VEk,[2,1639]),o($Vyb,$VOk),o($VGd,[2,2017]),o($Vde,$V4i,{49:3765,77:3766,104:3767,109:$V5i,535:$Vr9}),o($Vfe,$V4i,{104:2891,49:3768,109:$V5i,535:$VA9}),o($Vfe,$V4i,{104:2891,49:3769,109:$V5i,535:$VA9}),o($Vjk,[2,472]),{27:[1,3770],99:3771,288:$Vnb,289:$Vob,290:$Vpb,291:$Vqb,292:$Vrb,293:$Vsb,294:$Vtb},o($Vfe,$V4i,{104:2891,49:3772,109:$V5i,535:$VA9}),{99:3771,288:$Vnb,289:$Vob,290:$Vpb,291:$Vqb,292:$Vrb,293:$Vsb,294:$Vtb},o($VVj,[2,498]),o($Vdi,[2,496]),o($Vfe,$V4i,{104:2891,49:3773,109:$V5i,535:$VA9}),o($Vfe,$V4i,{104:2891,49:3774,109:$V5i,535:$VA9}),o($Vfe,$V4i,{104:2891,49:3775,109:$V5i,535:$VA9}),{95:$Vpc},o($Vwj,[2,405]),o($V$f,[2,422]),{51:$Vmk,53:$Vnk,271:3777},{54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:[1,3779],238:$VRe,274:3778,277:[1,3780],507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d,881:1860},{237:$VSk,274:3781,277:$VTk},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3784,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V1g,[2,423]),o($V1g,[2,424]),{27:[1,3785],51:$Vok,53:$Vpk,271:3777,272:3786},o($Vqc,[2,436],{881:1835,54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d}),o($Vqc,[2,439],{881:1880,274:3787,54:$Vpd,208:$VQc,224:$Vqd,237:[1,3788],238:$Vsd,277:[1,3789],507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),{27:[1,3790],54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:[1,3792],238:$Vad,274:3791,277:[1,3793],507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd,881:1860,886:1861},{27:[1,3794],237:$VSk,274:3795,277:$VTk},o($Vqc,[2,437]),{27:[1,3796],40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3784,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($Vfe,$V4i,{104:2891,49:3797,109:$V5i,535:$VA9}),o($Vyb,[2,610],{95:$V_h}),o($VUk,$VVk,{326:3798,334:3799,350:[1,3800]}),o($VWk,$VVk,{326:3801,350:$VXk}),{54:[1,3803]},o($VWk,$VVk,{326:3804,350:$VXk}),{54:[1,3805]},{179:$Vn8,302:3635,345:3806,346:3807,354:3636},o($VWk,$VVk,{326:3808,350:$VXk}),{179:$Vk8,302:3635,345:3806},o([27,348,404,499],[2,580]),o([348,404,499],[2,581]),o($VWk,$VVk,{326:3809,350:$VXk}),o($VWk,$VVk,{326:3810,350:$VXk}),o($VWk,$VVk,{326:3811,350:$VXk}),o($VWk,$VVk,{326:3812,350:$VXk}),o($VLk,$VKk,{325:3813,349:$VMk}),o($VWk,$VVk,{326:3814,350:$VXk}),o($Vtg,[2,486]),o([101,136,360,404,499],$V4i,{104:2891,49:3815,109:$V5i,535:$VA9}),o($VWk,$VVk,{326:3816,350:$VXk}),o($V1k,[2,780]),o($V1k,[2,779]),o($V1k,[2,778]),o($V9h,[2,1620],{95:$VOj}),o($V1k,[2,777]),o($Vyb,[2,2034]),{27:[1,3818],106:$VYk},{27:[1,3820],607:$VZk},o($Vyb,[2,2057]),{106:$VYk},{607:$VZk},o($Vhj,[2,1634],{172:556,502:560,40:1076,905:1251,906:1252,60:1350,222:1369,55:1378,893:1381,894:1383,901:1388,952:1399,953:1400,223:1408,903:1409,963:1410,964:1411,965:1412,302:1421,800:1422,907:1423,890:1615,892:1616,830:1617,948:1618,950:1619,990:1626,868:3447,273:3456,866:3821,41:$Vv6,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,179:$Vk8,180:$Vl8,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,962:$Vcb}),o($Vak,[2,1644]),o($Vak,[2,1645]),o($VEk,[2,1646]),o($V_k,$V$k,{193:3822,307:3823,101:$V0l}),o($V1l,$V$k,{307:3823,193:3825,101:$V0l}),o($Vde,$Vvb,{825:1550,105:3183,115:3826,306:$Vwb}),o($V1l,$V$k,{307:3823,193:3827,101:$V0l}),o($V1l,$V$k,{307:3823,193:3828,101:$V0l}),o($Vjk,[2,473]),o($Vbe,[2,471]),o($V1l,$V$k,{307:3823,193:3829,101:$V0l}),o($V1l,$V$k,{307:3823,193:3830,101:$V0l}),o($V1l,$V$k,{307:3823,193:3831,101:$V0l}),o($V1l,$V$k,{307:3823,193:3832,101:$V0l}),{262:3476,264:$VWi},o($Vqc,[2,426]),{275:[1,3833]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2629,275:$V2l,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2631,275:$V3l,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3834,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($V4l,$V2l),o($V4l,$V3l),o($Vqc,[2,435],{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($Vyb,[2,428],{95:[1,3835]}),o($Vyb,[2,430],{95:[1,3836]}),{275:[1,3837]},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2368,275:$V2l,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:2370,275:$V3l,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($Vqc,[2,440]),{27:[1,3838],275:[1,3839]},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2317,275:$V2l,276:2319,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2318,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},{27:$VVb,40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,239:2315,241:$VHa,242:$Vy6,254:$Vz6,273:2323,275:$V3l,276:2325,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$VF6,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,796:$Vn6,800:1422,801:1428,811:2324,812:2316,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($Vqc,[2,446]),{27:[1,3840],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3842,276:3841,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($Vqc,[2,438]),o($V1l,$V$k,{307:3823,193:3843,101:$V0l}),o($V5l,$V6l,{327:3844,335:3845,351:[1,3846]}),o($V7l,$V6l,{327:3847,351:$V8l}),{54:[1,3849]},o($V7l,$V6l,{327:3850,351:$V8l}),{54:[1,3851]},{179:$Vn8,302:3635,345:3852,346:3853,354:3636},o($V7l,$V6l,{327:3854,351:$V8l}),{179:$Vk8,302:3635,345:3852},o([27,349,350,351,352,353,404,499],[2,582]),o([349,350,351,352,353,404,499],[2,583]),o($V7l,$V6l,{327:3855,351:$V8l}),o($V7l,$V6l,{327:3856,351:$V8l}),o($V7l,$V6l,{327:3857,351:$V8l}),o($V7l,$V6l,{327:3858,351:$V8l}),o($V7l,$V6l,{327:3859,351:$V8l}),o($VWk,$VVk,{326:3860,350:$VXk}),o($V7l,$V6l,{327:3861,351:$V8l}),o([136,360,404,499],$V$k,{307:3823,193:3862,101:$V0l}),o($V7l,$V6l,{327:3863,351:$V8l}),o($V9l,[2,2055]),o($Vyb,[2,2058]),o($V9l,[2,2056]),o($Vyb,[2,2059]),o($Vhj,[2,1635],{95:$Vhk}),o($Val,$Vbl,{194:3864,201:3865,27:[1,3866],136:[1,3867]}),o($V_k,[2,500]),{89:$Vub,102:3868},o($V2,$Vbl,{194:3869,136:$Vcl}),o($V1l,$V$k,{307:3823,193:3871,101:$V0l}),o($V2,$Vbl,{194:3872,136:$Vcl}),o($V2,$Vbl,{194:3873,136:$Vcl}),o($V2,$Vbl,{194:3874,136:$Vcl}),o($V2,$Vbl,{194:3875,136:$Vcl}),o($V2,$Vbl,{194:3876,136:$Vcl}),o($V2,$Vbl,{194:3877,136:$Vcl}),o($Vqc,$Vdl,{274:3878,237:$VSk,277:$VTk}),o($Vqc,$Vel,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),{51:$Vmk,53:$Vnk,269:3879,271:3610},{51:$Vmk,53:$Vnk,269:3880,271:3610},o($Vqc,[2,442]),o($Vqc,[2,441]),o($Vqg,$Vdl,{274:3882,27:[1,3881],237:$VSk,277:$VTk}),o($Vqc,[2,447],{881:1835,54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d}),o($Vqc,[2,448],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($Vqg,$Vel,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($V2,$Vbl,{194:3883,136:$Vcl}),o($Vfl,$Vgl,{328:3884,336:3885,352:[1,3886]}),o($Vhl,$Vgl,{328:3887,352:$Vil}),{54:[1,3889]},o($Vhl,$Vgl,{328:3890,352:$Vil}),{54:[1,3891]},{179:$Vn8,302:3635,345:3892,346:3893,354:3636},o($Vhl,$Vgl,{328:3894,352:$Vil}),{179:$Vk8,302:3635,345:3892},o($VJk,[2,585]),o($VLk,[2,586]),o($Vhl,$Vgl,{328:3895,352:$Vil}),o($Vhl,$Vgl,{328:3896,352:$Vil}),o($Vhl,$Vgl,{328:3897,352:$Vil}),o($Vhl,$Vgl,{328:3898,352:$Vil}),o($Vhl,$Vgl,{328:3899,352:$Vil}),o($Vhl,$Vgl,{328:3900,352:$Vil}),o($V7l,$V6l,{327:3901,351:$V8l}),o($Vhl,$Vgl,{328:3902,352:$Vil}),o($Val,$Vbl,{194:3864,136:$Vcl}),o($Vhl,$Vgl,{328:3903,352:$Vil}),o($Val,[2,268]),o($V2,[2,278]),o($V2,[2,279]),o([27,306,411],$Vjl,{308:3904}),o($V_k,[2,501]),o($V2,[2,276]),o($Vu8,$Vjl,{308:3905}),o($V2,$Vbl,{194:3906,136:$Vcl}),o($V2,[2,275]),o($V2,[2,274]),o($V2,[2,273]),o($V2,[2,272]),o($V2,[2,271]),o($V2,[2,270]),{40:1076,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VHb,138:$Vka,146:$VEa,172:556,179:$Vk8,180:$Vl8,222:1369,223:1408,224:$VIb,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3907,302:1421,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VJb,508:$VKb,512:$VLb,515:$VOa,525:$VPa,526:$Vj7,540:$VMb,541:$VNb,556:$VOb,597:$VPb,600:$VQb,601:$VVa,616:$VWa,622:$VXa,633:$VRb,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$VSb,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$VTb,800:1422,830:1617,890:1615,892:1616,893:1381,894:1383,901:1388,903:1409,905:1251,906:1252,907:1423,948:1618,950:1619,952:1399,953:1400,962:$Vcb,963:1410,964:1411,965:1412,990:1626},o($Vyb,[2,429],{95:$VIk}),o($Vyb,[2,431],{95:$VIk}),o($Vqc,[2,443]),{27:[1,3908],40:1239,41:$Vv6,55:1378,60:1350,64:$Vw6,73:$VCa,89:$VDa,128:1417,138:$Vka,146:$VEa,172:556,179:$Vn8,180:$Vo8,222:1369,223:1408,224:$VFa,236:$VGa,241:$VHa,242:$Vy6,254:$Vz6,273:3910,276:3909,302:1421,354:1427,361:$Vma,391:$VIa,461:$VA6,462:$VB6,465:$VC6,502:560,503:$VD6,504:$VE6,506:$VKa,508:$VMa,512:$VNa,515:$VOa,525:$VPa,526:$Vj7,540:$VQa,541:$VRa,556:$VSa,597:$VTa,600:$VUa,601:$VVa,616:$VWa,622:$VXa,633:$VYa,658:$VZa,661:$V_a,668:$V$a,743:$V0b,744:$V1b,745:$V2b,752:$V3b,769:$V4b,774:$Vqa,775:$V5b,778:$V6b,779:$V7b,782:$V8b,783:$V9b,784:$Vab,794:$Vbb,800:1422,801:1428,830:1389,832:1403,883:1377,890:1379,892:1380,893:1381,894:1383,895:1384,896:1385,898:1386,899:1387,901:1388,902:1402,903:1409,904:1416,905:1251,906:1252,907:1423,948:1397,950:1398,952:1399,953:1400,954:1404,956:1405,958:1406,959:1407,962:$Vcb,963:1410,964:1411,965:1412,966:1418,967:1419,968:1420,990:1426},o($V2,[2,269]),o($VP8,$Vkl,{329:3911,337:3912,353:[1,3913]}),o($V2,$Vkl,{329:3914,353:$Vll}),{54:[1,3916]},o($V2,$Vkl,{329:3917,353:$Vll}),{54:[1,3918]},{179:$Vn8,302:3635,345:3919,346:3920,354:3636},o($V2,$Vkl,{329:3921,353:$Vll}),{179:$Vk8,302:3635,345:3919},o($VUk,[2,588]),o($VWk,[2,589]),o($V2,$Vkl,{329:3922,353:$Vll}),o($V2,$Vkl,{329:3923,353:$Vll}),o($V2,$Vkl,{329:3924,353:$Vll}),o($V2,$Vkl,{329:3925,353:$Vll}),o($V2,$Vkl,{329:3926,353:$Vll}),o($V2,$Vkl,{329:3927,353:$Vll}),o($V2,$Vkl,{329:3928,353:$Vll}),o($Vhl,$Vgl,{328:3929,352:$Vil}),o($V2,$Vkl,{329:3930,353:$Vll}),o($V2,$Vkl,{329:3931,353:$Vll}),{27:[1,3933],137:3932,140:3934,306:$V51,370:847,371:848,410:421,411:$Vq1,418:442},{137:3932,306:$V07,370:927,410:603,411:$V37},o($V2,[2,277]),o($Vqc,$Vml,{881:1860,54:$VNe,144:$VOe,208:$VQc,224:$VPe,237:$VQe,238:$VRe,277:$VSe,507:$VTe,508:$VUe,513:$VVe,517:$VWe,529:$VXe,624:$VYc,625:$VYe,634:$VZc,681:$VZe,706:$V$c,719:$V0d}),o($Vqc,[2,444],{881:1835,54:$VOc,208:$VQc,224:$VFf,237:$VSc,238:$VTc,277:$VUc,507:$VCf,513:$VWc,517:$VXc,624:$VYc,634:$VZc,681:$V_c,706:$V$c,719:$V0d}),o($Vqc,[2,445],{881:1880,54:$Vpd,208:$VQc,224:$Vqd,237:$Vrd,238:$Vsd,277:$Vtd,507:$Vud,508:$Vvd,513:$Vwd,517:$Vxd,529:$Vyd,624:$VYc,625:$Vzd,634:$VZc,681:$VAd,706:$V$c,719:$V0d}),o($Vqg,$Vml,{881:1860,886:1861,54:$V5d,144:$V6d,208:$V7d,224:$V8d,237:$V9d,238:$Vad,277:$Vbd,507:$Vcd,508:$Vdd,513:$Ved,517:$Vfd,529:$Vgd,624:$Vhd,625:$Vid,634:$Vjd,681:$Vkd,706:$Vld,719:$Vmd}),o($V2,$Vnl,{27:[1,3935]}),o($V2,[2,557]),{27:[1,3937],226:3936,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},o($V2,[2,556]),{226:3936,530:$Vme,532:$Vne,542:$Voe,574:$Vpe,582:$Vqe,606:$Vre,630:$Vse,701:$Vte,735:$Vue,747:$Vve,759:$Vwe,762:$Vxe,781:$Vye},{179:$Vn8,302:3635,345:3938,346:3939,354:3636},o($V2,[2,555]),{179:$Vk8,302:3635,345:3938},o($V5l,[2,591]),o($V7l,[2,592]),o($V2,[2,554]),o($V2,[2,553]),o($V2,[2,552]),o($V2,[2,561]),o($V2,[2,560]),o($V2,[2,559]),o($V2,[2,558]),o($V2,[2,541]),o($V2,$Vkl,{329:3940,353:$Vll}),o($V2,[2,539]),o($V2,$Vnl),o($Val,[2,503]),o($V2,[2,504]),o($V2,[2,505]),o($V2,[2,546]),o($VP8,[2,597]),o($V2,[2,598]),o($Vfl,[2,594]),o($Vhl,[2,595]),o($V2,[2,536])], +defaultActions: {9:[2,944],10:[2,945],11:[2,946],12:[2,947],13:[2,948],14:[2,949],15:[2,950],16:[2,951],17:[2,952],18:[2,953],19:[2,954],20:[2,955],21:[2,956],22:[2,957],23:[2,958],24:[2,959],25:[2,960],26:[2,961],27:[2,962],28:[2,963],29:[2,964],30:[2,965],31:[2,966],32:[2,967],33:[2,968],34:[2,969],35:[2,970],36:[2,971],37:[2,972],38:[2,973],39:[2,974],40:[2,975],41:[2,976],42:[2,977],43:[2,978],44:[2,979],45:[2,980],46:[2,981],47:[2,982],48:[2,983],49:[2,984],50:[2,985],51:[2,986],52:[2,987],53:[2,988],54:[2,989],55:[2,990],56:[2,991],57:[2,992],58:[2,993],59:[2,994],60:[2,995],61:[2,996],62:[2,997],63:[2,998],64:[2,999],65:[2,1000],66:[2,1001],67:[2,1002],68:[2,1003],69:[2,1004],70:[2,1005],71:[2,1006],72:[2,1007],73:[2,1008],74:[2,1009],75:[2,1010],76:[2,1011],77:[2,1012],78:[2,1013],79:[2,1014],80:[2,1015],81:[2,1016],82:[2,1017],83:[2,1018],84:[2,1019],85:[2,1020],86:[2,1021],87:[2,1022],88:[2,1023],89:[2,1024],90:[2,1025],91:[2,1026],92:[2,1027],93:[2,1028],94:[2,1029],95:[2,1030],96:[2,1031],97:[2,1032],98:[2,1033],99:[2,1034],100:[2,1035],101:[2,1036],102:[2,1037],104:[2,1039],105:[2,1040],106:[2,1041],107:[2,1042],108:[2,1043],109:[2,1044],110:[2,1045],111:[2,1046],112:[2,1047],113:[2,1048],114:[2,1049],115:[2,1050],116:[2,1051],117:[2,1052],118:[2,1053],119:[2,1054],120:[2,1055],121:[2,1056],122:[2,1057],123:[2,1058],124:[2,1059],125:[2,1060],126:[2,1061],127:[2,1062],128:[2,1063],129:[2,1064],130:[2,1065],131:[2,1066],132:[2,1067],133:[2,1068],134:[2,1069],135:[2,1070],136:[2,1071],137:[2,1072],138:[2,1073],139:[2,1074],140:[2,1075],141:[2,1076],142:[2,1077],143:[2,1078],144:[2,1079],145:[2,1080],146:[2,1081],147:[2,1082],148:[2,1083],149:[2,1084],150:[2,1085],151:[2,1086],152:[2,1087],154:[2,1089],155:[2,1090],156:[2,1091],157:[2,1092],158:[2,1093],159:[2,1094],160:[2,1095],161:[2,1096],162:[2,1097],163:[2,1098],164:[2,1099],165:[2,1100],166:[2,1101],167:[2,1102],168:[2,1103],169:[2,1104],170:[2,1105],171:[2,1106],172:[2,1107],173:[2,1108],174:[2,1109],175:[2,1110],176:[2,1111],177:[2,1112],178:[2,1113],179:[2,1114],180:[2,1115],181:[2,1116],182:[2,1117],183:[2,1118],184:[2,1119],185:[2,1120],186:[2,1121],187:[2,1122],188:[2,1123],189:[2,1124],190:[2,1125],191:[2,1126],192:[2,1127],193:[2,1128],194:[2,1129],195:[2,1130],196:[2,1131],197:[2,1132],198:[2,1133],199:[2,1134],200:[2,1135],201:[2,1136],202:[2,1137],203:[2,1138],204:[2,1139],205:[2,1140],206:[2,1141],207:[2,1142],208:[2,1143],209:[2,1144],210:[2,1145],211:[2,1146],212:[2,1147],213:[2,1148],214:[2,1149],215:[2,1150],216:[2,1151],217:[2,1152],218:[2,1153],219:[2,1154],220:[2,1155],221:[2,1156],222:[2,1157],223:[2,1158],224:[2,1159],225:[2,1160],226:[2,1161],227:[2,1162],228:[2,1163],229:[2,1164],230:[2,1165],231:[2,1166],232:[2,1167],233:[2,1168],234:[2,1169],235:[2,1170],236:[2,1171],237:[2,1172],238:[2,1173],239:[2,1174],240:[2,1175],241:[2,1176],242:[2,1177],243:[2,1178],244:[2,1179],245:[2,1180],246:[2,1181],247:[2,1182],248:[2,1183],249:[2,1184],250:[2,1185],251:[2,1186],252:[2,1187],253:[2,1188],254:[2,1189],255:[2,1190],256:[2,1191],257:[2,1192],258:[2,1193],259:[2,1194],260:[2,1195],261:[2,1196],262:[2,1197],263:[2,1198],264:[2,1199],265:[2,1200],266:[2,1201],267:[2,1202],268:[2,1203],269:[2,1204],270:[2,1205],271:[2,1206],272:[2,1207],273:[2,1208],274:[2,1209],275:[2,1210],276:[2,1211],277:[2,1212],278:[2,1213],279:[2,1214],280:[2,1215],281:[2,1216],282:[2,1217],283:[2,1218],284:[2,1219],285:[2,1220],286:[2,1221],287:[2,1222],288:[2,1223],289:[2,1224],290:[2,1225],291:[2,1226],292:[2,1227],293:[2,1228],294:[2,1229],295:[2,1230],296:[2,1231],297:[2,1232],298:[2,1233],299:[2,1234],300:[2,1235],301:[2,1236],302:[2,1237],303:[2,1238],304:[2,1239],305:[2,1240],306:[2,1241],307:[2,1242],308:[2,1243],309:[2,1244],310:[2,1245],311:[2,1246],312:[2,1247],313:[2,1248],314:[2,1249],316:[2,1251],317:[2,1252],318:[2,1253],319:[2,1254],320:[2,1255],321:[2,1256],322:[2,1257],323:[2,1258],324:[2,1259],325:[2,1260],326:[2,1261],327:[2,1262],328:[2,1263],329:[2,1264],330:[2,1265],331:[2,1266],332:[2,1267],333:[2,1268],334:[2,1269],335:[2,1270],336:[2,1271],337:[2,1272],338:[2,1273],339:[2,1274],340:[2,1275],341:[2,1276],342:[2,1277],343:[2,1278],344:[2,1279],345:[2,1280],346:[2,1281],347:[2,1282],348:[2,1283],349:[2,1284],350:[2,1285],351:[2,1286],352:[2,1287],353:[2,1288],354:[2,1289],355:[2,1290],356:[2,1291],357:[2,1292],358:[2,1293],359:[2,1294],360:[2,1295],361:[2,1296],362:[2,1297],363:[2,1298],364:[2,1299],365:[2,1300],366:[2,1301],367:[2,1302],368:[2,1303],369:[2,1304],370:[2,1305],371:[2,1306],372:[2,1307],373:[2,1308],374:[2,1309],375:[2,1310],376:[2,1311],377:[2,1312],378:[2,1313],379:[2,1314],380:[2,1315],381:[2,1316],382:[2,1317],383:[2,1318],384:[2,1319],385:[2,1320],386:[2,1321],387:[2,1322],388:[2,1323],389:[2,1324],390:[2,1325],391:[2,1326],392:[2,1327],393:[2,1328],530:[2,919],532:[2,920],913:[2,1357],1390:[2,1984],1391:[2,1985],1392:[2,1986],1393:[2,1987],1394:[2,1988],1395:[2,1989],1396:[2,1990],1431:[2,2090],1432:[2,2091],1433:[2,2092],1434:[2,2093],1435:[2,2094],1436:[2,2095],1437:[2,2096],1438:[2,2097],1439:[2,2098],1440:[2,2099],1441:[2,2100],1442:[2,2101],1443:[2,2102],1444:[2,2103],2304:[2,746],2471:[2,251],2472:[2,250],2869:[2,573],3047:[2,747],3223:[2,378],3250:[2,743],3438:[2,748],3440:[2,751]}, +parseError: function parseError (str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } +}, +parse: function parse (input) { + var self = this, + stack = [0], + tstack = [], // token stack + vstack = [null], // semantic value stack + lstack = [], // location stack + table = this.table, + yytext = '', + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + + var args = lstack.slice.call(arguments, 1); + + //this.reductionCount = this.shiftCount = 0; + + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + // copy state + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + + var ranges = lexer.options && lexer.options.ranges; + + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + + function popStack (n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + +_token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + // if token isn't its numeric value, convert + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + } + + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + // retreive state number from top of stack + state = stack[stack.length - 1]; + + // use default actions if available + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + // read action for current state and first input + action = table[state] && table[state][symbol]; + } + +_handle_error: + // handle parse error + if (typeof action === 'undefined' || !action.length || !action[0]) { + var error_rule_depth; + var errStr = ''; + + // Return the rule stack depth where the nearest error rule can be found. + // Return FALSE when no error recovery rule was found. + function locateNearestErrorRecoveryRule(state) { + var stack_probe = stack.length - 1; + var depth = 0; + + // try to recover from error + for(;;) { + // check for error recovery rule in this state + if ((TERROR.toString()) in table[state]) { + return depth; + } + if (state === 0 || stack_probe < 2) { + return false; // No suitable error recovery rule available. + } + stack_probe -= 2; // popStack(1): [symbol, action] + state = stack[stack_probe]; + ++depth; + } + } + + if (!recovering) { + // first see if there's any chance at hitting an error recovery rule: + error_rule_depth = locateNearestErrorRecoveryRule(state); + + // Report error + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'"+this.terminals_[p]+"'"); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; + } else { + errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + + (symbol == EOF ? "end of input" : + ("'"+(this.terminals_[symbol] || symbol)+"'")); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), + expected: expected, + recoverable: (error_rule_depth !== false) + }); + } else if (preErrorSymbol !== EOF) { + error_rule_depth = locateNearestErrorRecoveryRule(state); + } + + // just recovered from another error + if (recovering == 3) { + if (symbol === EOF || preErrorSymbol === EOF) { + throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); + } + + // discard current lookahead and grab another + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + symbol = lex(); + } + + // try to recover from error + if (error_rule_depth === false) { + throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); + } + popStack(error_rule_depth); + + preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token + symbol = TERROR; // insert generic error symbol as new lookahead + state = stack[stack.length-1]; + action = table[state] && table[state][TERROR]; + recovering = 3; // allow 3 real symbols to be shifted before reporting a new error + } + + // this shouldn't happen, unless resolve defaults are off + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); + } + + switch (action[0]) { + case 1: // shift + //this.shiftCount++; + + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); // push state + symbol = null; + if (!preErrorSymbol) { // normal execution/no error + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + // error just occurred, resume old lookahead f/ before error + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + + case 2: + // reduce + //this.reductionCount++; + + len = this.productions_[action[1]][1]; + + // perform semantic action + yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 + // default location, uses first token for firsts, last for lasts + yyval._$ = { + first_line: lstack[lstack.length-(len||1)].first_line, + last_line: lstack[lstack.length-1].last_line, + first_column: lstack[lstack.length-(len||1)].first_column, + last_column: lstack[lstack.length-1].last_column + }; + if (ranges) { + yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; + } + r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); + + if (typeof r !== 'undefined') { + return r; + } + + // pop off stack + if (len) { + stack = stack.slice(0,-1*len*2); + vstack = vstack.slice(0, -1*len); + lstack = lstack.slice(0, -1*len); + } + + stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) + vstack.push(yyval.$); + lstack.push(yyval._$); + // goto new state = table[STATE][NONTERMINAL] + newState = table[stack[stack.length-2]][stack[stack.length-1]]; + stack.push(newState); + break; + + case 3: + // accept + return true; + } + + } + + return true; +}}; + + +SqlParseSupport.initSqlParser(parser);/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function(match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex () { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin (condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState () { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules () { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState (n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState (condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {"case-insensitive":true,"flex":true}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0: /* skip whitespace */ +break; +case 1: /* skip comments */ +break; +case 2: /* skip comments */ +break; +case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 27; +break; +case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 796; +break; +case 5: return 44; +break; +case 6: return 321; +break; +case 7: return 425; +break; +case 8: return 511; +break; +case 9: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 38; +break; +case 10: return 512; +break; +case 11: return 513; +break; +case 12: return 430; +break; +case 13: return 514; +break; +case 14: return 516; +break; +case 15: return 518; +break; +case 16: return 519; +break; +case 17: return 136; +break; +case 18: return 520; +break; +case 19: return 521; +break; +case 20: return 522; +break; +case 21: return 523; +break; +case 22: return 524; +break; +case 23: return 151; +break; +case 24: return 288; +break; +case 25: return 527; +break; +case 26: return 528; +break; +case 27: return 529; +break; +case 28: return 530; +break; +case 29: return 531; +break; +case 30: return 85; +break; +case 31: return 532; +break; +case 32: return 533; +break; +case 33: return 257; +break; +case 34: return 535; +break; +case 35: return 536; +break; +case 36: return 537; +break; +case 37: return 538; +break; +case 38: return 539; +break; +case 39: return 540; +break; +case 40: return 111; +break; +case 41: return 542; +break; +case 42: return 543; +break; +case 43: return 544; +break; +case 44: return 350; +break; +case 45: return 545; +break; +case 46: return 546; +break; +case 47: return 65; +break; +case 48: return 117; +break; +case 49: parser.determineCase(yy_.yytext); return 86; +break; +case 50: return 547; +break; +case 51: return 87; +break; +case 52: parser.determineCase(yy_.yytext); return 155; +break; +case 53: return 548; +break; +case 54: return 549; +break; +case 55: return 550; +break; +case 56: return 551; +break; +case 57: return 552; +break; +case 58: return 553; +break; +case 59: return 554; +break; +case 60: return 555; +break; +case 61: return 557; +break; +case 62: return 558; +break; +case 63: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('CREATE', yy_.yylloc, yy.lexer.upcomingInput()); return 170; +break; +case 64: return 431; +break; +case 65: return 559; +break; +case 66: return 560; +break; +case 67: return 561; +break; +case 68: return 562; +break; +case 69: return 563; +break; +case 70: return 564; +break; +case 71: return 565; +break; +case 72: return 566; +break; +case 73: return 567; +break; +case 74: return 568; +break; +case 75: return 569; +break; +case 76: return 495; +break; +case 77: return 143; +break; +case 78: return 570; +break; +case 79: return 571; +break; +case 80: return 572; +break; +case 81: return 573; +break; +case 82: return 574; +break; +case 83: return 575; +break; +case 84: return 576; +break; +case 85: return 392; +break; +case 86: return 295; +break; +case 87: return 577; +break; +case 88: return 578; +break; +case 89: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DESCRIBE', yy_.yylloc); return 839; +break; +case 90: return 579; +break; +case 91: return 580; +break; +case 92: return 581; +break; +case 93: return 517; +break; +case 94: return 582; +break; +case 95: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 63; +break; +case 96: return 583; +break; +case 97: return 584; +break; +case 98: return 585; +break; +case 99: return 586; +break; +case 100: return 587; +break; +case 101: return 88; +break; +case 102: return 588; +break; +case 103: return 589; +break; +case 104: return 590; +break; +case 105: return 591; +break; +case 106: return 592; +break; +case 107: return 303; +break; +case 108: return 593; +break; +case 109: return 594; +break; +case 110: return 595; +break; +case 111: return 596; +break; +case 112: parser.yy.correlatedSubQuery = true; return 597; +break; +case 113: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('EXPLAIN', yy_.yylloc); return 505; +break; +case 114: return 598; +break; +case 115: return 599; +break; +case 116: return 601; +break; +case 117: return 602; +break; +case 118: return 300; +break; +case 119: return 98; +break; +case 120: return 603; +break; +case 121: return 604; +break; +case 122: return 352; +break; +case 123: return 605; +break; +case 124: return 606; +break; +case 125: return 607; +break; +case 126: return 608; +break; +case 127: return 609; +break; +case 128: return 107; +break; +case 129: return 610; +break; +case 130: return 611; +break; +case 131: return 612; +break; +case 132: parser.determineCase(yy_.yytext); return 394; +break; +case 133: return 427; +break; +case 134: return 315; +break; +case 135: return 149; +break; +case 136: return 613; +break; +case 137: return 614; +break; +case 138: return 615; +break; +case 139: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('GRANT', yy_.yylloc); return 452; +break; +case 140: return 453; +break; +case 141: return 617; +break; +case 142: return 618; +break; +case 143: return 264; +break; +case 144: return 619; +break; +case 145: return 621; +break; +case 146: return 622; +break; +case 147: return 623; +break; +case 148: return 624; +break; +case 149: return 625; +break; +case 150: return 158; +break; +case 151: return 626; +break; +case 152: return 344; +break; +case 153: return 627; +break; +case 154: return 432; +break; +case 155: return 628; +break; +case 156: this.begin('hdfs'); return 496; +break; +case 157: return 629; +break; +case 158: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INSERT', yy_.yylloc); return 463; +break; +case 159: return 630; +break; +case 160: return 353; +break; +case 161: return 631; +break; +case 162: return 632; +break; +case 163: return 633; +break; +case 164: return 484; +break; +case 165: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INVALIDATE', yy_.yylloc, yy.lexer.upcomingInput()); return 153; +break; +case 166: return 634; +break; +case 167: return 144; +break; +case 168: return 435; +break; +case 169: return 635; +break; +case 170: return 636; +break; +case 171: return 637; +break; +case 172: return 638; +break; +case 173: return 639; +break; +case 174: return 640; +break; +case 175: return 641; +break; +case 176: return 642; +break; +case 177: return 643; +break; +case 178: return 254; +break; +case 179: return 289; +break; +case 180: return 644; +break; +case 181: return 645; +break; +case 182: return 646; +break; +case 183: return 647; +break; +case 184: return 428; +break; +case 185: return 208; +break; +case 186: return 648; +break; +case 187: return 649; +break; +case 188: return 360; +break; +case 189: return 304; +break; +case 190: return 650; +break; +case 191: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('LOAD', yy_.yylloc, yy.lexer.upcomingInput()); return 494; +break; +case 192: return 651; +break; +case 193: return 652; +break; +case 194: this.begin('hdfs'); return 653; +break; +case 195: return 654; +break; +case 196: return 655; +break; +case 197: return 656; +break; +case 198: return 657; +break; +case 199: return 659; +break; +case 200: return 348; +break; +case 201: return 154; +break; +case 202: return 660; +break; +case 203: return 662; +break; +case 204: return 663; +break; +case 205: return 664; +break; +case 206: return 665; +break; +case 207: return 666; +break; +case 208: return 667; +break; +case 209: return 669; +break; +case 210: return 670; +break; +case 211: return 671; +break; +case 212: return 224; +break; +case 213: return 672; +break; +case 214: return 146; +break; +case 215: return 673; +break; +case 216: return 674; +break; +case 217: return 675; +break; +case 218: return 676; +break; +case 219: return 677; +break; +case 220: return 877; +break; +case 221: return 678; +break; +case 222: return 142; +break; +case 223: return 679; +break; +case 224: return 680; +break; +case 225: return 465; +break; +case 226: return 681; +break; +case 227: return 290; +break; +case 228: return 682; +break; +case 229: return 683; +break; +case 230: return 433; +break; +case 231: return 684; +break; +case 232: return 685; +break; +case 233: return 686; +break; +case 234: return 487; +break; +case 235: return 291; +break; +case 236: return 51; +break; +case 237: return 256; +break; +case 238: return 71; +break; +case 239: return 687; +break; +case 240: return 688; +break; +case 241: return 689; +break; +case 242: return 690; +break; +case 243: return 691; +break; +case 244: return 692; +break; +case 245: return 693; +break; +case 246: return 694; +break; +case 247: return 695; +break; +case 248: return 696; +break; +case 249: return 697; +break; +case 250: return 349; +break; +case 251: return 253; +break; +case 252: return 698; +break; +case 253: return 699; +break; +case 254: return 390; +break; +case 255: return 50; +break; +case 256: return 292; +break; +case 257: return 700; +break; +case 258: return 701; +break; +case 259: return 70; +break; +case 260: return 702; +break; +case 261: return 703; +break; +case 262: return 704; +break; +case 263: return 705; +break; +case 264: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REFRESH', yy_.yylloc); return 147; +break; +case 265: return 706; +break; +case 266: return 707; +break; +case 267: return 708; +break; +case 268: return 709; +break; +case 269: return 710; +break; +case 270: return 711; +break; +case 271: return 712; +break; +case 272: return 713; +break; +case 273: return 714; +break; +case 274: return 715; +break; +case 275: return 56; +break; +case 276: return 716; +break; +case 277: return 73; +break; +case 278: return 717; +break; +case 279: return 718; +break; +case 280: return 342; +break; +case 281: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REVOKE', yy_.yylloc); return 466; +break; +case 282: return 429; +break; +case 283: return 719; +break; +case 284: return 359; +break; +case 285: return 720; +break; +case 286: return 721; +break; +case 287: return 722; +break; +case 288: return 106; +break; +case 289: return 723; +break; +case 290: return 724; +break; +case 291: return 725; +break; +case 292: return 726; +break; +case 293: return 727; +break; +case 294: return 728; +break; +case 295: return 729; +break; +case 296: return 730; +break; +case 297: return 731; +break; +case 298: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 411; +break; +case 299: return 434; +break; +case 300: return 732; +break; +case 301: return 293; +break; +case 302: return 103; +break; +case 303: return 351; +break; +case 304: return 461; +break; +case 305: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 26; +break; +case 306: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 1005; +break; +case 307: return 733; +break; +case 308: return 734; +break; +case 309: return 735; +break; +case 310: return 736; +break; +case 311: return 268; +break; +case 312: return 737; +break; +case 313: return 738; +break; +case 314: return 739; +break; +case 315: return 740; +break; +case 316: return 741; +break; +case 317: return 742; +break; +case 318: return 66; +break; +case 319: return 287; +break; +case 320: return 746; +break; +case 321: return 747; +break; +case 322: return 748; +break; +case 323: return 749; +break; +case 324: return 750; +break; +case 325: return 751; +break; +case 326: return 343; +break; +case 327: return 753; +break; +case 328: return 754; +break; +case 329: return 755; +break; +case 330: return 129; +break; +case 331: return 756; +break; +case 332: return 757; +break; +case 333: return 101; +break; +case 334: return 301; +break; +case 335: return 294; +break; +case 336: return 758; +break; +case 337: return 759; +break; +case 338: return 760; +break; +case 339: return 761; +break; +case 340: return 762; +break; +case 341: return 57; +break; +case 342: return 763; +break; +case 343: return 764; +break; +case 344: return 765; +break; +case 345: return 766; +break; +case 346: return 767; +break; +case 347: return 768; +break; +case 348: return 769; +break; +case 349: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 391; +break; +case 350: return 770; +break; +case 351: return 982; +break; +case 352: return 109; +break; +case 353: return 771; +break; +case 354: return 772; +break; +case 355: return 879; +break; +case 356: return 773; +break; +case 357: parser.determineCase(yy_.yytext); return 1020; +break; +case 358: return 347; +break; +case 359: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('UPSERT', yy_.yylloc); return 483; +break; +case 360: return 462; +break; +case 361: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 1034; +break; +case 362: return 775; +break; +case 363: return 776; +break; +case 364: return 777; +break; +case 365: return 275; +break; +case 366: return 780; +break; +case 367: return 781; +break; +case 368: return 785; +break; +case 369: return 786; +break; +case 370: return 141; +break; +case 371: return 787; +break; +case 372: return 788; +break; +case 373: return 789; +break; +case 374: return 790; +break; +case 375: return 791; +break; +case 376: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 306; +break; +case 377: return 792; +break; +case 378: return 793; +break; +case 379: this.begin('hdfs'); return 206; +break; +case 380: return 53; +break; +case 381: return 684; +break; +case 382: return 359; +break; +case 383: return 236; +break; +case 384: return 64; +break; +case 385: return 241; +break; +case 386: return 41; +break; +case 387: return 242; +break; +case 388: return 534; +break; +case 389: return 489; +break; +case 390: return 488; +break; +case 391: yy.lexer.unput('('); yy_.yytext = 'appx_median'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 515; +break; +case 392: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 525; +break; +case 393: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 541; +break; +case 394: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 556; +break; +case 395: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 600; +break; +case 396: yy.lexer.unput('('); yy_.yytext = 'group_concat'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 616; +break; +case 397: yy.lexer.unput('('); yy_.yytext = 'left'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 962; +break; +case 398: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 658; +break; +case 399: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 661; +break; +case 400: yy.lexer.unput('('); yy_.yytext = 'ndv'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 668; +break; +case 401: yy.lexer.unput('('); yy_.yytext = 'stddev'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 743; +break; +case 402: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 744; +break; +case 403: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 745; +break; +case 404: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 752; +break; +case 405: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 778; +break; +case 406: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 779; +break; +case 407: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 782; +break; +case 408: yy.lexer.unput('('); yy_.yytext = 'variance_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 783; +break; +case 409: yy.lexer.unput('('); yy_.yytext = 'variance_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 784; +break; +case 410: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 512; +break; +case 411: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 512; +break; +case 412: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 512; +break; +case 413: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 512; +break; +case 414: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 512; +break; +case 415: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 512; +break; +case 416: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 512; +break; +case 417: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 512; +break; +case 418: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 512; +break; +case 419: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 512; +break; +case 420: yy.lexer.unput('('); yy_.yytext = 'system'; return 929; +break; +case 421: return 361; +break; +case 422: return 361; +break; +case 423: return 774; +break; +case 424: return 503; +break; +case 425: parser.yy.cursorFound = true; return 27; +break; +case 426: parser.yy.cursorFound = true; return 796; +break; +case 427: return 620; +break; +case 428: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 987; +break; +case 429: this.popState(); return 988; +break; +case 430: return 499; +break; +case 431: return 513; +break; +case 432: return 681; +break; +case 433: return 54; +break; +case 434: return 237; +break; +case 435: return 238; +break; +case 436: return 277; +break; +case 437: return 277; +break; +case 438: return 277; +break; +case 439: return 277; +break; +case 440: return 277; +break; +case 441: return 508; +break; +case 442: return 507; +break; +case 443: return 517; +break; +case 444: return 517; +break; +case 445: return 517; +break; +case 446: return 517; +break; +case 447: return 517; +break; +case 448: return 517; +break; +case 449: return 95; +break; +case 450: return 138; +break; +case 451: return 341; +break; +case 452: return 248; +break; +case 453: return 404; +break; +case 454: return 794; +break; +case 455: return 506; +break; +case 456: return 89; +break; +case 457: return 91; +break; +case 458: return 509; +break; +case 459: return 510; +break; +case 460: return 504; +break; +case 461: this.begin('backtickedValue'); return 526; +break; +case 462: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { + return 799; + } + return 181; + +break; +case 463: this.popState(); return 526; +break; +case 464: this.begin('singleQuotedValue'); return 179; +break; +case 465: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { + return 799; + } + return 181; + +break; +case 466: this.popState(); return 179; +break; +case 467: this.begin('doubleQuotedValue'); return 180; +break; +case 468: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { + return 799; + } + return 181; + +break; +case 469: this.popState(); return 180; +break; +case 470: return 499; +break; +case 471: /* To prevent console logging of unknown chars */ +break; +case 472: +break; +case 473: +break; +case 474: +break; +case 475: +break; +case 476:console.log(yy_.yytext); +break; +} +}, +rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:ADD)/i,/^(?:AGGREGATE)/i,/^(?:ALL)/i,/^(?:ALLOCATE)/i,/^(?:ALTER)/i,/^(?:ANALYTIC)/i,/^(?:AND)/i,/^(?:ANTI)/i,/^(?:ANY)/i,/^(?:ARE)/i,/^(?:ARRAY_AGG)/i,/^(?:ARRAY_MAX_CARDINALITY)/i,/^(?:AS)/i,/^(?:ASC)/i,/^(?:ASENSITIVE)/i,/^(?:ASYMMETRIC)/i,/^(?:AT)/i,/^(?:ATOMIC)/i,/^(?:AUTHORIZATION)/i,/^(?:AVRO)/i,/^(?:BEGIN_FRAME)/i,/^(?:BEGIN_PARTITION)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BLOB)/i,/^(?:BLOCK_SIZE)/i,/^(?:BOOLEAN)/i,/^(?:BOTH)/i,/^(?:BY)/i,/^(?:CACHED)/i,/^(?:CALLED)/i,/^(?:CARDINALITY)/i,/^(?:CASCADE)/i,/^(?:CASCADED)/i,/^(?:CASE)/i,/^(?:CHANGE)/i,/^(?:CHAR)/i,/^(?:CHARACTER)/i,/^(?:CLOB)/i,/^(?:CLOSE_FN)/i,/^(?:COLLATE)/i,/^(?:COLLECT)/i,/^(?:COLUMN)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMMIT)/i,/^(?:COMPRESSION)/i,/^(?:COMPUTE)/i,/^(?:CONDITION)/i,/^(?:CONNECT)/i,/^(?:CONSTRAINT)/i,/^(?:CONTAINS)/i,/^(?:CONVERT)/i,/^(?:COPY)/i,/^(?:CORR)/i,/^(?:CORRESPONDING)/i,/^(?:COVAR_POP)/i,/^(?:COVAR_SAMP)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CUBE)/i,/^(?:CURRENT)/i,/^(?:CURRENT_DATE)/i,/^(?:CURRENT_DEFAULT_TRANSFORM_GROUP)/i,/^(?:CURRENT_PATH)/i,/^(?:CURRENT_ROLE)/i,/^(?:CURRENT_ROW)/i,/^(?:CURRENT_SCHEMA)/i,/^(?:CURRENT_TIME)/i,/^(?:CURRENT_TRANSFORM_GROUP_FOR_TYPE)/i,/^(?:CYCLE)/i,/^(?:DATA)/i,/^(?:DATABASE)/i,/^(?:DATABASES)/i,/^(?:DEALLOCATE)/i,/^(?:DEC)/i,/^(?:DECFLOAT)/i,/^(?:DECIMAL)/i,/^(?:DECLARE)/i,/^(?:DEFINE)/i,/^(?:DELETE)/i,/^(?:DELIMITED)/i,/^(?:DEREF)/i,/^(?:DESC)/i,/^(?:DESCRIBE)/i,/^(?:DETERMINISTIC)/i,/^(?:DISCONNECT)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:DYNAMIC)/i,/^(?:EACH)/i,/^(?:ELEMENT)/i,/^(?:ELSE)/i,/^(?:EMPTY)/i,/^(?:ENCODING)/i,/^(?:END)/i,/^(?:END_FRAME)/i,/^(?:END_PARTITION)/i,/^(?:EQUALS)/i,/^(?:ESCAPE)/i,/^(?:ESCAPED)/i,/^(?:EVERY)/i,/^(?:EXCEPT)/i,/^(?:EXEC)/i,/^(?:EXECUTE)/i,/^(?:EXISTS)/i,/^(?:EXPLAIN)/i,/^(?:EXTENDED)/i,/^(?:EXTERNAL)/i,/^(?:FALSE)/i,/^(?:FETCH)/i,/^(?:FIELDS)/i,/^(?:FILEFORMAT)/i,/^(?:FILES)/i,/^(?:FILTER)/i,/^(?:FINALIZE_FN)/i,/^(?:FIRST)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FOR)/i,/^(?:FOREIGN)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FRAME_ROW)/i,/^(?:FREE)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:FUNCTION)/i,/^(?:FUNCTIONS)/i,/^(?:FUSION)/i,/^(?:GET)/i,/^(?:GLOBAL)/i,/^(?:GRANT)/i,/^(?:GROUP)/i,/^(?:GROUPING)/i,/^(?:GROUPS)/i,/^(?:HASH)/i,/^(?:HAVING)/i,/^(?:HOLD)/i,/^(?:IF)/i,/^(?:IGNORE)/i,/^(?:ILIKE)/i,/^(?:IN)/i,/^(?:INCREMENTAL)/i,/^(?:INDICATOR)/i,/^(?:INIT_FN)/i,/^(?:INITIAL)/i,/^(?:INNER)/i,/^(?:INOUT)/i,/^(?:INPATH)/i,/^(?:INSENSITIVE)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTERMEDIATE)/i,/^(?:INTERSECT)/i,/^(?:INTERSECTION)/i,/^(?:INTERVAL)/i,/^(?:INTO)/i,/^(?:INVALIDATE)/i,/^(?:IREGEXP)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:JSON_ARRAY)/i,/^(?:JSON_ARRAYAGG)/i,/^(?:JSON_EXISTS)/i,/^(?:JSON_OBJECT)/i,/^(?:JSON_OBJECTAGG)/i,/^(?:JSON_QUERY)/i,/^(?:JSON_TABLE)/i,/^(?:JSON_TABLE_PRIMITIVE)/i,/^(?:JSON_VALUE)/i,/^(?:KEY)/i,/^(?:KUDU)/i,/^(?:LARGE)/i,/^(?:LAST)/i,/^(?:LATERAL)/i,/^(?:LEADING)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIKE_REGEX)/i,/^(?:LIMIT)/i,/^(?:LIFECYCLE)/i,/^(?:LINES)/i,/^(?:LISTAGG)/i,/^(?:LOAD)/i,/^(?:LOCAL)/i,/^(?:LOCALTIMESTAMP)/i,/^(?:LOCATION)/i,/^(?:MATCH)/i,/^(?:MATCH_NUMBER)/i,/^(?:MATCH_RECOGNIZE)/i,/^(?:MATCHES)/i,/^(?:MERGE)/i,/^(?:MERGE_FN)/i,/^(?:METADATA)/i,/^(?:METHOD)/i,/^(?:MODIFIES)/i,/^(?:MULTISET)/i,/^(?:NATIONAL)/i,/^(?:NATURAL)/i,/^(?:NCHAR)/i,/^(?:NCLOB)/i,/^(?:NO)/i,/^(?:NONE)/i,/^(?:NORMALIZE)/i,/^(?:NOT)/i,/^(?:NTH_VALUE)/i,/^(?:NULL)/i,/^(?:NULLS)/i,/^(?:NUMERIC)/i,/^(?:OCCURRENCES_REGEX)/i,/^(?:OCTET_LENGTH)/i,/^(?:OF)/i,/^(?:OFFSET)/i,/^(?:OMIT)/i,/^(?:ON)/i,/^(?:ONE)/i,/^(?:ONLY)/i,/^(?:OPTION)/i,/^(?:OR)/i,/^(?:ORC)/i,/^(?:ORDER)/i,/^(?:OUT)/i,/^(?:OUTER)/i,/^(?:OVER)/i,/^(?:OVERLAPS)/i,/^(?:OVERLAY)/i,/^(?:OVERWRITE)/i,/^(?:PARQUET)/i,/^(?:PARTITION)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PATTERN)/i,/^(?:PER)/i,/^(?:PERCENT)/i,/^(?:PERCENTILE_CONT)/i,/^(?:PERCENTILE_DISC)/i,/^(?:PORTION)/i,/^(?:POSITION)/i,/^(?:POSITION_REGEX)/i,/^(?:PRECEDES)/i,/^(?:PRECEDING)/i,/^(?:PREPARE)/i,/^(?:PREPARE_FN)/i,/^(?:PRIMARY)/i,/^(?:PROCEDURE)/i,/^(?:PTF)/i,/^(?:PURGE)/i,/^(?:RANGE)/i,/^(?:RCFILE)/i,/^(?:READS)/i,/^(?:REAL)/i,/^(?:RECOVER)/i,/^(?:RECURSIVE)/i,/^(?:REF)/i,/^(?:REFERENCES)/i,/^(?:REFERENCING)/i,/^(?:REFRESH)/i,/^(?:REGEXP)/i,/^(?:REGR_AVGX)/i,/^(?:REGR_AVGY)/i,/^(?:REGR_COUNT)/i,/^(?:REGR_INTERCEPT)/i,/^(?:REGR_R2REGR_SLOPE)/i,/^(?:REGR_SXX)/i,/^(?:REGR_SXY)/i,/^(?:REGR_SYY)/i,/^(?:RELEASE)/i,/^(?:RENAME)/i,/^(?:REPEATABLE)/i,/^(?:REPLACE)/i,/^(?:REPLICATION)/i,/^(?:RESTRICT)/i,/^(?:RETURNS)/i,/^(?:REVOKE)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:ROLLBACK)/i,/^(?:ROLLUP)/i,/^(?:ROW)/i,/^(?:ROWS)/i,/^(?:RUNNING)/i,/^(?:SAVEPOINT)/i,/^(?:SCHEMA)/i,/^(?:SCHEMAS)/i,/^(?:SCOPE)/i,/^(?:SCROLL)/i,/^(?:SEARCH)/i,/^(?:SEEK)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SENSITIVE)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SERIALIZE_FN)/i,/^(?:SERVER)/i,/^(?:SET)/i,/^(?:SHOW)/i,/^(?:SIMILAR)/i,/^(?:SKIP)/i,/^(?:SMALLINT)/i,/^(?:SOME)/i,/^(?:SORT)/i,/^(?:SPECIFIC)/i,/^(?:SPECIFICTYPE)/i,/^(?:SQLEXCEPTION)/i,/^(?:SQLSTATE)/i,/^(?:SQLWARNING)/i,/^(?:STATIC)/i,/^(?:STATS)/i,/^(?:STORED)/i,/^(?:STRAIGHT_JOIN)/i,/^(?:STRING)/i,/^(?:SUBMULTISET)/i,/^(?:SUBSET)/i,/^(?:SUBSTRING_REGEX)/i,/^(?:SUCCEEDS)/i,/^(?:SYMBOL)/i,/^(?:SYMMETRIC)/i,/^(?:SYSTEM_TIME)/i,/^(?:SYSTEM_USER)/i,/^(?:TABLE)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TIMEZONE_HOUR)/i,/^(?:TIMEZONE_MINUTE)/i,/^(?:TINYINT)/i,/^(?:TO)/i,/^(?:TRAILING)/i,/^(?:TRANSLATE_REGEX)/i,/^(?:TRANSLATION)/i,/^(?:TREAT)/i,/^(?:TRIGGER)/i,/^(?:TRIM_ARRAY)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UESCAPE)/i,/^(?:UNBOUNDED)/i,/^(?:UNCACHED)/i,/^(?:UNION)/i,/^(?:UNIQUE)/i,/^(?:UNKNOWN)/i,/^(?:UNNEST)/i,/^(?:UPDATE)/i,/^(?:UPDATE_FN)/i,/^(?:UPSERT)/i,/^(?:URI)/i,/^(?:USE)/i,/^(?:USER)/i,/^(?:USING)/i,/^(?:VALUE_OF)/i,/^(?:VALUES)/i,/^(?:VARBINARY)/i,/^(?:VARCHAR)/i,/^(?:VARYING)/i,/^(?:VERSIONING)/i,/^(?:VIEW)/i,/^(?:WHEN)/i,/^(?:WHENEVER)/i,/^(?:WHERE)/i,/^(?:WIDTH_BUCKET)/i,/^(?:WINDOW)/i,/^(?:WITH)/i,/^(?:WITHIN)/i,/^(?:WITHOUT)/i,/^(?:LIKE\s+PARQUET)/i,/^(?:PARTITION\s+VALUE\s)/i,/^(?:OVER)/i,/^(?:ROLE)/i,/^(?:ARRAY)/i,/^(?:DEFAULT)/i,/^(?:MAP)/i,/^(?:OWNER)/i,/^(?:STRUCT)/i,/^(?:\[BROADCAST\])/i,/^(?:\[NOSHUFFLE\])/i,/^(?:\[SHUFFLE\])/i,/^(?:APPX_MEDIAN\s*\()/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:GROUP_CONCAT\s*\()/i,/^(?:LEFT\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:NDV\s*\()/i,/^(?:STDDEV\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:VARIANCE_POP\s*\()/i,/^(?:VARIANCE_SAMP\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:SYSTEM\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?:\.\.\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], +conditions: {"hdfs":{"rules":[425,426,427,428,429,430,472],"inclusive":false},"doubleQuotedValue":{"rules":[468,469,475],"inclusive":false},"singleQuotedValue":{"rules":[465,466,474],"inclusive":false},"backtickedValue":{"rules":[462,463,473],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,464,467,470,471,476],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); +export default impalaAutocompleteParser; diff --git a/src/core/parse/impala/impalaSyntaxParser.js b/src/core/parse/impala/impalaSyntaxParser.js new file mode 100644 index 0000000..3074ff0 --- /dev/null +++ b/src/core/parse/impala/impalaSyntaxParser.js @@ -0,0 +1,5330 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +/* parser generated by jison 0.4.18 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +import SqlParseSupport from './sqlParseSupport'; + +var impalaSyntaxParser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[26,38,63,86,147,153,155,170,306,391,392,401,413,414,417,440,451,458,462,470,814,1000,1015,1029],$V1=[2,822],$V2=[458,462],$V3=[2,823],$V4=[1,50],$V5=[1,70],$V6=[1,77],$V7=[1,73],$V8=[1,32],$V9=[1,33],$Va=[1,34],$Vb=[1,74],$Vc=[1,69],$Vd=[1,78],$Ve=[1,64],$Vf=[1,47],$Vg=[1,85],$Vh=[1,68],$Vi=[1,48],$Vj=[1,84],$Vk=[1,66],$Vl=[1,27],$Vm=[1,49],$Vn=[1,79],$Vo=[1,67],$Vp=[1,63],$Vq=[91,360,458,462],$Vr=[2,1468],$Vs=[1,94],$Vt=[1,96],$Vu=[1,110],$Vv=[1,107],$Vw=[1,112],$Vx=[1,108],$Vy=[1,111],$Vz=[1,113],$VA=[1,109],$VB=[1,104],$VC=[1,105],$VD=[1,103],$VE=[1,120],$VF=[1,122],$VG=[1,124],$VH=[1,121],$VI=[1,119],$VJ=[1,123],$VK=[1,125],$VL=[41,64,242,254,410,411,416,468,469,493],$VM=[2,1277],$VN=[1,130],$VO=[1,131],$VP=[1,145],$VQ=[2,1503],$VR=[1,153],$VS=[1,154],$VT=[1,161],$VU=[1,162],$VV=[1,174],$VW=[1,176],$VX=[1,173],$VY=[275,414,445,446],$VZ=[91,360,458,462,746],$V_=[2,1296],$V$=[26,38,41,44,51,56,57,63,64,70,73,86,89,91,95,101,106,109,111,136,142,179,180,242,254,256,268,275,287,306,360,390,394,402,410,411,414,416,445,446,458,462,468,469,480,493,502,526,581,588,597,605,619,621,625,654,656,692,706,732,746,751,764,870],$V01=[26,38,41,44,50,51,54,56,57,63,64,70,73,85,86,87,88,89,91,95,101,106,109,111,136,138,142,144,146,179,180,206,208,224,236,237,238,241,242,248,253,254,256,268,275,277,287,306,360,390,394,402,410,411,414,416,445,446,458,462,468,469,473,474,475,476,479,480,484,487,493,496,497,499,502,505,509,526,542,546,550,554,556,574,581,588,593,594,597,600,604,605,619,621,625,645,653,654,656,674,679,691,692,693,697,706,710,722,732,733,734,737,746,751,756,762,764,870],$V11=[1,234],$V21=[1,235],$V31=[1,243],$V41=[2,1323],$V51=[54,138],$V61=[91,95,360,394,402,458,462,588,621,654,746,764,870],$V71=[1,254],$V81=[1,255],$V91=[1,259],$Va1=[1,256],$Vb1=[1,253],$Vc1=[1,260],$Vd1=[1,257],$Ve1=[1,261],$Vf1=[1,258],$Vg1=[91,95,142,360,394,402,458,462,480,526,581,588,597,605,619,621,654,656,692,706,732,746,751,764,870],$Vh1=[2,1913],$Vi1=[1,265],$Vj1=[1,268],$Vk1=[1,269],$Vl1=[41,64,91,95,136,142,179,180,242,254,360,394,402,410,411,416,458,462,468,469,480,493,526,581,588,597,605,619,621,654,656,692,706,732,746,751,764,870],$Vm1=[306,414],$Vn1=[2,1891],$Vo1=[26,41,51,64,242,254,410,411,416,458,462,468,469,493],$Vp1=[41,64,73,89,138,146,179,180,224,236,241,242,254,361,391,410,411,416,468,469,472,473,474,478,482,492,493,507,508,523,565,568,569,585,591,603,630,633,640,718,719,720,727,744,749,750,753,754,757,758,759,769,956],$Vq1=[41,64,73,89,91,138,146,179,180,224,236,241,242,254,361,391,410,411,414,416,468,469,472,473,474,478,482,492,493,507,508,523,565,568,569,585,591,603,630,633,640,718,719,720,721,727,744,749,750,753,754,757,758,759,769,956],$Vr1=[89,95,413,414,440],$Vs1=[41,64,242,254,410,411,416,458,462,468,469,493,591],$Vt1=[50,51],$Vu1=[2,1289],$Vv1=[2,164],$Vw1=[1,286],$Vx1=[1,292],$Vy1=[1,294],$Vz1=[1,295],$VA1=[1,297],$VB1=[1,298],$VC1=[1,300],$VD1=[1,299],$VE1=[2,1286],$VF1=[1,307],$VG1=[1,342],$VH1=[1,341],$VI1=[1,343],$VJ1=[179,208,458,462],$VK1=[2,1293],$VL1=[1,349],$VM1=[1,353],$VN1=[2,758],$VO1=[1,355],$VP1=[41,64,129,242,254,410,411,416,468,469,493],$VQ1=[1,367],$VR1=[1,366],$VS1=[1,368],$VT1=[1,369],$VU1=[1,388],$VV1=[1,381],$VW1=[1,387],$VX1=[1,383],$VY1=[1,380],$VZ1=[1,379],$V_1=[1,389],$V$1=[1,384],$V02=[41,64,89,242,254,410,411,416,468,469,493],$V12=[2,1819],$V22=[1,395],$V32=[1,394],$V42=[41,64,89,242,254,410,411,416,445,468,469,493,501],$V52=[91,95,142,360,394,402,458,462,480,526,581,588,597,605,619,621,654,656,692,706,746,751,764,870],$V62=[2,1883],$V72=[1,414],$V82=[54,64,85,86,87,88,91,95,101,106,109,136,142,146,224,238,253,287,306,360,394,402,458,462,480,502,526,581,588,597,605,619,621,625,654,656,692,706,732,746,751,764,870],$V92=[1,433],$Va2=[1,464],$Vb2=[1,451],$Vc2=[1,457],$Vd2=[1,446],$Ve2=[1,462],$Vf2=[1,463],$Vg2=[1,465],$Vh2=[1,447],$Vi2=[1,444],$Vj2=[1,449],$Vk2=[1,478],$Vl2=[1,489],$Vm2=[1,490],$Vn2=[1,452],$Vo2=[1,479],$Vp2=[1,484],$Vq2=[1,450],$Vr2=[1,480],$Vs2=[1,488],$Vt2=[1,491],$Vu2=[1,461],$Vv2=[1,472],$Vw2=[1,495],$Vx2=[1,496],$Vy2=[1,497],$Vz2=[1,492],$VA2=[1,493],$VB2=[1,494],$VC2=[1,485],$VD2=[1,487],$VE2=[1,466],$VF2=[1,501],$VG2=[1,502],$VH2=[1,498],$VI2=[1,499],$VJ2=[1,500],$VK2=[1,448],$VL2=[1,467],$VM2=[1,513],$VN2=[1,514],$VO2=[1,516],$VP2=[1,517],$VQ2=[1,518],$VR2=[1,519],$VS2=[1,520],$VT2=[1,521],$VU2=[1,522],$VV2=[1,524],$VW2=[2,1384],$VX2=[1,528],$VY2=[26,41,50,54,63,64,85,86,87,88,89,91,95,136,138,144,146,179,180,208,224,236,237,238,241,242,253,254,277,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,497,499,509,526,542,546,550,554,556,574,581,588,593,594,597,600,604,605,619,621,645,653,654,656,674,679,692,693,697,706,710,722,733,734,737,746,756,762,764,870],$VZ2=[1,543],$V_2=[95,458,462],$V$2=[1,587],$V03=[91,95],$V13=[41,64,101,136,242,254,360,410,411,416,458,462,468,469],$V23=[41,50,54,64,85,86,87,88,91,95,101,106,109,136,144,146,179,180,208,224,237,238,242,253,254,268,277,287,306,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,502,526,546,554,556,581,588,593,594,597,604,605,619,621,625,645,653,654,656,679,692,693,697,706,733,746,762,764,870],$V33=[2,1528],$V43=[1,609],$V53=[41,50,54,64,85,86,87,88,91,95,101,106,109,136,142,144,146,179,180,208,224,237,238,242,253,254,277,287,303,304,306,347,348,349,350,351,352,353,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,502,526,546,554,556,581,588,593,594,597,604,605,619,621,625,645,653,654,656,679,692,693,697,706,732,733,746,751,762,764,870],$V63=[41,50,54,64,85,86,87,88,91,95,101,106,109,136,142,144,146,179,180,208,224,237,238,242,253,254,277,287,306,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,502,526,546,554,556,581,588,593,594,597,604,605,619,621,625,645,653,654,656,679,692,693,697,706,732,733,746,751,762,764,870],$V73=[41,50,54,64,91,95,136,142,144,179,180,208,224,237,238,242,254,277,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,526,546,554,556,581,588,593,594,597,604,605,619,621,645,653,654,656,679,692,693,697,706,732,733,746,751,762,764,870],$V83=[458,462,764],$V93=[95,394,458,462,764],$Va3=[54,86,91,95],$Vb3=[41,50,54,64,85,86,87,88,89,91,95,136,138,144,146,179,180,208,224,237,238,242,253,254,277,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,526,546,554,556,581,588,593,594,597,604,605,619,621,645,653,654,656,679,692,693,697,706,733,746,762,764,870],$Vc3=[91,95,360,394,458,462,746],$Vd3=[1,639],$Ve3=[1,638],$Vf3=[1,652],$Vg3=[1,643],$Vh3=[1,640],$Vi3=[1,641],$Vj3=[1,642],$Vk3=[1,649],$Vl3=[1,648],$Vm3=[1,647],$Vn3=[1,650],$Vo3=[1,645],$Vp3=[1,653],$Vq3=[1,644],$Vr3=[1,654],$Vs3=[1,646],$Vt3=[1,656],$Vu3=[1,655],$Vv3=[41,50,54,64,91,95,136,144,179,180,208,224,237,238,242,254,277,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,526,546,554,556,581,588,593,594,597,604,605,619,621,645,653,654,656,679,692,693,697,706,733,746,762,764,870],$Vw3=[1,667],$Vx3=[41,50,54,64,85,86,87,88,91,95,136,144,146,179,180,208,224,237,238,242,253,254,277,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,526,546,554,556,581,588,593,594,597,604,605,619,621,645,653,654,656,679,692,693,697,706,733,746,762,764,870],$Vy3=[1,669],$Vz3=[41,50,54,64,85,86,87,88,89,91,95,136,144,146,179,180,208,224,237,238,242,253,254,277,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,526,546,554,556,581,588,593,594,597,604,605,619,621,645,653,654,656,679,692,693,697,706,733,746,762,764,870],$VA3=[1,674],$VB3=[41,50,54,64,85,86,87,88,91,95,136,144,146,179,180,208,224,237,238,242,253,254,277,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,526,546,554,556,581,588,593,594,597,604,605,619,621,645,653,654,656,657,679,692,693,697,706,733,746,762,764,870],$VC3=[51,109,458,462,502],$VD3=[2,1373],$VE3=[101,109,136,360,458,462,502,625],$VF3=[101,136,360,458,462],$VG3=[1,699],$VH3=[1,724],$VI3=[1,725],$VJ3=[1,726],$VK3=[1,714],$VL3=[1,715],$VM3=[1,721],$VN3=[1,720],$VO3=[1,717],$VP3=[1,716],$VQ3=[1,713],$VR3=[1,718],$VS3=[1,712],$VT3=[1,719],$VU3=[1,723],$VV3=[1,711],$VW3=[1,722],$VX3=[2,251],$VY3=[1,740],$VZ3=[86,136],$V_3=[51,86,89,101,106,109,136,206,208,256,268,287,306,360,458,462,502,625],$V$3=[1,749],$V04=[1,767],$V14=[91,95,654],$V24=[26,38,41,44,51,56,57,63,64,70,73,86,89,91,95,101,106,109,111,136,138,142,179,180,242,254,256,268,275,287,306,360,390,394,402,410,411,414,416,445,446,458,462,468,469,480,493,502,526,581,588,597,605,619,621,625,654,656,692,706,732,746,751,764,870],$V34=[57,394],$V44=[91,360,402,458,462,588,621,654,746,870],$V54=[91,95,360,394,402,458,462,480,526,581,588,597,605,619,621,654,656,692,706,746,764,870],$V64=[2,1866],$V74=[1,786],$V84=[1,787],$V94=[146,549,569,744,872],$Va4=[41,50,64,91,95,136,179,180,224,242,254,360,394,402,410,411,416,458,462,468,469,476,479,480,487,493,496,526,546,554,556,581,588,597,605,619,621,645,653,654,656,692,697,706,733,746,762,764,870],$Vb4=[41,50,54,64,91,95,136,179,180,224,237,238,242,254,277,360,394,402,410,411,416,458,462,468,469,473,474,476,479,480,484,487,493,496,526,546,554,556,581,588,597,605,619,621,645,653,654,656,692,697,706,733,746,762,764,870],$Vc4=[554,556,762],$Vd4=[41,64,73,89,138,146,179,180,224,236,241,242,254,361,391,410,411,416,468,469,472,474,478,482,492,493,507,508,523,565,568,569,585,591,603,630,633,640,718,719,720,727,744,749,750,753,754,757,758,759,769,956],$Ve4=[109,458,462,502],$Vf4=[101,109,136,287,304,306,360,458,462,502,625],$Vg4=[91,95,458,462],$Vh4=[1,881],$Vi4=[1,882],$Vj4=[1,880],$Vk4=[1,879],$Vl4=[1,884],$Vm4=[1,883],$Vn4=[1,886],$Vo4=[64,85,86,87,88,91,95,146,224,238,253,458,462],$Vp4=[64,85,86,87,88,91,95,146,224,238,253,341,458,462,625],$Vq4=[2,1443],$Vr4=[1,890],$Vs4=[86,101,106,109,136,268,287,306,360,458,462,502,625],$Vt4=[51,86,101,106,109,136,256,268,287,306,360,458,462,502,625],$Vu4=[1,921],$Vv4=[2,740],$Vw4=[1,935],$Vx4=[91,360,458,462,588,621,654,746,870],$Vy4=[91,95,360,402,458,462,588,621,654,746,764,870],$Vz4=[41,50,54,64,91,95,136,179,180,224,237,238,242,254,277,360,394,402,410,411,416,458,462,468,469,476,479,480,487,493,496,526,546,554,556,581,588,597,605,619,621,645,653,654,656,692,697,706,733,746,762,764,870],$VA4=[41,50,64,91,95,136,179,180,242,254,360,394,402,410,411,416,458,462,468,469,476,479,480,487,493,526,546,554,556,581,588,597,605,619,621,645,653,654,656,692,697,706,733,746,762,764,870],$VB4=[91,654],$VC4=[2,1377],$VD4=[1,976],$VE4=[1,981],$VF4=[1,982],$VG4=[1,983],$VH4=[1,980],$VI4=[41,64,138,146,179,180,242,254,361,410,411,416,468,469,474,569,744,749,893],$VJ4=[101,109,136,287,360,458,462,502,625],$VK4=[101,109,136,287,306,360,458,462,502,625],$VL4=[64,85,86,87,88,91,95,146,224,253,458,462],$VM4=[86,101,106,109,136,287,306,360,458,462,502,625],$VN4=[342,458,462],$VO4=[91,95,341],$VP4=[91,360,458,462,621,654,746,870],$VQ4=[1,1057],$VR4=[138,179,180,275,361,569,744,749],$VS4=[95,238],$VT4=[1,1087],$VU4=[1,1088],$VV4=[91,360,458,462,621,746,870],$VW4=[86,95,101,106,109,136,268,287,306,360,458,462,502,625],$VX4=[91,360,458,462,746,870],$VY4=[91,95,360,458,462,588,621,654,746,870],$VZ4=[496,976],$V_4=[91,479],$V$4=[2,2004],$V05=[1,1178],$V15=[1,1177],$V25=[1,1179],$V35=[50,91,95,360,458,462,621,697,746,870],$V45=[50,91,95,360,458,462,621,645,697,746,870],$V55=[1,1193],$V65=[1,1194],$V75=[2,2009],$V85=[1,1204],$V95=[575,669],$Va5=[350,351,352,353,458,462],$Vb5=[1,1235],$Vc5=[1,1236],$Vd5=[351,352,353,458,462],$Ve5=[136,360,458,462],$Vf5=[2,448],$Vg5=[2,449],$Vh5=[352,353,458,462],$Vi5=[360,458,462],$Vj5=[353,458,462]; +var parser = {trace: function trace () { }, +yy: {}, +symbols_: {"error":2,"DataDefinition":3,"AlterStatement":4,"RefreshStatement":5,"InvalidateStatement":6,"ComputeStatsStatement":7,"CreateStatement":8,"DropStatement":9,"GrantStatement":10,"RevokeStatement":11,"DescribeStatement":12,"SetSpecification":13,"ShowStatement":14,"UseStatement":15,"DataDefinition_EDIT":16,"AlterStatement_EDIT":17,"RefreshStatement_EDIT":18,"InvalidateStatement_EDIT":19,"ComputeStatsStatement_EDIT":20,"CreateStatement_EDIT":21,"DropStatement_EDIT":22,"GrantStatement_EDIT":23,"RevokeStatement_EDIT":24,"DescribeStatement_EDIT":25,"SET":26,"CURSOR":27,"ShowStatement_EDIT":28,"UseStatement_EDIT":29,"AlterDatabase":30,"AlterTable":31,"AlterView":32,"CommentOn":33,"AlterDatabase_EDIT":34,"AlterTable_EDIT":35,"AlterView_EDIT":36,"CommentOn_EDIT":37,"ALTER":38,"DatabaseOrSchema":39,"RegularOrBacktickedIdentifier":40,"OWNER":41,"RoleOrUser":42,"AlterTableLeftSide":43,"ADD":44,"OptionalIfNotExists":45,"PartitionSpec":46,"OptionalHdfsLocation":47,"OptionalPartitionSpecs":48,"OptionalCachedInOrUncached":49,"RANGE":50,"PARTITION":51,"RangePartitionSpec":52,"PARTITION_VALUE":53,"=":54,"UnsignedValueSpecification":55,"RENAME":56,"TO":57,"RegularOrBackTickedSchemaQualifiedName":58,"OptionalColumn":59,"ColumnIdentifier":60,"KuduStorageAttribute":61,"SetValue":62,"DROP":63,"DEFAULT":64,"COLUMN":65,"STATS":66,"ParenthesizedStatsList":67,"DropOperations":68,"OptionalPartitionOperations":69,"RECOVER":70,"PARTITIONS":71,"AlterTableLeftSide_EDIT":72,"REPLACE":73,"OptionalIfNotExists_EDIT":74,"HdfsLocation_EDIT":75,"OptionalPartitionSpecs_EDIT":76,"CachedIn_EDIT":77,"PartitionSpec_EDIT":78,"OptionalCachedIn":79,"RangePartitionSpec_EDIT":80,"ParenthesizedStatsList_EDIT":81,"OptionalPartitionOperations_EDIT":82,"DropOperations_EDIT":83,"AddOrReplace":84,"BLOCK_SIZE":85,"COMMENT":86,"COMPRESSION":87,"ENCODING":88,"(":89,"StatsList":90,")":91,"StatsList_EDIT":92,"RightParenthesisOrError":93,"StatsAssignment":94,",":95,"StatsAssignment_EDIT":96,"QuotedValue":97,"FILEFORMAT":98,"FileFormat":99,"HdfsLocation":100,"TBLPROPERTIES":101,"ParenthesizedPropertyAssignmentList":102,"SERDEPROPERTIES":103,"CachedIn":104,"OptionalWithReplication":105,"ROW":106,"FORMAT":107,"DelimitedRowFormat":108,"UNCACHED":109,"AddReplaceColumns":110,"CHANGE":111,"ColumnSpecification":112,"AddReplaceColumns_EDIT":113,"ColumnSpecification_EDIT":114,"WithReplication_EDIT":115,"DelimitedRowFormat_EDIT":116,"COLUMNS":117,"ParenthesizedColumnSpecificationList":118,"ParenthesizedColumnSpecificationList_EDIT":119,"ExchangePartitionSpec":120,"OneOrMorePartitionSpecLists":121,"PartitionSpecList":122,"ExchangePartitionSpec_EDIT":123,"OneOrMorePartitionSpecLists_EDIT":124,"PartitionSpecList_EDIT":125,"OptionalIfExists":126,"OptionalIfExists_EDIT":127,"ColumnIdentifier_EDIT":128,"TABLE":129,"SchemaQualifiedTableIdentifier":130,"SchemaQualifiedTableIdentifier_EDIT":131,"PartitionSpecWithLocationList":132,"PartitionSpecWithLocation":133,"PartitionSpecWithLocation_EDIT":134,"AlterViewLeftSide":135,"AS":136,"QuerySpecification":137,".":138,"AlterViewLeftSide_EDIT":139,"QuerySpecification_EDIT":140,"VIEW":141,"ON":142,"DATABASE":143,"IS":144,"NullableComment":145,"NULL":146,"REFRESH":147,"OptionalPartitionSpec":148,"FUNCTIONS":149,"DatabaseIdentifier":150,"AUTHORIZATION":151,"OptionalPartitionSpec_EDIT":152,"INVALIDATE":153,"METADATA":154,"COMPUTE":155,"OptionalParenthesizedColumnList":156,"OptionalTableSample":157,"INCREMENTAL":158,"ParenthesizedColumnList_EDIT":159,"TableSample_EDIT":160,"DatabaseDefinition":161,"TableDefinition":162,"ViewDefinition":163,"RoleDefinition":164,"FunctionDefinition":165,"DatabaseDefinition_EDIT":166,"TableDefinition_EDIT":167,"ViewDefinition_EDIT":168,"FunctionDefinition_EDIT":169,"CREATE":170,"OptionalExternal":171,"RegularIdentifier":172,"DatabaseDefinitionOptionals":173,"OptionalComment":174,"DatabaseDefinitionOptionals_EDIT":175,"OptionalComment_INVALID":176,"Comment":177,"Comment_INVALID":178,"SINGLE_QUOTE":179,"DOUBLE_QUOTE":180,"VALUE":181,"PropertyAssignmentList":182,"PropertyAssignment":183,"TableDefinitionRightPart":184,"LifeCyclePart":185,"TableDefinitionRightPart_EDIT":186,"TableIdentifierAndOptionalColumnSpecification":187,"OptionalPartitionedBy":188,"OptionalSortBy":189,"OptionalRowFormat":190,"OptionalWithSerdeproperties":191,"OptionalStoredAs":192,"OptionalTblproperties":193,"OptionalAsSelectStatement":194,"TableIdentifierAndOptionalColumnSpecification_EDIT":195,"PartitionedBy_EDIT":196,"SortBy_EDIT":197,"RowFormat_EDIT":198,"WithSerdeproperties_EDIT":199,"StoredAs_EDIT":200,"OptionalAsSelectStatement_EDIT":201,"SchemaQualifiedIdentifier":202,"OptionalColumnSpecificationsOrLike":203,"OptionalColumnSpecificationsOrLike_EDIT":204,"SchemaQualifiedIdentifier_EDIT":205,"LIKE_PARQUET":206,"HdfsPath":207,"LIKE":208,"HdfsPath_EDIT":209,"ColumnSpecificationList":210,"PrimaryKeySpecification":211,"ColumnSpecificationList_EDIT":212,"PrimaryKeySpecification_EDIT":213,"ColumnDataType":214,"OptionalColumnOptions":215,"ColumnDataType_EDIT":216,"ColumnOptions_EDIT":217,"ColumnOptions":218,"ColumnOption":219,"ColumnOption_EDIT":220,"PrimaryKey":221,"NonParenthesizedValueExpressionPrimary":222,"UnsignedNumericLiteral":223,"NOT":224,"PrimaryKey_EDIT":225,"PrimitiveType":226,"ArrayType":227,"MapType":228,"StructType":229,"ArrayType_INVALID":230,"MapType_INVALID":231,"StructType_INVALID":232,"ArrayType_EDIT":233,"MapType_EDIT":234,"StructType_EDIT":235,"ARRAY":236,"<":237,">":238,"AnyCursor":239,"GreaterThanOrError":240,"MAP":241,"STRUCT":242,"StructDefinitionList":243,"StructDefinitionList_EDIT":244,"StructDefinition":245,"StructDefinition_EDIT":246,"Commas":247,":":248,"ColumnDataTypeList":249,"ColumnDataTypeList_EDIT":250,"ColumnDataTypeListInner_EDIT":251,"ParenthesizedColumnList":252,"PRIMARY":253,"KEY":254,"PartitionedBy":255,"PARTITIONED":256,"BY":257,"HashClauses":258,"RangeClause":259,"HashClauses_EDIT":260,"RangeClause_EDIT":261,"HashClause":262,"HashClause_EDIT":263,"HASH":264,"ParenthesizedPartitionValuesList":265,"ParenthesizedPartitionValuesList_EDIT":266,"SortBy":267,"SORT":268,"PartitionValueList":269,"PartitionValueList_EDIT":270,"PartitionValue":271,"PartitionValue_EDIT":272,"ValueExpression":273,"LessThanOrEqualTo":274,"VALUES":275,"ValueExpression_EDIT":276,"COMPARISON_OPERATOR":277,"ParenthesizedSortList":278,"SortList":279,"ParenthesizedSortList_EDIT":280,"SortList_EDIT":281,"SortIdentifier":282,"SortIdentifier_EDIT":283,"OptionalAscOrDesc":284,"RowFormat":285,"StoredAs":286,"STORED":287,"AVRO":288,"KUDU":289,"ORC":290,"PARQUET":291,"RCFILE":292,"SEQUENCEFILE":293,"TEXTFILE":294,"DELIMITED":295,"OptionalFieldsTerminatedBy":296,"OptionalLinesTerminatedBy":297,"OptionalFieldsTerminatedBy_EDIT":298,"OptionalLinesTerminatedBy_EDIT":299,"FIELDS":300,"TERMINATED":301,"SingleQuotedValue":302,"ESCAPED":303,"LINES":304,"WithSerdeproperties":305,"WITH":306,"TblProperties":307,"CommitLocations":308,"OptionalParenthesizedViewColumnList":309,"ParenthesizedViewColumnList_EDIT":310,"GenericFunctionDefinition":311,"AggregateFunctionDefinition":312,"GenericFunctionDefinition_EDIT":313,"AggregateFunctionDefinition_EDIT":314,"FUNCTION":315,"ParenthesizedArgumentList":316,"ReturnType":317,"SymbolDefinition":318,"ParenthesizedArgumentList_EDIT":319,"ReturnType_EDIT":320,"AGGREGATE":321,"OptionalInitFn":322,"UpdateFn":323,"MergeFn":324,"OptionalPrepareFn":325,"OptionalCloseFn":326,"OptionalSerializeFn":327,"OptionalFinalizeFn":328,"OptionalIntermediate":329,"OptionalInitFn_EDIT":330,"UpdateFn_EDIT":331,"MergeFn_EDIT":332,"OptionalPrepareFn_EDIT":333,"OptionalCloseFn_EDIT":334,"OptionalSerializeFn_EDIT":335,"OptionalFinalizeFn_EDIT":336,"Intermediate_EDIT":337,"ArgumentList":338,"OptionalVariableArguments":339,"ArgumentList_EDIT":340,"...":341,"RETURNS":342,"SYMBOL":343,"INIT_FN":344,"FunctionReference":345,"FunctionReference_EDIT":346,"UPDATE_FN":347,"MERGE_FN":348,"PREPARE_FN":349,"CLOSE_FN":350,"SERIALIZE_FN":351,"FINALIZE_FN":352,"INTERMEDIATE":353,"SingleQuotedValue_EDIT":354,"ParenthesizedViewColumnList":355,"ViewColumnList":356,"ViewColumnList_EDIT":357,"ColumnReference":358,"ROLE":359,"LIFECYCLE":360,"UNSIGNED_INTEGER":361,"DataManipulation":362,"DeleteStatement":363,"InsertStatement":364,"LoadStatement":365,"UpdateStatement":366,"DataManipulation_EDIT":367,"DeleteStatement_EDIT":368,"InsertOrUpsertStatement_EDIT":369,"CommonTableExpression":370,"CommonTableExpression_EDIT":371,"InsertOrUpsertStatement":372,"LoadStatement_EDIT":373,"UpdateStatement_EDIT":374,"DropDatabaseStatement":375,"DropFunctionStatement":376,"DropRoleStatement":377,"DropStatsStatement":378,"DropTableStatement":379,"DropViewStatement":380,"TruncateTableStatement":381,"DropDatabaseStatement_EDIT":382,"DropFunctionStatement_EDIT":383,"DropStatsStatement_EDIT":384,"DropTableStatement_EDIT":385,"DropViewStatement_EDIT":386,"TruncateTableStatement_EDIT":387,"OptionalCascadeOrRestrict":388,"OptionalPurge":389,"PURGE":390,"TRUNCATE":391,"DELETE":392,"OptionalDeleteTableRef":393,"FROM":394,"TableReference":395,"OptionalWhereClause":396,"DeleteTableRef_EDIT":397,"TableReference_EDIT":398,"WhereClause_EDIT":399,"TransactionIdList":400,"GRANT":401,"GROUP":402,"PrivilegeType":403,"ObjectSpecification":404,"OptionalWithGrantOption":405,"GroupRoleOrUser":406,"PrivilegeType_EDIT":407,"ObjectSpecification_EDIT":408,"WithGrantOption_EDIT":409,"SERVER":410,"URI":411,"ALL":412,"INSERT":413,"SELECT":414,"UserOrRoleList":415,"OPTION":416,"REVOKE":417,"OptionalTable":418,"SelectWithoutTableExpression":419,"OptionalAllOrDistinct":420,"OptionalStraightJoin":421,"SelectList":422,"SelectWithoutTableExpression_EDIT":423,"SelectList_EDIT":424,"InsertOrUpsertStatementWithoutCTE":425,"InsertOrUpsertStatementWithoutCTE_EDIT":426,"InsertOrUpsertLeftPart":427,"OptionalShuffleOrNoShuffle":428,"SelectStatement":429,"OptionalUnions":430,"RowValuesLists":431,"InsertOrUpsertLeftPart_EDIT":432,"SelectStatement_EDIT":433,"OptionalUnions_EDIT":434,"RowValuesLists_EDIT":435,"UpsertStatementLeftPart":436,"InsertLeftPart":437,"UpsertStatementLeftPart_EDIT":438,"InsertLeftPart_EDIT":439,"UPSERT":440,"INTO":441,"OptionalParenthesizedColumnList_EDIT":442,"IntoOrOverwrite":443,"OVERWRITE":444,"SHUFFLE":445,"NOSHUFFLE":446,"ParenthesizedValueExpressionList":447,"ParenthesizedValueExpressionList_EDIT":448,"ValueExpressionList":449,"ValueExpressionList_EDIT":450,"LOAD":451,"DATA":452,"INPATH":453,"OptionalOverwrite":454,"SqlSyntax":455,"NewStatement":456,"SqlStatements":457,"EOF":458,"SqlAutocomplete":459,"SqlStatements_EDIT":460,"SqlStatement":461,";":462,"SqlStatement_EDIT":463,"ExplainClause":464,"ExplainClause_EDIT":465,"SetSpecification_EDIT":466,"NonReservedKeyword":467,"REGULAR_IDENTIFIER":468,"VARIABLE_REFERENCE":469,"EXPLAIN":470,"NonStartingToken":471,"!":472,"*":473,"-":474,"[":475,"]":476,"ALLOCATE":477,"ANALYTIC":478,"AND":479,"ANTI":480,"ANY":481,"APPX_MEDIAN":482,"ARE":483,"ARITHMETIC_OPERATOR":484,"ARRAY_AGG":485,"ARRAY_MAX_CARDINALITY":486,"ASC":487,"ASENSITIVE":488,"ASYMMETRIC":489,"AT":490,"ATOMIC":491,"AVG":492,"BACKTICK":493,"BEGIN_FRAME":494,"BEGIN_PARTITION":495,"BETWEEN":496,"BIGINT":497,"BLOB":498,"BOOLEAN":499,"BOTH":500,"BROADCAST":501,"CACHED":502,"CALLED":503,"CARDINALITY":504,"CASCADE":505,"CASCADED":506,"CASE":507,"CAST":508,"CHAR":509,"CHARACTER":510,"CLOB":511,"COLLATE":512,"COLLECT":513,"COMMIT":514,"CONDITION":515,"CONNECT":516,"CONSTRAINT":517,"CONTAINS":518,"CONVERT":519,"COPY":520,"CORR":521,"CORRESPONDING":522,"COUNT":523,"COVAR_POP":524,"COVAR_SAMP":525,"CROSS":526,"CUBE":527,"CURRENT":528,"CURRENT_DATE":529,"CURRENT_DEFAULT_TRANSFORM_GROUP":530,"CURRENT_PATH":531,"CURRENT_ROLE":532,"CURRENT_ROW":533,"CURRENT_SCHEMA":534,"CURRENT_TIME":535,"CURRENT_TRANSFORM_GROUP_FOR_TYPE":536,"CYCLE":537,"DATABASES":538,"DEALLOCATE":539,"DEC":540,"DECFLOAT":541,"DECIMAL":542,"DECLARE":543,"DEFINE":544,"DEREF":545,"DESC":546,"DETERMINISTIC":547,"DISCONNECT":548,"DISTINCT":549,"DOUBLE":550,"DYNAMIC":551,"EACH":552,"ELEMENT":553,"ELSE":554,"EMPTY":555,"END":556,"END_FRAME":557,"END_PARTITION":558,"EQUALS":559,"ESCAPE":560,"EVERY":561,"EXCEPT":562,"EXEC":563,"EXECUTE":564,"EXISTS":565,"EXTENDED":566,"EXTERNAL":567,"EXTRACT":568,"FALSE":569,"FETCH":570,"FILES":571,"FILTER":572,"FIRST":573,"FLOAT":574,"FOLLOWING":575,"FOR":576,"FOREIGN":577,"FORMATTED":578,"FRAME_ROW":579,"FREE":580,"FULL":581,"FUSION":582,"GET":583,"GLOBAL":584,"GROUP_CONCAT":585,"GROUPING":586,"GROUPS":587,"HAVING":588,"HDFS_START_QUOTE":589,"HOLD":590,"IF":591,"IGNORE":592,"ILIKE":593,"IN":594,"INDICATOR":595,"INITIAL":596,"INNER":597,"INOUT":598,"INSENSITIVE":599,"INT":600,"INTERSECT":601,"INTERSECTION":602,"INTERVAL":603,"IREGEXP":604,"JOIN":605,"JSON_ARRAY":606,"JSON_ARRAYAGG":607,"JSON_EXISTS":608,"JSON_OBJECT":609,"JSON_OBJECTAGG":610,"JSON_QUERY":611,"JSON_TABLE":612,"JSON_TABLE_PRIMITIVE":613,"JSON_VALUE":614,"LARGE":615,"LAST":616,"LATERAL":617,"LEADING":618,"LEFT":619,"LIKE_REGEX":620,"LIMIT":621,"LISTAGG":622,"LOCAL":623,"LOCALTIMESTAMP":624,"LOCATION":625,"MATCH":626,"MATCH_NUMBER":627,"MATCH_RECOGNIZE":628,"MATCHES":629,"MAX":630,"MERGE":631,"METHOD":632,"MIN":633,"MODIFIES":634,"MULTISET":635,"NATIONAL":636,"NATURAL":637,"NCHAR":638,"NCLOB":639,"NDV":640,"NO":641,"NONE":642,"NORMALIZE":643,"NTH_VALUE":644,"NULLS":645,"NUMERIC":646,"OCCURRENCES_REGEX":647,"OCTET_LENGTH":648,"OF":649,"OMIT":650,"ONE":651,"ONLY":652,"OR":653,"ORDER":654,"OUT":655,"OUTER":656,"OVER":657,"OVERLAPS":658,"OVERLAY":659,"PATTERN":660,"PER":661,"PERCENT":662,"PERCENTILE_CONT":663,"PERCENTILE_DISC":664,"PORTION":665,"POSITION":666,"POSITION_REGEX":667,"PRECEDES":668,"PRECEDING":669,"PREPARE":670,"PROCEDURE":671,"PTF":672,"READS":673,"REAL":674,"RECURSIVE":675,"REF":676,"REFERENCES":677,"REFERENCING":678,"REGEXP":679,"REGR_AVGX":680,"REGR_AVGY":681,"REGR_COUNT":682,"REGR_INTERCEPT":683,"REGR_R2REGR_SLOPE":684,"REGR_SXX":685,"REGR_SXY":686,"REGR_SYY":687,"RELEASE":688,"REPEATABLE":689,"REPLICATION":690,"RESTRICT":691,"RIGHT":692,"RLIKE":693,"ROLES":694,"ROLLBACK":695,"ROLLUP":696,"ROWS":697,"RUNNING":698,"SAVEPOINT":699,"SCHEMA":700,"SCHEMAS":701,"SCOPE":702,"SCROLL":703,"SEARCH":704,"SEEK":705,"SEMI":706,"SENSITIVE":707,"SIMILAR":708,"SKIP":709,"SMALLINT":710,"SOME":711,"SPECIFIC":712,"SPECIFICTYPE":713,"SQLEXCEPTION":714,"SQLSTATE":715,"SQLWARNING":716,"STATIC":717,"STDDEV":718,"STDDEV_POP":719,"STDDEV_SAMP":720,"STRAIGHT_JOIN":721,"STRING":722,"SUBMULTISET":723,"SUBSET":724,"SUBSTRING_REGEX":725,"SUCCEEDS":726,"SUM":727,"SYMMETRIC":728,"SYSTEM_TIME":729,"SYSTEM_USER":730,"TABLES":731,"TABLESAMPLE":732,"THEN":733,"TIMESTAMP":734,"TIMEZONE_HOUR":735,"TIMEZONE_MINUTE":736,"TINYINT":737,"TRAILING":738,"TRANSLATE_REGEX":739,"TRANSLATION":740,"TREAT":741,"TRIGGER":742,"TRIM_ARRAY":743,"TRUE":744,"UESCAPE":745,"UNION":746,"UNIQUE":747,"UNNEST":748,"UNSIGNED_INTEGER_E":749,"USER":750,"USING":751,"VALUE_OF":752,"VAR_POP":753,"VAR_SAMP":754,"VARBINARY":755,"VARCHAR":756,"VARIANCE":757,"VARIANCE_POP":758,"VARIANCE_SAMP":759,"VARYING":760,"VERSIONING":761,"WHEN":762,"WHENEVER":763,"WHERE":764,"WIDTH_BUCKET":765,"WINDOW":766,"WITHIN":767,"WITHOUT":768,"~":769,"AggregateOrAnalytic":770,"PARTIAL_CURSOR":771,"FromOrIn":772,"DatabasesOrSchemas":773,"PARTIAL_VALUE":774,"DoubleQuotedValue":775,"DoubleQuotedValue_EDIT":776,"QuotedValue_EDIT":777,"OptionalAggregateOrAnalytic":778,"OptionalExtendedOrFormatted":779,"OptionalFromDatabase":780,"OptionalFromDatabase_EDIT":781,"DatabaseIdentifier_EDIT":782,"OptionalInDatabase":783,"RangePartitionComparisonOperator":784,"ConfigurationName":785,"PartialBacktickedOrAnyCursor":786,"PartialBacktickedIdentifier":787,"PartialBacktickedOrCursor":788,"PartialBacktickedOrPartialCursor":789,"ColumnList":790,"ColumnList_EDIT":791,"ParenthesizedSimpleValueList":792,"SimpleValueList":793,"FieldsList":794,"FieldsList_EDIT":795,"Field":796,"Field_EDIT":797,"PartitionExpression":798,"PartitionExpression_EDIT":799,"WithReplication":800,"SignedInteger":801,"RegularOrBackTickedSchemaQualifiedName_EDIT":802,"LocalOrSchemaQualifiedName":803,"LocalOrSchemaQualifiedName_EDIT":804,"BasicIdentifierChain":805,"ColumnReference_EDIT":806,"BasicIdentifierChain_EDIT":807,"DerivedColumnChain":808,"DerivedColumnChain_EDIT":809,"PartialBacktickedIdentifierOrPartialCursor":810,"RightSquareBracketOrError":811,"OptionalTypePrecision":812,"OptionalTypeLength":813,"DESCRIBE":814,"TableExpression":815,"Unions":816,"Unions_EDIT":817,"UnionClause":818,"UnionClause_EDIT":819,"TableExpression_EDIT":820,"WithQueries":821,"WithQueries_EDIT":822,"WithQuery":823,"WithQuery_EDIT":824,"TableSubQueryInner":825,"TableSubQueryInner_EDIT":826,"FromClause":827,"OptionalSelectConditions":828,"FromClause_EDIT":829,"OptionalJoins":830,"OptionalSelectConditions_EDIT":831,"Joins":832,"Joins_INVALID":833,"TableReferenceList":834,"TableReferenceList_EDIT":835,"OptionalGroupByClause":836,"OptionalHavingClause":837,"OptionalOrderByClause":838,"OptionalLimitClause":839,"OptionalOffsetClause":840,"GroupByClause_EDIT":841,"HavingClause_EDIT":842,"OrderByClause_EDIT":843,"LimitClause_EDIT":844,"OffsetClause_EDIT":845,"WhereClause":846,"GroupByClause":847,"HavingClause":848,"OrderByClause":849,"LimitClause":850,"SearchCondition":851,"SearchCondition_EDIT":852,"GroupByColumnList":853,"GroupByColumnList_EDIT":854,"ColumnGroupingSets":855,"ColumnGroupingSets_EDIT":856,"ColumnGroupingSet_EDIT":857,"GroupByColumnListPartTwo_EDIT":858,"OrderByColumnList":859,"OrderByColumnList_EDIT":860,"OrderByIdentifier":861,"OrderByIdentifier_EDIT":862,"OptionalNullsFirstOrLast":863,"NullsFirstOrLast_EDIT":864,"SortByList":865,"SortByIdentifier":866,"SortByList_EDIT":867,"SortByIdentifier_EDIT":868,"OffsetClause":869,"OFFSET":870,"OptionalNot":871,"UNKNOWN":872,"TableSubQuery":873,"LikeRightPart":874,"CaseRightPart":875,"NonParenthesizedValueExpressionPrimary_EDIT":876,"TableSubQuery_EDIT":877,"ValueExpressionInSecondPart_EDIT":878,"LikeRightPart_EDIT":879,"CaseRightPart_EDIT":880,"EndOrError":881,"InValueList":882,"ColumnOrArbitraryFunctionRef":883,"ArbitraryFunctionRightPart":884,"ArbitraryFunctionName":885,"UserDefinedFunction":886,"IntervalSpecification":887,"UnsignedValueSpecification_EDIT":888,"ColumnOrArbitraryFunctionRef_EDIT":889,"ArbitraryFunctionRightPart_EDIT":890,"UserDefinedFunction_EDIT":891,"IntervalSpecification_EDIT":892,"+":893,"UnsignedLiteral":894,"UnsignedLiteral_EDIT":895,"GeneralLiteral":896,"GeneralLiteral_EDIT":897,"ExactNumericLiteral":898,"ApproximateNumericLiteral":899,"TruthValue":900,"SelectSpecification":901,"OptionalCorrelationName":902,"SelectSpecification_EDIT":903,"OptionalCorrelationName_EDIT":904,"TablePrimaryOrJoinedTable":905,"TablePrimaryOrJoinedTable_EDIT":906,"TablePrimary":907,"JoinedTable":908,"TablePrimary_EDIT":909,"JoinedTable_EDIT":910,"Joins_EDIT":911,"JoinType":912,"OptionalBroadcastOrShuffle":913,"OptionalJoinCondition":914,"Join_EDIT":915,"JoinType_EDIT":916,"JoinCondition_EDIT":917,"UsingColList":918,"TableOrQueryName":919,"DerivedTable":920,"TableOrQueryName_EDIT":921,"DerivedTable_EDIT":922,"SYSTEM":923,"OptionalOnColumn":924,"OptionalOnColumn_EDIT":925,"PushQueryState":926,"PopQueryState":927,"SubQuery":928,"SubQuery_EDIT":929,"QueryExpression":930,"QueryExpression_EDIT":931,"QueryExpressionBody":932,"QueryExpressionBody_EDIT":933,"NonJoinQueryExpression":934,"NonJoinQueryExpression_EDIT":935,"NonJoinQueryTerm":936,"NonJoinQueryTerm_EDIT":937,"NonJoinQueryPrimary":938,"NonJoinQueryPrimary_EDIT":939,"SimpleTable":940,"SimpleTable_EDIT":941,"AggregateFunction":942,"OptionalOverClause":943,"AnalyticFunction":944,"OverClause":945,"CastFunction":946,"ExtractFunction":947,"AggregateFunction_EDIT":948,"OptionalOverClause_EDIT":949,"AnalyticFunction_EDIT":950,"OverClause_EDIT":951,"CastFunction_EDIT":952,"ExtractFunction_EDIT":953,"ArbitraryFunction":954,"ArbitraryFunction_EDIT":955,"LEFT_F":956,"CountFunction":957,"SumFunction":958,"OtherAggregateFunction":959,"CountFunction_EDIT":960,"SumFunction_EDIT":961,"OtherAggregateFunction_EDIT":962,"WindowExpression":963,"WindowExpression_EDIT":964,"OptionalPartitionBy":965,"OptionalOrderByAndWindow":966,"PartitionBy_EDIT":967,"OptionalOrderByAndWindow_EDIT":968,"PartitionBy":969,"OptionalWindowSpec":970,"WindowSpec_EDIT":971,"WindowSpec":972,"RowsOrRange":973,"OptionalCurrentOrPreceding":974,"OptionalAndFollowing":975,"UNBOUNDED":976,"OptionalCurrentOrPreceding_EDIT":977,"OptionalAndFollowing_EDIT":978,"PopLexerState":979,"PushHdfsLexerState":980,"HDFS_PATH":981,"HDFS_END_QUOTE":982,"IntegerOrUnbounded":983,"OtherAggregateFunction_Type":984,"FromOrComma":985,"OptionalOuter":986,"SetOption":987,"ShowColumnStatsStatement":988,"ShowCreateTableStatement":989,"ShowCurrentRolesStatement":990,"ShowDatabasesStatement":991,"ShowFilesStatement":992,"ShowFunctionsStatement":993,"ShowGrantStatement":994,"ShowPartitionsStatement":995,"ShowRoleStatement":996,"ShowRolesStatement":997,"ShowTableStatsStatement":998,"ShowTablesStatement":999,"SHOW":1000,"ShowColumnStatsStatement_EDIT":1001,"ShowCreateTableStatement_EDIT":1002,"ShowCurrentRolesStatement_EDIT":1003,"ShowDatabasesStatement_EDIT":1004,"ShowFilesStatement_EDIT":1005,"ShowFunctionsStatement_EDIT":1006,"ShowGrantStatement_EDIT":1007,"ShowPartitionsStatement_EDIT":1008,"ShowRoleStatement_EDIT":1009,"ShowTableStatsStatement_EDIT":1010,"ShowTablesStatement_EDIT":1011,"TableOrView":1012,"OptionalPrincipalName":1013,"OptionalPrincipalName_EDIT":1014,"UPDATE":1015,"TargetTable":1016,"SetClauseList":1017,"OptionalFromJoinedTable":1018,"TargetTable_EDIT":1019,"SetClauseList_EDIT":1020,"FromJoinedTable_EDIT":1021,"TableName":1022,"TableName_EDIT":1023,"SetClause":1024,"SetClause_EDIT":1025,"SetTarget":1026,"UpdateSource":1027,"UpdateSource_EDIT":1028,"USE":1029,"CaseWhenThenList":1030,"CaseWhenThenList_EDIT":1031,"CaseWhenThenListPartTwo":1032,"CaseWhenThenListPartTwo_EDIT":1033,"$accept":0,"$end":1}, +terminals_: {2:"error",26:"SET",27:"CURSOR",38:"ALTER",41:"OWNER",44:"ADD",50:"RANGE",51:"PARTITION",53:"PARTITION_VALUE",54:"=",56:"RENAME",57:"TO",63:"DROP",64:"DEFAULT",65:"COLUMN",66:"STATS",70:"RECOVER",71:"PARTITIONS",73:"REPLACE",85:"BLOCK_SIZE",86:"COMMENT",87:"COMPRESSION",88:"ENCODING",89:"(",91:")",95:",",98:"FILEFORMAT",101:"TBLPROPERTIES",103:"SERDEPROPERTIES",106:"ROW",107:"FORMAT",109:"UNCACHED",111:"CHANGE",117:"COLUMNS",129:"TABLE",136:"AS",138:".",141:"VIEW",142:"ON",143:"DATABASE",144:"IS",146:"NULL",147:"REFRESH",149:"FUNCTIONS",151:"AUTHORIZATION",153:"INVALIDATE",154:"METADATA",155:"COMPUTE",158:"INCREMENTAL",170:"CREATE",179:"SINGLE_QUOTE",180:"DOUBLE_QUOTE",181:"VALUE",206:"LIKE_PARQUET",208:"LIKE",224:"NOT",236:"ARRAY",237:"<",238:">",241:"MAP",242:"STRUCT",248:":",253:"PRIMARY",254:"KEY",256:"PARTITIONED",257:"BY",264:"HASH",268:"SORT",275:"VALUES",277:"COMPARISON_OPERATOR",287:"STORED",288:"AVRO",289:"KUDU",290:"ORC",291:"PARQUET",292:"RCFILE",293:"SEQUENCEFILE",294:"TEXTFILE",295:"DELIMITED",300:"FIELDS",301:"TERMINATED",303:"ESCAPED",304:"LINES",306:"WITH",315:"FUNCTION",321:"AGGREGATE",341:"...",342:"RETURNS",343:"SYMBOL",344:"INIT_FN",347:"UPDATE_FN",348:"MERGE_FN",349:"PREPARE_FN",350:"CLOSE_FN",351:"SERIALIZE_FN",352:"FINALIZE_FN",353:"INTERMEDIATE",359:"ROLE",360:"LIFECYCLE",361:"UNSIGNED_INTEGER",390:"PURGE",391:"TRUNCATE",392:"DELETE",394:"FROM",401:"GRANT",402:"GROUP",410:"SERVER",411:"URI",412:"ALL",413:"INSERT",414:"SELECT",416:"OPTION",417:"REVOKE",440:"UPSERT",441:"INTO",444:"OVERWRITE",445:"SHUFFLE",446:"NOSHUFFLE",451:"LOAD",452:"DATA",453:"INPATH",458:"EOF",462:";",466:"SetSpecification_EDIT",468:"REGULAR_IDENTIFIER",469:"VARIABLE_REFERENCE",470:"EXPLAIN",472:"!",473:"*",474:"-",475:"[",476:"]",477:"ALLOCATE",478:"ANALYTIC",479:"AND",480:"ANTI",481:"ANY",482:"APPX_MEDIAN",483:"ARE",484:"ARITHMETIC_OPERATOR",485:"ARRAY_AGG",486:"ARRAY_MAX_CARDINALITY",487:"ASC",488:"ASENSITIVE",489:"ASYMMETRIC",490:"AT",491:"ATOMIC",492:"AVG",493:"BACKTICK",494:"BEGIN_FRAME",495:"BEGIN_PARTITION",496:"BETWEEN",497:"BIGINT",498:"BLOB",499:"BOOLEAN",500:"BOTH",501:"BROADCAST",502:"CACHED",503:"CALLED",504:"CARDINALITY",505:"CASCADE",506:"CASCADED",507:"CASE",508:"CAST",509:"CHAR",510:"CHARACTER",511:"CLOB",512:"COLLATE",513:"COLLECT",514:"COMMIT",515:"CONDITION",516:"CONNECT",517:"CONSTRAINT",518:"CONTAINS",519:"CONVERT",520:"COPY",521:"CORR",522:"CORRESPONDING",523:"COUNT",524:"COVAR_POP",525:"COVAR_SAMP",526:"CROSS",527:"CUBE",528:"CURRENT",529:"CURRENT_DATE",530:"CURRENT_DEFAULT_TRANSFORM_GROUP",531:"CURRENT_PATH",532:"CURRENT_ROLE",533:"CURRENT_ROW",534:"CURRENT_SCHEMA",535:"CURRENT_TIME",536:"CURRENT_TRANSFORM_GROUP_FOR_TYPE",537:"CYCLE",538:"DATABASES",539:"DEALLOCATE",540:"DEC",541:"DECFLOAT",542:"DECIMAL",543:"DECLARE",544:"DEFINE",545:"DEREF",546:"DESC",547:"DETERMINISTIC",548:"DISCONNECT",549:"DISTINCT",550:"DOUBLE",551:"DYNAMIC",552:"EACH",553:"ELEMENT",554:"ELSE",555:"EMPTY",556:"END",557:"END_FRAME",558:"END_PARTITION",559:"EQUALS",560:"ESCAPE",561:"EVERY",562:"EXCEPT",563:"EXEC",564:"EXECUTE",565:"EXISTS",566:"EXTENDED",567:"EXTERNAL",568:"EXTRACT",569:"FALSE",570:"FETCH",571:"FILES",572:"FILTER",573:"FIRST",574:"FLOAT",575:"FOLLOWING",576:"FOR",577:"FOREIGN",578:"FORMATTED",579:"FRAME_ROW",580:"FREE",581:"FULL",582:"FUSION",583:"GET",584:"GLOBAL",585:"GROUP_CONCAT",586:"GROUPING",587:"GROUPS",588:"HAVING",589:"HDFS_START_QUOTE",590:"HOLD",591:"IF",592:"IGNORE",593:"ILIKE",594:"IN",595:"INDICATOR",596:"INITIAL",597:"INNER",598:"INOUT",599:"INSENSITIVE",600:"INT",601:"INTERSECT",602:"INTERSECTION",603:"INTERVAL",604:"IREGEXP",605:"JOIN",606:"JSON_ARRAY",607:"JSON_ARRAYAGG",608:"JSON_EXISTS",609:"JSON_OBJECT",610:"JSON_OBJECTAGG",611:"JSON_QUERY",612:"JSON_TABLE",613:"JSON_TABLE_PRIMITIVE",614:"JSON_VALUE",615:"LARGE",616:"LAST",617:"LATERAL",618:"LEADING",619:"LEFT",620:"LIKE_REGEX",621:"LIMIT",622:"LISTAGG",623:"LOCAL",624:"LOCALTIMESTAMP",625:"LOCATION",626:"MATCH",627:"MATCH_NUMBER",628:"MATCH_RECOGNIZE",629:"MATCHES",630:"MAX",631:"MERGE",632:"METHOD",633:"MIN",634:"MODIFIES",635:"MULTISET",636:"NATIONAL",637:"NATURAL",638:"NCHAR",639:"NCLOB",640:"NDV",641:"NO",642:"NONE",643:"NORMALIZE",644:"NTH_VALUE",645:"NULLS",646:"NUMERIC",647:"OCCURRENCES_REGEX",648:"OCTET_LENGTH",649:"OF",650:"OMIT",651:"ONE",652:"ONLY",653:"OR",654:"ORDER",655:"OUT",656:"OUTER",657:"OVER",658:"OVERLAPS",659:"OVERLAY",660:"PATTERN",661:"PER",662:"PERCENT",663:"PERCENTILE_CONT",664:"PERCENTILE_DISC",665:"PORTION",666:"POSITION",667:"POSITION_REGEX",668:"PRECEDES",669:"PRECEDING",670:"PREPARE",671:"PROCEDURE",672:"PTF",673:"READS",674:"REAL",675:"RECURSIVE",676:"REF",677:"REFERENCES",678:"REFERENCING",679:"REGEXP",680:"REGR_AVGX",681:"REGR_AVGY",682:"REGR_COUNT",683:"REGR_INTERCEPT",684:"REGR_R2REGR_SLOPE",685:"REGR_SXX",686:"REGR_SXY",687:"REGR_SYY",688:"RELEASE",689:"REPEATABLE",690:"REPLICATION",691:"RESTRICT",692:"RIGHT",693:"RLIKE",694:"ROLES",695:"ROLLBACK",696:"ROLLUP",697:"ROWS",698:"RUNNING",699:"SAVEPOINT",700:"SCHEMA",701:"SCHEMAS",702:"SCOPE",703:"SCROLL",704:"SEARCH",705:"SEEK",706:"SEMI",707:"SENSITIVE",708:"SIMILAR",709:"SKIP",710:"SMALLINT",711:"SOME",712:"SPECIFIC",713:"SPECIFICTYPE",714:"SQLEXCEPTION",715:"SQLSTATE",716:"SQLWARNING",717:"STATIC",718:"STDDEV",719:"STDDEV_POP",720:"STDDEV_SAMP",721:"STRAIGHT_JOIN",722:"STRING",723:"SUBMULTISET",724:"SUBSET",725:"SUBSTRING_REGEX",726:"SUCCEEDS",727:"SUM",728:"SYMMETRIC",729:"SYSTEM_TIME",730:"SYSTEM_USER",731:"TABLES",732:"TABLESAMPLE",733:"THEN",734:"TIMESTAMP",735:"TIMEZONE_HOUR",736:"TIMEZONE_MINUTE",737:"TINYINT",738:"TRAILING",739:"TRANSLATE_REGEX",740:"TRANSLATION",741:"TREAT",742:"TRIGGER",743:"TRIM_ARRAY",744:"TRUE",745:"UESCAPE",746:"UNION",747:"UNIQUE",748:"UNNEST",749:"UNSIGNED_INTEGER_E",750:"USER",751:"USING",752:"VALUE_OF",753:"VAR_POP",754:"VAR_SAMP",755:"VARBINARY",756:"VARCHAR",757:"VARIANCE",758:"VARIANCE_POP",759:"VARIANCE_SAMP",760:"VARYING",761:"VERSIONING",762:"WHEN",763:"WHENEVER",764:"WHERE",765:"WIDTH_BUCKET",766:"WINDOW",767:"WITHIN",768:"WITHOUT",769:"~",771:"PARTIAL_CURSOR",774:"PARTIAL_VALUE",814:"DESCRIBE",870:"OFFSET",872:"UNKNOWN",893:"+",923:"SYSTEM",956:"LEFT_F",976:"UNBOUNDED",981:"HDFS_PATH",982:"HDFS_END_QUOTE",1000:"SHOW",1015:"UPDATE",1029:"USE"}, +productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,1],[16,2],[16,1],[16,1],[4,1],[4,1],[4,1],[4,1],[17,1],[17,1],[17,1],[17,1],[17,2],[30,7],[34,3],[34,4],[34,5],[34,6],[31,7],[31,6],[31,7],[31,4],[31,7],[31,6],[31,6],[31,5],[31,2],[31,2],[31,3],[31,3],[35,1],[35,7],[35,4],[35,7],[35,6],[35,6],[35,5],[35,2],[35,2],[35,3],[35,4],[35,3],[35,3],[35,7],[35,7],[35,7],[35,8],[35,7],[35,5],[35,6],[35,6],[35,6],[35,4],[35,5],[35,6],[35,6],[35,7],[35,4],[35,5],[35,6],[35,6],[35,4],[35,5],[35,2],[35,2],[35,2],[35,3],[35,4],[35,4],[35,3],[35,3],[35,3],[35,4],[35,3],[61,1],[61,1],[61,1],[61,1],[61,1],[59,0],[59,1],[67,3],[81,3],[90,1],[90,3],[92,1],[92,3],[92,5],[92,3],[94,3],[96,1],[69,3],[69,2],[69,3],[69,3],[69,3],[69,4],[69,2],[69,1],[69,3],[82,1],[82,2],[82,3],[82,4],[82,3],[82,2],[82,2],[82,4],[82,3],[82,3],[82,4],[82,5],[82,4],[110,3],[113,3],[113,4],[120,4],[120,4],[123,4],[123,4],[121,3],[121,5],[124,3],[124,5],[68,3],[68,3],[68,5],[68,6],[68,3],[83,3],[83,3],[83,4],[83,2],[83,4],[83,5],[83,5],[83,5],[83,2],[83,3],[83,3],[43,3],[72,3],[72,3],[84,1],[84,1],[48,0],[48,1],[132,1],[132,2],[76,1],[76,2],[76,2],[76,3],[134,2],[134,2],[133,2],[32,5],[32,3],[32,4],[32,6],[36,1],[36,2],[36,3],[36,4],[36,5],[36,3],[36,3],[36,3],[36,4],[135,3],[139,3],[139,3],[33,6],[37,2],[37,3],[37,4],[37,5],[37,6],[145,1],[145,1],[5,3],[5,3],[5,2],[18,2],[18,3],[18,4],[18,3],[18,3],[6,2],[6,3],[19,2],[19,3],[19,3],[19,3],[7,5],[7,5],[20,2],[20,3],[20,3],[20,4],[20,6],[20,5],[20,5],[20,5],[20,3],[20,5],[20,4],[20,5],[20,6],[20,5],[8,1],[8,1],[8,1],[8,1],[8,1],[21,1],[21,1],[21,1],[21,1],[21,3],[161,3],[161,5],[166,4],[166,3],[166,5],[166,4],[166,6],[173,2],[175,2],[175,2],[174,0],[174,1],[177,2],[176,1],[178,2],[178,2],[178,3],[178,3],[102,3],[182,1],[182,3],[183,3],[162,6],[167,5],[167,5],[167,4],[184,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,11],[186,12],[186,11],[186,11],[187,2],[195,2],[195,2],[203,0],[203,1],[203,2],[203,2],[204,1],[204,2],[204,2],[204,2],[118,3],[118,5],[119,3],[119,5],[119,5],[210,1],[210,3],[212,1],[212,3],[212,3],[212,5],[212,2],[212,4],[212,4],[212,6],[112,3],[114,3],[114,3],[114,3],[215,0],[215,1],[218,1],[218,2],[217,1],[217,2],[217,2],[217,3],[219,1],[219,2],[219,2],[219,2],[219,2],[219,2],[219,1],[219,1],[220,1],[220,2],[214,1],[214,1],[214,1],[214,1],[214,1],[214,1],[214,1],[216,1],[216,1],[216,1],[227,4],[230,3],[233,4],[233,4],[228,6],[231,3],[234,6],[234,4],[234,6],[234,5],[229,4],[232,3],[235,4],[243,1],[243,3],[244,1],[244,2],[244,3],[244,3],[244,5],[245,4],[246,5],[246,4],[246,4],[246,4],[246,3],[246,3],[249,1],[249,3],[250,1],[250,2],[250,3],[250,3],[250,5],[251,2],[251,2],[251,1],[251,1],[240,1],[240,1],[211,2],[213,1],[213,2],[213,2],[221,2],[225,2],[188,0],[188,1],[255,3],[255,3],[255,5],[255,3],[196,2],[196,3],[196,3],[196,2],[196,2],[196,3],[196,3],[196,3],[196,5],[196,5],[196,5],[258,1],[258,3],[260,1],[260,3],[260,5],[262,4],[263,3],[263,2],[263,4],[263,4],[259,3],[261,2],[261,2],[261,3],[261,3],[261,3],[189,0],[189,1],[267,3],[197,2],[197,3],[265,3],[266,3],[266,3],[269,1],[269,3],[270,1],[270,3],[270,5],[270,3],[270,5],[271,6],[271,4],[271,4],[271,3],[272,2],[272,2],[272,3],[272,2],[272,3],[272,4],[272,4],[272,5],[272,6],[272,6],[272,3],[272,4],[272,4],[274,1],[274,1],[278,3],[280,3],[279,1],[279,3],[281,1],[281,3],[281,3],[281,5],[282,2],[283,3],[283,2],[283,2],[190,0],[190,1],[285,3],[198,2],[198,3],[198,3],[192,0],[192,1],[286,3],[200,2],[200,3],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[99,1],[108,3],[116,3],[116,3],[296,0],[296,4],[296,7],[298,2],[298,3],[298,6],[297,0],[297,4],[299,2],[299,3],[191,0],[191,1],[305,3],[199,2],[199,3],[193,0],[193,1],[307,2],[194,0],[194,3],[201,3],[201,3],[308,0],[163,8],[168,4],[168,9],[168,3],[168,6],[168,7],[168,8],[168,8],[168,8],[165,1],[165,1],[169,1],[169,1],[311,8],[313,4],[313,9],[313,6],[313,7],[313,8],[313,3],[313,5],[313,6],[313,7],[313,8],[313,8],[313,8],[313,8],[312,16],[314,3],[314,17],[314,5],[314,4],[314,16],[314,6],[314,16],[314,7],[314,8],[314,10],[314,11],[314,17],[314,7],[314,9],[314,9],[314,10],[314,10],[314,16],[314,16],[314,16],[314,16],[314,16],[314,16],[314,16],[314,16],[314,16],[314,16],[316,2],[316,4],[319,3],[319,4],[338,1],[338,3],[340,1],[340,3],[340,3],[340,5],[339,0],[339,1],[317,2],[320,2],[318,3],[322,0],[322,3],[330,3],[323,3],[331,3],[324,3],[332,3],[325,0],[325,3],[333,3],[326,0],[326,3],[334,3],[327,0],[327,3],[335,3],[328,0],[328,3],[336,3],[329,0],[329,2],[337,2],[345,1],[346,1],[309,0],[309,1],[355,3],[310,3],[356,2],[356,4],[357,3],[357,5],[357,5],[357,7],[164,3],[185,0],[185,2],[362,1],[362,1],[362,1],[362,1],[367,1],[367,1],[367,2],[367,2],[367,1],[367,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,1],[22,1],[22,1],[22,1],[22,1],[22,1],[22,1],[22,2],[375,5],[382,3],[382,3],[382,4],[382,5],[382,5],[382,6],[376,5],[376,6],[383,4],[383,5],[383,6],[383,3],[383,6],[383,5],[383,3],[383,7],[383,4],[383,6],[383,5],[383,6],[377,3],[378,3],[378,5],[384,3],[384,3],[384,4],[384,5],[384,3],[384,4],[384,4],[384,5],[384,5],[384,5],[379,5],[385,3],[385,4],[385,5],[385,5],[385,6],[389,0],[389,1],[380,4],[386,4],[386,5],[386,3],[386,4],[386,4],[381,4],[387,2],[387,4],[387,3],[387,4],[387,5],[387,5],[387,4],[363,5],[368,3],[368,2],[368,4],[368,6],[368,3],[368,5],[368,5],[368,5],[393,0],[393,1],[397,1],[400,1],[400,3],[10,6],[10,7],[10,8],[23,2],[23,4],[23,5],[23,2],[23,3],[23,4],[23,4],[23,5],[23,6],[23,8],[23,7],[23,9],[23,8],[404,2],[404,2],[404,2],[404,2],[408,2],[408,2],[408,2],[403,1],[403,1],[403,1],[403,1],[403,1],[403,1],[403,2],[407,2],[415,1],[415,3],[405,0],[405,3],[409,2],[409,3],[11,6],[11,6],[11,7],[24,2],[24,4],[24,5],[24,2],[24,3],[24,4],[24,4],[24,5],[24,6],[364,1],[364,2],[418,0],[418,1],[419,4],[423,5],[423,4],[423,4],[372,1],[369,1],[425,4],[425,3],[426,1],[426,3],[426,4],[426,4],[426,4],[426,3],[426,3],[427,1],[427,1],[432,1],[432,1],[436,5],[438,2],[438,4],[438,6],[438,5],[438,5],[437,6],[439,2],[439,4],[439,7],[439,6],[439,6],[439,6],[443,1],[443,1],[428,0],[428,1],[428,1],[431,1],[431,3],[435,1],[435,3],[435,5],[435,3],[447,3],[448,3],[448,3],[365,9],[373,2],[373,3],[373,5],[373,6],[373,7],[373,8],[373,9],[373,10],[373,9],[373,9],[454,0],[454,1],[455,3],[459,3],[459,3],[456,0],[457,0],[457,1],[457,4],[460,1],[460,4],[460,4],[460,7],[461,1],[461,1],[461,1],[461,2],[461,2],[461,2],[463,1],[463,2],[463,1],[463,1],[463,1],[463,1],[463,1],[463,2],[463,2],[463,2],[463,2],[463,2],[463,2],[467,1],[467,1],[467,1],[467,1],[467,1],[467,1],[467,1],[172,1],[172,1],[172,1],[464,1],[465,2],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[471,1],[770,1],[770,1],[247,1],[247,2],[239,1],[239,1],[39,1],[39,1],[772,1],[772,1],[773,1],[773,1],[406,1],[406,1],[406,1],[42,1],[42,1],[302,3],[302,2],[354,2],[775,3],[775,2],[776,2],[97,1],[97,1],[777,1],[777,1],[778,0],[778,1],[171,0],[171,1],[779,0],[779,1],[779,1],[780,0],[780,2],[781,2],[388,0],[388,1],[388,1],[126,0],[126,2],[127,2],[45,0],[45,3],[74,2],[74,3],[783,0],[783,2],[783,2],[148,0],[148,1],[152,1],[46,4],[78,4],[52,5],[80,2],[80,3],[80,4],[80,5],[80,5],[80,5],[784,1],[784,1],[784,1],[784,1],[785,1],[785,1],[786,1],[786,1],[788,1],[788,1],[789,1],[789,1],[787,2],[93,1],[93,1],[156,0],[156,1],[442,1],[252,3],[159,3],[159,3],[790,1],[790,3],[791,1],[791,3],[791,3],[791,3],[791,5],[791,5],[792,3],[793,1],[793,3],[130,1],[130,3],[130,4],[131,1],[131,3],[131,3],[131,4],[794,1],[794,2],[795,1],[795,2],[795,3],[795,2],[796,2],[797,2],[202,1],[202,3],[205,1],[205,3],[205,3],[150,1],[782,1],[122,1],[122,3],[125,1],[125,3],[125,3],[125,5],[798,3],[799,3],[799,3],[799,3],[799,1],[47,0],[47,1],[100,2],[75,2],[49,0],[49,2],[49,1],[79,0],[79,2],[104,3],[77,2],[105,0],[105,1],[800,4],[115,2],[115,3],[40,1],[40,3],[40,2],[58,1],[58,3],[802,1],[802,3],[803,1],[803,2],[804,1],[804,2],[358,1],[358,3],[806,1],[805,1],[805,3],[807,1],[807,3],[807,5],[807,3],[807,3],[807,5],[808,1],[808,3],[809,1],[809,3],[809,5],[809,3],[809,1],[809,3],[809,5],[809,3],[60,1],[60,4],[60,3],[128,4],[128,4],[810,1],[810,1],[811,1],[811,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,1],[226,2],[226,2],[226,2],[226,1],[813,0],[813,3],[812,0],[812,3],[812,5],[12,3],[12,4],[25,3],[25,3],[25,4],[25,4],[25,5],[137,2],[137,3],[137,5],[140,2],[140,2],[140,4],[140,3],[140,3],[140,1],[140,4],[140,3],[429,4],[429,5],[430,0],[430,1],[434,1],[816,1],[816,2],[817,1],[817,2],[817,2],[817,3],[818,4],[819,3],[819,4],[819,4],[433,4],[433,4],[433,5],[433,5],[433,5],[433,6],[433,7],[433,5],[421,0],[421,1],[370,2],[371,2],[821,1],[821,3],[822,1],[822,3],[822,3],[822,5],[823,5],[824,2],[824,5],[824,5],[420,0],[420,1],[420,1],[815,2],[820,2],[820,4],[820,3],[830,0],[830,1],[830,1],[827,2],[829,2],[829,2],[828,6],[831,6],[831,6],[831,6],[831,6],[831,6],[831,6],[831,7],[831,7],[831,7],[831,7],[831,7],[396,0],[396,1],[846,2],[399,2],[399,2],[836,0],[836,1],[847,3],[841,3],[841,3],[841,2],[855,0],[855,1],[855,3],[855,3],[856,1],[856,3],[856,3],[856,5],[856,3],[857,1],[857,1],[853,1],[853,3],[854,1],[854,2],[854,3],[854,3],[854,3],[854,4],[854,5],[858,1],[858,2],[858,1],[838,0],[838,1],[849,3],[843,3],[843,2],[859,1],[859,3],[860,1],[860,2],[860,3],[860,4],[860,5],[861,3],[862,3],[862,3],[862,3],[284,0],[284,1],[284,1],[863,0],[863,2],[863,2],[864,2],[865,1],[865,3],[867,1],[867,3],[867,3],[867,5],[866,2],[868,2],[868,2],[839,0],[839,1],[850,2],[844,2],[844,2],[840,0],[840,1],[869,2],[845,2],[845,2],[851,1],[852,1],[273,1],[273,2],[273,2],[273,2],[273,2],[273,4],[273,4],[273,4],[273,4],[273,6],[273,2],[273,3],[273,3],[273,3],[273,3],[273,3],[273,6],[273,6],[273,5],[273,5],[273,4],[273,3],[273,3],[273,3],[273,3],[273,3],[273,3],[273,2],[273,3],[273,2],[273,3],[276,1],[276,3],[276,2],[276,2],[276,2],[276,2],[276,2],[276,2],[276,2],[276,2],[276,3],[276,4],[276,5],[276,4],[276,4],[276,4],[276,6],[276,6],[276,2],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,4],[276,3],[276,6],[276,6],[276,5],[276,5],[276,4],[276,4],[276,5],[276,4],[276,3],[276,3],[276,4],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,3],[276,2],[276,3],[276,2],[276,3],[276,2],[276,3],[276,2],[276,3],[276,3],[276,4],[276,3],[276,3],[276,3],[449,1],[449,3],[450,1],[450,3],[450,3],[450,5],[450,3],[450,5],[450,4],[450,3],[450,2],[450,2],[450,4],[882,1],[882,3],[222,1],[222,1],[222,2],[222,2],[222,1],[222,1],[222,1],[876,1],[876,1],[876,2],[876,2],[876,1],[876,1],[883,1],[883,3],[889,1],[887,3],[892,3],[801,1],[801,2],[801,2],[55,1],[888,1],[894,1],[894,1],[895,1],[223,1],[223,1],[898,1],[898,2],[898,3],[898,2],[899,2],[899,3],[899,4],[896,1],[896,1],[896,1],[897,1],[897,1],[900,1],[900,1],[871,0],[871,1],[901,2],[901,1],[903,2],[903,3],[903,2],[422,1],[422,3],[424,1],[424,2],[424,3],[424,3],[424,3],[424,4],[424,3],[424,3],[424,4],[424,4],[424,4],[424,5],[424,5],[834,1],[834,3],[835,1],[835,3],[835,3],[835,5],[835,3],[395,1],[398,1],[905,1],[905,1],[906,1],[906,1],[908,2],[910,2],[910,2],[832,4],[832,5],[833,2],[833,3],[913,0],[913,1],[913,1],[915,4],[915,2],[915,4],[915,4],[915,4],[911,1],[911,2],[911,2],[911,3],[912,1],[912,2],[912,2],[912,2],[912,2],[912,2],[912,2],[912,3],[912,2],[912,3],[912,3],[912,3],[912,3],[912,2],[912,3],[912,3],[912,3],[912,3],[916,2],[916,2],[916,2],[916,2],[916,2],[916,3],[916,3],[916,3],[916,3],[916,3],[916,3],[916,3],[916,3],[916,3],[916,3],[916,3],[916,3],[914,0],[914,2],[914,4],[918,1],[918,3],[917,2],[917,2],[907,3],[907,3],[909,3],[909,3],[909,3],[909,3],[919,1],[921,1],[920,1],[922,1],[157,0],[157,5],[157,9],[160,2],[924,0],[924,2],[925,2],[925,2],[926,0],[927,0],[873,3],[873,4],[877,3],[877,3],[825,2],[826,3],[928,1],[929,1],[930,1],[931,1],[932,1],[933,1],[934,1],[935,1],[936,1],[937,1],[938,1],[939,1],[940,1],[941,1],[902,0],[902,1],[902,1],[902,2],[902,2],[904,1],[904,1],[904,2],[904,2],[904,2],[886,2],[886,2],[886,1],[886,1],[891,1],[891,2],[891,1],[891,2],[891,2],[891,2],[891,1],[891,1],[954,2],[954,2],[955,2],[955,2],[885,1],[885,1],[885,1],[885,1],[885,1],[885,1],[885,1],[884,2],[884,3],[890,3],[890,4],[890,3],[942,1],[942,1],[942,1],[948,1],[948,1],[948,1],[944,3],[944,4],[950,4],[950,5],[950,4],[943,0],[943,1],[949,1],[945,2],[945,2],[951,2],[963,4],[964,4],[964,4],[964,5],[964,7],[965,0],[965,1],[969,3],[967,2],[967,3],[967,3],[966,0],[966,2],[968,1],[968,3],[968,2],[970,0],[970,1],[972,4],[972,4],[971,2],[971,5],[971,4],[971,4],[971,4],[971,3],[979,0],[980,0],[207,3],[209,5],[209,4],[209,3],[209,3],[209,2],[973,1],[973,1],[974,0],[974,2],[974,2],[977,2],[977,2],[975,0],[975,3],[975,3],[978,2],[978,3],[978,3],[983,1],[983,1],[837,0],[837,1],[848,2],[842,2],[842,2],[946,6],[946,3],[952,6],[952,5],[952,4],[952,6],[952,5],[952,4],[952,6],[952,5],[952,6],[952,5],[957,4],[957,3],[957,5],[960,5],[960,6],[960,5],[959,4],[959,5],[962,5],[962,6],[962,5],[984,1],[984,1],[984,1],[984,1],[984,1],[984,1],[984,1],[984,1],[984,1],[984,1],[984,1],[984,1],[984,1],[984,1],[947,6],[947,3],[953,6],[953,5],[953,4],[953,6],[953,5],[953,4],[953,6],[953,5],[953,6],[953,5],[953,6],[953,5],[985,1],[985,1],[958,5],[958,3],[961,5],[961,6],[961,5],[986,0],[986,1],[13,4],[13,2],[987,1],[987,3],[62,1],[62,1],[62,2],[62,1],[62,1],[62,1],[62,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[28,2],[28,3],[28,4],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[988,4],[1001,3],[1001,4],[1001,4],[989,4],[1002,3],[1002,4],[1002,4],[1002,4],[1012,1],[1012,1],[990,3],[1003,3],[1003,3],[991,4],[991,3],[1004,3],[992,5],[1005,3],[1005,4],[1005,5],[1005,6],[1005,5],[1005,5],[993,4],[993,6],[1006,3],[1006,4],[1006,5],[1006,6],[1006,6],[1006,6],[994,4],[994,7],[994,6],[994,7],[994,7],[1007,3],[1007,4],[1007,5],[1007,6],[1007,7],[1007,7],[1007,7],[1007,7],[1013,0],[1013,1],[1014,1],[1014,2],[995,3],[995,4],[1008,3],[1008,3],[1008,4],[1008,4],[996,5],[1009,3],[1009,4],[1009,5],[997,2],[998,4],[1010,3],[1010,4],[1010,4],[999,3],[999,4],[999,5],[1011,4],[366,6],[374,6],[374,6],[374,6],[374,6],[374,7],[374,3],[374,2],[374,2],[374,2],[1016,1],[1019,1],[1022,1],[1023,1],[1017,1],[1017,3],[1020,1],[1020,3],[1020,3],[1020,5],[1024,3],[1025,3],[1025,2],[1025,1],[1026,1],[1027,1],[1028,1],[1018,0],[1018,2],[1021,2],[1021,2],[15,2],[29,2],[878,3],[878,3],[878,3],[874,2],[874,2],[874,2],[874,2],[874,2],[879,2],[879,2],[879,2],[879,2],[879,2],[879,2],[879,2],[879,2],[879,2],[879,2],[875,2],[875,4],[880,2],[880,4],[880,4],[880,3],[880,4],[880,3],[880,4],[880,4],[880,3],[880,4],[880,3],[881,1],[881,1],[1030,1],[1030,2],[1031,1],[1031,2],[1031,3],[1031,3],[1031,2],[1032,4],[1033,2],[1033,3],[1033,4],[1033,4],[1033,3],[1033,3],[1033,4],[1033,2],[1033,3],[1033,2],[1033,3],[1033,3],[1033,4],[1033,3],[1033,4],[1033,4],[1033,5],[1033,4],[1033,3]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 22: + + parser.suggestSetOptions(); + parser.suggestKeywords(['ALL']); + +break; +case 33: case 2124: + + parser.suggestKeywords(['TABLE', 'VIEW']); + +break; +case 34: + + parser.addDatabaseLocation(_$[$0-4], [ { name: $$[$0-4] } ]); + +break; +case 35: case 196: case 208: case 727: case 1361: case 2160: case 2219: + + parser.suggestDatabases(); + +break; +case 36: + + parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); + parser.suggestKeywords(['SET OWNER']); + +break; +case 37: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.suggestKeywords(['OWNER']); + +break; +case 38: + + parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); + parser.suggestKeywords(['ROLE', 'USER']); + +break; +case 43: case 54: case 77: + + parser.addColumnLocation($$[$0-3].location, [ $$[$0-3].identifier ]); + +break; +case 44: case 55: case 124: + + parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); + +break; +case 45: case 56: case 80: case 81: case 120: case 123: + + parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); + +break; +case 61: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 4 }, { value: 'COLUMNS', weight: 3 }, { value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); + } else { + parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); + } + +break; +case 62: case 88: + + parser.suggestKeywords(['COLUMNS']); + +break; +case 67: + + if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['LOCATION', 'CACHED IN', 'UNCACHED']); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['CACHED IN', 'UNCACHED']); + } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { + parser.suggestKeywords($$[$0-1].suggestKeywords); + } + +break; +case 69: case 154: case 422: case 427: case 428: + + parser.suggestKeywords(['PARTITION']); + +break; +case 70: case 155: + + parser.suggestKeywords(['VALUE']); + +break; +case 71: case 156: case 436: case 1388: + + parser.suggestKeywords(['=']); + +break; +case 73: + + if (!$$[$0-1]) { + parser.suggestKeywords(['COLUMN']); + } + parser.suggestColumns(); + +break; +case 74: + + parser.suggestKeywords(['DROP DEFAULT', 'SET BLOCK_SIZE', 'SET COMMENT', 'SET COMPRESSION', 'SET DEFAULT', + 'SET ENCODING']); + parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); + +break; +case 75: + + parser.suggestKeywords(['DEFAULT']); + parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); + +break; +case 76: + + parser.suggestKeywords(['BLOCK_SIZE', 'COMMENT', 'COMPRESSION', 'DEFAULT', 'ENCODING']); + parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); + +break; +case 78: case 225: case 665: case 2120: case 2180: + + parser.suggestKeywords(['STATS']); + +break; +case 79: case 122: case 159: case 461: case 1328: case 1332: case 1336: case 1371: case 1372: case 1417: case 1420: case 1548: case 1593: case 2210: + + parser.suggestColumns(); + +break; +case 82: case 184: + + parser.suggestKeywords(['ROLE', 'USER']); + +break; +case 86: + + parser.suggestKeywords(['ADD COLUMNS', 'ADD PARTITION', 'ADD RANGE PARTITION', 'ALTER', 'ALTER COLUMN', 'CHANGE', + 'DROP COLUMN', 'DROP PARTITION', 'DROP RANGE PARTITION', 'PARTITION', 'RECOVER PARTITIONS', 'RENAME TO', + 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', + 'SET ROW FORMAT', 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); + +break; +case 87: + + parser.suggestKeywords(['SET CACHED IN', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', + 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); + +break; +case 89: + + parser.suggestKeywords(['CACHED IN', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES','TBLPROPERTIES', 'UNCACHED']); + +break; +case 90: + + parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'OWNER ROLE', 'OWNER USER', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); + +break; +case 92: case 188: case 717: + + parser.suggestKeywords(['TO']); + +break; +case 93: case 189: case 1357: + + parser.suggestDatabases({ appendDot: true }); + +break; +case 94: case 406: + + parser.suggestKeywords(['PARTITIONS']); + +break; +case 111: + + parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); + +break; +case 125: case 472: + + parser.suggestFileFormats(); + +break; +case 128: + + if (!$$[$0-1]) { + parser.suggestKeywords(['WITH REPLICATION =']); + } + +break; +case 130: case 465: + + parser.suggestKeywords(['FORMAT']); + +break; +case 131: case 466: + + parser.suggestKeywords(['DELIMITED']); + +break; +case 132: case 1823: + + if ($$[$0-1].suggestKeywords) { + parser.suggestKeywords($$[$0-1].suggestKeywords); + } + +break; +case 149: + + parser.addColumnLocation($$[$0].location, [ $$[$0].identifier ]); + +break; +case 150: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'COLUMN', weight: 1 }, { value: 'PARTITION', weight: 1 }, { value: 'RANGE PARTITION', weight: 1 }, { value: 'IF EXISTS', weight: 2 }]); + parser.suggestColumns(); + } else { + parser.suggestKeywords(['PARTITION', 'RANGE PARTITION']); + } + +break; +case 161: case 190: case 210: case 659: case 679: case 683: case 685: case 724: case 1448: case 2119: case 2123: case 2168: case 2179: case 2199: + + parser.addTablePrimary($$[$0]); + +break; +case 162: case 674: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + +break; +case 163: + + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 169: case 464: case 1491: case 1530: case 1551: case 1564: case 1568: case 1586: case 1609: case 1635: case 1636: case 1713: case 1715: case 1783: case 1793: case 1800: case 1812: case 1975: case 2215: case 2259: case 2260: +this.$ = $$[$0]; +break; +case 176: + + if (!$$[$0]) { + this.$ = { suggestKeywords: ['LOCATION'] }; + } + +break; +case 182: + + parser.suggestKeywords(['AS', 'RENAME TO', 'SET OWNER']); + +break; +case 183: + + parser.suggestKeywords(['OWNER ROLE', 'OWNER USER']); + +break; +case 186: case 503: case 512: case 1501: case 1896: + + parser.suggestKeywords(['SELECT']); + +break; +case 191: case 684: + + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + +break; +case 192: + + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 193: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + +break; +case 194: + + parser.suggestKeywords(['ON DATABASE']); + +break; +case 195: + + parser.suggestKeywords(['DATABASE']); + +break; +case 197: + + parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); + parser.suggestKeywords(['IS']); + +break; +case 198: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.suggestKeywords(['NULL']); + +break; +case 201: case 216: case 230: case 660: case 670: case 671: case 690: case 806: case 815: case 816: case 2136: case 2169: + + parser.addTablePrimary($$[$0-1]); + +break; +case 202: case 1449: + + parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 204: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + parser.suggestKeywords(['AUTHORIZATION', 'FUNCTIONS']); + +break; +case 206: case 814: case 2140: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 211: + + parser.suggestKeywords(['METADATA']); + +break; +case 212: case 218: case 227: case 661: case 666: case 696: case 728: case 812: case 1343: case 2196: case 2216: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 214: + + parser.addTablePrimary($$[$0]); + parser.suggestKeywords(['METADATA']); + +break; +case 215: case 222: case 223: + + parser.addTablePrimary($$[$0-2]); + +break; +case 217: + + parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); + +break; +case 220: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); + +break; +case 221: + + parser.addTablePrimary($$[$0-3]); + if (!$$[$0-1]) { + parser.suggestKeywords(['TABLESAMPLE']); + } else if ($$[$0-1].suggestKeywords) { + parser.suggestKeywords($$[$0-1].suggestKeywords); + } + +break; +case 224: case 664: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['INCREMENTAL']); + +break; +case 226: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['STATS']); + +break; +case 229: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0]) { + parser.suggestKeywords(['PARTITION']); + } + +break; +case 240: + + if ($$[$0-1]) { + parser.suggestKeywords(['TABLE']); + } else { + parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + +break; +case 242: + + parser.addNewDatabaseLocation(_$[$0-1], [{ name: $$[$0-1] }]); + +break; +case 243: case 265: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 245: + + if (!$$[$0-2]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 246: + + parser.addNewDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 247: + + parser.addNewDatabaseLocation(_$[$0-2], [{ name: $$[$0-2] }]); + +break; +case 248: + + var keywords = []; + if (!$$[$0]) { + keywords.push('LOCATION'); + } + if (!$$[$0-1] && !$$[$0]) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + +break; +case 278: + + var keywords = []; + if (!$$[$0-10] && !$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'LIKE', weight: 1 }); + keywords.push({ value: 'LIKE PARQUET', weight: 1 }); + } else { + if (!$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + keywords.push({ value: 'PARTITION BY', weight: 12 }); + } + if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'SORT BY', weight: 11 }); + } + if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'COMMENT', weight: 10 }); + } + if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'ROW FORMAT', weight: 7 }); + } else if ($$[$0-6] && $$[$0-6].suggestKeywords && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 7)); + } + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 6 }); + } + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'STORED AS', weight: 5 }); + } + if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'LOCATION', weight: 4 }); + } + if (!$$[$0-2] && !$$[$0-1]) { + keywords.push({ value: 'CACHED IN', weight: 3 }, { value: 'UNCACHED', weight: 3 }); + } else if ($$[$0-2] && $$[$0-2].suggestKeywords && !$$[$0-1]) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 3)); + } + if (!$$[$0-1]) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + parser.suggestKeywords(keywords); + +break; +case 279: + + parser.addNewTableLocation(_$[$0-1], $$[$0-1], $$[$0]); + this.$ = $$[$0]; + +break; +case 284: case 285: case 1349: case 1352: +this.$ = []; +break; +case 288: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + parser.suggestKeywords(['PARQUET']); + +break; +case 290: case 606: case 608: case 1263: case 1266: case 1350: case 1390: case 1455: case 1617: case 1796: case 1893: case 1950: +this.$ = $$[$0-1]; +break; +case 291: case 607: case 609: +this.$ = $$[$0-3]; +break; +case 294: + + parser.suggestKeywords(['PRIMARY KEY']); + +break; +case 295: case 1347: case 1493: +this.$ = [$$[$0]]; +break; +case 296: +this.$ = $$[$0-2].concat($$[$0]); +break; +case 301: case 303: case 459: + + parser.checkForKeywords($$[$0-1]); + +break; +case 302: case 304: + + parser.checkForKeywords($$[$0-3]); + +break; +case 305: + + this.$ = $$[$0-2]; + this.$.type = $$[$0-1]; + var keywords = []; + if (!$$[$0]['primary']) { + keywords.push('PRIMARY KEY'); + } + if (!$$[$0]['encoding']) { + keywords.push('ENCODING'); + } + if (!$$[$0]['compression']) { + keywords.push('COMPRESSION'); + } + if (!$$[$0]['default']) { + keywords.push('DEFAULT'); + } + if (!$$[$0]['block_size']) { + keywords.push('BLOCK_SIZE'); + } + if (!$$[$0]['null']) { + keywords.push('NOT NULL'); + keywords.push('NULL'); + } + if (!$$[$0]['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 306: case 339: case 345: case 346: case 359: case 362: case 371: case 373: + + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + +break; +case 309: case 1868: +this.$ = {}; +break; +case 311: + + this.$ = {}; + this.$[$$[$0]] = true; + +break; +case 312: + + $$[$0-1][$$[$0]] = true; + +break; +case 317: +this.$ = 'primary'; +break; +case 318: +this.$ = 'encoding'; +break; +case 319: +this.$ = 'compression'; +break; +case 320: +this.$ = 'default'; +break; +case 321: +this.$ = 'block_size'; +break; +case 322: case 323: +this.$ = 'null'; +break; +case 324: +this.$ = 'comment'; +break; +case 326: + + parser.suggestKeywords(['NULL']); + +break; +case 344: case 563: case 574: case 597: + + parser.suggestKeywords(parser.getTypeKeywords()); + +break; +case 358: case 361: + + parser.suggestKeywords(['COMMENT']); + +break; +case 382: + + parser.suggestKeywords(['KEY']); + +break; +case 389: case 390: case 393: case 419: case 487: case 488: case 492: case 1976: + + parser.suggestKeywords(['BY']); + +break; +case 394: case 397: + + parser.suggestKeywords(['HASH', 'RANGE']); + +break; +case 435: + + parser.suggestKeywords(['VALUE', 'VALUES']); + +break; +case 437: case 443: case 446: case 804: + + parser.suggestFunctions(); + +break; +case 438: + + if ($$[$0].endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + +break; +case 439: case 442: case 445: + + parser.suggestKeywords(['<', '<=']); + +break; +case 440: case 1303: case 1306: + + parser.suggestKeywords(['VALUES']); + +break; +case 471: case 1500: + + parser.suggestKeywords(['AS']); + +break; +case 480: + + if (!$$[$0-1] && !$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 2 }, { value: 'LINES TERMINATED BY', weight: 1 }] }; + } else if ($$[$0-1] && $$[$0-1].suggestKeywords && !$$[$0]) { + this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat(['LINES TERMINATED BY']) }; + } else if (!$$[$0]) { + this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 1 }] }; + } + +break; +case 484: +this.$ = { suggestKeywords: ['ESCAPED BY'] }; +break; +case 486: case 491: + + parser.suggestKeywords(['TERMINATED BY']); + +break; +case 496: case 497: + + parser.suggestKeywords(['SERDEPROPERTIES']); + +break; +case 505: + + parser.commitLocations(); + +break; +case 507: case 520: case 536: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + +break; +case 508: case 521: + + if (!$$[$0-6]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 511: + + var keywords = [{value: 'AS', weight: 1 }]; + if (!$$[$0-1]) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + +break; +case 522: case 541: + + parser.suggestKeywords(['RETURNS']); + +break; +case 523: case 542: + + parser.suggestKeywords(['LOCATION']); + +break; +case 524: + + parser.suggestKeywords(['SYMBOL']); + +break; +case 534: case 652: + + parser.suggestKeywords(['FUNCTION']); + +break; +case 535: + + if (!$$[$0-13]) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + +break; +case 543: + + if (!$$[$0-1]) { + parser.suggestKeywords([{value: 'INIT_FN', weight: 2 }, {value: 'UPDATE_FN', weight: 1 }]); + } else { + parser.suggestKeywords([{value: 'UPDATE_FN', weight: 1 }]); + } + +break; +case 544: + + parser.suggestKeywords(['MERGE_FN']); + +break; +case 545: + + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{value: 'PREPARE_FN', weight: 5 }, {value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($$[$0-3] && !$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{value: 'INTERMEDIATE', weight: 1 }]); + } + +break; +case 564: + + parser.suggestKeywords(['...']); + +break; +case 599: + + parser.suggestFunctions(); + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + +break; +case 603: + + if (!$$[$0-1]) { + parser.suggestKeywords(['COMMENT']); + } + +break; +case 619: + + parser.addCommonTableExpressions($$[$0-1]); + +break; +case 636: + + parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'FUNCTION', 'INCREMENTAL STATS', 'ROLE', 'SCHEMA', 'STATS', 'TABLE', 'VIEW']); + +break; +case 640: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + +break; +case 641: + + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + +break; +case 643: case 648: case 653: + + if (!$$[$0-3]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 646: case 647: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + +break; +case 650: + + parser.suggestKeywords(['AGGREGATE']); + +break; +case 663: + + parser.addTablePrimary($$[$0]); + parser.suggestKeywords(['INCREMENTAL']); + +break; +case 669: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['PARTITION']); + +break; +case 673: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 676: + + parser.addTablePrimary($$[$0-2]); + if (!$$[$0-1]) { + parser.suggestKeywords(['PURGE']); + } + +break; +case 680: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + +break; +case 681: + + parser.addTablePrimary($$[$0]); + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 686: + + parser.suggestKeywords(['TABLE']); + +break; +case 687: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$$[$0-1]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 691: + + parser.addTablePrimary($$[$0-1]); + if (!$$[$0-2]) { + parser.suggestKeywords(['IF EXISTS']); + } + +break; +case 694: + + parser.suggestKeywords(['FROM']); + if (!$$[$0-1]) { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + +break; +case 697: + + var keywords = [{ value: 'FULL JOIN', weight: 1 }, { value: 'FULL OUTER JOIN', weight: 1 }, { value: 'JOIN', weight: 1 }, { value: 'LEFT JOIN', weight: 1 }, { value: 'LEFT OUTER JOIN', weight: 1 }, { value: 'RIGHT JOIN', weight: 1 }, { value: 'RIGHT OUTER JOIN', weight: 1 }, { value: 'INNER JOIN', weight: 1 }, { value: 'LEFT ANTI JOIN', weight: 1 }, { value: 'LEFT SEMI JOIN', weight: 1 }, { value: 'RIGHT ANTI JOIN', weight: 1 }, { value: 'RIGHT SEMI JOIN', weight: 1 }]; + if (!$$[$0]) { + keywords.push({ value: 'WHERE', weight: 3 }); + } + if ($$[$0-2].suggestJoinConditions) { + parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); + } + if ($$[$0-2].suggestJoins) { + parser.suggestJoins($$[$0-2].suggestJoins); + } + if ($$[$0-2].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2)); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + +break; +case 710: case 747: + + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); + +break; +case 711: + + parser.suggestKeywords(['TO GROUP']); + +break; +case 712: case 749: case 2176: case 2177: + + parser.suggestKeywords(['GROUP']); + +break; +case 714: case 751: + + if ($$[$0-1].isCreate) { + parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); + } else { + parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); + } + +break; +case 715: + + if ($$[$0-2].isCreate) { + parser.suggestKeywords(['DATABASE', 'SERVER']); + } else { + parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); + } + +break; +case 718: case 755: case 2156: + + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + +break; +case 719: case 721: + + if (!$$[$0-1]) { + parser.suggestKeywords(['WITH GRANT OPTION']); + } + +break; +case 723: case 2152: + + parser.addDatabaseLocation(_$[$0], [ { name: $$[$0] } ]); + +break; +case 732: +this.$ = { isCreate: true }; +break; +case 742: + + parser.suggestKeywords(['GRANT OPTION']); + +break; +case 743: + + parser.suggestKeywords(['OPTION']); + +break; +case 748: + + parser.suggestKeywords(['FROM GROUP']); + +break; +case 752: + + if ($$[$0-2].isCreate) { + parser.suggestKeywords(['DATABASE', 'SERVER']); + } else { + parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); + } + +break; +case 754: + + parser.suggestKeywords(['FROM']); + +break; +case 760: +this.$ = { selectList: $$[$0] }; +break; +case 761: + + this.$ = $$[$0-1]; + this.$.cursorAtEnd = true; + +break; +case 762: + + parser.selectListNoTableSuggest($$[$0], $$[$0-2]); + +break; +case 763: + + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2] || $$[$0-2] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-1] && !$$[$0-2]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$$[$0-1]) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns(); + +break; +case 769: + + var keywords = $$[$0-2].suggestKeywords && !$$[$0-1] ? parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2) : []; + if (!$$[$0-1]) { + keywords = keywords.concat(['[NOSHUFFLE]', '[SHUFFLE]', 'SELECT', 'VALUES']) + } else { + keywords = keywords.concat(['SELECT']) + } + parser.suggestKeywords(keywords); + +break; +case 779: + + $$[$0-1].owner = 'upsert'; + parser.addTablePrimary($$[$0-1]); + +break; +case 780: + + parser.suggestKeywords(['INTO']); + +break; +case 781: case 787: + + if (!$$[$0-1]) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 782: + + if (!$$[$0-3]) { + parser.suggestKeywords(['TABLE']); + } + $$[$0-1].owner = 'upsert'; + parser.addTablePrimary($$[$0-1]); + +break; +case 784: + + $$[$0-1].owner = 'upsert'; + parser.addTablePrimary($$[$0-1]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'upsert'; + } + +break; +case 785: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + if (!$$[$0]) { + this.$ = { suggestKeywords: ['PARTITION'] }; + } + +break; +case 786: + + parser.suggestKeywords(['INTO', 'OVERWRITE']); + +break; +case 788: + + if (!$$[$0-4]) { + parser.suggestKeywords(['TABLE']); + } + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + +break; +case 790: case 791: + + $$[$0-2].owner = 'insert'; + parser.addTablePrimary($$[$0-2]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + +break; +case 807: + + parser.suggestKeywords(['DATA INPATH']); + +break; +case 808: + + parser.suggestKeywords(['INPATH']); + +break; +case 810: + + if (!$$[$0-1]) { + parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); + } else { + parser.suggestKeywords(['INTO TABLE']); + } + +break; +case 811: + + parser.suggestKeywords([ 'TABLE' ]); + +break; +case 820: case 821: + + return parser.yy.result; + +break; +case 822: + + parser.prepareNewStatement(); + +break; +case 824: case 826: case 828: + + parser.addStatementLocation(_$[$0]); + +break; +case 827: case 829: + + parser.addStatementLocation(_$[$0-3]); + +break; +case 836: + + parser.suggestDdlAndDmlKeywords(['EXPLAIN']); + +break; +case 837: + + parser.suggestKeywords(['INSERT', 'SELECT']); + +break; +case 860: + + parser.suggestDdlAndDmlKeywords(); + +break; +case 1264: case 1267: case 1391: +this.$ = ''; +break; +case 1287: case 1290: + + parser.yy.correlatedSubQuery = false; + +break; +case 1288: case 1292: + + parser.suggestKeywords(['EXISTS']); + +break; +case 1291: + + parser.suggestKeywords(['NOT EXISTS']); + +break; +case 1302: case 1304: case 1305: case 1307: + + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + +break; +case 1340: case 1392: + + parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0] } ] }; + +break; +case 1341: case 1393: + + parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); + parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); + this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; + +break; +case 1342: + + // This is a special case for expression like "SELECT | FROM db.table.col" + this.$ = { identifierChain: [ { name: $$[$0-3] }, { name: $$[$0-1] } ].concat($$[$0]) }; + +break; +case 1344: case 1358: + + parser.suggestDatabases(); + this.$ = { identifierChain: [{ name: $$[$0-2] }] }; + +break; +case 1345: + + // You can have statements like 'SELECT ... FROM testTable t, t.|' + parser.suggestTablesOrColumns($$[$0-2]); + +break; +case 1346: + + // TODO: switch to suggestColumns, it's currently handled in sqlAutocompleter2.js + // Issue is that suggestColumns is deleted if no tables are defined and this is + // only cases like "SELECT | FROM db.table.col" + parser.suggestTables({ identifierChain: [{ name: $$[$0-3] }, { name: $$[$0-1] }].concat($$[$0]) }); + +break; +case 1348: + + $$[$0-1].push($$[$0]); + +break; +case 1351: case 1457: case 1798: +this.$ = $$[$0-2]; +break; +case 1353: +this.$ = { name: $$[$0] }; +break; +case 1355: +this.$ = [{ name: $$[$0] }]; +break; +case 1356: +this.$ = [{ name: $$[$0-2] }, { name: $$[$0-1] }]; +break; +case 1370: case 1553: case 1554: case 1560: case 1561: case 1889: case 1977: + + parser.valueExpressionSuggest(); + +break; +case 1378: case 1381: + + if (!$$[$0]) { + this.$ = { suggestKeywords: ['WITH REPLICATION ='] }; + } + +break; +case 1383: case 2137: + + parser.suggestKeywords(['IN']); + +break; +case 1387: + + parser.suggestKeywords(['REPLICATION =']); + +break; +case 1394: + + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + +break; +case 1395: + + parser.suggestTablesOrColumns($$[$0-2]); + +break; +case 1397: +this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; +break; +case 1400: + + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + +break; +case 1401: case 1749: + + parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); + +break; +case 1403: + + this.$ = [ $$[$0].identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); + +break; +case 1404: + + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $$[$0-2].push($$[$0].identifier); + parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); + +break; +case 1405: case 1413: + + if ($$[$0].insideKey) { + parser.suggestKeyValues({ identifierChain: [ $$[$0].identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1406: case 1414: + + if ($$[$0].insideKey) { + parser.suggestKeyValues({ identifierChain: $$[$0-2].concat([ $$[$0].identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1409: + + parser.suggestColumns({ + identifierChain: $$[$0-2] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 1410: + + parser.suggestColumns({ + identifierChain: $$[$0-4] + }); + this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + +break; +case 1411: +this.$ = [ $$[$0].identifier ]; +break; +case 1412: + + $$[$0-2].push($$[$0].identifier); + +break; +case 1415: + + if ($$[$0-2].insideKey) { + parser.suggestKeyValues({ identifierChain: $$[$0-4].concat([ $$[$0-2].identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1416: + + if ($$[$0-2].insideKey) { + parser.suggestKeyValues({ identifierChain: [ $$[$0-2].identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + +break; +case 1418: + + parser.suggestColumns({ identifierChain: $$[$0-2] }); + +break; +case 1419: + + parser.suggestColumns({ identifierChain: $$[$0-4] }); + +break; +case 1421: +this.$ = { identifier: { name: $$[$0] }, location: _$[$0] }; +break; +case 1422: +this.$ = { identifier: { name: $$[$0-3], keySet: true }, location: _$[$0-3] }; +break; +case 1423: +this.$ = { identifier: { name: $$[$0-2], keySet: true }, location: _$[$0-2] }; +break; +case 1424: +this.$ = { identifier: { name: $$[$0-3] }, insideKey: true }; +break; +case 1425: +this.$ = { identifier: { name: $$[$0-3] }}; +break; +case 1450: + + if (!$$[$0-1]) { + parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 1452: + + parser.addTablePrimary($$[$0]); + if (!$$[$0-2]) { + parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); + } + +break; +case 1453: + + if (!$$[$0-1]) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + parser.suggestDatabases(); + +break; +case 1454: + + if (!$$[$0-2]) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); + +break; +case 1460: + + parser.addCommonTableExpressions($$[$0-3]); + +break; +case 1461: case 1462: case 1496: + + parser.addCommonTableExpressions($$[$0-2]); + +break; +case 1466: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); + this.$ = { selectList: $$[$0] }; + +break; +case 1467: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); + this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } + +break; +case 1478: + + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + +break; +case 1479: + + parser.suggestKeywords(['ALL', 'DISTINCT']); + +break; +case 1481: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); + if ($$[$0].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-1] && !$$[$0-2]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$$[$0-1]) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($$[$0]); + } + if ($$[$0].suggestFunctions) { + parser.suggestFunctions(); + } + if ($$[$0].suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($$[$0].suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($$[$0].suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($$[$0].suggestAggregateFunctions && (!$$[$0-2] || $$[$0-2] === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + +break; +case 1482: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2] || $$[$0-2] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-1] && !$$[$0-2]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$$[$0-1]) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 1483: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); + +break; +case 1484: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); + parser.selectListNoTableSuggest($$[$0-1], $$[$0-3]); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + +break; +case 1485: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1], true); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-3] || $$[$0-3] === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$$[$0-2] && !$$[$0-3]) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$$[$0-2]) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + +break; +case 1486: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-2]); + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 1487: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]), _$[$0-3]); + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 1488: + + parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); + parser.checkForSelectListKeywords($$[$0-1]); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + +break; +case 1494: +this.$ = $$[$0-2].concat([$$[$0]]); +break; +case 1498: + + parser.addCommonTableExpressions($$[$0-4]); + +break; +case 1499: + + parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); + $$[$0-1].alias = $$[$0-4]; + this.$ = $$[$0-1]; + +break; +case 1506: case 1507: + + parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); + +break; +case 1508: + + var keywords = []; + + parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); + + if ($$[$0-3]) { + if (typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + keywords.push({ value: 'USING', weight: 3 }); + } + if ($$[$0-3].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); + } + if ($$[$0-3].tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); + } + if ($$[$0-3].tableReferenceList.suggestJoins) { + parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); + } + if ($$[$0-3].tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { + keyword.weight = 1.1; + } + }); + + if ($$[$0-3].tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($$[$0-3].tableReferenceList); + } + } + } + + if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + keywords = keywords.concat(['ANTI', 'CROSS', 'INNER', 'LEFT ANTI', 'LEFT INNER', 'LEFT SEMI', 'OUTER', 'RIGHT ANTI', 'RIGHT INNER', 'RIGHT SEMI', 'SEMI']); + parser.suggestKeywords(keywords); + return; + } + + if ($$[$0-1].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].suggestFilters) { + parser.suggestFilters($$[$0-1].suggestFilters); + } + if ($$[$0-1].suggestGroupBys) { + parser.suggestGroupBys($$[$0-1].suggestGroupBys); + } + if ($$[$0-1].suggestOrderBys) { + parser.suggestOrderBys($$[$0-1].suggestOrderBys); + } + + if ($$[$0-1].empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'ANTI JOIN', weight: 1 }, + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT ANTI JOIN', weight: 1 }, + { value: 'LEFT INNER JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'LEFT SEMI JOIN', weight: 1 }, + { value: 'OUTER JOIN', weight: 1 }, + { value: 'RIGHT ANTI JOIN', weight: 1 }, + { value: 'RIGHT INNER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 }, + { value: 'RIGHT SEMI JOIN', weight: 1 }, + { value: 'SEMI JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + +break; +case 1509: + + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$$[$0-1]) { + parser.addClauseLocation('whereClause', _$[$0-2]); + parser.addClauseLocation('limitClause', _$[$0-2]); + return; + } + parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); + parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); + var keywords = []; + + if ($$[$0-1].suggestColRefKeywords) { + parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); + parser.addColRefIfExists($$[$0-1]); + } + + if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); + } + + if ($$[$0-1].cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + +break; +case 1513: + + this.$ = { tableReferenceList : $$[$0] } + +break; +case 1514: case 1805: + + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + +break; +case 1516: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'WHERE', weight: 9 }, + { value: 'GROUP BY', weight: 8 }, + { value: 'HAVING', weight: 7 }, + { value: 'ORDER BY', weight: 5 }, + { value: 'LIMIT', weight: 3 }, + { value: 'OFFSET', weight: 2 }], + [true, true, true, true, true, true]); + + if (keywords.length > 0) { + this.$ = { suggestKeywords: keywords, empty: !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + } else { + this.$ = {}; + } + + this.$.whereClauseLocation = $$[$0-5] ? _$[$0-5] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + + if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { + this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + +break; +case 1517: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + +break; +case 1518: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + +break; +case 1520: + + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + +break; +case 1523: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], + [true, true, true, true, true]); + if ($$[$0-6].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-6].suggestKeywords, 1)); + } + this.$ = parser.getValueExpressionKeywords($$[$0-6], keywords); + this.$.cursorAtEnd = !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if ($$[$0-6].columnReference) { + this.$.columnReference = $$[$0-6].columnReference; + } + if (!$$[$0-4]) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-6], _$[$0-6]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + +break; +case 1524: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], + [true, true, true, true]); + if ($$[$0-5].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 6)); + } + if ($$[$0-5].valueExpression) { + this.$ = parser.getValueExpressionKeywords($$[$0-5].valueExpression, keywords); + if ($$[$0-5].valueExpression.columnReference) { + this.$.columnReference = $$[$0-5].valueExpression.columnReference; + } + } else { + this.$ = { suggestKeywords: keywords }; + } + this.$.cursorAtEnd = !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; + if (!$$[$0-3] && !$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + +break; +case 1525: + + var keywords = parser.getKeywordsForOptionalsLR( + [$$[$0-2], $$[$0-1], $$[$0]], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], + [true, true, true]); + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] }; + if (!$$[$0-2]) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + +break; +case 1526: + + var keywords = parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true]); + if ($$[$0-3].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].suggestKeywords, 4)); + } + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-3], _$[$0-3]); + this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; + +break; +case 1527: + + var keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'OFFSET', weight: 2 }], [true]); + this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; + this.$.whereClauseLocation = $$[$0-6] ? _$[$0-6] : undefined; + this.$.limitClausePreceding = parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]); + this.$.limitClauseLocation = _$[$0-2]; + +break; +case 1531: + + if ($$[$0].suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 1532: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1535: + + this.$ = { valueExpression: $$[$0] }; + +break; +case 1536: case 1575: + + parser.suggestSelectListAliases(); + +break; +case 1537: + + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1538: + + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1565: + + if ($$[$0].emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + +break; +case 1566: + + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + +break; +case 1570: + + this.$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 1571: case 1572: case 1573: +this.$ = { emptyOrderBy: false }; +break; +case 1574: +this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]); +break; +case 1577: + + this.$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + +break; +case 1578: + + this.$ = { suggestKeywords: ['ASC', 'DESC'] }; + +break; +case 1581: + + this.$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; + +break; +case 1584: + + parser.suggestKeywords(['FIRST', 'LAST']); + +break; +case 1591: + + parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); + this.$ = $$[$0]; + +break; +case 1597: case 1602: + + parser.suggestFunctions({ types: ['BIGINT'] }); + +break; +case 1598: case 1603: + + delete parser.yy.result.suggestColumns; + +break; +case 1607: case 1608: + + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1610: + + // verifyType($$[$0], 'NUMBER'); + this.$ = $$[$0]; + $$[$0].types = ['NUMBER']; + +break; +case 1611: case 1612: case 1613: case 1614: case 1615: case 1622: case 1623: case 1624: case 1625: case 1626: case 1627: case 1633: case 1634: case 1655: case 1709: case 1710: case 1772: +this.$ = { types: [ 'BOOLEAN' ] }; +break; +case 1616: + + this.$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + +break; +case 1618: case 1619: case 1620: case 1621: + + parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1628: case 1629: + + // verifyType($$[$0-2], 'BOOLEAN'); + // verifyType($$[$0], 'BOOLEAN'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1630: case 1631: case 1632: + + // verifyType($$[$0-2], 'NUMBER'); + // verifyType($$[$0], 'NUMBER'); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 1638: + + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'ILIKE', 'IREGEXP', 'LIKE', 'REGEXP', 'RLIKE']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1639: case 1641: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 1640: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1642: + + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1643: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; +break; +case 1644: + + parser.suggestFunctions(); + parser.suggestColumns(); + this.$ = { types: [ 'T' ] }; + +break; +case 1645: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 1646: + + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + this.$ = { types: [ 'NUMBER' ] }; + +break; +case 1647: + + var keywords = ['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'NOT DISTINCT FROM', 'NOT UNKNOWN', 'UNKNOWN']; + parser.suggestKeywords(keywords); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1648: + + var keywords = ['FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'UNKNOWN']; + parser.suggestKeywords(keywords); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1649: + + parser.suggestKeywords(['FROM']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1650: case 1651: case 1652: + + parser.suggestKeywords(['NOT']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1653: + + parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1654: + + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 1656: + + this.$ = $$[$0-1]; + +break; +case 1657: + + parser.valueExpressionSuggest(); + this.$ = { types: ['T'], typeSet: true }; + +break; +case 1658: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1659: case 1660: case 1661: + + parser.valueExpressionSuggest($$[$0], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1662: case 1663: case 1664: case 1665: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0].types); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 1666: case 1668: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1667: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + +break; +case 1669: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; + +break; +case 1670: case 1671: case 1672: case 1673: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 1674: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-3].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1675: + + if ($$[$0].inValueEdit) { + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + } + if ($$[$0].cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1676: case 1677: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; +break; +case 1678: case 1679: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; +break; +case 1680: + + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-3].suggestFilters }; + +break; +case 1681: + + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 1682: case 1686: + + parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); + this.$ = { types: [ 'BOOLEAN' ] }; + +break; +case 1683: + + parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1684: + + if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; + +break; +case 1685: + + if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0].typeSet) { + parser.applyTypeToSuggestions($$[$0-2].types) + } + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 1687: + + parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); + parser.applyTypeToSuggestions($$[$0-2].types); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1688: case 1690: case 1692: case 1694: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + +break; +case 1689: case 1693: + + parser.addColRefIfExists($$[$0]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 1691: case 1695: + + parser.addColRefIfExists($$[$0-2]); + this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } + +break; +case 1696: case 1697: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 1698: case 1699: case 1700: + + if (!$$[$0-2].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } + +break; +case 1701: case 1702: case 1703: + + parser.valueExpressionSuggest(undefined, $$[$0-1]); + parser.applyTypeToSuggestions(['NUMBER']); + this.$ = { types: [ 'NUMBER' ], typeSet: true }; + +break; +case 1704: case 1705: case 1706: + + if (!$$[$0].typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($$[$0-2]); + } + this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; + +break; +case 1707: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 1708: +this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 1711: + + parser.valueExpressionSuggest(undefined, $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1712: + + parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); + parser.applyTypeToSuggestions([ 'STRING' ]); + this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; + +break; +case 1714: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 1716: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 1717: + + this.$ = $$[$0]; + this.$.suggestFilters = $$[$0-1].suggestFilters; + +break; +case 1718: +this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 1719: case 2023: case 2028: case 2029: +this.$ = { types: [ 'T' ] }; +break; +case 1720: case 1722: + + $$[$0].position = 1; + +break; +case 1721: + + $$[$0].position = $$[$0-2].position + 1; + this.$ = $$[$0]; + +break; +case 1723: + + $$[$0-2].position += 1; + +break; +case 1724: + + $$[$0-2].position = 1; + +break; +case 1725: + + $$[$0-4].position += 1; + +break; +case 1726: + + parser.valueExpressionSuggest(); + $$[$0-2].position += 1; + +break; +case 1727: + + parser.valueExpressionSuggest(); + $$[$0-4].position += 1; + +break; +case 1728: + + parser.suggestValueExpressionKeywords($$[$0-3]); + +break; +case 1729: case 1730: + + parser.valueExpressionSuggest(); + this.$ = { cursorAtStart : true, position: 1 }; + +break; +case 1731: case 1732: + + parser.valueExpressionSuggest(); + this.$ = { position: 2 }; + +break; +case 1736: +this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; +break; +case 1737: + + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].expression) { + this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } + } else { + this.$ = { function: fn, types: parser.findReturnTypes(fn) } + } + +break; +case 1738: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 1740: +this.$ = { types: [ 'NULL' ] }; +break; +case 1741: +this.$ = { types: [ 'TIMESTAMP' ] }; +break; +case 1743: + + if ($$[$0].suggestKeywords) { + this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; + } else { + this.$ = { types: ['COLREF'], columnReference: $$[$0] }; + } + +break; +case 1744: + + var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); + $$[$0-1].lastLoc.type = 'function'; + $$[$0-1].lastLoc.function = fn; + $$[$0-1].lastLoc.location = { + first_line: $$[$0-1].lastLoc.location.first_line, + last_line: $$[$0-1].lastLoc.location.last_line, + first_column: $$[$0-1].lastLoc.location.first_column, + last_column: $$[$0-1].lastLoc.location.last_column - 1 + } + if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { + $$[$0-1].firstLoc.type = 'database'; + } else { + delete $$[$0-1].lastLoc.identifierChain; + } + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); + } + this.$ = { types: parser.findReturnTypes(fn) }; + +break; +case 1745: case 1937: case 1938: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].position) { + parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-1]) }; + +break; +case 1748: + + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; + this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } + +break; +case 1752: + + parser.suggestKeywords(['DAYS', 'HOURS', 'MICROSECONDS', 'MILLISECONDS', 'MINUTES', 'MONTHS', 'NANOSECONDS', 'SECONDS', 'WEEKS', 'YEARS']); + +break; +case 1757: + + parser.suggestValues($$[$0]); + +break; +case 1758: +this.$ = { types: [ 'NUMBER' ] }; +break; +case 1764: case 1766: +this.$ = $$[$0-1] + $$[$0]; +break; +case 1765: +this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; +break; +case 1770: case 1771: + + if (/\$\{[^}]*\}/.test($$[$0])) { + parser.addVariableLocation(_$[$0], $$[$0]); + this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } + } else { + this.$ = { types: [ 'STRING' ] } + } + +break; +case 1773: + + this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 1774: + + this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + +break; +case 1779: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); + } else { + this.$ = { valueExpression: $$[$0-1] } + } + +break; +case 1780: + + parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); + this.$ = { asterisk: true } + +break; +case 1781: + + if ($$[$0]) { + parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); + } + +break; +case 1782: + + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); + this.$ = { suggestAggregateFunctions: true }; + +break; +case 1784: +this.$ = [ $$[$0] ]; +break; +case 1785: + + $$[$0-2].push($$[$0]); + +break; +case 1787: case 1788: + + this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 1790: + + parser.checkForSelectListKeywords($$[$0-2]); + +break; +case 1791: + + parser.checkForSelectListKeywords($$[$0-3]); + +break; +case 1792: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + +break; +case 1794: case 1795: case 1797: + + this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + +break; +case 1808: + + this.$ = $$[$0]; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + this.$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + +break; +case 1815: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-3]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 1816: + + if ($$[$0] && $$[$0].valueExpression) { + this.$ = $$[$0].valueExpression; + } else { + this.$ = {}; + } + this.$.joinType = $$[$0-4]; + if ($$[$0].noJoinCondition) { + this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($$[$0].suggestKeywords) { + this.$.suggestKeywords = $$[$0].suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + +break; +case 1817: +this.$ = { joinType: $$[$0-1] }; +break; +case 1818: +this.$ = { joinType: $$[$0-2] }; +break; +case 1822: + + if ($$[$0-3].suggestKeywords) { + parser.suggestKeywords($$[$0-3].suggestKeywords); + } + +break; +case 1826: + + if (!$$[$0-2]) { + parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']); + } + if (!$$[$0-2] && parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $$[$0-3], + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 1831: +this.$ = 'JOIN'; +break; +case 1832: +this.$ = 'ANTI JOIN'; +break; +case 1833: +this.$ = 'CROSS JOIN'; +break; +case 1834: +this.$ = 'INNER JOIN'; +break; +case 1835: +this.$ = 'OUTER JOIN'; +break; +case 1836: +this.$ = 'SEMI JOIN'; +break; +case 1837: +this.$ = 'FULL JOIN'; +break; +case 1838: +this.$ = 'FULL OUTER JOIN'; +break; +case 1839: +this.$ = 'LEFT JOIN'; +break; +case 1840: +this.$ = 'LEFT ANTI JOIN'; +break; +case 1841: +this.$ = 'LEFT INNER JOIN'; +break; +case 1842: +this.$ = 'LEFT OUTER JOIN'; +break; +case 1843: +this.$ = 'LEFT SEMI JOIN'; +break; +case 1844: +this.$ = 'RIGHT JOIN'; +break; +case 1845: +this.$ = 'RIGHT ANTI JOIN'; +break; +case 1846: case 1847: +this.$ = 'RIGHT OUTER JOIN'; +break; +case 1848: +this.$ = 'RIGHT SEMI JOIN'; +break; +case 1849: case 1850: case 1851: case 1852: case 1853: case 1854: case 1856: case 1857: case 1858: case 1859: case 1861: case 1862: case 1863: case 1864: +this.$ = { suggestKeywords: ['JOIN'] }; +break; +case 1855: +this.$ = { suggestKeywords: ['OUTER'] }; +break; +case 1860: case 1865: +this.$ = { suggestKeywords: ['ANTI', 'INNER', 'OUTER', 'SEMI'] }; +break; +case 1866: +this.$ = { noJoinCondition: true, suggestKeywords: ['ON', 'USING'] }; +break; +case 1867: +this.$ = { valueExpression: $$[$0] }; +break; +case 1872: + + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + +break; +case 1873: + + this.$ = { + primary: $$[$0-2] + } + if ($$[$0-2].identifierChain) { + if ($$[$0-1]) { + $$[$0-2].alias = $$[$0-1].alias; + parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + parser.addTablePrimary($$[$0-2]); + } + var keywords = []; + if ($$[$0] && $$[$0].suggestKeywords) { + keywords = $$[$0].suggestKeywords; + } else if (!$$[$0-1] && !$$[$0]) { + keywords = [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }]; + } else if (!$$[$0]) { + keywords = [{ value: 'TABLESAMPLE', weight: 3 }]; + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 1874: + + this.$ = { + primary: $$[$0-2] + }; + + if ($$[$0-1]) { + this.$.primary.alias = $$[$0-1].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); + parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + + var keywords = []; + if ($$[$0] && $$[$0].suggestKeywords) { + keywords = $$[$0].suggestKeywords; + } else { + keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1]], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }], [true, true]); + } + if (keywords.length > 0) { + this.$.suggestKeywords = keywords; + } + +break; +case 1875: + + if ($$[$0-1]) { + parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + +break; +case 1876: + + if ($$[$0-1]) { + $$[$0-2].alias = $$[$0-1].alias; + parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + parser.addTablePrimary($$[$0-2]); + +break; +case 1877: + + if ($$[$0-1]) { + parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); + parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias); + } + +break; +case 1884: +this.$ = { suggestKeywords: ['REPEATABLE()'] }; +break; +case 1886: + + parser.suggestKeywords(['SYSTEM()']); + +break; +case 1891: + + parser.pushQueryState(); + +break; +case 1892: + + parser.popQueryState(); + +break; +case 1894: + + if ($$[$0-1]) { + $$[$0-2].alias = $$[$0-1].alias; + parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); + parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); + } + this.$ = $$[$0-2]; + +break; +case 1897: + + var subQuery = parser.getSubQuery($$[$0]); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + this.$ = subQuery; + +break; +case 1914: case 1915: case 1916: case 1917: +this.$ = { alias: $$[$0], location: _$[$0] }; +break; +case 1923: + + if (!$$[$0]) { + $$[$0-1].suggestKeywords = ['OVER']; + } + +break; +case 1931: + + parser.suggestKeywords(['OVER']); + +break; +case 1935: case 1936: + + parser.addFunctionLocation(_$[$0-1], $$[$0-1]); + if ($$[$0].expression) { + this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } + } else { + this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } + } + +break; +case 1947: +this.$ = { expression: $$[$0-1] }; +break; +case 1948: + + parser.valueExpressionSuggest(); + this.$ = { position: 1 } + +break; +case 1949: + + parser.suggestValueExpressionKeywords($$[$0-1]); + +break; +case 1957: case 2035: case 2076: +this.$ = { types: parser.findReturnTypes($$[$0-2]) }; +break; +case 1958: +this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; +break; +case 1959: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-3], 1); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 1960: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 1961: + + parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 1969: case 1970: + + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + +break; +case 1971: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$$[$0-2]) { + parser.suggestKeywords(['PARTITION BY']); + } + +break; +case 1972: + + if (!$$[$0-1]) { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3]); + } + +break; +case 1981: + + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + +break; +case 1982: + + var keywords = []; + if ($$[$0-2].suggestKeywords) { + keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); + } + if (!$$[$0]) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + +break; +case 1988: + + parser.suggestKeywords(['BETWEEN']); + +break; +case 1989: + + if (!$$[$0-2] && !$$[$0-1]) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$$[$0-1]) { + parser.suggestKeywords(['AND']); + } + +break; +case 1994: + + lexer.popState(); + +break; +case 1995: + + lexer.begin('hdfs'); + +break; +case 1997: + + parser.suggestHdfs({ path: $$[$0-3] }); + +break; +case 1998: + + parser.suggestHdfs({ path: $$[$0-2] }); + +break; +case 1999: + + parser.suggestHdfs({ path: $$[$0-1] }); + +break; +case 2000: + + parser.suggestHdfs({ path: '' }); + +break; +case 2001: + + parser.suggestHdfs({ path: '' }); + +break; +case 2007: + + parser.suggestKeywords(['PRECEDING']); + +break; +case 2008: case 2013: + + parser.suggestKeywords(['ROW']); + +break; +case 2012: + + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + +break; +case 2014: + + parser.suggestKeywords(['FOLLOWING']); + +break; +case 2020: + + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 2021: + + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + +break; +case 2022: case 2027: +this.$ = { types: [ $$[$0-1].toUpperCase() ] }; +break; +case 2024: + + parser.valueExpressionSuggest(); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 2025: case 2026: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ] }; + +break; +case 2030: + + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ $$[$0-1].toUpperCase() ] }; + +break; +case 2031: + + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); + this.$ = { types: [ 'T' ] }; + +break; +case 2032: case 2033: + + parser.suggestKeywords(parser.getTypeKeywords()); + this.$ = { types: [ 'T' ] }; + +break; +case 2034: case 2040: +this.$ = { types: parser.findReturnTypes($$[$0-3]) }; +break; +case 2036: case 2041: case 2075: +this.$ = { types: parser.findReturnTypes($$[$0-4]) }; +break; +case 2037: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + keywords.push('ALL'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2038: case 2043: case 2078: + + parser.suggestValueExpressionKeywords($$[$0-2]); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2039: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + keywords.push('ALL'); + } + parser.suggestKeywords(keywords); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2042: + + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('ALL'); + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2044: + + if ($$[$0-1].cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + if ($$[$0-4].toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('ALL'); + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2061: + + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2062: + + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2063: + + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 2064: + + parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2065: + + parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2066: + + parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); + this.$ = { types: parser.findReturnTypes($$[$0-3]) }; + +break; +case 2067: + + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2068: + + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2069: + + parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2070: + + parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2071: + + if ($$[$0-3].types[0] === 'STRING') { + parser.suggestValueExpressionKeywords($$[$0-3], ['FROM']); + } else { + parser.suggestValueExpressionKeywords($$[$0-3]); + } + this.$ = { types: parser.findReturnTypes($$[$0-5]) }; + +break; +case 2072: + + if ($$[$0-2].types[0] === 'STRING') { + parser.suggestValueExpressionKeywords($$[$0-2], ['FROM']); + } else { + parser.suggestValueExpressionKeywords($$[$0-2]); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2077: + + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + var keywords = parser.getSelectListKeywords(true); + if (!$$[$0-2]) { + keywords.push('DISTINCT'); + keywords.push('ALL'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2079: + + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($$[$0-4], 1); + } + this.$ = { types: parser.findReturnTypes($$[$0-4]) }; + +break; +case 2105: + + parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'CREATE VIEW', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'GRANT USER', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); + +break; +case 2106: + + parser.addTablePrimary($$[$0]); + parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'CREATE VIEW', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); + +break; +case 2107: + + parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'DATABASES', 'FUNCTIONS', 'SCHEMAS', 'TABLES']); + +break; +case 2121: case 2138: case 2170: case 2172: case 2181: + + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 2125: + + if ($$[$0-1].isView) { + parser.suggestTables({ onlyViews: true }); + } else { + parser.suggestTables(); + } + parser.suggestDatabases({ + appendDot: true + }); + +break; +case 2126: + + if (parser.yy.result.suggestTables && $$[$0-1].isView) { + parser.yy.result.suggestTables.onlyViews = true; + } + +break; +case 2127: + + parser.addTablePrimary($$[$0]); + parser.suggestKeywords(['TABLE', 'VIEW']); + +break; +case 2129: +this.$ = { isView: true }; +break; +case 2131: + + parser.suggestKeywords([ 'ROLES' ]); + +break; +case 2132: + + parser.suggestKeywords([ 'CURRENT' ]); + +break; +case 2135: + + parser.suggestKeywords(['LIKE']); + +break; +case 2142: + + parser.addTablePrimary($$[$0-1]); + parser.suggestKeywords(['IN']); + +break; +case 2145: case 2148: + + parser.suggestKeywords(['FUNCTIONS']); + +break; +case 2146: case 2149: + + parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); + +break; +case 2147: case 2186: + + if (!$$[$0-1]) { + parser.suggestKeywords(['IN', 'LIKE']); + } else { + parser.suggestKeywords(['LIKE']); + } + +break; +case 2150: + + if (!$$[$0-2]) { + parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'LIKE', weight: 1 }]); + } else { + parser.suggestKeywords(['LIKE']); + } + +break; +case 2158: + + parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); + +break; +case 2159: + + parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); + +break; +case 2161: + + parser.suggestDatabases({ + appendDot: true + }); + parser.suggestTables(); + +break; +case 2175: + + parser.suggestKeywords(['GRANT']); + +break; +case 2192: + + if (!$$[$0-1] && !$$[$0-2]) { + parser.suggestKeywords([{ value: 'FROM', weight: 2 }, { value: 'WHERE', weight: 1 }]); + } else if (!$$[$0-1] && $$[$0-2]) { + var keywords = [{ value: 'FULL JOIN', weight: 2 }, { value: 'FULL OUTER JOIN', weight: 2 }, { value: 'JOIN', weight: 2 }, { value: 'LEFT JOIN', weight: 2 }, { value: 'LEFT OUTER JOIN', weight: 2 }, { value: 'RIGHT JOIN', weight: 2 }, { value: 'RIGHT OUTER JOIN', weight: 2 }, { value: 'INNER JOIN', weight: 2 }, { value: 'LEFT ANTI JOIN', weight: 2 }, { value: 'LEFT SEMI JOIN', weight: 2 }, { value: 'RIGHT ANTI JOIN', weight: 2 }, { value: 'RIGHT SEMI JOIN', weight: 2 }, { value: 'WHERE', weight: 1 }]; + if ($$[$0-2].suggestJoinConditions) { + parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); + } + if ($$[$0-2].suggestJoins) { + parser.suggestJoins($$[$0-2].suggestJoins); + } + if ($$[$0-2].suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 3)); + } + parser.suggestKeywords(keywords); + } else if (!$$[$0-1]) { + parser.suggestKeywords([ 'WHERE' ]); + } + +break; +case 2193: + + parser.suggestKeywords([ 'SET' ]); + +break; +case 2209: + + parser.suggestKeywords([ '=' ]); + +break; +case 2218: + + if (!parser.yy.cursorFound) { + parser.yy.result.useDatabase = $$[$0]; + } + +break; +case 2221: +this.$ = { inValueEdit: true }; +break; +case 2222: +this.$ = { inValueEdit: true, cursorAtStart: true }; +break; +case 2223: case 2224: case 2225: case 2226: case 2227: +this.$ = { suggestKeywords: ['NOT'] }; +break; +case 2233: case 2234: case 2235: case 2236: case 2237: + + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + this.$ = { types: ['BOOLEAN'] } + +break; +case 2238: case 2240: +this.$ = parser.findCaseType($$[$0-1]); +break; +case 2239: case 2242: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2241: + + parser.suggestValueExpressionKeywords($$[$0-1], ['END']); + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2243: +this.$ = parser.findCaseType($$[$0-2]); +break; +case 2244: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2245: + + if ($$[$0].toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + this.$ = parser.findCaseType($$[$0-2]); + +break; +case 2246: + + $$[$0-3].caseTypes.push($$[$0-1]); + this.$ = parser.findCaseType($$[$0-3]); + this.$.suggestFilters = $$[$0-1].suggestFilters + +break; +case 2247: + + parser.valueExpressionSuggest(); + this.$ = parser.findCaseType($$[$0-3]); + +break; +case 2248: + + parser.valueExpressionSuggest(); + this.$ = { types: [ 'T' ], typeSet: true }; + +break; +case 2249: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = $$[$0-1]; + +break; +case 2250: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { types: [ 'T' ] }; + +break; +case 2253: +this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; +break; +case 2254: + + $$[$0-1].caseTypes.push($$[$0]); + this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; + +break; +case 2258: + + parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); + +break; +case 2261: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; +break; +case 2262: +this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; +break; +case 2263: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; +break; +case 2264: case 2265: +this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; +break; +case 2266: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2267: + + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [$$[$0]] }; + +break; +case 2268: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2269: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2270: case 2272: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 2271: + + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + +break; +case 2273: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; + +break; +case 2274: + + parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2275: + + parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +case 2276: case 2277: case 2278: case 2279: + + parser.valueExpressionSuggest(); + this.$ = { caseTypes: [{ types: ['T'] }] }; + +break; +} +}, +table: [o($V0,$V1,{455:1,456:2}),{1:[3]},o($V2,$V3,{457:3,461:4,3:5,362:6,137:7,464:8,4:9,5:10,6:11,7:12,8:13,9:14,10:15,11:16,12:17,13:18,14:19,15:20,363:21,364:22,365:23,366:24,429:25,370:26,30:28,31:29,32:30,33:31,161:35,162:36,163:37,164:38,165:39,375:40,376:41,377:42,378:43,379:44,380:45,381:46,988:51,989:52,990:53,991:54,992:55,993:56,994:57,995:58,996:59,997:60,998:61,999:62,372:65,43:71,135:72,311:75,312:76,425:80,427:81,436:82,437:83,26:$V4,38:$V5,63:$V6,86:$V7,147:$V8,153:$V9,155:$Va,170:$Vb,306:$Vc,391:$Vd,392:$Ve,401:$Vf,413:$Vg,414:$Vh,417:$Vi,440:$Vj,451:$Vk,470:$Vl,814:$Vm,1000:$Vn,1015:$Vo,1029:$Vp}),{458:[1,86],462:[1,87]},o($V2,[2,824]),o($V2,[2,830]),o($V2,[2,831]),o($V2,[2,832]),{3:88,4:9,5:10,6:11,7:12,8:13,9:14,10:15,11:16,12:17,13:18,14:19,15:20,26:$V4,30:28,31:29,32:30,33:31,38:$V5,43:71,63:$V6,86:$V7,135:72,137:90,147:$V8,153:$V9,155:$Va,161:35,162:36,163:37,164:38,165:39,170:$Vb,306:$Vc,311:75,312:76,362:89,363:21,364:22,365:23,366:24,370:26,372:65,375:40,376:41,377:42,378:43,379:44,380:45,381:46,391:$Vd,392:$Ve,401:$Vf,413:$Vg,414:$Vh,417:$Vi,425:80,427:81,429:25,436:82,437:83,440:$Vj,451:$Vk,814:$Vm,988:51,989:52,990:53,991:54,992:55,993:56,994:57,995:58,996:59,997:60,998:61,999:62,1000:$Vn,1015:$Vo,1029:$Vp},o($V2,[2,1]),o($V2,[2,2]),o($V2,[2,3]),o($V2,[2,4]),o($V2,[2,5]),o($V2,[2,6]),o($V2,[2,7]),o($V2,[2,8]),o($V2,[2,9]),o($V2,[2,10]),o($V2,[2,11]),o($V2,[2,12]),o($V2,[2,613]),o($V2,[2,614]),o($V2,[2,615]),o($V2,[2,616]),o($Vq,$Vr,{430:91,816:92,818:93,746:$Vs}),{89:$Vt,372:97,413:$Vg,414:$Vh,425:80,427:81,429:95,436:82,437:83,440:$Vj},o([26,38,63,86,147,153,155,170,306,391,392,401,413,414,417,440,451,814,1000,1015,1029],[2,859]),o($V2,[2,25]),o($V2,[2,26]),o($V2,[2,27]),o($V2,[2,28]),{40:101,41:$Vu,64:$Vv,130:98,149:[1,99],151:[1,100],172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{154:[1,114]},{66:[1,115],158:[1,116]},o($V2,[2,231]),o($V2,[2,232]),o($V2,[2,233]),o($V2,[2,234]),o($V2,[2,235]),o($V2,[2,623]),o($V2,[2,624]),o($V2,[2,625]),o($V2,[2,626]),o($V2,[2,627]),o($V2,[2,628]),o($V2,[2,629]),{38:$VE,63:$VF,147:$VG,170:$VH,359:[1,117],403:118,412:$VI,413:$VJ,414:$VK},{38:$VE,63:$VF,147:$VG,170:$VH,359:[1,126],403:127,412:$VI,413:$VJ,414:$VK},o($VL,$VM,{779:128,143:[1,129],566:$VN,578:$VO}),{41:$Vu,64:$Vv,172:134,242:$Vw,254:$Vx,410:$Vy,411:$Vz,412:[1,133],416:$VA,467:106,468:$VB,469:$VC,987:132},o($V2,[2,2093]),o($V2,[2,2094]),o($V2,[2,2095]),o($V2,[2,2096]),o($V2,[2,2097]),o($V2,[2,2098]),o($V2,[2,2099]),o($V2,[2,2100]),o($V2,[2,2101]),o($V2,[2,2102]),o($V2,[2,2103]),o($V2,[2,2104]),{41:$Vu,64:$Vv,172:135,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC},{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,393:136,394:[2,702],395:137,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,873:144,905:138,907:139,908:140,919:141,920:142},o($V2,[2,756]),{452:[1,146]},{40:151,41:$Vu,58:150,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,803:149,1016:147,1022:148},o([41,64,73,89,138,146,179,180,224,236,241,242,254,361,391,410,411,416,468,469,472,473,474,478,482,492,493,507,508,523,565,568,569,585,591,603,630,633,640,718,719,720,721,727,744,749,750,753,754,757,758,759,769,956],$VQ,{420:152,412:$VR,549:$VS}),{40:157,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,821:155,823:156},{39:158,129:[1,159],141:[1,160],143:$VT,700:$VU},{26:[1,166],38:[1,165],44:[1,163],46:169,51:$VV,56:[1,164],63:[1,171],68:167,69:168,70:[1,170],73:$VW,84:175,110:172,111:$VX},{26:[1,177],56:[1,179],136:[1,178]},{142:[1,180]},{39:181,129:[2,1275],141:[1,183],143:$VT,171:182,315:[1,185],321:[1,186],359:[1,184],567:[1,187],700:$VU},o($V2,[2,515]),o($V2,[2,516]),{39:188,66:[1,192],129:[1,194],141:[1,195],143:$VT,158:[1,193],315:[1,189],321:[1,190],359:[1,191],700:$VU},{129:[1,196]},{50:[1,206],65:[1,197],71:[1,205],129:[1,209],149:[2,1273],170:[1,198],321:[1,213],359:[1,207],401:[1,204],478:[1,214],528:[1,199],538:[1,201],571:[1,202],694:[1,208],701:[1,211],731:[1,210],770:212,773:200,778:203},o($V2,[2,764]),{275:[1,216],414:[2,794],428:215,445:[1,217],446:[1,218]},o($VY,[2,775]),o($VY,[2,776]),{441:[1,219]},{441:[1,221],443:220,444:[1,222]},{1:[2,819]},o($V0,$V1,{456:223}),o($V2,[2,833]),o($V2,[2,834]),o($V2,[2,835]),o($Vq,[2,1455]),o($Vq,[2,1469],{818:224,746:$Vs}),o($VZ,[2,1471]),o([412,414,549],$V1,{456:225}),o($Vq,$Vr,{816:92,818:93,430:226,746:$Vs}),{137:227,306:$Vc,370:228,414:$Vh,429:25},o($V2,[2,757]),o($V2,$V_,{148:229,46:230,51:$VV}),{40:232,41:$Vu,64:$Vv,150:231,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,[2,203]),o($V$,[2,1340],{138:[1,233]}),o($V01,[2,1389]),{181:$V11,493:$V21},o($V01,[2,856]),o($V01,[2,857]),o($V01,[2,858]),o($V01,[2,849]),o($V01,[2,850]),o($V01,[2,851]),o($V01,[2,852]),o($V01,[2,853]),o($V01,[2,854]),o($V01,[2,855]),o($V2,[2,209],{40:101,172:102,467:106,130:236,41:$Vu,64:$Vv,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,468:$VB,469:$VC,493:$VD}),{40:101,41:$Vu,64:$Vv,130:237,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{66:[1,238]},{40:239,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{142:[1,240]},{142:[2,730]},{142:[2,731]},{142:[2,732]},{142:[2,733]},{142:[2,734]},{142:[2,735]},{89:$V31,142:$V41,156:241,252:242},{40:244,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{142:[1,245]},{40:101,41:$Vu,64:$Vv,130:246,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VL,$VM,{779:247,566:$VN,578:$VO}),o($VL,[2,1278]),o($VL,[2,1279]),{54:[1,248],138:[1,249]},o($V2,[2,2083]),o($V51,[2,2084]),o($V2,[2,2218]),{394:[1,250]},{394:[2,703]},o($V61,[2,1806]),o($V61,[2,1808],{832:251,912:252,480:$V71,526:$V81,581:$V91,597:$Va1,605:$Vb1,619:$Vc1,656:$Vd1,692:$Ve1,706:$Vf1}),o($V61,[2,1809]),o($Vg1,$Vh1,{172:102,467:106,902:262,40:263,97:264,302:266,775:267,41:$Vu,64:$Vv,136:$Vi1,179:$Vj1,180:$Vk1,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,468:$VB,469:$VC,493:$VD}),o($Vg1,$Vh1,{172:102,467:106,40:263,97:264,302:266,775:267,902:270,41:$Vu,64:$Vv,136:$Vi1,179:$Vj1,180:$Vk1,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,468:$VB,469:$VC,493:$VD}),o($Vl1,[2,1879]),o($Vl1,[2,1881]),o($Vm1,$Vn1,{873:144,825:271,920:272,926:273,89:$VP}),{453:[1,274]},{26:[1,275]},{26:[2,2197]},{26:[2,2199]},{26:[2,1396],40:276,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($Vo1,[2,1392],{138:[1,277]}),o($Vp1,[2,1489],{421:278,721:[1,279]}),o($Vq1,[2,1504]),o($Vq1,[2,1505]),o([89,413,414,440],[2,1491],{95:[1,280]}),o($Vr1,[2,1493]),{136:[1,281]},{40:282,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:101,41:$Vu,64:$Vv,130:283,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:101,41:$Vu,64:$Vv,130:284,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($Vs1,[2,1252]),o($Vs1,[2,1253]),o($Vt1,$Vu1,{45:285,117:$Vv1,591:$Vw1}),{57:[1,287]},o($VL,[2,100],{59:288,65:[1,289]}),{41:[1,291],65:[1,290],98:$Vx1,100:293,101:$Vy1,103:$Vz1,104:296,106:$VA1,109:$VB1,502:$VC1,625:$VD1},o($V2,[2,47]),o($V2,[2,48]),{26:[1,302],44:[1,303],69:301,73:$VW,84:175,110:172,111:$VX},{71:[1,304]},o($Vt1,$VE1,{126:305,65:[1,306],591:$VF1}),o($V2,[2,119]),{40:309,41:$Vu,60:308,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{89:[1,310]},{117:[1,311]},{117:[2,165]},{41:[1,312]},{137:313,306:$Vc,370:228,414:$Vh,429:25},{57:[1,314]},{143:[1,315]},o([41,64,242,254,410,411,416,458,462,468,469],$Vu1,{45:316,591:$Vw1}),{129:[1,317]},o($VL,$Vu1,{45:318,591:$Vw1}),{41:$Vu,64:$Vv,172:319,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC},o($VL,$Vu1,{45:320,591:$Vw1}),{315:[1,321]},{129:[2,1276]},o($VL,$VE1,{126:322,591:$VF1}),o($VL,$VE1,{126:323,591:$VF1}),{315:[1,324]},{41:$Vu,64:$Vv,172:325,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC},{40:101,41:$Vu,64:$Vv,130:326,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{66:[1,327]},o($VL,$VE1,{126:328,591:$VF1}),o($VL,$VE1,{126:329,591:$VF1}),o($VL,$VE1,{126:330,591:$VF1}),{66:[1,331]},{129:[1,333],141:[1,334],1012:332},{694:[1,335]},{208:[1,336]},{179:$Vj1,208:[2,1256],302:337},{594:[1,338]},{149:[1,339]},{359:$VG1,402:$VH1,406:340,750:$VI1},{40:151,41:$Vu,58:344,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{71:[1,345]},{401:[1,346]},o($V2,[2,2178]),{66:[1,347]},o($VJ1,$VK1,{783:348,594:$VL1}),{208:[2,1257]},{149:[2,1274]},{149:[2,1246]},{149:[2,1247]},{414:$Vh,429:350},{89:$VM1,431:351,447:352},{414:[2,795]},{414:[2,796]},o($VL,$VN1,{418:354,129:$VO1}),o($VL,$VN1,{418:356,129:$VO1}),o($VP1,[2,792]),o($VP1,[2,793]),o($V2,$V3,{461:4,3:5,362:6,137:7,464:8,4:9,5:10,6:11,7:12,8:13,9:14,10:15,11:16,12:17,13:18,14:19,15:20,363:21,364:22,365:23,366:24,429:25,370:26,30:28,31:29,32:30,33:31,161:35,162:36,163:37,164:38,165:39,375:40,376:41,377:42,378:43,379:44,380:45,381:46,988:51,989:52,990:53,991:54,992:55,993:56,994:57,995:58,996:59,997:60,998:61,999:62,372:65,43:71,135:72,311:75,312:76,425:80,427:81,436:82,437:83,457:357,26:$V4,38:$V5,63:$V6,86:$V7,147:$V8,153:$V9,155:$Va,170:$Vb,306:$Vc,391:$Vd,392:$Ve,401:$Vf,413:$Vg,414:$Vh,417:$Vi,440:$Vj,451:$Vk,470:$Vl,814:$Vm,1000:$Vn,1015:$Vo,1029:$Vp}),o($VZ,[2,1472]),{412:$VR,414:$VQ,420:358,549:$VS},o($Vq,[2,1456]),{91:[1,359]},{89:$Vt,414:$Vh,429:95},o($V2,[2,201]),o([275,414,445,446,458,462],[2,1297]),o($V2,[2,202]),o($VJ1,[2,1360]),{40:360,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{493:[1,361]},o($V01,[2,1391]),o($V2,[2,210]),o([458,462,732],$V41,{252:242,156:362,89:$V31}),{40:101,41:$Vu,64:$Vv,130:363,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{57:[1,364]},{129:$VQ1,143:$VR1,404:365,410:$VS1,411:$VT1},{142:[2,736]},o([51,71,142,275,414,445,446,458,462,732],[2,1324]),{40:309,41:$Vu,60:371,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,790:370},{394:[1,372]},{129:$VQ1,143:$VR1,404:373,410:$VS1,411:$VT1},o($V2,[2,1448]),{40:232,41:$Vu,64:$Vv,150:374,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{41:$Vu,62:375,64:$Vv,97:378,138:$VU1,146:$VV1,172:376,179:$Vj1,180:$Vk1,223:382,242:$Vw,254:$Vx,302:266,361:$VW1,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,474:$VX1,569:$VY1,744:$VZ1,749:$V_1,775:267,801:377,893:$V$1,898:385,899:386},{41:$Vu,64:$Vv,172:390,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC},{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,395:391,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,873:144,905:138,907:139,908:140,919:141,920:142},o($V61,[2,1812],{912:392,480:$V71,526:$V81,581:$V91,597:$Va1,605:$Vb1,619:$Vc1,656:$Vd1,692:$Ve1,706:$Vf1}),o($V02,$V12,{913:393,445:$V22,501:$V32}),o($V42,[2,1831]),{605:[1,396]},{605:[1,397]},{605:[1,398]},{605:[1,399]},{605:[1,400]},{605:[1,401],656:[1,402]},{480:[1,404],597:[1,405],605:[1,403],656:[1,406],706:[1,407]},{480:[1,409],597:[1,410],605:[1,408],656:[1,411],706:[1,412]},o($V52,$V62,{157:413,732:$V72}),o($Vg1,[2,1914]),o($Vg1,[2,1915]),{40:415,41:$Vu,64:$Vv,97:416,172:102,179:$Vj1,180:$Vk1,242:$Vw,254:$Vx,302:266,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,775:267},o($V82,[2,1269]),o($V82,[2,1270]),{179:[1,418],181:[1,417]},{180:[1,420],181:[1,419]},o($V52,$V62,{157:421,732:$V72}),{91:[1,422]},{40:263,41:$Vu,64:$Vv,91:$Vh1,97:264,136:$Vi1,172:102,179:$Vj1,180:$Vk1,242:$Vw,254:$Vx,302:266,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,775:267,902:423},{137:431,306:$Vc,370:228,414:$Vh,429:25,928:424,930:425,932:426,934:427,936:428,938:429,940:430},{207:432,589:$V92},{40:309,41:$Vu,60:439,64:$Vv,172:102,242:$Vw,254:$Vx,358:437,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,805:438,1017:434,1024:435,1026:436},{26:[2,1397]},{40:440,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:443,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,422:441,467:106,468:$VB,469:$VC,472:$Vh2,473:$Vi2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,901:442,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vp1,[2,1490]),{40:157,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,823:503},{89:[1,504]},{26:[1,505]},o([26,38,44,51,56,63,70,73,111],[2,161]),o([26,56,136],[2,190]),{46:506,50:[1,507],51:$VV},{224:[1,508]},{40:151,41:$Vu,58:509,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:309,41:$Vu,60:510,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VL,[2,101]),{66:[1,511]},{42:512,359:$VM2,750:$VN2},{99:515,288:$VO2,289:$VP2,290:$VQ2,291:$VR2,292:$VS2,293:$VT2,294:$VU2},o($V2,[2,113]),{89:$VV2,102:523},{89:$VV2,102:525},o($V2,$VW2,{105:526,800:527,306:$VX2}),{107:[1,529]},o($V2,[2,118]),{207:530,589:$V92},{594:[1,531]},o($V2,[2,49]),{98:$Vx1,100:293,101:$Vy1,103:$Vz1,104:296,106:$VA1,109:$VB1,502:$VC1,625:$VD1},{117:$Vv1},o($V2,[2,50]),{46:532,50:[1,533],51:$VV},{40:309,41:$Vu,60:534,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{565:[1,535]},{40:309,41:$Vu,60:537,64:$Vv,112:536,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VY2,[2,1421],{475:[1,538]}),{40:309,41:$Vu,60:541,64:$Vv,122:539,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,798:540},{89:$VZ2,118:542},{42:544,359:$VM2,750:$VN2},o($V2,[2,178]),{40:545,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:546,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,[2,241],{467:106,172:547,41:$Vu,64:$Vv,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,468:$VB,469:$VC}),o($VL,$Vu1,{45:548,591:$Vw1}),{40:550,41:$Vu,64:$Vv,172:102,202:549,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,[2,610]),{40:550,41:$Vu,64:$Vv,172:102,202:551,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VL,$Vu1,{45:552,591:$Vw1}),{40:553,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:550,41:$Vu,64:$Vv,172:102,202:554,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VL,$VE1,{126:555,591:$VF1}),o($V2,[2,658]),o($V2,[2,659]),{40:101,41:$Vu,64:$Vv,130:556,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:101,41:$Vu,64:$Vv,130:557,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:101,41:$Vu,64:$Vv,130:558,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:101,41:$Vu,64:$Vv,130:559,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:151,41:$Vu,58:560,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:151,41:$Vu,58:561,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VL,[2,2128]),o($VL,[2,2129]),o($V2,[2,2130]),{179:$Vj1,302:562},o($V2,[2,2134]),{40:151,41:$Vu,58:563,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o([208,458,462],$VK1,{783:564,594:$VL1}),{40:565,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VL,[2,1258]),o($VL,[2,1259]),o($VL,[2,1260]),o($V2,[2,2168]),{40:151,41:$Vu,58:566,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{402:[1,567]},{40:151,41:$Vu,58:568,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,[2,2183],{302:569,179:$Vj1,208:[1,570]}),{27:[1,575],40:232,41:$Vu,64:$Vv,150:571,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:[1,574],782:572,787:576,788:573},o($V2,$Vr,{816:92,818:93,430:577,746:$Vs}),o($V2,[2,767],{95:[1,578]}),o($V_2,[2,797]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:580,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,449:579,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:101,41:$Vu,64:$Vv,130:581,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VL,[2,759]),{40:101,41:$Vu,64:$Vv,130:582,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,[2,825]),{414:$Vh,429:583},o($Vq,$Vr,{816:92,818:93,430:584,746:$Vs}),o($V$,[2,1341],{794:585,796:586,138:$V$2}),o($V01,[2,1390]),o($V2,$V62,{157:588,732:$V72}),o($V2,$V_,{46:230,148:589,51:$VV}),{402:[1,590]},{57:[1,591]},{40:592,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:101,41:$Vu,64:$Vv,130:593,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:594,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:595,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{91:[1,596],95:[1,597]},o($V03,[2,1329]),{402:[1,598]},{394:[1,599]},o($V2,[2,1449]),o($V2,[2,2082]),o($V2,[2,2086]),o($V2,[2,2087],{467:106,172:600,41:$Vu,64:$Vv,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,468:$VB,469:$VC}),o($V2,[2,2089]),o($V2,[2,2090]),o($V2,[2,2091]),o($V2,[2,2092]),o($V13,[2,1753]),{138:$VU1,223:601,361:$VW1,749:$V_1,898:385,899:386},{138:$VU1,223:602,361:$VW1,749:$V_1,898:385,899:386},o($V23,[2,1761]),o($V23,[2,1762]),o($V23,[2,1763],{138:[1,603]}),{361:[1,604],749:[1,605]},{361:[1,606]},o($V51,[2,2085]),o($V2,$V33,{396:607,846:608,764:$V43}),o($V02,$V12,{913:610,445:$V22,501:$V32}),{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,873:144,907:611,919:141,920:142},o($V02,[2,1820]),o($V02,[2,1821]),o($V42,[2,1832]),o($V42,[2,1833]),o($V42,[2,1834]),o($V42,[2,1835]),o($V42,[2,1836]),o($V42,[2,1837]),{605:[1,612]},o($V42,[2,1839]),{605:[1,613]},{605:[1,614]},{605:[1,615]},{605:[1,616]},o($V42,[2,1844]),{605:[1,617]},{605:[1,618]},{605:[1,619]},{605:[1,620]},o($V52,[2,1873]),{923:[1,621]},o($Vg1,[2,1916]),o($Vg1,[2,1917]),{179:[1,622]},o($V53,[2,1264]),{180:[1,623]},o($V63,[2,1267]),o($V52,[2,1874]),o($V73,[2,1893]),{91:[1,624]},{91:[2,1897]},{91:[2,1899]},{91:[2,1901]},{91:[2,1903]},{91:[2,1905]},{91:[2,1907]},{91:[2,1909]},{91:[2,1911]},{441:[2,817],444:[1,626],454:625},{981:[1,627]},o($V83,[2,2214],{1018:628,95:[1,629],394:[1,630]}),o($V93,[2,2201]),{54:[1,631]},{54:[2,2211]},o($Va3,[2,1400],{138:[1,632]}),o($Vb3,[2,1403]),o($Vo1,[2,1393]),o($VZ,[2,1466],{815:633,827:635,95:[1,634],394:[1,636]}),o($Vc3,[2,1784]),o($Vc3,$Vh1,{172:102,467:106,40:263,97:264,302:266,775:267,902:637,874:651,41:$Vu,54:$Vd3,64:$Vv,136:$Vi1,144:$Ve3,179:$Vj1,180:$Vk1,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,242:$Vw,254:$Vx,277:$Vj3,410:$Vy,411:$Vz,416:$VA,468:$VB,469:$VC,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,493:$VD,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($Vc3,[2,1780]),o($Vv3,[2,1606]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:657,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:658,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:659,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:660,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{89:$VP,873:661},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:662,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:664,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,762:$Vw3,769:$VK2,775:482,805:460,875:663,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486,1030:665,1032:666},o($Vx3,[2,1735]),o($Vx3,[2,1736],{884:668,89:$Vy3}),{89:$Vy3,884:670},o($Vx3,[2,1739]),o($Vx3,[2,1740]),o($Vx3,[2,1741]),o($Vx3,[2,1756]),o($Vz3,[2,1748],{138:[1,671]}),{89:[2,1939]},{89:[2,1940]},{89:[2,1941]},{89:[2,1942]},{89:[2,1943]},{89:[2,1944]},{89:[2,1945]},o($Vx3,[2,1962],{943:672,945:673,657:$VA3}),{657:$VA3,945:675},o($Vx3,[2,1925]),o($Vx3,[2,1926]),{138:$VU1,223:382,361:$VW1,474:$VX1,749:$V_1,801:676,893:$V$1,898:385,899:386},o($Vx3,[2,1758]),o($Vx3,[2,1759]),o($VB3,[2,1951]),o($VB3,[2,1952]),o($VB3,[2,1953]),{89:[1,677]},{89:[1,678]},{89:[1,679]},o($Vx3,[2,1770]),o($Vx3,[2,1771]),o($Vx3,[2,1772]),{89:[1,680]},{89:[1,681]},{89:[1,682]},o($Vx3,[2,1775]),o($Vx3,[2,1776]),{89:[2,2045]},{89:[2,2046]},{89:[2,2047]},{89:[2,2048]},{89:[2,2049]},{89:[2,2050]},{89:[2,2051]},{89:[2,2052]},{89:[2,2053]},{89:[2,2054]},{89:[2,2055]},{89:[2,2056]},{89:[2,2057]},{89:[2,2058]},o($Vr1,[2,1494]),o($Vm1,$Vn1,{926:273,825:683}),{41:[1,684]},o($VC3,$VD3,{47:685,100:686,625:$VD1}),{51:[1,687],53:[1,688]},{565:[1,689]},o($V2,[2,42]),{26:[1,690],63:[1,691]},{40:309,41:$Vu,60:692,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:693,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VL,[2,1261]),o($VL,[2,1262]),o($V2,[2,112]),o($VE3,[2,473]),o($VE3,[2,474]),o($VE3,[2,475]),o($VE3,[2,476]),o($VE3,[2,477]),o($VE3,[2,478]),o($VE3,[2,479]),o($V2,[2,114]),{97:696,179:$Vj1,180:$Vk1,182:694,183:695,302:266,775:267},o($V2,[2,115]),o($V2,[2,116]),o($VF3,[2,1385]),{690:[1,697]},{108:698,295:$VG3},o([51,101,109,136,343,344,347,360,458,462,502],[2,1375]),{97:700,179:$Vj1,180:$Vk1,302:266,775:267},o($V2,[2,145]),o($V2,[2,146],{51:[1,701],53:[1,702]}),o($V2,[2,149]),o([41,50,51,64,242,254,410,411,416,468,469,493],[2,1287]),o($V2,[2,120]),{214:703,226:704,227:705,228:706,229:707,230:708,231:709,232:710,236:$VH3,241:$VI3,242:$VJ3,497:$VK3,499:$VL3,509:$VM3,542:$VN3,550:$VO3,574:$VP3,600:$VQ3,674:$VR3,710:$VS3,722:$VT3,734:$VU3,737:$VV3,756:$VW3},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:727,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,476:[1,728],478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{91:[1,729],95:[1,730]},o($V03,[2,1362]),{54:[1,731]},o($V2,[2,134]),{40:309,41:$Vu,60:537,64:$Vv,112:733,172:102,210:732,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:734,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,[2,179],{138:[1,735]}),{144:[1,736]},o([458,462,625],$VX3,{173:737,174:738,177:739,86:$VY3}),{40:550,41:$Vu,64:$Vv,172:102,184:741,187:742,202:743,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VZ3,[2,600],{309:744,355:745,89:[1,746]}),o($V_3,[2,1355],{138:[1,747]}),{89:$V$3,316:748},{40:550,41:$Vu,64:$Vv,172:102,202:750,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,[2,1283],{388:751,505:[1,752],691:[1,753]}),{89:$V$3,316:754},{40:550,41:$Vu,64:$Vv,172:102,202:755,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{46:756,51:$VV},o($V2,[2,677],{389:757,390:[1,758]}),o($V2,[2,679]),o($V2,[2,685]),o($V2,[2,2119]),o($V2,[2,2123]),o($V2,[2,2133]),o($V2,$V_,{46:230,148:759,51:$VV}),o($V2,[2,2143],{208:[1,760]}),o($V2,[2,2151],{142:[1,761]}),o($V2,[2,2169]),{41:$Vu,64:$Vv,172:762,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC},o($V2,[2,2179]),o($V2,[2,2184]),{179:$Vj1,302:763},o($VJ1,[2,1294]),o($VJ1,[2,1295]),o($VJ1,[2,1361]),{181:$V11,493:$V21,774:[1,764]},o($VJ1,[2,1316]),o($VJ1,[2,1317]),o($V2,[2,766]),{89:$VM1,447:765},{91:[1,766],95:$V04},o($V14,[2,1720],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($VY,$V41,{252:242,156:768,89:$V31}),o([51,275,414,445,446],$V41,{252:242,156:769,89:$V31}),o($VZ,[2,1477]),o($Vq,[2,1457]),o($V$,[2,1342],{796:770,138:$V$2}),o($V24,[2,1347]),{40:771,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,[2,215]),o($V2,[2,216]),{40:772,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:773,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,359:$VG1,402:$VH1,406:774,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,750:$VI1},o($V34,[2,723]),o($V34,[2,724]),o($V34,[2,725]),o($V34,[2,726]),o([51,71,86,89,91,101,106,109,136,142,275,287,306,360,414,445,446,458,462,502,625,732],[2,1326]),{40:309,41:$Vu,60:775,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:776,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:777,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,359:$VG1,402:$VH1,406:778,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,750:$VI1},o($V2,[2,2088]),o($V13,[2,1754]),o($V13,[2,1755]),o($V23,[2,1764],{361:[1,779],749:[1,780]}),o($V23,[2,1766]),{361:[1,781]},o($V23,[2,1767]),o($V2,[2,693]),o($V44,[2,1529]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:783,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,851:782,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,873:144,907:784,919:141,920:142},o($V54,$V64,{914:785,142:$V74,751:$V84}),o($V42,[2,1838]),o($V42,[2,1840]),o($V42,[2,1841]),o($V42,[2,1842]),o($V42,[2,1843]),o($V42,[2,1845]),o($V42,[2,1846]),o($V42,[2,1847]),o($V42,[2,1848]),{89:[1,788]},o($V53,[2,1263]),o($V63,[2,1266]),o($V73,[2,1894]),{441:[1,789]},{441:[2,818]},{982:[1,790]},o($V2,$V33,{846:608,396:791,764:$V43}),{40:309,41:$Vu,60:439,64:$Vv,172:102,242:$Vw,254:$Vx,358:437,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,805:438,1024:792,1026:436},{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,395:793,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,873:144,905:138,907:139,908:140,919:141,920:142},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:795,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486,1027:794},{40:309,41:$Vu,60:797,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,473:[1,796],493:$VD},o($VZ,[2,1467]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:443,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,473:$Vi2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,901:798,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($V44,$V33,{846:608,828:799,396:800,764:$V43}),{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,395:802,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,834:801,873:144,905:138,907:139,908:140,919:141,920:142},o($Vc3,[2,1779]),o($V94,[2,1777],{871:803,224:[1,804]}),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:805,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:806,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:807,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:808,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{208:$Vf3,496:[1,810],593:$Vp3,594:[1,809],604:$Vr3,679:$Vt3,693:$Vu3,874:811},{89:[1,812]},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:813,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:814,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:815,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:816,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:817,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:818,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vv3,[2,1633]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:819,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:820,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:821,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:822,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:823,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Va4,[2,1607],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,484:$Vn3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($Va4,[2,1608],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,484:$Vn3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($Va4,[2,1609],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,484:$Vn3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($Vb4,[2,1610],{874:651}),o($Vv3,[2,1616]),{54:$Vd3,91:[1,824],144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3,874:651},o($Vv3,[2,1635]),{54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3,762:$Vw3,874:651,875:825,1030:665,1032:666},{554:[1,827],556:[1,826],762:$Vw3,1032:828},o($Vc4,[2,2253]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:829,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vx3,[2,1737]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,91:[1,830],138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:580,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,449:831,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vx3,[2,1738]),{40:309,41:$Vu,60:797,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,473:[1,832],493:$VD},o($Vx3,[2,1923]),o($Vx3,[2,1963]),{40:833,41:$Vu,64:$Vv,89:[1,835],172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,963:834},o($Vx3,[2,1924]),{41:$Vu,64:$Vv,172:836,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,91:[1,837],138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:580,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,449:838,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,91:[1,840],138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:839,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,91:[1,842],138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:841,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vd4,$VQ,{420:845,91:[1,844],412:$VR,473:[1,843],549:$VS}),o($Vd4,$VQ,{420:846,91:[1,847],412:$VR,549:$VS}),o([41,64,73,89,91,138,146,179,180,224,236,241,242,254,361,391,410,411,416,468,469,472,474,478,482,492,493,507,508,523,565,568,569,585,591,603,630,633,640,718,719,720,727,744,749,750,753,754,757,758,759,769,956],$VQ,{420:848,412:$VR,549:$VS}),{91:[1,849]},{42:850,359:$VM2,750:$VN2},o($Ve4,[2,166],{48:851,132:852,133:853,46:854,51:$VV}),o([51,101,109,136,360,458,462,502],[2,1374]),{52:855,55:856,138:$VU1,179:$Vj1,180:$Vk1,223:473,302:481,361:$VW1,569:$Vs2,744:$VD2,749:$V_1,775:482,894:459,896:474,898:385,899:386,900:483},{54:[1,857]},o([41,50,51,64,242,254,410,411,416,458,462,468,469,493],[2,1290]),{61:858,64:[1,862],85:[1,859],86:[1,860],87:[1,861],88:[1,863]},{64:[1,864]},{67:865,89:[1,866]},o($V2,[2,46]),{91:[1,867],95:[1,868]},o($V03,[2,260]),{54:[1,869]},{54:[1,870]},o($V2,[2,117]),o($Vf4,[2,483],{296:871,300:[1,872]}),o([101,136,306,360,458,462],[2,1382]),{52:873,55:856,138:$VU1,179:$Vj1,180:$Vk1,223:473,302:481,361:$VW1,569:$Vs2,744:$VD2,749:$V_1,775:482,894:459,896:474,898:385,899:386,900:483},{54:[1,874]},o($Vg4,[2,309],{215:875,218:876,219:877,221:878,177:885,64:$Vh4,85:$Vi4,86:$VY3,87:$Vj4,88:$Vk4,146:$Vl4,224:$Vm4,253:$Vn4}),o($Vo4,[2,327]),o($Vo4,[2,328]),o($Vo4,[2,329]),o($Vo4,[2,330]),o($Vo4,[2,331]),o($Vo4,[2,332]),o($Vo4,[2,333]),o($Vp4,[2,1430]),o($Vp4,[2,1431]),o($Vp4,[2,1432]),o($Vp4,[2,1433]),o($Vp4,[2,1434]),o($Vp4,[2,1435]),o($Vp4,[2,1436]),o($Vp4,[2,1437]),o($Vp4,[2,1438]),o($Vp4,[2,1445],{812:887,89:[1,888]}),o($Vp4,$Vq4,{813:889,89:$Vr4}),o($Vp4,$Vq4,{813:891,89:$Vr4}),o($Vp4,[2,1442]),{237:[1,892]},{237:[1,893]},{237:[1,894]},{54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,476:[1,895],479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3,874:651},o($VY2,[2,1423]),o([26,44,51,73,109,111,275,414,445,446,458,462,502,625],[2,1299]),{40:309,41:$Vu,60:541,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,798:896},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:897,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{91:[1,898],95:[1,899]},o($V03,[2,295]),o($V2,[2,177]),{40:900,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{97:902,145:901,146:[1,903],179:$Vj1,180:$Vk1,302:266,775:267},o($V2,[2,242]),o($V2,$VD3,{100:686,47:904,625:$VD1}),o([91,95,101,106,109,136,238,287,306,360,458,462,502,625],[2,252]),{97:905,179:$Vj1,180:$Vk1,302:266,775:267},o($V2,[2,611],{185:906,360:[1,907]}),o($Vs4,[2,383],{188:908,255:909,51:[1,911],256:[1,910]}),o($Vt4,[2,282],{203:912,118:913,89:$VZ2,206:[1,914],208:[1,915]}),{86:$VY3,136:$VX3,174:916,177:739},o($VZ3,[2,601]),{40:309,41:$Vu,60:439,64:$Vv,172:102,242:$Vw,254:$Vx,356:917,358:918,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,805:438},{40:919,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{317:920,342:$Vu4},{91:[1,922],226:924,338:923,497:$VK3,499:$VL3,509:$VM3,542:$VN3,550:$VO3,574:$VP3,600:$VQ3,674:$VR3,710:$VS3,722:$VT3,734:$VU3,737:$VV3,756:$VW3},{89:$V$3,316:925},o($V2,[2,637]),o($V2,[2,1284]),o($V2,[2,1285]),o($V2,[2,644]),{89:$V$3,316:926},o($V2,[2,660]),o($V2,[2,671]),o($V2,[2,678]),o($V2,[2,2136]),{97:927,179:$Vj1,180:$Vk1,302:266,775:267},{129:[1,930],143:[1,928],410:[1,929],411:[1,931]},o($V2,[2,2174]),o($V2,[2,2185]),o($VJ1,[2,1320]),o($V_2,[2,798]),o($V_2,[2,803]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:932,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($VY,[2,779]),o($VY,$V_,{46:230,148:933,51:$VV}),o($V24,[2,1348]),o($V24,[2,1353]),o($V2,[2,707]),o($V2,$Vv4,{405:934,306:$Vw4}),{40:936,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V03,[2,1330]),o($V2,[2,744]),o($V2,[2,745]),{40:937,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V23,[2,1765]),{361:[1,938]},o($V23,[2,1768]),o($V44,[2,1530]),o($V44,[2,1604],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($V54,$V64,{914:939,142:$V74,751:$V84}),o($V54,[2,1815]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:940,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{89:[1,941]},{361:[1,942]},{129:[1,943]},o([51,86,101,106,109,136,256,268,287,306,343,344,347,360,441,444,458,462,502,625],[2,1996]),o($V2,[2,2187]),o($V93,[2,2202]),o($V83,[2,2215]),o($V93,[2,2207]),o($V93,[2,2212],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($Va3,[2,1401]),o($Vb3,[2,1404]),o($Vc3,[2,1785]),o($VZ,[2,1506]),o($Vx4,[2,1533],{836:944,847:945,402:[1,946]}),o([91,360,402,458,462,588,621,654,746,764,870],[2,1513],{95:[1,947]}),o($Vy4,[2,1799]),{146:[1,948],549:[1,952],569:[1,950],744:[1,949],872:[1,951]},o($V94,[2,1778]),o($Vz4,[2,1618],{874:651,144:$Ve3,208:$Vf3,473:$Vk3,474:$Vl3,484:$Vn3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($Vz4,[2,1619],{874:651,144:$Ve3,208:$Vf3,473:$Vk3,474:$Vl3,484:$Vn3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($Vz4,[2,1620],{874:651,144:$Ve3,208:$Vf3,473:$Vk3,474:$Vl3,484:$Vn3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($Vz4,[2,1621],{874:651,144:$Ve3,208:$Vf3,473:$Vk3,474:$Vl3,484:$Vn3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),{89:[1,953]},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:954,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vv3,[2,1634]),o($Vm1,$Vn1,{172:102,467:106,926:273,40:309,898:385,899:386,60:439,222:445,55:453,883:454,885:455,886:456,887:458,894:459,805:460,942:468,944:469,946:470,947:471,223:473,896:474,957:475,958:476,959:477,302:481,775:482,900:483,984:486,273:580,825:955,449:956,41:$Vu,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,179:$Vj1,180:$Vk1,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,956:$VL2}),o([41,50,64,91,95,136,179,180,242,254,360,394,402,410,411,416,458,462,468,469,476,479,480,487,493,496,526,546,554,556,581,588,597,605,619,621,645,653,654,656,692,697,706,733,746,762,764,870],[2,1627],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,484:$Vn3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($VA4,[2,1628],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($VA4,[2,1629],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($Vb4,[2,1630],{874:651,144:$Ve3,208:$Vf3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($Vb4,[2,1631],{874:651,144:$Ve3,208:$Vf3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($Vb4,[2,1632],{874:651,144:$Ve3,208:$Vf3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),o($Vb4,[2,2223],{874:651}),o($Vb4,[2,2224],{874:651}),o($Vb4,[2,2225],{874:651}),o($Vb4,[2,2226],{874:651}),o($Vb4,[2,2227],{874:651}),o($Vv3,[2,1617]),o($Vv3,[2,1636]),o($Vv3,[2,2238]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:957,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vc4,[2,2254]),{54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3,733:[1,958],874:651},o($Vx3,[2,1946]),{91:[1,959],95:$V04},o($Vz3,[2,1749]),o($Vx3,[2,1965]),o($Vx3,[2,1966]),o($VB4,[2,1973],{965:960,969:961,51:[1,962]}),o($Vx3,[2,1751]),{657:[2,1957]},{91:[1,963],95:$V04},{54:$Vd3,136:[1,964],144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3,874:651},o($Vx3,[2,2023]),{54:$Vd3,95:[1,967],144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,394:[1,966],473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3,874:651,985:965},o($Vx3,[2,2060]),{91:[1,968]},o($VB3,[2,2035]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:580,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,449:969,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:970,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($VB3,[2,2076]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,91:[1,971],138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:580,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,449:972,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vr1,[2,1499]),{40:973,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,$VC4,{49:974,104:975,109:$VD4,502:$VC1}),o($Ve4,[2,167],{46:854,133:977,51:$VV}),o($VC3,[2,168]),o($VC3,$VD3,{100:686,47:978,625:$VD1}),o($V2,[2,40]),{54:$VE4,237:$VF4,238:$VG4,277:$VH4,784:979},{55:984,138:$VU1,179:$Vj1,180:$Vk1,223:473,302:481,361:$VW1,569:$Vs2,744:$VD2,749:$V_1,775:482,894:459,896:474,898:385,899:386,900:483},{41:$Vu,62:985,64:$Vv,97:378,138:$VU1,146:$VV1,172:376,179:$Vj1,180:$Vk1,223:382,242:$Vw,254:$Vx,302:266,361:$VW1,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,474:$VX1,569:$VY1,744:$VZ1,749:$V_1,775:267,801:377,893:$V$1,898:385,899:386},o($VI4,[2,95]),o($VI4,[2,96]),o($VI4,[2,97]),o($VI4,[2,98]),o($VI4,[2,99]),o($V2,[2,44]),o($V2,[2,45]),{90:986,94:987,97:988,179:$Vj1,180:$Vk1,302:266,775:267},o($VJ4,[2,259]),{97:696,179:$Vj1,180:$Vk1,183:989,302:266,775:267},{55:990,138:$VU1,179:$Vj1,180:$Vk1,223:473,302:481,361:$VW1,569:$Vs2,744:$VD2,749:$V_1,775:482,894:459,896:474,898:385,899:386,900:483},{138:$VU1,223:382,361:$VW1,474:$VX1,749:$V_1,801:991,893:$V$1,898:385,899:386},o($VK4,[2,489],{297:992,304:[1,993]}),{301:[1,994]},o($V2,[2,147]),{55:995,138:$VU1,179:$Vj1,180:$Vk1,223:473,302:481,361:$VW1,569:$Vs2,744:$VD2,749:$V_1,775:482,894:459,896:474,898:385,899:386,900:483},o($Vg4,[2,305]),o($Vg4,[2,310],{221:878,177:885,219:996,64:$Vh4,85:$Vi4,86:$VY3,87:$Vj4,88:$Vk4,146:$Vl4,224:$Vm4,253:$Vn4}),o($VL4,[2,311]),o($VL4,[2,317]),{41:$Vu,64:$Vv,172:997,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC},{41:$Vu,64:$Vv,172:998,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:999,223:473,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,508:$Vo2,523:$Vp2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{138:$VU1,223:1000,361:$VW1,749:$V_1,898:385,899:386},{146:[1,1001]},o($VL4,[2,323]),o($VL4,[2,324]),{254:[1,1002]},o($Vp4,[2,1439]),{361:[1,1003]},o($Vp4,[2,1440]),{361:[1,1004]},o($Vp4,[2,1441]),{214:1005,226:704,227:705,228:706,229:707,230:708,231:709,232:710,236:$VH3,238:[1,1006],241:$VI3,242:$VJ3,497:$VK3,499:$VL3,509:$VM3,542:$VN3,550:$VO3,574:$VP3,600:$VQ3,674:$VR3,710:$VS3,722:$VT3,734:$VU3,737:$VV3,756:$VW3},{226:1007,238:[1,1008],497:$VK3,499:$VL3,509:$VM3,542:$VN3,550:$VO3,574:$VP3,600:$VQ3,674:$VR3,710:$VS3,722:$VT3,734:$VU3,737:$VV3,756:$VW3},{40:1012,41:$Vu,64:$Vv,172:102,238:[1,1010],242:$Vw,243:1009,245:1011,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VY2,[2,1422]),o($V03,[2,1363]),o($V03,[2,1368],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($Vt4,[2,290]),{40:309,41:$Vu,60:537,64:$Vv,112:1014,172:102,211:1013,221:1015,242:$Vw,253:$Vn4,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,[2,180]),o($V2,[2,193]),o($V2,[2,199]),o($V2,[2,200]),o($V2,[2,248]),o([64,85,86,87,88,91,95,101,106,109,136,146,224,238,253,287,306,360,458,462,502,625],[2,253]),o($V2,[2,263]),{361:[1,1016]},o($VM4,[2,416],{189:1017,267:1018,268:[1,1019]}),o($Vs4,[2,384]),{257:[1,1020]},{257:[1,1021]},o($Vt4,[2,279]),o($Vt4,[2,283]),{207:1022,589:$V92},{40:101,41:$Vu,64:$Vv,130:1023,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{136:[1,1024]},{91:[1,1025],95:[1,1026]},o($V03,$VX3,{177:739,174:1027,86:$VY3}),o($V_3,[2,1356]),{100:1028,625:$VD1},{226:1029,497:$VK3,499:$VL3,509:$VM3,542:$VN3,550:$VO3,574:$VP3,600:$VQ3,674:$VR3,710:$VS3,722:$VT3,734:$VU3,737:$VV3,756:$VW3},o($VN4,[2,561]),{91:[2,571],95:[1,1031],339:1030,341:[1,1032]},o($VO4,[2,565]),{317:1033,342:$Vu4},o($V2,[2,645]),o($V2,[2,2144]),{40:1034,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V2,[2,2153]),{40:101,41:$Vu,64:$Vv,130:1035,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{40:1036,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($V14,[2,1721],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($VY,[2,785]),o($V2,[2,708]),{401:[1,1037]},o($V2,$Vv4,{405:1038,306:$Vw4}),o($V2,[2,746]),o($V23,[2,1769]),o($V54,[2,1816]),o($V54,[2,1867],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),{40:1040,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,918:1039},{91:[1,1041]},{40:101,41:$Vu,64:$Vv,130:1042,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},o($VP4,[2,2017],{837:1043,848:1044,588:[1,1045]}),o($Vx4,[2,1534]),{257:[1,1046]},{40:101,41:$Vu,64:$Vv,89:$VP,130:143,172:102,242:$Vw,254:$Vx,395:1047,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,873:144,905:138,907:139,908:140,919:141,920:142},o($Vv3,[2,1611]),o($Vv3,[2,1612]),o($Vv3,[2,1613]),o($Vv3,[2,1614]),{394:[1,1048]},o($Vm1,$Vn1,{172:102,467:106,926:273,40:309,898:385,899:386,60:439,222:445,55:453,883:454,885:455,886:456,887:458,894:459,805:460,942:468,944:469,946:470,947:471,223:473,896:474,957:475,958:476,959:477,302:481,775:482,900:483,984:486,273:580,825:1049,449:1050,41:$Vu,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,179:$Vj1,180:$Vk1,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,956:$VL2}),o($Va4,[2,1626],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,484:$Vn3,593:$Vp3,594:$Vq3,604:$Vr3,679:$Vt3,693:$Vu3}),{91:[1,1051]},{91:[1,1052],95:$V04},{54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,556:[1,1053],593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3,874:651},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1054,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vx3,[2,1947]),{91:[2,1979],654:$VQ4,849:1056,966:1055},o($VB4,[2,1974]),{257:[1,1058]},{657:[2,1958]},{226:1059,497:$VK3,499:$VL3,509:$VM3,542:$VN3,550:$VO3,574:$VP3,600:$VQ3,674:$VR3,710:$VS3,722:$VT3,734:$VU3,737:$VV3,756:$VW3},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1060,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vd4,[2,2073]),o($Vd4,[2,2074]),o($VB3,[2,2034]),{91:[1,1061],95:$V04},{54:$Vd3,91:[1,1062],144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3,874:651},o($VB3,[2,2040]),{91:[1,1063],95:$V04},o($V2,[2,34]),o($V2,[2,39]),o($VF3,$VW2,{800:527,105:1064,306:$VX2}),o($VF3,[2,1379]),o($VC3,[2,169]),o($VC3,[2,176]),{275:[1,1065]},o($VR4,[2,1308]),o($VR4,[2,1309]),o($VR4,[2,1310]),o($VR4,[2,1311]),o($V2,[2,41]),o($V2,[2,43]),{91:[1,1066],95:[1,1067]},o($V03,[2,104]),{54:[1,1068]},o($V03,[2,261]),o($V03,[2,262]),o($VF3,[2,1386]),o($VK4,[2,480]),{301:[1,1069]},{257:[1,1070]},o($V2,[2,148]),o($VL4,[2,312]),o($VL4,[2,318]),o($VL4,[2,319]),o($VL4,[2,320]),o($VL4,[2,321]),o($VL4,[2,322]),o([64,85,86,87,88,89,91,95,146,224,253,458,462],[2,381]),{91:[1,1071],95:[1,1072]},{91:[1,1073]},{238:[1,1074]},o($Vo4,[2,338]),{95:[1,1075]},o($Vo4,[2,342]),{95:[1,1077],238:[1,1076]},o($Vo4,[2,348]),o($VS4,[2,350]),{248:[1,1078]},{91:[1,1079]},o($V03,[2,296]),{89:$V31,252:1080},o($V2,[2,612]),o([101,106,109,136,287,306,360,458,462,502,625],$VX3,{177:739,174:1081,86:$VY3}),o($VM4,[2,417]),{257:[1,1082]},{89:$VZ2,118:1083},{50:$VT4,258:1084,259:1085,262:1086,264:$VU4},o($Vt4,[2,284]),o($Vt4,[2,285]),{137:1089,306:$Vc,370:228,414:$Vh,429:25},o($VZ3,[2,602]),{40:309,41:$Vu,60:439,64:$Vv,172:102,242:$Vw,254:$Vx,358:1090,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD,805:438},o($V03,[2,604]),{318:1091,343:[1,1092]},{625:[2,573]},{91:[1,1093]},{226:1094,497:$VK3,499:$VL3,509:$VM3,542:$VN3,550:$VO3,574:$VP3,600:$VQ3,674:$VR3,710:$VS3,722:$VT3,734:$VU3,737:$VV3,756:$VW3},{91:[2,572]},{100:1095,625:$VD1},o($V2,[2,2152]),o($V2,[2,2154]),o($V2,[2,2155]),{416:[1,1096]},o($V2,[2,709]),{91:[1,1097],95:[1,1098]},o($V03,[2,1869]),o($V52,[2,1884],{689:[1,1099]}),o($V2,$V_,{46:230,148:1100,51:$VV}),o($VV4,[2,1562],{838:1101,849:1102,654:$VQ4}),o($VP4,[2,2018]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1103,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1105,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,853:1104,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vy4,[2,1800]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1106,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{91:[1,1107]},{91:[1,1108],95:$V04},o($Vv3,[2,1624]),o($Vv3,[2,1625]),o($Vv3,[2,2239]),o($Vc4,[2,2260],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),{91:[1,1109]},{50:[1,1114],91:[2,1984],697:[1,1113],970:1110,972:1111,973:1112},{257:[1,1115]},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:580,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,449:1116,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{91:[1,1117]},{54:$Vd3,91:[1,1118],144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3,874:651},o($VB3,[2,2036]),o($VB3,[2,2075]),o($VB3,[2,2041]),o($VF3,[2,1378]),{54:$VE4,237:$VF4,238:$VG4,277:$VH4,784:1119},o($V2,[2,102]),{94:1120,97:988,179:$Vj1,180:$Vk1,302:266,775:267},{97:1121,179:$Vj1,180:$Vk1,302:266,775:267},{257:[1,1122]},{179:$Vj1,302:1123},o($Vp4,[2,1446]),{361:[1,1124]},o($Vp4,[2,1444]),o($Vo4,[2,337]),{214:1125,226:704,227:705,228:706,229:707,230:708,231:709,232:710,236:$VH3,241:$VI3,242:$VJ3,497:$VK3,499:$VL3,509:$VM3,542:$VN3,550:$VO3,574:$VP3,600:$VQ3,674:$VR3,710:$VS3,722:$VT3,734:$VU3,737:$VV3,756:$VW3},o($Vo4,[2,347]),{40:1012,41:$Vu,64:$Vv,172:102,242:$Vw,245:1126,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{214:1127,226:704,227:705,228:706,229:707,230:708,231:709,232:710,236:$VH3,241:$VI3,242:$VJ3,497:$VK3,499:$VL3,509:$VM3,542:$VN3,550:$VO3,574:$VP3,600:$VQ3,674:$VR3,710:$VS3,722:$VT3,734:$VU3,737:$VV3,756:$VW3},o($Vt4,[2,291]),{91:[2,377]},o($VK4,[2,462],{190:1128,285:1129,106:[1,1130]}),{89:$V31,252:1131},o($Vs4,[2,385]),o($Vs4,[2,386],{95:[1,1132]}),o($Vs4,[2,388]),o($VW4,[2,400]),{89:$V31,252:1133},{71:$V41,89:$V31,156:1134,252:242},o($V2,[2,506]),o($V03,$VX3,{177:739,174:1135,86:$VY3}),o($V2,[2,519]),{54:[1,1136]},o($VN4,[2,562]),o($VO4,[2,566]),{322:1137,344:[1,1138],347:[2,576]},o($V2,[2,741]),o($V54,[2,1868]),{40:1139,41:$Vu,64:$Vv,172:102,242:$Vw,254:$Vx,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,493:$VD},{89:[1,1140]},o($V2,[2,806]),o($VX4,[2,1594],{839:1141,850:1142,621:[1,1143]}),o($VV4,[2,1563]),o($VP4,[2,2019],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($Vx4,[2,1535],{95:[1,1144]}),o($VY4,[2,1550],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($Vb4,[2,1615],{874:651}),o($Vv3,[2,1622]),o($Vv3,[2,1623]),o($Vx3,[2,1968]),{91:[2,1980]},{91:[2,1985]},{496:[1,1145],976:[1,1146]},o($VZ4,[2,2002]),o($VZ4,[2,2003]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1149,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,859:1147,861:1148,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($VB4,[2,1975],{95:$V04}),o($Vx3,[2,2022]),o($Vx3,[2,2059]),{55:1150,138:$VU1,179:$Vj1,180:$Vk1,223:473,302:481,361:$VW1,569:$Vs2,744:$VD2,749:$V_1,775:482,894:459,896:474,898:385,899:386,900:483},o($V03,[2,105]),o($V03,[2,110]),{179:$Vj1,302:1151},o($Vf4,[2,484],{303:[1,1152]}),{91:[1,1153]},{238:[1,1154]},o($VS4,[2,351]),o($VS4,$VX3,{177:739,174:1155,86:$VY3}),o($VJ4,[2,493],{191:1156,305:1157,306:[1,1158]}),o($VK4,[2,463]),{107:[1,1159]},o($VM4,[2,418]),{50:$VT4,259:1160,262:1161,264:$VU4},{89:[1,1163],265:1162},{71:[1,1164]},o($V03,[2,605]),{179:$Vj1,302:1165},{323:1166,347:[1,1167]},{54:[1,1168]},o($V03,[2,1870]),{361:[1,1169]},o($VZ,[2,1599],{840:1170,869:1171,870:[1,1172]}),o($VX4,[2,1595]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1173,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1174,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($V_4,$V$4,{974:1175,983:1176,361:$V05,528:$V15,976:$V25}),o($V_4,$V$4,{983:1176,974:1180,361:$V05,528:$V15,976:$V25}),o([50,91,360,458,462,621,697,746,870],[2,1564],{95:[1,1181]}),o($V35,[2,1567]),o($V45,[2,1578],{874:651,284:1182,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,487:[1,1183],496:$Vo3,546:[1,1184],593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($V2,[2,1301]),o($VK4,[2,490]),{257:[1,1185]},o($Vp4,[2,1447]),o($Vo4,[2,341]),o($VS4,[2,357]),o($VE3,[2,468],{192:1186,286:1187,287:[1,1188]}),o($VJ4,[2,494]),{103:[1,1189]},{108:1190,295:$VG3},o($Vs4,[2,387]),o($VW4,[2,401]),o($Vs4,[2,410]),{51:$V55,53:$V65,269:1191,271:1192},{138:$VU1,223:1195,361:$VW1,749:$V_1,898:385,899:386},o($V2,[2,575]),{324:1196,348:[1,1197]},{54:[1,1198]},{179:$Vj1,302:1200,345:1199},{91:[1,1201]},o($VZ,[2,1516]),o($VZ,[2,1600]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1202,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($VX4,[2,1596],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($VY4,[2,1551],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),{91:$V75,479:$V85,975:1203},{669:[1,1205]},{106:[1,1206]},o($V95,[2,2015]),o($V95,[2,2016]),{91:$V75,479:$V85,975:1207},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1149,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,861:1208,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($V35,[2,1581],{863:1209,645:[1,1210]}),o($V45,[2,1579]),o($V45,[2,1580]),{179:$Vj1,302:1211},o([101,109,136,360,458,462,502],$VD3,{100:686,47:1212,625:$VD1}),o($VE3,[2,469]),{136:[1,1213]},{89:$VV2,102:1214},o($VK4,[2,464]),{91:[1,1215],95:[1,1216]},o($V03,[2,424]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1217,275:[1,1218],302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{54:[1,1219]},o($VW4,[2,405]),o($Va5,[2,583],{325:1220,349:[1,1221]}),{54:[1,1222]},{179:$Vj1,302:1200,345:1223},{347:[2,577]},o([347,348,349,350,351,352,353,458,462],[2,598]),o($V52,[2,1885]),o($VZ,[2,1601],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),{91:[2,1986]},{361:$V05,528:[1,1224],976:$V25,983:1225},o($V_4,[2,2005]),o($V_4,[2,2006]),{91:[2,1987]},o($V35,[2,1568]),o($V35,[2,1574]),{573:[1,1226],616:[1,1227]},o($Vf4,[2,485]),o($VF3,$VC4,{104:975,49:1228,109:$VD4,502:$VC1}),{99:1229,288:$VO2,289:$VP2,290:$VQ2,291:$VR2,292:$VS2,293:$VT2,294:$VU2},o($VJ4,[2,495]),o($Vs4,[2,421]),{51:$V55,53:$V65,271:1230},{54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:[1,1232],238:$Vi3,274:1231,277:[1,1233],473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3,874:651},{237:$Vb5,274:1234,277:$Vc5},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1237,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vd5,[2,586],{326:1238,350:[1,1239]}),{54:[1,1240]},{179:$Vj1,302:1200,345:1241},{348:[2,579]},{106:[1,1242]},{575:[1,1243]},o($V35,[2,1582]),o($V35,[2,1583]),o($Ve5,[2,498],{193:1244,307:1245,101:[1,1246]}),o($VE3,[2,470]),o($V03,[2,425]),{275:[1,1247]},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:806,275:$Vf5,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:808,275:$Vg5,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1248,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($Vd4,$Vf5),o($Vd4,$Vg5),o($V03,[2,434],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($Vh5,[2,589],{327:1249,351:[1,1250]}),{54:[1,1251]},{179:$Vj1,302:1200,345:1252},o([349,350,351,352,353,458,462],[2,581]),{91:[2,2010]},{91:[2,2011]},o($Vi5,[2,501],{194:1253,136:[1,1254]}),o($Ve5,[2,499]),{89:$VV2,102:1255},o($V03,[2,433],{274:1256,237:$Vb5,277:$Vc5}),o($V03,[2,432],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($Vj5,[2,592],{328:1257,352:[1,1258]}),{54:[1,1259]},{179:$Vj1,302:1200,345:1260},o($Va5,[2,584]),o($Vi5,[2,267]),o($Vm1,[2,505],{308:1261}),o($Ve5,[2,500]),{40:309,41:$Vu,55:453,60:439,64:$Vv,73:$Va2,89:$Vb2,138:$VU1,146:$Vc2,172:102,179:$Vj1,180:$Vk1,222:445,223:473,224:$Vd2,236:$Ve2,241:$Vf2,242:$Vw,254:$Vx,273:1262,302:481,361:$VW1,391:$Vg2,410:$Vy,411:$Vz,416:$VA,467:106,468:$VB,469:$VC,472:$Vh2,474:$Vj2,478:$Vk2,482:$Vl2,492:$Vm2,493:$VD,507:$Vn2,508:$Vo2,523:$Vp2,565:$Vq2,568:$Vr2,569:$Vs2,585:$Vt2,591:$Vu2,603:$Vv2,630:$Vw2,633:$Vx2,640:$Vy2,718:$Vz2,719:$VA2,720:$VB2,727:$VC2,744:$VD2,749:$V_1,750:$VE2,753:$VF2,754:$VG2,757:$VH2,758:$VI2,759:$VJ2,769:$VK2,775:482,805:460,883:454,885:455,886:456,887:458,894:459,896:474,898:385,899:386,900:483,942:468,944:469,946:470,947:471,956:$VL2,957:475,958:476,959:477,984:486},o($V2,[2,595],{329:1263,353:[1,1264]}),{54:[1,1265]},{179:$Vj1,302:1200,345:1266},o($Vd5,[2,587]),{137:1267,306:$Vc,370:228,414:$Vh,429:25},o($V03,[2,431],{874:651,54:$Vd3,144:$Ve3,208:$Vf3,224:$Vg3,237:$Vh3,238:$Vi3,277:$Vj3,473:$Vk3,474:$Vl3,479:$Vm3,484:$Vn3,496:$Vo3,593:$Vp3,594:$Vq3,604:$Vr3,653:$Vs3,679:$Vt3,693:$Vu3}),o($V2,[2,533]),{226:1268,497:$VK3,499:$VL3,509:$VM3,542:$VN3,550:$VO3,574:$VP3,600:$VQ3,674:$VR3,710:$VS3,722:$VT3,734:$VU3,737:$VV3,756:$VW3},{179:$Vj1,302:1200,345:1269},o($Vh5,[2,590]),o($Vi5,[2,502]),o($V2,[2,596]),o($Vj5,[2,593])], +defaultActions: {86:[2,819],119:[2,730],120:[2,731],121:[2,732],122:[2,733],123:[2,734],124:[2,735],137:[2,703],148:[2,2197],149:[2,2199],176:[2,165],187:[2,1276],211:[2,1257],212:[2,1274],213:[2,1246],214:[2,1247],217:[2,795],218:[2,796],241:[2,736],276:[2,1397],303:[2,164],424:[2,1897],425:[2,1899],426:[2,1901],427:[2,1903],428:[2,1905],429:[2,1907],430:[2,1909],431:[2,1911],437:[2,2211],461:[2,1939],462:[2,1940],463:[2,1941],464:[2,1942],465:[2,1943],466:[2,1944],467:[2,1945],489:[2,2045],490:[2,2046],491:[2,2047],492:[2,2048],493:[2,2049],494:[2,2050],495:[2,2051],496:[2,2052],497:[2,2053],498:[2,2054],499:[2,2055],500:[2,2056],501:[2,2057],502:[2,2058],626:[2,818],837:[2,1957],963:[2,1958],1029:[2,573],1032:[2,572],1080:[2,377],1110:[2,1980],1111:[2,1985],1199:[2,577],1203:[2,1986],1207:[2,1987],1223:[2,579],1242:[2,2010],1243:[2,2011]}, +parseError: function parseError (str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } +}, +parse: function parse (input) { + var self = this, + stack = [0], + tstack = [], // token stack + vstack = [null], // semantic value stack + lstack = [], // location stack + table = this.table, + yytext = '', + yylineno = 0, + yyleng = 0, + recovering = 0, + TERROR = 2, + EOF = 1; + + var args = lstack.slice.call(arguments, 1); + + //this.reductionCount = this.shiftCount = 0; + + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + // copy state + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + + var ranges = lexer.options && lexer.options.ranges; + + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + + function popStack (n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + +_token_stack: + var lex = function () { + var token; + token = lexer.lex() || EOF; + // if token isn't its numeric value, convert + if (typeof token !== 'number') { + token = self.symbols_[token] || token; + } + return token; + } + + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + // retreive state number from top of stack + state = stack[stack.length - 1]; + + // use default actions if available + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + // read action for current state and first input + action = table[state] && table[state][symbol]; + } + +_handle_error: + // handle parse error + if (typeof action === 'undefined' || !action.length || !action[0]) { + var error_rule_depth; + var errStr = ''; + + // Return the rule stack depth where the nearest error rule can be found. + // Return FALSE when no error recovery rule was found. + function locateNearestErrorRecoveryRule(state) { + var stack_probe = stack.length - 1; + var depth = 0; + + // try to recover from error + for(;;) { + // check for error recovery rule in this state + if ((TERROR.toString()) in table[state]) { + return depth; + } + if (state === 0 || stack_probe < 2) { + return false; // No suitable error recovery rule available. + } + stack_probe -= 2; // popStack(1): [symbol, action] + state = stack[stack_probe]; + ++depth; + } + } + + if (!recovering) { + // first see if there's any chance at hitting an error recovery rule: + error_rule_depth = locateNearestErrorRecoveryRule(state); + + // Report error + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push("'"+this.terminals_[p]+"'"); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; + } else { + errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + + (symbol == EOF ? "end of input" : + ("'"+(this.terminals_[symbol] || symbol)+"'")); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''), + expected: expected, + recoverable: (error_rule_depth !== false) + }); + } else if (preErrorSymbol !== EOF) { + error_rule_depth = locateNearestErrorRecoveryRule(state); + } + + // just recovered from another error + if (recovering == 3) { + if (symbol === EOF || preErrorSymbol === EOF) { + throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); + } + + // discard current lookahead and grab another + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + symbol = lex(); + } + + // try to recover from error + if (error_rule_depth === false) { + throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); + } + popStack(error_rule_depth); + + preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token + symbol = TERROR; // insert generic error symbol as new lookahead + state = stack[stack.length-1]; + action = table[state] && table[state][TERROR]; + recovering = 3; // allow 3 real symbols to be shifted before reporting a new error + } + + // this shouldn't happen, unless resolve defaults are off + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); + } + + switch (action[0]) { + case 1: // shift + //this.shiftCount++; + + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); // push state + symbol = null; + if (!preErrorSymbol) { // normal execution/no error + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + // error just occurred, resume old lookahead f/ before error + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + + case 2: + // reduce + //this.reductionCount++; + + len = this.productions_[action[1]][1]; + + // perform semantic action + yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 + // default location, uses first token for firsts, last for lasts + yyval._$ = { + first_line: lstack[lstack.length-(len||1)].first_line, + last_line: lstack[lstack.length-1].last_line, + first_column: lstack[lstack.length-(len||1)].first_column, + last_column: lstack[lstack.length-1].last_column + }; + if (ranges) { + yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; + } + r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); + + if (typeof r !== 'undefined') { + return r; + } + + // pop off stack + if (len) { + stack = stack.slice(0,-1*len*2); + vstack = vstack.slice(0, -1*len); + lstack = lstack.slice(0, -1*len); + } + + stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) + vstack.push(yyval.$); + lstack.push(yyval._$); + // goto new state = table[STATE][NONTERMINAL] + newState = table[stack[stack.length-2]][stack[stack.length-1]]; + stack.push(newState); + break; + + case 3: + // accept + return true; + } + + } + + return true; +}}; + + +SqlParseSupport.initSyntaxParser(parser);/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function(match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex () { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin (condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState () { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules () { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState (n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState (condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {"case-insensitive":true,"flex":true}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0: /* skip whitespace */ +break; +case 1: /* skip comments */ +break; +case 2: /* skip comments */ +break; +case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 27; +break; +case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 771; +break; +case 5: return 44; +break; +case 6: return 321; +break; +case 7: return 412; +break; +case 8: return 477; +break; +case 9: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 38; +break; +case 10: return 478; +break; +case 11: return 479; +break; +case 12: return 480; +break; +case 13: return 481; +break; +case 14: return 483; +break; +case 15: return 485; +break; +case 16: return 486; +break; +case 17: return 136; +break; +case 18: return 487; +break; +case 19: return 488; +break; +case 20: return 489; +break; +case 21: return 490; +break; +case 22: return 491; +break; +case 23: return 151; +break; +case 24: return 288; +break; +case 25: return 494; +break; +case 26: return 495; +break; +case 27: return 496; +break; +case 28: return 497; +break; +case 29: return 498; +break; +case 30: return 85; +break; +case 31: return 499; +break; +case 32: return 500; +break; +case 33: return 257; +break; +case 34: return 502; +break; +case 35: return 503; +break; +case 36: return 504; +break; +case 37: return 505; +break; +case 38: return 506; +break; +case 39: return 507; +break; +case 40: return 111; +break; +case 41: return 509; +break; +case 42: return 510; +break; +case 43: return 511; +break; +case 44: return 350; +break; +case 45: return 512; +break; +case 46: return 513; +break; +case 47: return 65; +break; +case 48: return 117; +break; +case 49: parser.determineCase(yy_.yytext); return 86; +break; +case 50: return 514; +break; +case 51: return 87; +break; +case 52: parser.determineCase(yy_.yytext); return 155; +break; +case 53: return 515; +break; +case 54: return 516; +break; +case 55: return 517; +break; +case 56: return 518; +break; +case 57: return 519; +break; +case 58: return 520; +break; +case 59: return 521; +break; +case 60: return 522; +break; +case 61: return 524; +break; +case 62: return 525; +break; +case 63: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('CREATE', yy_.yylloc, yy.lexer.upcomingInput()); return 170; +break; +case 64: return 526; +break; +case 65: return 527; +break; +case 66: return 528; +break; +case 67: return 529; +break; +case 68: return 530; +break; +case 69: return 531; +break; +case 70: return 532; +break; +case 71: return 533; +break; +case 72: return 534; +break; +case 73: return 535; +break; +case 74: return 536; +break; +case 75: return 537; +break; +case 76: return 452; +break; +case 77: return 143; +break; +case 78: return 538; +break; +case 79: return 539; +break; +case 80: return 540; +break; +case 81: return 541; +break; +case 82: return 542; +break; +case 83: return 543; +break; +case 84: return 544; +break; +case 85: return 392; +break; +case 86: return 295; +break; +case 87: return 545; +break; +case 88: return 546; +break; +case 89: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DESCRIBE', yy_.yylloc); return 814; +break; +case 90: return 547; +break; +case 91: return 548; +break; +case 92: return 549; +break; +case 93: return 484; +break; +case 94: return 550; +break; +case 95: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 63; +break; +case 96: return 551; +break; +case 97: return 552; +break; +case 98: return 553; +break; +case 99: return 554; +break; +case 100: return 555; +break; +case 101: return 88; +break; +case 102: return 556; +break; +case 103: return 557; +break; +case 104: return 558; +break; +case 105: return 559; +break; +case 106: return 560; +break; +case 107: return 303; +break; +case 108: return 561; +break; +case 109: return 562; +break; +case 110: return 563; +break; +case 111: return 564; +break; +case 112: parser.yy.correlatedSubQuery = true; return 565; +break; +case 113: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('EXPLAIN', yy_.yylloc); return 470; +break; +case 114: return 566; +break; +case 115: return 567; +break; +case 116: return 569; +break; +case 117: return 570; +break; +case 118: return 300; +break; +case 119: return 98; +break; +case 120: return 571; +break; +case 121: return 572; +break; +case 122: return 352; +break; +case 123: return 573; +break; +case 124: return 574; +break; +case 125: return 575; +break; +case 126: return 576; +break; +case 127: return 577; +break; +case 128: return 107; +break; +case 129: return 578; +break; +case 130: return 579; +break; +case 131: return 580; +break; +case 132: parser.determineCase(yy_.yytext); return 394; +break; +case 133: return 581; +break; +case 134: return 315; +break; +case 135: return 149; +break; +case 136: return 582; +break; +case 137: return 583; +break; +case 138: return 584; +break; +case 139: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('GRANT', yy_.yylloc); return 401; +break; +case 140: return 402; +break; +case 141: return 586; +break; +case 142: return 587; +break; +case 143: return 264; +break; +case 144: return 588; +break; +case 145: return 590; +break; +case 146: return 591; +break; +case 147: return 592; +break; +case 148: return 593; +break; +case 149: return 594; +break; +case 150: return 158; +break; +case 151: return 595; +break; +case 152: return 344; +break; +case 153: return 596; +break; +case 154: return 597; +break; +case 155: return 598; +break; +case 156: this.begin('hdfs'); return 453; +break; +case 157: return 599; +break; +case 158: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INSERT', yy_.yylloc); return 413; +break; +case 159: return 600; +break; +case 160: return 353; +break; +case 161: return 601; +break; +case 162: return 602; +break; +case 163: return 603; +break; +case 164: return 441; +break; +case 165: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INVALIDATE', yy_.yylloc, yy.lexer.upcomingInput()); return 153; +break; +case 166: return 604; +break; +case 167: return 144; +break; +case 168: return 605; +break; +case 169: return 606; +break; +case 170: return 607; +break; +case 171: return 608; +break; +case 172: return 609; +break; +case 173: return 610; +break; +case 174: return 611; +break; +case 175: return 612; +break; +case 176: return 613; +break; +case 177: return 614; +break; +case 178: return 254; +break; +case 179: return 289; +break; +case 180: return 615; +break; +case 181: return 616; +break; +case 182: return 617; +break; +case 183: return 618; +break; +case 184: return 619; +break; +case 185: return 208; +break; +case 186: return 620; +break; +case 187: return 621; +break; +case 188: return 360; +break; +case 189: return 304; +break; +case 190: return 622; +break; +case 191: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('LOAD', yy_.yylloc, yy.lexer.upcomingInput()); return 451; +break; +case 192: return 623; +break; +case 193: return 624; +break; +case 194: this.begin('hdfs'); return 625; +break; +case 195: return 626; +break; +case 196: return 627; +break; +case 197: return 628; +break; +case 198: return 629; +break; +case 199: return 631; +break; +case 200: return 348; +break; +case 201: return 154; +break; +case 202: return 632; +break; +case 203: return 634; +break; +case 204: return 635; +break; +case 205: return 636; +break; +case 206: return 637; +break; +case 207: return 638; +break; +case 208: return 639; +break; +case 209: return 641; +break; +case 210: return 642; +break; +case 211: return 643; +break; +case 212: return 224; +break; +case 213: return 644; +break; +case 214: return 146; +break; +case 215: return 645; +break; +case 216: return 646; +break; +case 217: return 647; +break; +case 218: return 648; +break; +case 219: return 649; +break; +case 220: return 870; +break; +case 221: return 650; +break; +case 222: return 142; +break; +case 223: return 651; +break; +case 224: return 652; +break; +case 225: return 416; +break; +case 226: return 653; +break; +case 227: return 290; +break; +case 228: return 654; +break; +case 229: return 655; +break; +case 230: return 656; +break; +case 231: return 657; +break; +case 232: return 658; +break; +case 233: return 659; +break; +case 234: return 444; +break; +case 235: return 291; +break; +case 236: return 51; +break; +case 237: return 256; +break; +case 238: return 71; +break; +case 239: return 660; +break; +case 240: return 661; +break; +case 241: return 662; +break; +case 242: return 663; +break; +case 243: return 664; +break; +case 244: return 665; +break; +case 245: return 666; +break; +case 246: return 667; +break; +case 247: return 668; +break; +case 248: return 669; +break; +case 249: return 670; +break; +case 250: return 349; +break; +case 251: return 253; +break; +case 252: return 671; +break; +case 253: return 672; +break; +case 254: return 390; +break; +case 255: return 50; +break; +case 256: return 292; +break; +case 257: return 673; +break; +case 258: return 674; +break; +case 259: return 70; +break; +case 260: return 675; +break; +case 261: return 676; +break; +case 262: return 677; +break; +case 263: return 678; +break; +case 264: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REFRESH', yy_.yylloc); return 147; +break; +case 265: return 679; +break; +case 266: return 680; +break; +case 267: return 681; +break; +case 268: return 682; +break; +case 269: return 683; +break; +case 270: return 684; +break; +case 271: return 685; +break; +case 272: return 686; +break; +case 273: return 687; +break; +case 274: return 688; +break; +case 275: return 56; +break; +case 276: return 689; +break; +case 277: return 73; +break; +case 278: return 690; +break; +case 279: return 691; +break; +case 280: return 342; +break; +case 281: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REVOKE', yy_.yylloc); return 417; +break; +case 282: return 692; +break; +case 283: return 693; +break; +case 284: return 359; +break; +case 285: return 694; +break; +case 286: return 695; +break; +case 287: return 696; +break; +case 288: return 106; +break; +case 289: return 697; +break; +case 290: return 698; +break; +case 291: return 699; +break; +case 292: return 700; +break; +case 293: return 701; +break; +case 294: return 702; +break; +case 295: return 703; +break; +case 296: return 704; +break; +case 297: return 705; +break; +case 298: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 414; +break; +case 299: return 706; +break; +case 300: return 707; +break; +case 301: return 293; +break; +case 302: return 103; +break; +case 303: return 351; +break; +case 304: return 410; +break; +case 305: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 26; +break; +case 306: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 1000; +break; +case 307: return 708; +break; +case 308: return 709; +break; +case 309: return 710; +break; +case 310: return 711; +break; +case 311: return 268; +break; +case 312: return 712; +break; +case 313: return 713; +break; +case 314: return 714; +break; +case 315: return 715; +break; +case 316: return 716; +break; +case 317: return 717; +break; +case 318: return 66; +break; +case 319: return 287; +break; +case 320: return 721; +break; +case 321: return 722; +break; +case 322: return 723; +break; +case 323: return 724; +break; +case 324: return 725; +break; +case 325: return 726; +break; +case 326: return 343; +break; +case 327: return 728; +break; +case 328: return 729; +break; +case 329: return 730; +break; +case 330: return 129; +break; +case 331: return 731; +break; +case 332: return 732; +break; +case 333: return 101; +break; +case 334: return 301; +break; +case 335: return 294; +break; +case 336: return 733; +break; +case 337: return 734; +break; +case 338: return 735; +break; +case 339: return 736; +break; +case 340: return 737; +break; +case 341: return 57; +break; +case 342: return 738; +break; +case 343: return 739; +break; +case 344: return 740; +break; +case 345: return 741; +break; +case 346: return 742; +break; +case 347: return 743; +break; +case 348: return 744; +break; +case 349: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 391; +break; +case 350: return 745; +break; +case 351: return 976; +break; +case 352: return 109; +break; +case 353: return 746; +break; +case 354: return 747; +break; +case 355: return 872; +break; +case 356: return 748; +break; +case 357: parser.determineCase(yy_.yytext); return 1015; +break; +case 358: return 347; +break; +case 359: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('UPSERT', yy_.yylloc); return 440; +break; +case 360: return 411; +break; +case 361: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 1029; +break; +case 362: return 750; +break; +case 363: return 751; +break; +case 364: return 752; +break; +case 365: return 275; +break; +case 366: return 755; +break; +case 367: return 756; +break; +case 368: return 760; +break; +case 369: return 761; +break; +case 370: return 141; +break; +case 371: return 762; +break; +case 372: return 763; +break; +case 373: return 764; +break; +case 374: return 765; +break; +case 375: return 766; +break; +case 376: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 306; +break; +case 377: return 767; +break; +case 378: return 768; +break; +case 379: this.begin('hdfs'); return 206; +break; +case 380: return 53; +break; +case 381: return 657; +break; +case 382: return 359; +break; +case 383: return 236; +break; +case 384: return 64; +break; +case 385: return 241; +break; +case 386: return 41; +break; +case 387: return 242; +break; +case 388: return 501; +break; +case 389: return 446; +break; +case 390: return 445; +break; +case 391: yy.lexer.unput('('); yy_.yytext = 'appx_median'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 482; +break; +case 392: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 492; +break; +case 393: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 508; +break; +case 394: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 523; +break; +case 395: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 568; +break; +case 396: yy.lexer.unput('('); yy_.yytext = 'group_concat'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 585; +break; +case 397: yy.lexer.unput('('); yy_.yytext = 'left'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 956; +break; +case 398: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 630; +break; +case 399: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 633; +break; +case 400: yy.lexer.unput('('); yy_.yytext = 'ndv'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 640; +break; +case 401: yy.lexer.unput('('); yy_.yytext = 'stddev'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 718; +break; +case 402: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 719; +break; +case 403: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 720; +break; +case 404: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 727; +break; +case 405: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 753; +break; +case 406: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 754; +break; +case 407: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 757; +break; +case 408: yy.lexer.unput('('); yy_.yytext = 'variance_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 758; +break; +case 409: yy.lexer.unput('('); yy_.yytext = 'variance_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 759; +break; +case 410: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 478; +break; +case 411: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 478; +break; +case 412: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 478; +break; +case 413: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 478; +break; +case 414: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 478; +break; +case 415: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 478; +break; +case 416: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 478; +break; +case 417: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 478; +break; +case 418: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 478; +break; +case 419: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 478; +break; +case 420: yy.lexer.unput('('); yy_.yytext = 'system'; return 923; +break; +case 421: return 361; +break; +case 422: return 361; +break; +case 423: return 749; +break; +case 424: return 468; +break; +case 425: parser.yy.cursorFound = true; return 27; +break; +case 426: parser.yy.cursorFound = true; return 771; +break; +case 427: return 589; +break; +case 428: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 981; +break; +case 429: this.popState(); return 982; +break; +case 430: return 458; +break; +case 431: return 479; +break; +case 432: return 653; +break; +case 433: return 54; +break; +case 434: return 237; +break; +case 435: return 238; +break; +case 436: return 277; +break; +case 437: return 277; +break; +case 438: return 277; +break; +case 439: return 277; +break; +case 440: return 277; +break; +case 441: return 474; +break; +case 442: return 473; +break; +case 443: return 484; +break; +case 444: return 484; +break; +case 445: return 484; +break; +case 446: return 484; +break; +case 447: return 484; +break; +case 448: return 484; +break; +case 449: return 95; +break; +case 450: return 138; +break; +case 451: return 341; +break; +case 452: return 248; +break; +case 453: return 462; +break; +case 454: return 769; +break; +case 455: return 472; +break; +case 456: return 89; +break; +case 457: return 91; +break; +case 458: return 475; +break; +case 459: return 476; +break; +case 460: return 469; +break; +case 461: this.begin('backtickedValue'); return 493; +break; +case 462: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { + return 774; + } + return 181; + +break; +case 463: this.popState(); return 493; +break; +case 464: this.begin('singleQuotedValue'); return 179; +break; +case 465: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { + return 774; + } + return 181; + +break; +case 466: this.popState(); return 179; +break; +case 467: this.begin('doubleQuotedValue'); return 180; +break; +case 468: + if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { + return 774; + } + return 181; + +break; +case 469: this.popState(); return 180; +break; +case 470: return 458; +break; +case 471: /* To prevent console logging of unknown chars */ +break; +case 472: +break; +case 473: +break; +case 474: +break; +case 475: +break; +case 476:console.log(yy_.yytext); +break; +} +}, +rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:ADD)/i,/^(?:AGGREGATE)/i,/^(?:ALL)/i,/^(?:ALLOCATE)/i,/^(?:ALTER)/i,/^(?:ANALYTIC)/i,/^(?:AND)/i,/^(?:ANTI)/i,/^(?:ANY)/i,/^(?:ARE)/i,/^(?:ARRAY_AGG)/i,/^(?:ARRAY_MAX_CARDINALITY)/i,/^(?:AS)/i,/^(?:ASC)/i,/^(?:ASENSITIVE)/i,/^(?:ASYMMETRIC)/i,/^(?:AT)/i,/^(?:ATOMIC)/i,/^(?:AUTHORIZATION)/i,/^(?:AVRO)/i,/^(?:BEGIN_FRAME)/i,/^(?:BEGIN_PARTITION)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BLOB)/i,/^(?:BLOCK_SIZE)/i,/^(?:BOOLEAN)/i,/^(?:BOTH)/i,/^(?:BY)/i,/^(?:CACHED)/i,/^(?:CALLED)/i,/^(?:CARDINALITY)/i,/^(?:CASCADE)/i,/^(?:CASCADED)/i,/^(?:CASE)/i,/^(?:CHANGE)/i,/^(?:CHAR)/i,/^(?:CHARACTER)/i,/^(?:CLOB)/i,/^(?:CLOSE_FN)/i,/^(?:COLLATE)/i,/^(?:COLLECT)/i,/^(?:COLUMN)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMMIT)/i,/^(?:COMPRESSION)/i,/^(?:COMPUTE)/i,/^(?:CONDITION)/i,/^(?:CONNECT)/i,/^(?:CONSTRAINT)/i,/^(?:CONTAINS)/i,/^(?:CONVERT)/i,/^(?:COPY)/i,/^(?:CORR)/i,/^(?:CORRESPONDING)/i,/^(?:COVAR_POP)/i,/^(?:COVAR_SAMP)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CUBE)/i,/^(?:CURRENT)/i,/^(?:CURRENT_DATE)/i,/^(?:CURRENT_DEFAULT_TRANSFORM_GROUP)/i,/^(?:CURRENT_PATH)/i,/^(?:CURRENT_ROLE)/i,/^(?:CURRENT_ROW)/i,/^(?:CURRENT_SCHEMA)/i,/^(?:CURRENT_TIME)/i,/^(?:CURRENT_TRANSFORM_GROUP_FOR_TYPE)/i,/^(?:CYCLE)/i,/^(?:DATA)/i,/^(?:DATABASE)/i,/^(?:DATABASES)/i,/^(?:DEALLOCATE)/i,/^(?:DEC)/i,/^(?:DECFLOAT)/i,/^(?:DECIMAL)/i,/^(?:DECLARE)/i,/^(?:DEFINE)/i,/^(?:DELETE)/i,/^(?:DELIMITED)/i,/^(?:DEREF)/i,/^(?:DESC)/i,/^(?:DESCRIBE)/i,/^(?:DETERMINISTIC)/i,/^(?:DISCONNECT)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DROP)/i,/^(?:DYNAMIC)/i,/^(?:EACH)/i,/^(?:ELEMENT)/i,/^(?:ELSE)/i,/^(?:EMPTY)/i,/^(?:ENCODING)/i,/^(?:END)/i,/^(?:END_FRAME)/i,/^(?:END_PARTITION)/i,/^(?:EQUALS)/i,/^(?:ESCAPE)/i,/^(?:ESCAPED)/i,/^(?:EVERY)/i,/^(?:EXCEPT)/i,/^(?:EXEC)/i,/^(?:EXECUTE)/i,/^(?:EXISTS)/i,/^(?:EXPLAIN)/i,/^(?:EXTENDED)/i,/^(?:EXTERNAL)/i,/^(?:FALSE)/i,/^(?:FETCH)/i,/^(?:FIELDS)/i,/^(?:FILEFORMAT)/i,/^(?:FILES)/i,/^(?:FILTER)/i,/^(?:FINALIZE_FN)/i,/^(?:FIRST)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FOR)/i,/^(?:FOREIGN)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FRAME_ROW)/i,/^(?:FREE)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:FUNCTION)/i,/^(?:FUNCTIONS)/i,/^(?:FUSION)/i,/^(?:GET)/i,/^(?:GLOBAL)/i,/^(?:GRANT)/i,/^(?:GROUP)/i,/^(?:GROUPING)/i,/^(?:GROUPS)/i,/^(?:HASH)/i,/^(?:HAVING)/i,/^(?:HOLD)/i,/^(?:IF)/i,/^(?:IGNORE)/i,/^(?:ILIKE)/i,/^(?:IN)/i,/^(?:INCREMENTAL)/i,/^(?:INDICATOR)/i,/^(?:INIT_FN)/i,/^(?:INITIAL)/i,/^(?:INNER)/i,/^(?:INOUT)/i,/^(?:INPATH)/i,/^(?:INSENSITIVE)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTERMEDIATE)/i,/^(?:INTERSECT)/i,/^(?:INTERSECTION)/i,/^(?:INTERVAL)/i,/^(?:INTO)/i,/^(?:INVALIDATE)/i,/^(?:IREGEXP)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:JSON_ARRAY)/i,/^(?:JSON_ARRAYAGG)/i,/^(?:JSON_EXISTS)/i,/^(?:JSON_OBJECT)/i,/^(?:JSON_OBJECTAGG)/i,/^(?:JSON_QUERY)/i,/^(?:JSON_TABLE)/i,/^(?:JSON_TABLE_PRIMITIVE)/i,/^(?:JSON_VALUE)/i,/^(?:KEY)/i,/^(?:KUDU)/i,/^(?:LARGE)/i,/^(?:LAST)/i,/^(?:LATERAL)/i,/^(?:LEADING)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIKE_REGEX)/i,/^(?:LIMIT)/i,/^(?:LIFECYCLE)/i,/^(?:LINES)/i,/^(?:LISTAGG)/i,/^(?:LOAD)/i,/^(?:LOCAL)/i,/^(?:LOCALTIMESTAMP)/i,/^(?:LOCATION)/i,/^(?:MATCH)/i,/^(?:MATCH_NUMBER)/i,/^(?:MATCH_RECOGNIZE)/i,/^(?:MATCHES)/i,/^(?:MERGE)/i,/^(?:MERGE_FN)/i,/^(?:METADATA)/i,/^(?:METHOD)/i,/^(?:MODIFIES)/i,/^(?:MULTISET)/i,/^(?:NATIONAL)/i,/^(?:NATURAL)/i,/^(?:NCHAR)/i,/^(?:NCLOB)/i,/^(?:NO)/i,/^(?:NONE)/i,/^(?:NORMALIZE)/i,/^(?:NOT)/i,/^(?:NTH_VALUE)/i,/^(?:NULL)/i,/^(?:NULLS)/i,/^(?:NUMERIC)/i,/^(?:OCCURRENCES_REGEX)/i,/^(?:OCTET_LENGTH)/i,/^(?:OF)/i,/^(?:OFFSET)/i,/^(?:OMIT)/i,/^(?:ON)/i,/^(?:ONE)/i,/^(?:ONLY)/i,/^(?:OPTION)/i,/^(?:OR)/i,/^(?:ORC)/i,/^(?:ORDER)/i,/^(?:OUT)/i,/^(?:OUTER)/i,/^(?:OVER)/i,/^(?:OVERLAPS)/i,/^(?:OVERLAY)/i,/^(?:OVERWRITE)/i,/^(?:PARQUET)/i,/^(?:PARTITION)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PATTERN)/i,/^(?:PER)/i,/^(?:PERCENT)/i,/^(?:PERCENTILE_CONT)/i,/^(?:PERCENTILE_DISC)/i,/^(?:PORTION)/i,/^(?:POSITION)/i,/^(?:POSITION_REGEX)/i,/^(?:PRECEDES)/i,/^(?:PRECEDING)/i,/^(?:PREPARE)/i,/^(?:PREPARE_FN)/i,/^(?:PRIMARY)/i,/^(?:PROCEDURE)/i,/^(?:PTF)/i,/^(?:PURGE)/i,/^(?:RANGE)/i,/^(?:RCFILE)/i,/^(?:READS)/i,/^(?:REAL)/i,/^(?:RECOVER)/i,/^(?:RECURSIVE)/i,/^(?:REF)/i,/^(?:REFERENCES)/i,/^(?:REFERENCING)/i,/^(?:REFRESH)/i,/^(?:REGEXP)/i,/^(?:REGR_AVGX)/i,/^(?:REGR_AVGY)/i,/^(?:REGR_COUNT)/i,/^(?:REGR_INTERCEPT)/i,/^(?:REGR_R2REGR_SLOPE)/i,/^(?:REGR_SXX)/i,/^(?:REGR_SXY)/i,/^(?:REGR_SYY)/i,/^(?:RELEASE)/i,/^(?:RENAME)/i,/^(?:REPEATABLE)/i,/^(?:REPLACE)/i,/^(?:REPLICATION)/i,/^(?:RESTRICT)/i,/^(?:RETURNS)/i,/^(?:REVOKE)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:ROLLBACK)/i,/^(?:ROLLUP)/i,/^(?:ROW)/i,/^(?:ROWS)/i,/^(?:RUNNING)/i,/^(?:SAVEPOINT)/i,/^(?:SCHEMA)/i,/^(?:SCHEMAS)/i,/^(?:SCOPE)/i,/^(?:SCROLL)/i,/^(?:SEARCH)/i,/^(?:SEEK)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SENSITIVE)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SERIALIZE_FN)/i,/^(?:SERVER)/i,/^(?:SET)/i,/^(?:SHOW)/i,/^(?:SIMILAR)/i,/^(?:SKIP)/i,/^(?:SMALLINT)/i,/^(?:SOME)/i,/^(?:SORT)/i,/^(?:SPECIFIC)/i,/^(?:SPECIFICTYPE)/i,/^(?:SQLEXCEPTION)/i,/^(?:SQLSTATE)/i,/^(?:SQLWARNING)/i,/^(?:STATIC)/i,/^(?:STATS)/i,/^(?:STORED)/i,/^(?:STRAIGHT_JOIN)/i,/^(?:STRING)/i,/^(?:SUBMULTISET)/i,/^(?:SUBSET)/i,/^(?:SUBSTRING_REGEX)/i,/^(?:SUCCEEDS)/i,/^(?:SYMBOL)/i,/^(?:SYMMETRIC)/i,/^(?:SYSTEM_TIME)/i,/^(?:SYSTEM_USER)/i,/^(?:TABLE)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TIMEZONE_HOUR)/i,/^(?:TIMEZONE_MINUTE)/i,/^(?:TINYINT)/i,/^(?:TO)/i,/^(?:TRAILING)/i,/^(?:TRANSLATE_REGEX)/i,/^(?:TRANSLATION)/i,/^(?:TREAT)/i,/^(?:TRIGGER)/i,/^(?:TRIM_ARRAY)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UESCAPE)/i,/^(?:UNBOUNDED)/i,/^(?:UNCACHED)/i,/^(?:UNION)/i,/^(?:UNIQUE)/i,/^(?:UNKNOWN)/i,/^(?:UNNEST)/i,/^(?:UPDATE)/i,/^(?:UPDATE_FN)/i,/^(?:UPSERT)/i,/^(?:URI)/i,/^(?:USE)/i,/^(?:USER)/i,/^(?:USING)/i,/^(?:VALUE_OF)/i,/^(?:VALUES)/i,/^(?:VARBINARY)/i,/^(?:VARCHAR)/i,/^(?:VARYING)/i,/^(?:VERSIONING)/i,/^(?:VIEW)/i,/^(?:WHEN)/i,/^(?:WHENEVER)/i,/^(?:WHERE)/i,/^(?:WIDTH_BUCKET)/i,/^(?:WINDOW)/i,/^(?:WITH)/i,/^(?:WITHIN)/i,/^(?:WITHOUT)/i,/^(?:LIKE\s+PARQUET)/i,/^(?:PARTITION\s+VALUE\s)/i,/^(?:OVER)/i,/^(?:ROLE)/i,/^(?:ARRAY)/i,/^(?:DEFAULT)/i,/^(?:MAP)/i,/^(?:OWNER)/i,/^(?:STRUCT)/i,/^(?:\[BROADCAST\])/i,/^(?:\[NOSHUFFLE\])/i,/^(?:\[SHUFFLE\])/i,/^(?:APPX_MEDIAN\s*\()/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:GROUP_CONCAT\s*\()/i,/^(?:LEFT\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:NDV\s*\()/i,/^(?:STDDEV\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:VARIANCE_POP\s*\()/i,/^(?:VARIANCE_SAMP\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:SYSTEM\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['"])/i,/^(?:[^'"\u2020\u2021]+)/i,/^(?:['"])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?:\.\.\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], +conditions: {"hdfs":{"rules":[425,426,427,428,429,430,472],"inclusive":false},"doubleQuotedValue":{"rules":[468,469,475],"inclusive":false},"singleQuotedValue":{"rules":[465,466,474],"inclusive":false},"backtickedValue":{"rules":[462,463,473],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,464,467,470,471,476],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); +export default impalaSyntaxParser; diff --git a/src/core/parse/impala/sqlParseSupport.js b/src/core/parse/impala/sqlParseSupport.js new file mode 100644 index 0000000..40524ba --- /dev/null +++ b/src/core/parse/impala/sqlParseSupport.js @@ -0,0 +1,2545 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { SqlFunctions } from '../sqlFunctions'; +import stringDistance from '../stringDistance'; + +const identifierEquals = (a, b) => + a && + b && + a + .replace(/^\s*`/, '') + .replace(/`\s*$/, '') + .toLowerCase() === + b + .replace(/^\s*`/, '') + .replace(/`\s*$/, '') + .toLowerCase(); + +// endsWith polyfill from hue_utils.js, needed as workers live in their own js environment +if (!String.prototype.endsWith) { + String.prototype.endsWith = function(searchString, position) { + const subjectString = this.toString(); + if ( + typeof position !== 'number' || + !isFinite(position) || + Math.floor(position) !== position || + position > subjectString.length + ) { + position = subjectString.length; + } + position -= searchString.length; + const lastIndex = subjectString.lastIndexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; + }; +} + +const equalIgnoreCase = (a, b) => a && b && a.toLowerCase() === b.toLowerCase(); + +const SIMPLE_TABLE_REF_SUGGESTIONS = [ + 'suggestJoinConditions', + 'suggestAggregateFunctions', + 'suggestFilters', + 'suggestGroupBys', + 'suggestOrderBys' +]; + +const initSqlParser = function(parser) { + parser.prepareNewStatement = function() { + linkTablePrimaries(); + parser.commitLocations(); + + delete parser.yy.latestCommonTableExpressions; + delete parser.yy.correlatedSubQuery; + parser.yy.subQueries = []; + parser.yy.selectListAliases = []; + parser.yy.latestTablePrimaries = []; + + prioritizeSuggestions(); + }; + + parser.yy.parseError = function(message, error) { + parser.yy.errors.push(error); + return message; + }; + + parser.addCommonTableExpressions = function(identifiers) { + parser.yy.result.commonTableExpressions = identifiers; + parser.yy.latestCommonTableExpressions = identifiers; + }; + + parser.isInSubquery = function() { + return !!parser.yy.primariesStack.length; + }; + + parser.pushQueryState = function() { + parser.yy.resultStack.push(parser.yy.result); + parser.yy.locationsStack.push(parser.yy.locations); + parser.yy.selectListAliasesStack.push(parser.yy.selectListAliases); + parser.yy.primariesStack.push(parser.yy.latestTablePrimaries); + parser.yy.subQueriesStack.push(parser.yy.subQueries); + + parser.yy.result = {}; + parser.yy.locations = []; + parser.yy.selectListAliases = []; // Not allowed in correlated sub-queries + + if (parser.yy.correlatedSubQuery) { + parser.yy.latestTablePrimaries = parser.yy.latestTablePrimaries.concat(); + parser.yy.subQueries = parser.yy.subQueries.concat(); + } else { + parser.yy.latestTablePrimaries = []; + parser.yy.subQueries = []; + } + }; + + parser.popQueryState = function(subQuery) { + linkTablePrimaries(); + parser.commitLocations(); + + if (Object.keys(parser.yy.result).length === 0) { + parser.yy.result = parser.yy.resultStack.pop(); + } else { + parser.yy.resultStack.pop(); + } + const oldSubQueries = parser.yy.subQueries; + parser.yy.subQueries = parser.yy.subQueriesStack.pop(); + if (subQuery) { + if (oldSubQueries.length > 0) { + subQuery.subQueries = oldSubQueries; + } + parser.yy.subQueries.push(subQuery); + } + + parser.yy.latestTablePrimaries = parser.yy.primariesStack.pop(); + parser.yy.locations = parser.yy.locationsStack.pop(); + parser.yy.selectListAliases = parser.yy.selectListAliasesStack.pop(); + }; + + parser.suggestSelectListAliases = function() { + if ( + parser.yy.selectListAliases && + parser.yy.selectListAliases.length > 0 && + parser.yy.result.suggestColumns && + (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || + parser.yy.result.suggestColumns.identifierChain.length === 0) + ) { + parser.yy.result.suggestColumnAliases = parser.yy.selectListAliases; + } + }; + + parser.mergeSuggestKeywords = function() { + let result = []; + Array.prototype.slice.call(arguments).forEach(suggestion => { + if (typeof suggestion !== 'undefined' && typeof suggestion.suggestKeywords !== 'undefined') { + result = result.concat(suggestion.suggestKeywords); + } + }); + if (result.length > 0) { + return { suggestKeywords: result }; + } + return {}; + }; + + parser.suggestValueExpressionKeywords = function(valueExpression, extras) { + const expressionKeywords = parser.getValueExpressionKeywords(valueExpression, extras); + parser.suggestKeywords(expressionKeywords.suggestKeywords); + if (expressionKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(expressionKeywords.suggestColRefKeywords); + } + if (valueExpression.lastType) { + parser.addColRefIfExists(valueExpression.lastType); + } else { + parser.addColRefIfExists(valueExpression); + } + }; + + parser.getSelectListKeywords = function(excludeAsterisk) { + const keywords = [{ value: 'CASE', weight: 450 }, 'FALSE', 'TRUE', 'NULL']; + if (!excludeAsterisk) { + keywords.push({ value: '*', weight: 10000 }); + } + return keywords; + }; + + parser.getValueExpressionKeywords = function(valueExpression, extras) { + const types = valueExpression.lastType ? valueExpression.lastType.types : valueExpression.types; + // We could have valueExpression.columnReference to suggest based on column type + let keywords = [ + '<', + '<=', + '<=>', + '<>', + '=', + '>', + '>=', + 'BETWEEN', + 'IN', + 'IS NOT NULL', + 'IS NULL', + 'IS NOT TRUE', + 'IS TRUE', + 'IS NOT FALSE', + 'IS FALSE', + 'NOT BETWEEN', + 'NOT IN' + ]; + keywords = keywords.concat([ + 'IS DISTINCT FROM', + 'IS NOT DISTINCT FROM', + 'IS NOT UNKNOWN', + 'IS UNKNOWN' + ]); + if (extras) { + keywords = keywords.concat(extras); + } + if (valueExpression.suggestKeywords) { + keywords = keywords.concat(valueExpression.suggestKeywords); + } + if (types.length === 1 && types[0] === 'COLREF') { + return { + suggestKeywords: keywords, + suggestColRefKeywords: { + BOOLEAN: ['AND', 'OR'], + NUMBER: ['+', '-', '*', '/', '%', 'DIV'], + STRING: ['ILIKE', 'IREGEXP', 'LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] + } + }; + } + if ( + typeof SqlFunctions === 'undefined' || + SqlFunctions.matchesType(parser.yy.activeDialect, ['BOOLEAN'], types) + ) { + keywords = keywords.concat(['AND', 'OR']); + } + if ( + typeof SqlFunctions === 'undefined' || + SqlFunctions.matchesType(parser.yy.activeDialect, ['NUMBER'], types) + ) { + keywords = keywords.concat(['+', '-', '*', '/', '%', 'DIV']); + } + if ( + typeof SqlFunctions === 'undefined' || + SqlFunctions.matchesType(parser.yy.activeDialect, ['STRING'], types) + ) { + keywords = keywords.concat(['ILIKE', 'IREGEXP', 'LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE']); + } + return { suggestKeywords: keywords }; + }; + + parser.getTypeKeywords = function() { + return [ + 'BIGINT', + 'BOOLEAN', + 'CHAR', + 'DECIMAL', + 'DOUBLE', + 'FLOAT', + 'INT', + 'REAL', + 'SMALLINT', + 'TIMESTAMP', + 'STRING', + 'TINYINT', + 'VARCHAR' + ]; + }; + + parser.getColumnDataTypeKeywords = function() { + return parser.getTypeKeywords().concat(['ARRAY<>', 'MAP<>', 'STRUCT<>']); + }; + + parser.addColRefIfExists = function(valueExpression) { + if (valueExpression.columnReference) { + parser.yy.result.colRef = { identifierChain: valueExpression.columnReference }; + } + }; + + parser.selectListNoTableSuggest = function(selectListEdit, hasDistinctOrAll) { + if (selectListEdit.cursorAtStart) { + let keywords = parser.getSelectListKeywords(); + if (!hasDistinctOrAll) { + keywords = keywords.concat([{ value: 'ALL', weight: 2 }, { value: 'DISTINCT', weight: 2 }]); + } + keywords.push('STRAIGHT_JOIN'); + parser.suggestKeywords(keywords); + } else { + parser.checkForKeywords(selectListEdit); + } + if (selectListEdit.suggestFunctions) { + parser.suggestFunctions(); + } + if (selectListEdit.suggestColumns) { + parser.suggestColumns(); + } + if ( + selectListEdit.suggestAggregateFunctions && + (!hasDistinctOrAll || hasDistinctOrAll === 'ALL') + ) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + }; + + parser.suggestJoinConditions = function(details) { + parser.yy.result.suggestJoinConditions = details || {}; + if (parser.yy.latestTablePrimaries && !parser.yy.result.suggestJoinConditions.tablePrimaries) { + parser.yy.result.suggestJoinConditions.tablePrimaries = parser.yy.latestTablePrimaries.concat(); + } + }; + + parser.suggestJoins = function(details) { + parser.yy.result.suggestJoins = details || {}; + }; + + parser.valueExpressionSuggest = function(oppositeValueExpression, operator) { + if (oppositeValueExpression && oppositeValueExpression.columnReference) { + parser.suggestValues(); + parser.yy.result.colRef = { identifierChain: oppositeValueExpression.columnReference }; + } + parser.suggestColumns(); + parser.suggestFunctions(); + let keywords = [ + { value: 'CASE', weight: 450 }, + { value: 'FALSE', weight: 450 }, + { value: 'NULL', weight: 450 }, + { value: 'TRUE', weight: 450 } + ]; + if (typeof oppositeValueExpression === 'undefined' || typeof operator === 'undefined') { + keywords = keywords.concat(['EXISTS', 'NOT']); + } + if (oppositeValueExpression && oppositeValueExpression.types[0] === 'NUMBER') { + parser.applyTypeToSuggestions(['NUMBER']); + } else if (typeof operator === 'undefined' || operator === '-' || operator === '+') { + keywords.push('INTERVAL'); + } + parser.suggestKeywords(keywords); + }; + + parser.applyTypeToSuggestions = function(types) { + if (types[0] === 'BOOLEAN') { + return; + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.yy.result.suggestFunctions.types = types; + } + if (parser.yy.result.suggestColumns && !parser.yy.result.suggestColumns.types) { + parser.yy.result.suggestColumns.types = types; + } + }; + + parser.findCaseType = function(whenThenList) { + const types = {}; + whenThenList.caseTypes.forEach(valueExpression => { + valueExpression.types.forEach(type => { + types[type] = true; + }); + }); + if (Object.keys(types).length === 1) { + return { types: [Object.keys(types)[0]] }; + } + return { types: ['T'] }; + }; + + parser.findReturnTypes = function(functionName) { + return typeof SqlFunctions === 'undefined' + ? ['T'] + : SqlFunctions.getReturnTypes(parser.yy.activeDialect, functionName.toLowerCase()); + }; + + parser.applyArgumentTypesToSuggestions = function(functionName, position) { + const foundArguments = + typeof SqlFunctions === 'undefined' + ? ['T'] + : SqlFunctions.getArgumentTypes( + parser.yy.activeDialect, + functionName.toLowerCase(), + position + ); + if (foundArguments.length === 0 && parser.yy.result.suggestColumns) { + delete parser.yy.result.suggestColumns; + delete parser.yy.result.suggestKeyValues; + delete parser.yy.result.suggestValues; + delete parser.yy.result.suggestFunctions; + delete parser.yy.result.suggestIdentifiers; + delete parser.yy.result.suggestKeywords; + } else { + parser.applyTypeToSuggestions(foundArguments); + } + }; + + const getCleanImpalaPrimaries = function(primaries) { + const cleanPrimaries = []; + for (let i = primaries.length - 1; i >= 0; i--) { + let cleanPrimary = primaries[i]; + if (cleanPrimary.identifierChain && cleanPrimary.identifierChain.length > 0) { + for (let j = i - 1; j >= 0; j--) { + const parentPrimary = primaries[j]; + if (parentPrimary.alias && cleanPrimary.identifierChain[0].name === parentPrimary.alias) { + const restOfChain = cleanPrimary.identifierChain.concat(); + restOfChain.shift(); + if (cleanPrimary.alias) { + cleanPrimary = { + identifierChain: parentPrimary.identifierChain.concat(restOfChain), + alias: cleanPrimary.alias, + impalaComplex: true + }; + } else { + cleanPrimary = { + identifierChain: parentPrimary.identifierChain.concat(restOfChain), + impalaComplex: true + }; + } + } + } + } + cleanPrimaries.push(cleanPrimary); + } + return cleanPrimaries; + }; + + parser.commitLocations = function() { + if (parser.yy.locations.length === 0) { + return; + } + + const tablePrimaries = []; + getCleanImpalaPrimaries(parser.yy.latestTablePrimaries).forEach(primary => { + let cleanPrimary = primary; + if (primary.identifierChain && primary.identifierChain.length > 0) { + for (let j = parser.yy.primariesStack.length - 1; j >= 0; j--) { + getCleanImpalaPrimaries(parser.yy.primariesStack[j]).every(parentPrimary => { + if (parentPrimary.alias && parentPrimary.alias === primary.identifierChain[0].name) { + const identifierChain = primary.identifierChain.concat(); + identifierChain.shift(); + cleanPrimary = { + identifierChain: parentPrimary.identifierChain.concat(identifierChain) + }; + if (primary.alias) { + cleanPrimary.alias = primary.alias; + } + return false; + } + return true; + }); + } + } + tablePrimaries.unshift(cleanPrimary); + }); + let i = parser.yy.locations.length; + + while (i--) { + const location = parser.yy.locations[i]; + if (location.type === 'variable' && location.colRef) { + parser.expandIdentifierChain({ + wrapper: location.colRef, + tablePrimaries: tablePrimaries, + isColumnWrapper: true + }); + delete location.colRef.linked; + } + + // Impala can have references to previous tables after FROM, i.e. FROM testTable t, t.testArray + // In this testArray would be marked a type table so we need to switch it to column. + if ( + location.type === 'table' && + typeof location.identifierChain !== 'undefined' && + location.identifierChain.length > 1 && + tablePrimaries + ) { + let allPrimaries = tablePrimaries; + parser.yy.primariesStack.forEach(parentPrimaries => { + allPrimaries = getCleanImpalaPrimaries(parentPrimaries).concat(allPrimaries); + }); + const found = allPrimaries.filter(primary => { + return equalIgnoreCase(primary.alias, location.identifierChain[0].name); + }); + if (found.length > 0) { + location.type = 'column'; + } + } + + if ( + location.type === 'database' && + typeof location.identifierChain !== 'undefined' && + location.identifierChain.length > 0 && + tablePrimaries + ) { + let allPrimaries = tablePrimaries; + parser.yy.primariesStack.forEach(parentPrimaries => { + allPrimaries = getCleanImpalaPrimaries(parentPrimaries).concat(allPrimaries); + }); + const foundAlias = allPrimaries.filter(primary => { + return equalIgnoreCase(primary.alias, location.identifierChain[0].name); + }); + if (foundAlias.length > 0) { + // Impala complex reference in FROM clause, i.e. FROM testTable t, t.testMap tm + location.type = 'table'; + parser.expandIdentifierChain({ + tablePrimaries: allPrimaries, + wrapper: location, + anyOwner: true + }); + location.type = location.identifierChain.length === 1 ? 'table' : 'complex'; + continue; + } + } + + if (location.type === 'unknown') { + if ( + typeof location.identifierChain !== 'undefined' && + location.identifierChain.length > 0 && + location.identifierChain.length <= 2 && + tablePrimaries + ) { + let found = tablePrimaries.filter(primary => { + return ( + equalIgnoreCase(primary.alias, location.identifierChain[0].name) || + (primary.identifierChain && + equalIgnoreCase(primary.identifierChain[0].name, location.identifierChain[0].name)) + ); + }); + if (!found.length && location.firstInChain) { + found = tablePrimaries.filter(primary => { + return ( + !primary.alias && + primary.identifierChain && + equalIgnoreCase( + primary.identifierChain[primary.identifierChain.length - 1].name, + location.identifierChain[0].name + ) + ); + }); + } + + if (found.length) { + if ( + found[0].identifierChain.length > 1 && + location.identifierChain.length === 1 && + equalIgnoreCase(found[0].identifierChain[0].name, location.identifierChain[0].name) + ) { + location.type = 'database'; + } else if ( + found[0].alias && + equalIgnoreCase(location.identifierChain[0].name, found[0].alias) && + location.identifierChain.length > 1 + ) { + location.type = 'column'; + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true + }); + } else if ( + !found[0].alias && + found[0].identifierChain && + equalIgnoreCase( + location.identifierChain[0].name, + found[0].identifierChain[found[0].identifierChain.length - 1].name + ) && + location.identifierChain.length > 1 + ) { + location.type = 'column'; + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true + }); + } else { + location.type = found[0].impalaComplex ? 'column' : 'table'; + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true + }); + } + } else if (parser.yy.subQueries) { + found = parser.yy.subQueries.filter(subQuery => { + return equalIgnoreCase(subQuery.alias, location.identifierChain[0].name); + }); + if (found.length > 0) { + location.type = 'subQuery'; + location.identifierChain = [{ subQuery: found[0].alias }]; + } + } + } + } + + if (location.type === 'asterisk' && !location.linked) { + if (tablePrimaries && tablePrimaries.length > 0) { + location.tables = []; + location.linked = false; + if (!location.identifierChain) { + location.identifierChain = [{ asterisk: true }]; + } + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: false + }); + if (location.tables.length === 0) { + parser.yy.locations.splice(i, 1); + } + } else { + parser.yy.locations.splice(i, 1); + } + } + + if ( + location.type === 'table' && + typeof location.identifierChain !== 'undefined' && + location.identifierChain.length === 1 && + location.identifierChain[0].name + ) { + // Could be a cte reference + parser.yy.locations.some(otherLocation => { + if ( + otherLocation.type === 'alias' && + otherLocation.source === 'cte' && + identifierEquals(otherLocation.alias, location.identifierChain[0].name) + ) { + // TODO: Possibly add the other location if we want to show the link in the future. + // i.e. highlight select definition on hover over alias, also for subquery references. + location.type = 'alias'; + location.target = 'cte'; + location.alias = location.identifierChain[0].name; + delete location.identifierChain; + return true; + } + }); + } + + if ( + location.type === 'table' && + (typeof location.identifierChain === 'undefined' || location.identifierChain.length === 0) + ) { + parser.yy.locations.splice(i, 1); + } + + if (location.type === 'unknown') { + location.type = 'column'; + } + + // A column location might refer to a previously defined alias, i.e. last 'foo' in "SELECT cast(id AS int) foo FROM tbl ORDER BY foo;" + if (location.type === 'column') { + for (let j = i - 1; j >= 0; j--) { + const otherLocation = parser.yy.locations[j]; + if ( + otherLocation.type === 'alias' && + otherLocation.source === 'column' && + location.identifierChain && + location.identifierChain.length === 1 && + location.identifierChain[0].name && + otherLocation.alias && + location.identifierChain[0].name.toLowerCase() === otherLocation.alias.toLowerCase() + ) { + location.type = 'alias'; + location.source = 'column'; + location.alias = location.identifierChain[0].name; + delete location.identifierChain; + location.parentLocation = otherLocation.parentLocation; + break; + } + } + } + + if (location.type === 'column') { + const initialIdentifierChain = location.identifierChain + ? location.identifierChain.concat() + : undefined; + + parser.expandIdentifierChain({ + tablePrimaries: tablePrimaries, + wrapper: location, + anyOwner: true, + isColumnWrapper: true, + isColumnLocation: true + }); + + if (typeof location.identifierChain === 'undefined') { + parser.yy.locations.splice(i, 1); + } else if ( + location.identifierChain.length === 0 && + initialIdentifierChain && + initialIdentifierChain.length === 1 + ) { + // This is for the case "SELECT tblOrColName FROM db.tblOrColName"; + location.identifierChain = initialIdentifierChain; + } + } + if (location.type === 'column' && location.identifierChain) { + if (location.identifierChain.length > 1 && location.tables && location.tables.length > 0) { + location.type = 'complex'; + } + } + delete location.firstInChain; + if (location.type !== 'column' && location.type !== 'complex') { + delete location.qualified; + } else if (typeof location.qualified === 'undefined') { + location.qualified = false; + } + } + + if (parser.yy.locations.length > 0) { + parser.yy.allLocations = parser.yy.allLocations.concat(parser.yy.locations); + parser.yy.locations = []; + } + }; + + const prioritizeSuggestions = function() { + parser.yy.result.lowerCase = parser.yy.lowerCase || false; + + const cteIndex = {}; + + if (typeof parser.yy.latestCommonTableExpressions !== 'undefined') { + parser.yy.latestCommonTableExpressions.forEach(cte => { + cteIndex[cte.alias.toLowerCase()] = cte; + }); + } + + SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { + if ( + suggestionType !== 'suggestAggregateFunctions' && + typeof parser.yy.result[suggestionType] !== 'undefined' && + parser.yy.result[suggestionType].tables.length === 0 + ) { + delete parser.yy.result[suggestionType]; + } else if ( + typeof parser.yy.result[suggestionType] !== 'undefined' && + typeof parser.yy.result[suggestionType].tables !== 'undefined' + ) { + for (let i = parser.yy.result[suggestionType].tables.length - 1; i >= 0; i--) { + const table = parser.yy.result[suggestionType].tables[i]; + if ( + table.identifierChain.length === 1 && + typeof table.identifierChain[0].name !== 'undefined' && + typeof cteIndex[table.identifierChain[0].name.toLowerCase()] !== 'undefined' + ) { + parser.yy.result[suggestionType].tables.splice(i, 1); + } + } + } + }); + + if (typeof parser.yy.result.colRef !== 'undefined') { + if ( + !parser.yy.result.colRef.linked || + typeof parser.yy.result.colRef.identifierChain === 'undefined' || + parser.yy.result.colRef.identifierChain.length === 0 + ) { + delete parser.yy.result.colRef; + if (typeof parser.yy.result.suggestColRefKeywords !== 'undefined') { + Object.keys(parser.yy.result.suggestColRefKeywords).forEach(type => { + parser.yy.result.suggestKeywords = parser.yy.result.suggestKeywords.concat( + parser.createWeightedKeywords(parser.yy.result.suggestColRefKeywords[type], -1) + ); + }); + delete parser.yy.result.suggestColRefKeywords; + } + if ( + parser.yy.result.suggestColumns && + parser.yy.result.suggestColumns.types.length === 1 && + parser.yy.result.suggestColumns.types[0] === 'COLREF' + ) { + parser.yy.result.suggestColumns.types = ['T']; + } + delete parser.yy.result.suggestValues; + } + } + + if (typeof parser.yy.result.colRef !== 'undefined') { + if ( + !parser.yy.result.suggestValues && + !parser.yy.result.suggestColRefKeywords && + (!parser.yy.result.suggestColumns || parser.yy.result.suggestColumns.types[0] !== 'COLREF') + ) { + delete parser.yy.result.colRef; + } + } + if ( + typeof parser.yy.result.suggestIdentifiers !== 'undefined' && + parser.yy.result.suggestIdentifiers.length > 0 + ) { + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + } + if (typeof parser.yy.result.suggestColumns !== 'undefined') { + const suggestColumns = parser.yy.result.suggestColumns; + if (typeof suggestColumns.tables === 'undefined' || suggestColumns.tables.length === 0) { + // Impala supports statements like SELECT * FROM tbl1, tbl2 WHERE db.tbl1.col = tbl2.bla + if ( + parser.yy.result.suggestColumns.linked && + typeof suggestColumns.identifierChain !== 'undefined' && + suggestColumns.identifierChain.length > 0 + ) { + if (suggestColumns.identifierChain.length === 1) { + parser.yy.result.suggestTables = suggestColumns; + delete parser.yy.result.suggestColumns; + } else { + suggestColumns.tables = [{ identifierChain: suggestColumns.identifierChain }]; + delete suggestColumns.identifierChain; + } + } else { + delete parser.yy.result.suggestColumns; + delete parser.yy.result.subQueries; + } + } else { + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + + suggestColumns.tables.forEach(table => { + if ( + typeof table.identifierChain !== 'undefined' && + table.identifierChain.length === 1 && + typeof table.identifierChain[0].name !== 'undefined' + ) { + const cte = cteIndex[table.identifierChain[0].name.toLowerCase()]; + if (typeof cte !== 'undefined') { + delete table.identifierChain[0].name; + table.identifierChain[0].cte = cte.alias; + } + } else if (typeof table.identifierChain === 'undefined' && table.subQuery) { + table.identifierChain = [{ subQuery: table.subQuery }]; + delete table.subQuery; + } + }); + + if ( + typeof suggestColumns.identifierChain !== 'undefined' && + suggestColumns.identifierChain.length === 0 + ) { + delete suggestColumns.identifierChain; + } + } + } else { + delete parser.yy.result.subQueries; + } + + if (typeof parser.yy.result.suggestJoinConditions !== 'undefined') { + if ( + typeof parser.yy.result.suggestJoinConditions.tables === 'undefined' || + parser.yy.result.suggestJoinConditions.tables.length === 0 + ) { + delete parser.yy.result.suggestJoinConditions; + } + } + + if ( + typeof parser.yy.result.suggestTables !== 'undefined' && + typeof parser.yy.result.commonTableExpressions !== 'undefined' + ) { + const ctes = []; + parser.yy.result.commonTableExpressions.forEach(cte => { + const suggestion = { name: cte.alias }; + if (parser.yy.result.suggestTables.prependFrom) { + suggestion.prependFrom = true; + } + if (parser.yy.result.suggestTables.prependQuestionMark) { + suggestion.prependQuestionMark = true; + } + ctes.push(suggestion); + }); + if (ctes.length > 0) { + parser.yy.result.suggestCommonTableExpressions = ctes; + } + } + }; + + /** + * Impala supports referencing maps and arrays in the the table reference list i.e. + * + * SELECT m['foo'].bar.| FROM someDb.someTable t, t.someMap m; + * + * From this the tablePrimaries would look like: + * + * [ { alias: 't', identifierChain: [ { name: 'someDb' }, { name: 'someTable' } ] }, + * { alias: 'm', identifierChain: [ { name: 't' }, { name: 'someMap' } ] } ] + * + * with an identifierChain from the select list: + * + * [ { name: 'm', keySet: true }, { name: 'bar' } ] + * + * Calling this would return an expanded identifierChain, given the above it would be: + * + * [ { name: 't' }, { name: 'someMap', keySet: true }, { name: 'bar' } ] + */ + parser.expandImpalaIdentifierChain = function(tablePrimaries, identifierChain) { + const expandedChain = identifierChain.concat(); // Clone in case it's called multiple times. + if (typeof expandedChain === 'undefined' || expandedChain.length === 0) { + return identifierChain; + } + const expand = function(identifier, expandedChain) { + const foundPrimary = tablePrimaries.filter(tablePrimary => { + let primaryIdentifier = tablePrimary.alias; + if ( + !primaryIdentifier && + tablePrimary.identifierChain && + tablePrimary.identifierChain.length > 0 + ) { + primaryIdentifier = + tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1].name; + } + return equalIgnoreCase(primaryIdentifier, identifier); + }); + + if (foundPrimary.length === 1 && foundPrimary[0].identifierChain) { + const parentPrimary = tablePrimaries.filter(tablePrimary => { + return equalIgnoreCase(tablePrimary.alias, foundPrimary[0].identifierChain[0].name); + }); + if (parentPrimary.length === 1) { + const keySet = expandedChain[0].keySet; + const secondPart = expandedChain.slice(1); + const firstPart = []; + // Clone to make sure we don't add keySet to the primaries + foundPrimary[0].identifierChain.forEach(identifier => { + firstPart.push({ name: identifier.name }); + }); + if (keySet && firstPart.length > 0) { + firstPart[firstPart.length - 1].keySet = true; + } + + if ( + firstPart.length === 0 || + typeof secondPart === 'undefined' || + secondPart.length === 0 + ) { + return firstPart; + } + const result = firstPart.concat(secondPart); + if (result.length > 0) { + return expand(firstPart[0].name, result); + } else { + return result; + } + } + } + return expandedChain; + }; + return expand(expandedChain[0].name, expandedChain); + }; + + parser.identifyPartials = function(beforeCursor, afterCursor) { + const beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); + const afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); + return { + left: beforeMatch ? beforeMatch[0].length : 0, + right: afterMatch ? afterMatch[0].length : 0 + }; + }; + + const addCleanTablePrimary = function(tables, tablePrimary) { + if (tablePrimary.alias) { + tables.push({ alias: tablePrimary.alias, identifierChain: tablePrimary.identifierChain }); + } else { + tables.push({ identifierChain: tablePrimary.identifierChain }); + } + }; + + parser.expandIdentifierChain = function(options) { + const wrapper = options.wrapper; + const anyOwner = options.anyOwner; + const isColumnWrapper = options.isColumnWrapper; + const isColumnLocation = options.isColumnLocation; + let tablePrimaries = options.tablePrimaries || parser.yy.latestTablePrimaries; + + if (typeof wrapper.identifierChain === 'undefined' || typeof tablePrimaries === 'undefined') { + return; + } + let identifierChain = wrapper.identifierChain.concat(); + + if (tablePrimaries.length === 0) { + delete wrapper.identifierChain; + return; + } + + if (!anyOwner) { + tablePrimaries = filterTablePrimariesForOwner(tablePrimaries, wrapper.owner); + } + + if (identifierChain.length > 0 && identifierChain[identifierChain.length - 1].asterisk) { + const tables = []; + tablePrimaries.forEach(tablePrimary => { + if (identifierChain.length > 1 && !tablePrimary.subQueryAlias) { + if ( + identifierChain.length === 2 && + equalIgnoreCase(tablePrimary.alias, identifierChain[0].name) + ) { + addCleanTablePrimary(tables, tablePrimary); + } else if ( + identifierChain.length === 2 && + equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) + ) { + addCleanTablePrimary(tables, tablePrimary); + } else if ( + identifierChain.length === 3 && + tablePrimary.identifierChain.length > 1 && + equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) && + equalIgnoreCase(tablePrimary.identifierChain[1].name, identifierChain[1].name) + ) { + addCleanTablePrimary(tables, tablePrimary); + } + } else if (tablePrimary.subQueryAlias) { + tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); + } else { + addCleanTablePrimary(tables, tablePrimary); + } + }); + // Possible Joins + if (tables.length > 0) { + wrapper.tables = tables; + delete wrapper.identifierChain; + return; + } + } + + // Impala can have references to maps or array, i.e. FROM table t, t.map m + // We need to replace those in the identifierChain + const lengthBefore = identifierChain.length; + identifierChain = parser.expandImpalaIdentifierChain(tablePrimaries, identifierChain); + // Change type of any locations marked as table + if (wrapper.type === 'table' && identifierChain.length > lengthBefore) { + wrapper.type = 'column'; + } + wrapper.identifierChain = identifierChain; + + // IdentifierChain contains a possibly started identifier or empty, example: a.b.c = ['a', 'b', 'c'] + // Reduce the tablePrimaries to the one that matches the first identifier if found + let foundPrimary; + let doubleMatch = false; + let aliasMatch = false; + if (identifierChain.length > 0) { + for (let i = 0; i < tablePrimaries.length; i++) { + if (tablePrimaries[i].subQueryAlias) { + if (equalIgnoreCase(tablePrimaries[i].subQueryAlias, identifierChain[0].name)) { + foundPrimary = tablePrimaries[i]; + } + } else if (equalIgnoreCase(tablePrimaries[i].alias, identifierChain[0].name)) { + foundPrimary = tablePrimaries[i]; + aliasMatch = true; + break; + } else if ( + tablePrimaries[i].identifierChain.length > 1 && + identifierChain.length > 1 && + equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && + equalIgnoreCase(tablePrimaries[i].identifierChain[1].name, identifierChain[1].name) + ) { + foundPrimary = tablePrimaries[i]; + doubleMatch = true; + break; + } else if ( + !foundPrimary && + equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && + identifierChain.length > (isColumnLocation ? 1 : 0) + ) { + foundPrimary = tablePrimaries[i]; + // No break as first two can still match. + } else if ( + !foundPrimary && + tablePrimaries[i].identifierChain.length > 1 && + !tablePrimaries[i].alias && + equalIgnoreCase( + tablePrimaries[i].identifierChain[tablePrimaries[i].identifierChain.length - 1].name, + identifierChain[0].name + ) + ) { + // This is for the case SELECT baa. FROM bla.baa, blo.boo; + foundPrimary = tablePrimaries[i]; + break; + } + } + } + + if (foundPrimary) { + if (foundPrimary.impalaComplex && wrapper.type === 'column') { + wrapper.type = 'complex'; + } + identifierChain.shift(); + if (doubleMatch) { + identifierChain.shift(); + } + } else if (tablePrimaries.length === 1 && !isColumnWrapper) { + foundPrimary = tablePrimaries[0]; + } + + if (foundPrimary) { + if (isColumnWrapper) { + wrapper.identifierChain = identifierChain; + if (foundPrimary.subQueryAlias) { + wrapper.tables = [{ subQuery: foundPrimary.subQueryAlias }]; + } else if (foundPrimary.alias) { + if (!isColumnLocation && isColumnWrapper && aliasMatch) { + // TODO: add alias on table in suggestColumns (needs support in sqlAutocomplete3.js) + // the case is: SELECT cu.| FROM customers cu; + // This prevents alias from being added automatically in sqlAutocompleter.js + wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; + } else { + wrapper.tables = [ + { identifierChain: foundPrimary.identifierChain, alias: foundPrimary.alias } + ]; + } + } else { + wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; + } + } else { + if (foundPrimary.subQueryAlias) { + identifierChain.unshift({ subQuery: foundPrimary.subQueryAlias }); + } else { + identifierChain = foundPrimary.identifierChain.concat(identifierChain); + } + if (wrapper.tables) { + wrapper.tables.push({ identifierChain: identifierChain }); + delete wrapper.identifierChain; + } else { + wrapper.identifierChain = identifierChain; + } + } + } else { + if (isColumnWrapper) { + wrapper.tables = []; + } + tablePrimaries.forEach(tablePrimary => { + const targetTable = tablePrimary.subQueryAlias + ? { subQuery: tablePrimary.subQueryAlias } + : { identifierChain: tablePrimary.identifierChain }; + if (tablePrimary.alias) { + targetTable.alias = tablePrimary.alias; + } + if (wrapper.tables) { + wrapper.tables.push(targetTable); + } + }); + } + delete wrapper.owner; + wrapper.linked = true; + }; + + const filterTablePrimariesForOwner = function(tablePrimaries, owner) { + const result = []; + tablePrimaries.forEach(primary => { + if (typeof owner === 'undefined' && typeof primary.owner === 'undefined') { + result.push(primary); + } else if (owner === primary.owner) { + result.push(primary); + } + }); + return result; + }; + + const convertTablePrimariesToSuggestions = function(tablePrimaries) { + const tables = []; + const identifiers = []; + tablePrimaries.forEach(tablePrimary => { + if (tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { + const table = { identifierChain: tablePrimary.identifierChain }; + if (tablePrimary.alias) { + table.alias = tablePrimary.alias; + identifiers.push({ name: table.alias + '.', type: 'alias' }); + const testForImpalaAlias = [{ name: table.alias }]; + const result = parser.expandImpalaIdentifierChain(tablePrimaries, testForImpalaAlias); + if (result.length > 1) { + // Continue if it's a reference to a complex type + return; + } + } else { + const lastIdentifier = + tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1]; + if (typeof lastIdentifier.name !== 'undefined') { + identifiers.push({ name: lastIdentifier.name + '.', type: 'table' }); + } else if (typeof lastIdentifier.subQuery !== 'undefined') { + identifiers.push({ name: lastIdentifier.subQuery + '.', type: 'sub-query' }); + } + } + tables.push(table); + } else if (tablePrimary.subQueryAlias) { + identifiers.push({ name: tablePrimary.subQueryAlias + '.', type: 'sub-query' }); + tables.push({ identifierChain: [{ subQuery: tablePrimary.subQueryAlias }] }); + } + }); + if (identifiers.length > 0) { + if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { + parser.yy.result.suggestIdentifiers = identifiers; + } else { + parser.yy.result.suggestIdentifiers = identifiers.concat( + parser.yy.result.suggestIdentifiers + ); + } + } + parser.yy.result.suggestColumns.tables = tables; + if ( + parser.yy.result.suggestColumns.identifierChain && + parser.yy.result.suggestColumns.identifierChain.length === 0 + ) { + delete parser.yy.result.suggestColumns.identifierChain; + } + parser.yy.result.suggestColumns.linked = true; + }; + + const linkTablePrimaries = function() { + if (!parser.yy.cursorFound || typeof parser.yy.latestTablePrimaries === 'undefined') { + return; + } + + SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { + if ( + typeof parser.yy.result[suggestionType] !== 'undefined' && + parser.yy.result[suggestionType].tablePrimaries && + !parser.yy.result[suggestionType].linked + ) { + parser.yy.result[suggestionType].tables = []; + parser.yy.result[suggestionType].tablePrimaries.forEach(tablePrimary => { + if (!tablePrimary.subQueryAlias) { + parser.yy.result[suggestionType].tables.push( + tablePrimary.alias + ? { + identifierChain: tablePrimary.identifierChain.concat(), + alias: tablePrimary.alias + } + : { identifierChain: tablePrimary.identifierChain.concat() } + ); + } + }); + delete parser.yy.result[suggestionType].tablePrimaries; + parser.yy.result[suggestionType].linked = true; + } + }); + + if ( + typeof parser.yy.result.suggestColumns !== 'undefined' && + !parser.yy.result.suggestColumns.linked + ) { + const tablePrimaries = filterTablePrimariesForOwner( + parser.yy.latestTablePrimaries, + parser.yy.result.suggestColumns.owner + ); + if (!parser.yy.result.suggestColumns.tables) { + parser.yy.result.suggestColumns.tables = []; + } + if (parser.yy.subQueries.length > 0) { + parser.yy.result.subQueries = parser.yy.subQueries; + } + if ( + typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || + parser.yy.result.suggestColumns.identifierChain.length === 0 + ) { + if (tablePrimaries.length > 1) { + convertTablePrimariesToSuggestions(tablePrimaries); + } else { + if ( + tablePrimaries.length === 1 && + (tablePrimaries[0].alias || tablePrimaries[0].subQueryAlias) + ) { + convertTablePrimariesToSuggestions(tablePrimaries); + } + parser.expandIdentifierChain({ + wrapper: parser.yy.result.suggestColumns, + anyOwner: false, + isColumnWrapper: true + }); + } + } else { + parser.expandIdentifierChain({ + wrapper: parser.yy.result.suggestColumns, + anyOwner: false, + isColumnWrapper: true + }); + } + } + + if (typeof parser.yy.result.colRef !== 'undefined' && !parser.yy.result.colRef.linked) { + parser.expandIdentifierChain({ wrapper: parser.yy.result.colRef }); + + const primaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries); + if ( + primaries.length === 0 || + (primaries.length > 1 && parser.yy.result.colRef.identifierChain.length === 1) + ) { + parser.yy.result.colRef.identifierChain = []; + } + } + if ( + typeof parser.yy.result.suggestKeyValues !== 'undefined' && + !parser.yy.result.suggestKeyValues.linked + ) { + parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestKeyValues }); + } + }; + + parser.getSubQuery = function(cols) { + const columns = []; + cols.selectList.forEach(col => { + const result = {}; + if (col.alias) { + result.alias = col.alias; + } + if (col.valueExpression && col.valueExpression.columnReference) { + result.identifierChain = col.valueExpression.columnReference; + } else if (col.asterisk) { + result.identifierChain = [{ asterisk: true }]; + } + if ( + col.valueExpression && + col.valueExpression.types && + col.valueExpression.types.length === 1 + ) { + result.type = col.valueExpression.types[0]; + } + + columns.push(result); + }); + + return { + columns: columns + }; + }; + + parser.addTablePrimary = function(ref) { + if (typeof parser.yy.latestTablePrimaries === 'undefined') { + parser.yy.latestTablePrimaries = []; + } + parser.yy.latestTablePrimaries.push(ref); + }; + + parser.suggestFileFormats = function() { + parser.suggestKeywords([ + 'AVRO', + 'KUDU', + 'ORC', + 'PARQUET', + 'RCFILE', + 'SEQUENCEFILE', + 'TEXTFILE' + ]); + }; + + parser.getKeywordsForOptionalsLR = function(optionals, keywords, override) { + let result = []; + + for (let i = 0; i < optionals.length; i++) { + if (!optionals[i] && (typeof override === 'undefined' || override[i])) { + if (keywords[i] instanceof Array) { + result = result.concat(keywords[i]); + } else { + result.push(keywords[i]); + } + } else if (optionals[i]) { + break; + } + } + return result; + }; + + parser.suggestDdlAndDmlKeywords = function(extraKeywords) { + let keywords = [ + 'ALTER', + 'CREATE', + 'DESCRIBE', + 'DROP', + 'GRANT', + 'INSERT', + 'REVOKE', + 'SELECT', + 'SET', + 'SHOW', + 'TRUNCATE', + 'UPDATE', + 'USE', + 'WITH' + ]; + + if (extraKeywords) { + keywords = keywords.concat(extraKeywords); + } + + keywords = keywords.concat([ + 'COMMENT ON', + 'COMPUTE', + 'DELETE', + 'INVALIDATE METADATA', + 'LOAD', + 'REFRESH', + 'UPSERT' + ]); + + parser.suggestKeywords(keywords); + }; + + parser.checkForSelectListKeywords = function(selectList) { + if (selectList.length === 0) { + return; + } + const last = selectList[selectList.length - 1]; + if (!last || !last.valueExpression) { + return; + } + const valueExpressionKeywords = parser.getValueExpressionKeywords(last.valueExpression); + let keywords = []; + if (last.suggestKeywords) { + keywords = keywords.concat(last.suggestKeywords); + } + if (valueExpressionKeywords.suggestKeywords) { + keywords = keywords.concat(valueExpressionKeywords.suggestKeywords); + } + if (valueExpressionKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(valueExpressionKeywords.suggestColRefKeywords); + parser.addColRefIfExists(last.valueExpression); + } + if (!last.alias) { + keywords.push('AS'); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + }; + + parser.checkForKeywords = function(expression) { + if (expression) { + if (expression.suggestKeywords && expression.suggestKeywords.length > 0) { + parser.suggestKeywords(expression.suggestKeywords); + } + if (expression.suggestColRefKeywords) { + parser.suggestColRefKeywords(expression.suggestColRefKeywords); + parser.addColRefIfExists(expression); + } + } + }; + + parser.createWeightedKeywords = function(keywords, weight) { + const result = []; + keywords.forEach(keyword => { + if (typeof keyword.weight !== 'undefined') { + keyword.weight = weight + keyword.weight / 10; + result.push(keyword); + } else { + result.push({ value: keyword, weight: weight }); + } + }); + return result; + }; + + parser.suggestKeywords = function(keywords) { + const weightedKeywords = []; + if (keywords.length === 0) { + return; + } + keywords.forEach(keyword => { + if (typeof keyword.weight !== 'undefined') { + weightedKeywords.push(keyword); + } else { + weightedKeywords.push({ value: keyword, weight: -1 }); + } + }); + weightedKeywords.sort((a, b) => { + if (a.weight !== b.weight) { + return b.weight - a.weight; + } + return a.value.localeCompare(b.value); + }); + parser.yy.result.suggestKeywords = weightedKeywords; + }; + + parser.suggestColRefKeywords = function(colRefKeywords) { + parser.yy.result.suggestColRefKeywords = colRefKeywords; + }; + + parser.suggestTablesOrColumns = function(identifier) { + if (typeof parser.yy.latestTablePrimaries == 'undefined') { + parser.suggestTables({ identifierChain: [{ name: identifier }] }); + return; + } + const tableRef = parser.yy.latestTablePrimaries.filter(tablePrimary => { + return equalIgnoreCase(tablePrimary.alias, identifier); + }); + if (tableRef.length > 0) { + parser.suggestColumns({ identifierChain: [{ name: identifier }] }); + } else { + parser.suggestTables({ identifierChain: [{ name: identifier }] }); + } + }; + + parser.suggestFunctions = function(details) { + parser.yy.result.suggestFunctions = details || {}; + }; + + parser.suggestAggregateFunctions = function() { + const primaries = []; + const aliases = {}; + parser.yy.latestTablePrimaries.forEach(primary => { + if (typeof primary.alias !== 'undefined') { + aliases[primary.alias] = true; + } + // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...) + if ( + typeof primary.identifierChain !== 'undefined' && + !aliases[primary.identifierChain[0].name] && + typeof primary.owner === 'undefined' + ) { + primaries.push(primary); + } + }); + parser.yy.result.suggestAggregateFunctions = { tablePrimaries: primaries }; + }; + + parser.suggestAnalyticFunctions = function() { + parser.yy.result.suggestAnalyticFunctions = true; + }; + + parser.suggestSetOptions = function() { + parser.yy.result.suggestSetOptions = true; + }; + + parser.suggestIdentifiers = function(identifiers) { + parser.yy.result.suggestIdentifiers = identifiers; + }; + + parser.suggestColumns = function(details) { + if (typeof details === 'undefined') { + details = { identifierChain: [] }; + } else if (typeof details.identifierChain === 'undefined') { + details.identifierChain = []; + } + parser.yy.result.suggestColumns = details; + }; + + parser.suggestGroupBys = function(details) { + parser.yy.result.suggestGroupBys = details || {}; + }; + + parser.suggestOrderBys = function(details) { + parser.yy.result.suggestOrderBys = details || {}; + }; + + parser.suggestFilters = function(details) { + parser.yy.result.suggestFilters = details || {}; + }; + + parser.suggestKeyValues = function(details) { + parser.yy.result.suggestKeyValues = details || {}; + }; + + parser.suggestTables = function(details) { + parser.yy.result.suggestTables = details || {}; + }; + + const adjustLocationForCursor = function(location) { + // columns are 0-based and lines not, so add 1 to cols + const newLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column + 1, + last_column: location.last_column + 1 + }; + if (parser.yy.cursorFound) { + if ( + parser.yy.cursorFound.first_line === newLocation.first_line && + parser.yy.cursorFound.last_column <= newLocation.first_column + ) { + let additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; + additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. + newLocation.first_column = newLocation.first_column + additionalSpace; + newLocation.last_column = newLocation.last_column + additionalSpace; + } + } + return newLocation; + }; + + parser.addFunctionLocation = function(location, functionName) { + // Remove trailing '(' from location + const adjustedLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column, + last_column: location.last_column - 1 + }; + parser.yy.locations.push({ + type: 'function', + location: adjustLocationForCursor(adjustedLocation), + function: functionName.toLowerCase() + }); + }; + + parser.addStatementLocation = function(location) { + // Don't report lonely cursor as a statement + if ( + location.first_line === location.last_line && + Math.abs(location.last_column - location.first_column) === 1 + ) { + return; + } + let adjustedLocation; + if ( + parser.yy.cursorFound && + parser.yy.cursorFound.last_line === location.last_line && + parser.yy.cursorFound.first_column >= location.first_column && + parser.yy.cursorFound.last_column <= location.last_column + ) { + const additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; + adjustedLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column + 1, + last_column: location.last_column + additionalSpace - (parser.yy.partialCursor ? 0 : 2) + }; + } else { + adjustedLocation = { + first_line: location.first_line, + last_line: location.last_line, + first_column: location.first_column + 1, + last_column: location.last_column + 1 + }; + } + + parser.yy.locations.push({ + type: 'statement', + location: adjustedLocation + }); + }; + + parser.firstDefined = function() { + for (let i = 0; i + 1 < arguments.length; i += 2) { + if (arguments[i]) { + return arguments[i + 1]; + } + } + }; + + parser.addClauseLocation = function(type, precedingLocation, locationIfPresent, isCursor) { + let location; + if (isCursor) { + if (parser.yy.partialLengths.left === 0 && parser.yy.partialLengths.right === 0) { + location = { + type: type, + missing: true, + location: adjustLocationForCursor({ + first_line: precedingLocation.last_line, + first_column: precedingLocation.last_column, + last_line: precedingLocation.last_line, + last_column: precedingLocation.last_column + }) + }; + } else { + location = { + type: type, + missing: false, + location: { + first_line: locationIfPresent.last_line, + first_column: locationIfPresent.last_column - 1, + last_line: locationIfPresent.last_line, + last_column: + locationIfPresent.last_column - + 1 + + parser.yy.partialLengths.right + + parser.yy.partialLengths.left + } + }; + } + } else { + location = { + type: type, + missing: !locationIfPresent, + location: adjustLocationForCursor( + locationIfPresent || { + first_line: precedingLocation.last_line, + first_column: precedingLocation.last_column, + last_line: precedingLocation.last_line, + last_column: precedingLocation.last_column + } + ) + }; + } + if (parser.isInSubquery()) { + location.subquery = true; + } + parser.yy.locations.push(location); + }; + + parser.addStatementTypeLocation = function(identifier, location, additionalText) { + // Don't add if already there except for SELECT + if (identifier !== 'SELECT' && parser.yy.allLocations) { + for (let i = parser.yy.allLocations.length - 1; i >= 0; i--) { + if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statement') { + break; + } + if (parser.yy.allLocations[i] && parser.yy.allLocations[i].type === 'statementType') { + return; + } + } + } + const loc = { + type: 'statementType', + location: adjustLocationForCursor(location), + identifier: identifier + }; + if (typeof additionalText !== 'undefined') { + switch (identifier) { + case 'ALTER': + if (/ALTER\s+VIEW/i.test(additionalText)) { + loc.identifier = 'ALTER VIEW'; + } else { + loc.identifier = 'ALTER TABLE'; + } + break; + case 'COMPUTE': + loc.identifier = 'COMPUTE STATS'; + break; + case 'CREATE': + if (/CREATE\s+VIEW/i.test(additionalText)) { + loc.identifier = 'CREATE VIEW'; + } else if (/CREATE\s+TABLE/i.test(additionalText)) { + loc.identifier = 'CREATE TABLE'; + } else if (/CREATE\s+DATABASE/i.test(additionalText)) { + loc.identifier = 'CREATE DATABASE'; + } else if (/CREATE\s+ROLE/i.test(additionalText)) { + loc.identifier = 'CREATE ROLE'; + } else if (/CREATE\s+FUNCTION/i.test(additionalText)) { + loc.identifier = 'CREATE FUNCTION'; + } else { + loc.identifier = 'CREATE TABLE'; + } + break; + case 'DROP': + if (/DROP\s+VIEW/i.test(additionalText)) { + loc.identifier = 'DROP VIEW'; + } else if (/DROP\s+TABLE/i.test(additionalText)) { + loc.identifier = 'DROP TABLE'; + } else if (/DROP\s+DATABASE/i.test(additionalText)) { + loc.identifier = 'DROP DATABASE'; + } else if (/DROP\s+ROLE/i.test(additionalText)) { + loc.identifier = 'DROP ROLE'; + } else if (/DROP\s+STATS/i.test(additionalText)) { + loc.identifier = 'DROP STATS'; + } else if (/DROP\s+FUNCTION/i.test(additionalText)) { + loc.identifier = 'DROP FUNCTION'; + } else { + loc.identifier = 'DROP TABLE'; + } + break; + case 'INVALIDATE': + loc.identifier = 'INVALIDATE METADATA'; + break; + case 'LOAD': + loc.identifier = 'LOAD DATA'; + break; + case 'TRUNCATE': + loc.identifier = 'TRUNCATE TABLE'; + break; + default: + } + } + parser.yy.locations.push(loc); + }; + + parser.addFileLocation = function(location, path) { + parser.yy.locations.push({ + type: 'file', + location: adjustLocationForCursor(location), + path: path + }); + }; + + parser.addDatabaseLocation = function(location, identifierChain) { + parser.yy.locations.push({ + type: 'database', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addTableLocation = function(location, identifierChain) { + parser.yy.locations.push({ + type: 'table', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addColumnAliasLocation = function(location, alias, parentLocation) { + const aliasLocation = { + type: 'alias', + source: 'column', + alias: alias, + location: adjustLocationForCursor(location), + parentLocation: adjustLocationForCursor(parentLocation) + }; + if ( + parser.yy.locations.length && + parser.yy.locations[parser.yy.locations.length - 1].type === 'column' + ) { + const closestColumn = parser.yy.locations[parser.yy.locations.length - 1]; + if ( + closestColumn.location.first_line === aliasLocation.parentLocation.first_line && + closestColumn.location.last_line === aliasLocation.parentLocation.last_line && + closestColumn.location.first_column === aliasLocation.parentLocation.first_column && + closestColumn.location.last_column === aliasLocation.parentLocation.last_column + ) { + parser.yy.locations[parser.yy.locations.length - 1].alias = alias; + } + } + parser.yy.locations.push(aliasLocation); + }; + + parser.addTableAliasLocation = function(location, alias, identifierChain) { + parser.yy.locations.push({ + type: 'alias', + source: 'table', + alias: alias, + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addSubqueryAliasLocation = function(location, alias) { + parser.yy.locations.push({ + type: 'alias', + source: 'subquery', + alias: alias, + location: adjustLocationForCursor(location) + }); + }; + + parser.addAsteriskLocation = function(location, identifierChain) { + parser.yy.locations.push({ + type: 'asterisk', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addVariableLocation = function(location, value) { + if (/\${[^}]*}/.test(value)) { + parser.yy.locations.push({ + type: 'variable', + location: adjustLocationForCursor(location), + value: value + }); + } + }; + + parser.addColumnLocation = function(location, identifierChain) { + const isVariable = + identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); + if (isVariable) { + parser.yy.locations.push({ + type: 'variable', + location: adjustLocationForCursor(location), + value: identifierChain[identifierChain.length - 1].name + }); + } else { + parser.yy.locations.push({ + type: 'column', + location: adjustLocationForCursor(location), + identifierChain: identifierChain, + qualified: identifierChain.length > 1 + }); + } + }; + + parser.addCteAliasLocation = function(location, alias) { + parser.yy.locations.push({ + type: 'alias', + source: 'cte', + alias: alias, + location: adjustLocationForCursor(location) + }); + }; + + parser.addUnknownLocation = function(location, identifierChain) { + const isVariable = + identifierChain.length && /\${[^}]*}/.test(identifierChain[identifierChain.length - 1].name); + let loc; + if (isVariable) { + loc = { + type: 'variable', + location: adjustLocationForCursor(location), + value: identifierChain[identifierChain.length - 1].name + }; + } else { + loc = { + type: 'unknown', + location: adjustLocationForCursor(location), + identifierChain: identifierChain, + qualified: identifierChain.length > 1 + }; + } + parser.yy.locations.push(loc); + return loc; + }; + + parser.addNewDatabaseLocation = function(location, identifierChain) { + parser.yy.definitions.push({ + type: 'database', + location: adjustLocationForCursor(location), + identifierChain: identifierChain + }); + }; + + parser.addNewTableLocation = function(location, identifierChain, colSpec) { + const columns = []; + if (colSpec) { + colSpec.forEach(col => { + columns.push({ + identifierChain: [col.identifier], // TODO: Complex + type: col.type, + location: adjustLocationForCursor(col.location) + }); + }); + } + parser.yy.definitions.push({ + type: 'table', + location: adjustLocationForCursor(location), + identifierChain: identifierChain, + columns: columns + }); + }; + + parser.addColRefToVariableIfExists = function(left, right) { + if ( + left && + left.columnReference && + left.columnReference.length && + right && + right.columnReference && + right.columnReference.length && + parser.yy.locations.length > 1 + ) { + const addColRefToVariableLocation = function(variableValue, colRef) { + // See if colref is actually an alias + if (colRef.length === 1 && colRef[0].name) { + parser.yy.locations.some(location => { + if (location.type === 'column' && location.alias === colRef[0].name) { + colRef = location.identifierChain; + return true; + } + }); + } + + for (let i = parser.yy.locations.length - 1; i > 0; i--) { + const location = parser.yy.locations[i]; + if (location.type === 'variable' && location.value === variableValue) { + location.colRef = { identifierChain: colRef }; + break; + } + } + }; + + if (/\${[^}]*}/.test(left.columnReference[0].name)) { + // left is variable + addColRefToVariableLocation(left.columnReference[0].name, right.columnReference); + } else if (/\${[^}]*}/.test(right.columnReference[0].name)) { + // right is variable + addColRefToVariableLocation(right.columnReference[0].name, left.columnReference); + } + } + }; + + parser.suggestDatabases = function(details) { + parser.yy.result.suggestDatabases = details || {}; + }; + + parser.suggestHdfs = function(details) { + parser.yy.result.suggestHdfs = details || {}; + }; + + parser.suggestValues = function(details) { + parser.yy.result.suggestValues = details || {}; + }; + + parser.determineCase = function(text) { + if (!parser.yy.caseDetermined) { + parser.yy.lowerCase = text.toLowerCase() === text; + parser.yy.caseDetermined = true; + } + }; + + parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { + if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { + parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; + const cursorIndex = parser.yy.partialCursor + ? yytext.indexOf('\u2021') + : yytext.indexOf('\u2020'); + parser.yy.cursorFound = { + first_line: yylloc.first_line, + last_line: yylloc.last_line, + first_column: yylloc.first_column + cursorIndex, + last_column: yylloc.first_column + cursorIndex + 1 + }; + const remainder = yytext.substring(cursorIndex + 1); + const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) + .length; + if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { + parser.yy.missingEndQuote = false; + lexer.input(); + } else { + parser.yy.missingEndQuote = true; + lexer.unput(remainder); + } + lexer.popState(); + return true; + } + return false; + }; + + let lexerModified = false; + + /** + * Main parser function + */ + parser.parseSql = function(beforeCursor, afterCursor, debug) { + // Jison counts CRLF as two lines in the locations + beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); + afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); + parser.yy.result = { locations: [] }; + parser.yy.lowerCase = false; + parser.yy.locations = []; + parser.yy.definitions = []; + parser.yy.allLocations = []; + parser.yy.subQueries = []; + parser.yy.errors = []; + parser.yy.selectListAliases = []; + + parser.yy.locationsStack = []; + parser.yy.primariesStack = []; + parser.yy.subQueriesStack = []; + parser.yy.resultStack = []; + parser.yy.selectListAliasesStack = []; + parser.yy.activeDialect = 'impala'; + + delete parser.yy.caseDetermined; + delete parser.yy.cursorFound; + delete parser.yy.partialCursor; + + // Fix for parser bug when switching lexer states + if (!lexerModified) { + const originalSetInput = parser.lexer.setInput; + parser.lexer.setInput = function(input, yy) { + return originalSetInput.bind(parser.lexer)(input, yy); + }; + lexerModified = true; + } + + parser.prepareNewStatement(); + + const REASONABLE_SURROUNDING_LENGTH = 150000; // About 3000 lines before and after + + if (beforeCursor.length > REASONABLE_SURROUNDING_LENGTH) { + if (beforeCursor.length - beforeCursor.lastIndexOf(';') > REASONABLE_SURROUNDING_LENGTH) { + // Bail out if the last complete statement is more than 150000 chars before + return {}; + } + // Cut it at the first statement found within 150000 chars before + const lastReasonableChunk = beforeCursor.substring( + beforeCursor.length - REASONABLE_SURROUNDING_LENGTH + ); + beforeCursor = lastReasonableChunk.substring(lastReasonableChunk.indexOf(';') + 1); + } + + if (afterCursor.length > REASONABLE_SURROUNDING_LENGTH) { + if (afterCursor.length - afterCursor.indexOf(';') > REASONABLE_SURROUNDING_LENGTH) { + // No need to bail out for what's comes after, we can still get keyword completion + afterCursor = ''; + } else { + // Cut it at the last statement found within 150000 chars after + const firstReasonableChunk = afterCursor.substring(0, REASONABLE_SURROUNDING_LENGTH); + afterCursor = firstReasonableChunk.substring(0, firstReasonableChunk.lastIndexOf(';')); + } + } + + parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); + + if (parser.yy.partialLengths.left > 0) { + beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); + } + + if (parser.yy.partialLengths.right > 0) { + afterCursor = afterCursor.substring(parser.yy.partialLengths.right); + } + + let result; + try { + // Add |CURSOR| or |PARTIAL_CURSOR| to represent the different cursor states in the lexer + result = parser.parse( + beforeCursor + + (beforeCursor.length === 0 || /[\s(]$/.test(beforeCursor) ? ' \u2020 ' : '\u2021') + + afterCursor + ); + } catch (err) { + // On any error try to at least return any existing result + if (typeof parser.yy.result === 'undefined') { + throw err; + } + if (debug) { + console.warn(err); + console.warn(err.stack); + } + result = parser.yy.result; + } + if (parser.yy.errors.length > 0) { + parser.yy.result.errors = parser.yy.errors; + if (debug) { + console.warn(parser.yy.errors); + } + } + try { + linkTablePrimaries(); + parser.commitLocations(); + // Clean up and prioritize + prioritizeSuggestions(); + } catch (err) { + if (debug) { + console.warn(err); + console.warn(err.stack); + } + } + + parser.yy.allLocations.sort((a, b) => { + if (a.location.first_line !== b.location.first_line) { + return a.location.first_line - b.location.first_line; + } + if (a.location.first_column !== b.location.first_column) { + return a.location.first_column - b.location.first_column; + } + if (a.location.last_column !== b.location.last_column) { + return b.location.last_column - a.location.last_column; + } + return b.type.localeCompare(a.type); + }); + parser.yy.result.locations = parser.yy.allLocations; + parser.yy.result.definitions = parser.yy.definitions; + + parser.yy.result.locations.forEach(location => { + delete location.linked; + }); + if (typeof parser.yy.result.suggestColumns !== 'undefined') { + delete parser.yy.result.suggestColumns.linked; + } + + SIMPLE_TABLE_REF_SUGGESTIONS.forEach(suggestionType => { + if (typeof parser.yy.result[suggestionType] !== 'undefined') { + delete parser.yy.result[suggestionType].linked; + } + }); + + if (typeof parser.yy.result.colRef !== 'undefined') { + delete parser.yy.result.colRef.linked; + } + if (typeof parser.yy.result.suggestKeyValues !== 'undefined') { + delete parser.yy.result.suggestKeyValues.linked; + } + + if (typeof result.error !== 'undefined' && typeof result.error.expected !== 'undefined') { + // Remove the cursor from expected tokens + result.error.expected = result.error.expected.filter(token => token.indexOf('CURSOR') === -1); + } + + if (typeof result.error !== 'undefined' && result.error.recoverable) { + delete result.error; + } + + // Adjust all the statement locations to include white space surrounding them + let lastStatementLocation = null; + result.locations.forEach(location => { + if (location.type === 'statement') { + if (lastStatementLocation === null) { + location.location.first_line = 1; + location.location.first_column = 1; + } else { + location.location.first_line = lastStatementLocation.location.last_line; + location.location.first_column = lastStatementLocation.location.last_column + 1; + } + lastStatementLocation = location; + } + }); + + return result; + }; +}; + +const SYNTAX_PARSER_NOOP_FUNCTIONS = [ + 'addAsteriskLocation', + 'addClauseLocation', + 'addColRefIfExists', + 'addColRefToVariableIfExists', + 'addColumnAliasLocation', + 'addColumnLocation', + 'addCommonTableExpressions', + 'addCteAliasLocation', + 'addDatabaseLocation', + 'addFileLocation', + 'addFunctionLocation', + 'addNewDatabaseLocation', + 'addNewTableLocation', + 'addStatementLocation', + 'addStatementTypeLocation', + 'addSubqueryAliasLocation', + 'addTableAliasLocation', + 'addTableLocation', + 'addTablePrimary', + 'addUnknownLocation', + 'addVariableLocation', + 'applyArgumentTypesToSuggestions', + 'applyTypeToSuggestions', + 'checkForKeywords', + 'checkForSelectListKeywords', + 'commitLocations', + 'firstDefined', + 'getSelectListKeywords', + 'getSubQuery', + 'getValueExpressionKeywords', + 'identifyPartials', + 'popQueryState', + 'prepareNewStatement', + 'pushQueryState', + 'selectListNoTableSuggest', + 'suggestAggregateFunctions', + 'suggestAnalyticFunctions', + 'suggestColRefKeywords', + 'suggestColumns', + 'suggestDatabases', + 'suggestDdlAndDmlKeywords', + 'suggestFileFormats', + 'suggestFilters', + 'suggestFunctions', + 'suggestGroupBys', + 'suggestHdfs', + 'suggestIdentifiers', + 'suggestJoinConditions', + 'suggestJoins', + 'suggestKeyValues', + 'suggestKeywords', + 'suggestOrderBys', + 'suggestSelectListAliases', + 'suggestTables', + 'suggestTablesOrColumns', + 'suggestValueExpressionKeywords', + 'suggestValues', + 'valueExpressionSuggest' +]; + +const SYNTAX_PARSER_NOOP = function() {}; + +const initSyntaxParser = function(parser) { + // Noop functions for compatibility with the autocomplete parser as the grammar is shared + SYNTAX_PARSER_NOOP_FUNCTIONS.forEach(noopFn => { + parser[noopFn] = SYNTAX_PARSER_NOOP; + }); + + parser.yy.locations = [{}]; + + parser.determineCase = function(text) { + if (!parser.yy.caseDetermined) { + parser.yy.lowerCase = text.toLowerCase() === text; + parser.yy.caseDetermined = true; + } + }; + + parser.getKeywordsForOptionalsLR = function() { + return []; + }; + + parser.mergeSuggestKeywords = function() { + return {}; + }; + + parser.getTypeKeywords = function() { + return []; + }; + + parser.getColumnDataTypeKeywords = function() { + return []; + }; + + parser.findCaseType = function() { + return { types: ['T'] }; + }; + + parser.findReturnTypes = function() { + return ['T']; + }; + + parser.expandImpalaIdentifierChain = function() { + return []; + }; + + parser.expandIdentifierChain = function() { + return []; + }; + + parser.createWeightedKeywords = function() { + return []; + }; + + parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { + if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { + parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; + const cursorIndex = parser.yy.partialCursor + ? yytext.indexOf('\u2021') + : yytext.indexOf('\u2020'); + parser.yy.cursorFound = { + first_line: yylloc.first_line, + last_line: yylloc.last_line, + first_column: yylloc.first_column + cursorIndex, + last_column: yylloc.first_column + cursorIndex + 1 + }; + const remainder = yytext.substring(cursorIndex + 1); + const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) + .length; + if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { + parser.yy.missingEndQuote = false; + lexer.input(); + } else { + parser.yy.missingEndQuote = true; + lexer.unput(remainder); + } + lexer.popState(); + return true; + } + return false; + }; + + let lexerModified = false; + + parser.yy.parseError = function(str, hash) { + parser.yy.error = hash; + }; + + const IGNORED_EXPECTED = { + ';': true, + '.': true, + EOF: true, + UNSIGNED_INTEGER: true, + UNSIGNED_INTEGER_E: true, + REGULAR_IDENTIFIER: true, + CURSOR: true, + PARTIAL_CURSOR: true, + HDFS_START_QUOTE: true, + HDFS_PATH: true, + HDFS_END_QUOTE: true, + COMPARISON_OPERATOR: true, // TODO: Expand in results when found + ARITHMETIC_OPERATOR: true, // TODO: Expand in results when found + VARIABLE_REFERENCE: true, + BACKTICK: true, + VALUE: true, + PARTIAL_VALUE: true, + SINGLE_QUOTE: true, + DOUBLE_QUOTE: true + }; + + const CLEAN_EXPECTED = { + BETWEEN_AND: 'AND', + OVERWRITE_DIRECTORY: 'OVERWRITE', + STORED_AS_DIRECTORIES: 'STORED', + LIKE_PARQUET: 'LIKE', + PARTITION_VALUE: 'PARTITION' + }; + + parser.parseSyntax = function(beforeCursor, afterCursor, debug) { + parser.yy.caseDetermined = false; + parser.yy.error = undefined; + + parser.yy.latestTablePrimaries = []; + parser.yy.subQueries = []; + parser.yy.selectListAliases = []; + parser.yy.latestTablePrimaries = []; + + parser.yy.activeDialect = 'impala'; + + // Fix for parser bug when switching lexer states + if (!lexerModified) { + const originalSetInput = parser.lexer.setInput; + parser.lexer.setInput = function(input, yy) { + return originalSetInput.bind(parser.lexer)(input, yy); + }; + lexerModified = true; + } + + // TODO: Find a way around throwing an exception when the parser finds a syntax error + try { + parser.yy.error = false; + parser.parse(beforeCursor + afterCursor); + } catch (err) { + if (debug) { + console.warn(err); + console.warn(err.stack); + console.warn(parser.yy.error); + } + } + + if ( + parser.yy.error && + (parser.yy.error.loc.last_column < beforeCursor.length || + !beforeCursor.endsWith(parser.yy.error.text)) + ) { + const weightedExpected = []; + + const addedExpected = {}; + + const isLowerCase = + (parser.yy.caseDetermined && parser.yy.lowerCase) || + parser.yy.error.text.toLowerCase() === parser.yy.error.text; + + if ( + parser.yy.error.expected.length === 2 && + parser.yy.error.expected.indexOf("';'") !== -1 && + parser.yy.error.expected.indexOf("'EOF'") !== -1 + ) { + parser.yy.error.expected = []; + parser.yy.error.expectedStatementEnd = true; + return parser.yy.error; + } + for (let i = 0; i < parser.yy.error.expected.length; i++) { + let expected = parser.yy.error.expected[i]; + // Strip away the surrounding ' chars + expected = expected.substring(1, expected.length - 1); + // TODO: Only suggest alphanumeric? + if (expected === 'REGULAR_IDENTIFIER') { + parser.yy.error.expectedIdentifier = true; + if (/^<[a-z]+>/.test(parser.yy.error.token)) { + const text = '`' + parser.yy.error.text + '`'; + weightedExpected.push({ + text: text, + distance: stringDistance(parser.yy.error.text, text, true) + }); + parser.yy.error.possibleReserved = true; + } + } else if (!IGNORED_EXPECTED[expected] && /[a-z_]+/i.test(expected)) { + if (/^<[a-z]+>/.test(expected)) { + continue; + } + expected = CLEAN_EXPECTED[expected] || expected; + if (expected === parser.yy.error.text.toUpperCase()) { + // Can happen when the lexer entry for a rule contains multiple words like 'stored' in 'stored as parquet' + return false; + } + const text = isLowerCase ? expected.toLowerCase() : expected; + if (text && !addedExpected[text]) { + addedExpected[text] = true; + weightedExpected.push({ + text: text, + distance: stringDistance(parser.yy.error.text, text, true) + }); + } + } + } + if (weightedExpected.length === 0) { + parser.yy.error.expected = []; + parser.yy.error.incompleteStatement = true; + return parser.yy.error; + } + weightedExpected.sort((a, b) => { + if (a.distance === b.distance) { + return a.text.localeCompare(b.text); + } + return a.distance - b.distance; + }); + parser.yy.error.expected = weightedExpected; + parser.yy.error.incompleteStatement = true; + return parser.yy.error; + } else if (parser.yy.error) { + parser.yy.error.expected = []; + parser.yy.error.incompleteStatement = true; + return parser.yy.error; + } + return false; + }; +}; + +const initGlobalSearchParser = function(parser) { + parser.identifyPartials = function(beforeCursor, afterCursor) { + const beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); + const afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); + return { + left: beforeMatch ? beforeMatch[0].length : 0, + right: afterMatch ? afterMatch[0].length : 0 + }; + }; + + parser.mergeFacets = function(a, b) { + if (!a.facets) { + a.facets = {}; + } + if (!b.facets) { + return; + } + Object.keys(b.facets).forEach(key => { + if (a.facets[key]) { + Object.keys(b.facets[key]).forEach(val => { + a.facets[key][val.toLowerCase()] = true; + }); + } else { + a.facets[key] = b.facets[key]; + } + }); + }; + + parser.mergeText = function(a, b) { + if (!a.text) { + a.text = []; + } + if (!b.text) { + return; + } + a.text = a.text.concat(b.text); + }; + + parser.handleQuotedValueWithCursor = function(lexer, yytext, yylloc, quoteChar) { + if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { + const cursorIndex = yytext.indexOf('\u2020'); + parser.yy.cursorFound = { + first_line: yylloc.first_line, + last_line: yylloc.last_line, + first_column: yylloc.first_column + cursorIndex, + last_column: yylloc.first_column + cursorIndex + 1 + }; + const remainder = yytext.substring(cursorIndex + 1); + const remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []) + .length; + if (remainingQuotes > 0 && (remainingQuotes & 1) !== 0) { + parser.yy.missingEndQuote = false; + lexer.input(); + } else { + parser.yy.missingEndQuote = true; + lexer.unput(remainder); + } + lexer.popState(); + return true; + } + return false; + }; + + parser.parseGlobalSearch = function(beforeCursor, afterCursor, debug) { + delete parser.yy.cursorFound; + + let result; + try { + result = parser.parse(beforeCursor + '\u2020' + afterCursor); + } catch (err) { + if (debug) { + console.warn(err); + console.warn(err.stack); + console.warn(parser.yy.error); + } + return { + facets: {}, + text: [] + }; + } + return result; + }; +}; + +export default { + initSqlParser: initSqlParser, + initSyntaxParser: initSyntaxParser, + initGlobalSearchParser: initGlobalSearchParser +}; diff --git a/src/core/parse/sqlFunctions.js b/src/core/parse/sqlFunctions.js new file mode 100644 index 0000000..b6a533c --- /dev/null +++ b/src/core/parse/sqlFunctions.js @@ -0,0 +1,4951 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +const PigFunctions = (function() { + const EVAL_FUNCTIONS = { + avg: { signature: 'AVG(%VAR%)', draggable: 'AVG()' }, + concat: { signature: 'CONCAT(%VAR1%, %VAR2%)', draggable: 'CONCAT()' }, + count: { signature: 'COUNT(%VAR%)', draggable: 'COUNT()' }, + count_start: { signature: 'COUNT_START(%VAR%)', draggable: 'COUNT_START()' }, + is_empty: { signature: 'IsEmpty(%VAR%)', draggable: 'IsEmpty()' }, + diff: { signature: 'DIFF(%VAR1%, %VAR2%)', draggable: 'DIFF()' }, + max: { signature: 'MAX(%VAR%)', draggable: 'MAX()' }, + min: { signature: 'MIN(%VAR%)', draggable: 'MIN()' }, + size: { signature: 'SIZE(%VAR%)', draggable: 'SIZE()' }, + sum: { signature: 'SUM(%VAR%)', draggable: 'SUM()' }, + tokenize: { signature: 'TOKENIZE(%VAR%, %DELIM%)', draggable: 'TOKENIZE()' } + }; + + const RELATIONAL_OPERATORS = { + cogroup: { signature: 'COGROUP %VAR% BY %VAR%', draggable: 'COGROUP %VAR% BY %VAR%' }, + cross: { signature: 'CROSS %VAR1%, %VAR2%;', draggable: 'CROSS %VAR1%, %VAR2%;' }, + distinct: { signature: 'DISTINCT %VAR%;', draggable: 'DISTINCT %VAR%;' }, + filter: { signature: 'FILTER %VAR% BY %COND%', draggable: 'FILTER %VAR% BY %COND%' }, + flatten: { signature: 'FLATTEN(%VAR%)', draggable: 'FLATTEN()' }, + foreach_generate: { + signature: 'FOREACH %DATA% GENERATE %NEW_DATA%;', + draggable: 'FOREACH %DATA% GENERATE %NEW_DATA%;' + }, + foreach: { + signature: 'FOREACH %DATA% {%NESTED_BLOCK%};', + draggable: 'FOREACH %DATA% {%NESTED_BLOCK%};' + }, + group_by: { signature: 'GROUP %VAR% BY %VAR%', draggable: 'GROUP %VAR% BY %VAR%' }, + group_all: { signature: 'GROUP %VAR% ALL', draggable: 'GROUP %VAR% ALL' }, + join: { signature: 'JOIN %VAR% BY ', draggable: 'JOIN %VAR% BY ' }, + limit: { signature: 'LIMIT %VAR% %N%', draggable: 'LIMIT %VAR% %N%' }, + order: { signature: 'ORDER %VAR% BY %FIELD%', draggable: 'ORDER %VAR% BY %FIELD%' }, + sample: { signature: 'SAMPLE %VAR% %SIZE%', draggable: 'SAMPLE %VAR% %SIZE%' }, + split: { + signature: 'SPLIT %VAR1% INTO %VAR2% IF %EXPRESSIONS%', + draggable: 'SPLIT %VAR1% INTO %VAR2% IF %EXPRESSIONS%' + }, + union: { signature: 'UNION %VAR1%, %VAR2%', draggable: 'UNION %VAR1%, %VAR2%' } + }; + + const INPUT_OUTPUT = { + load: { signature: "LOAD '%FILE%';", draggable: "LOAD '%FILE%';" }, + dump: { signature: 'DUMP %VAR%;', draggable: 'DUMP %VAR%;' }, + store: { signature: 'STORE %VAR% INTO %PATH%;', draggable: 'STORE %VAR% INTO %PATH%;' } + }; + + const DEBUG = { + explain: { signature: 'EXPLAIN %VAR%;', draggable: 'EXPLAIN %VAR%;' }, + illustrate: { signature: 'ILLUSTRATE %VAR%;', draggable: 'ILLUSTRATE %VAR%;' }, + describe: { signature: 'DESCRIBE %VAR%;', draggable: 'DESCRIBE %VAR%;' } + }; + + const HCATALOG = { + LOAD: { + signature: "LOAD '%TABLE%' USING org.apache.hcatalog.pig.HCatLoader();", + draggable: "LOAD '%TABLE%' USING org.apache.hcatalog.pig.HCatLoader();" + } + }; + + const MATH_FUNCTIONS = { + abs: { signature: 'ABS(%VAR%)', draggable: 'ABS()' }, + acos: { signature: 'ACOS(%VAR%)', draggable: 'ACOS()' }, + asin: { signature: 'ASIN(%VAR%)', draggable: 'ASIN()' }, + atan: { signature: 'ATAN(%VAR%)', draggable: 'ATAN()' }, + cbrt: { signature: 'CBRT(%VAR%)', draggable: 'CBRT()' }, + ceil: { signature: 'CEIL(%VAR%)', draggable: 'CEIL()' }, + cos: { signature: 'COS(%VAR%)', draggable: 'COS()' }, + cosh: { signature: 'COSH(%VAR%)', draggable: 'COSH()' }, + exp: { signature: 'EXP(%VAR%)', draggable: 'EXP()' }, + floor: { signature: 'FLOOR(%VAR%)', draggable: 'FLOOR()' }, + log: { signature: 'LOG(%VAR%)', draggable: 'LOG()' }, + log10: { signature: 'LOG10(%VAR%)', draggable: 'LOG10()' }, + random: { signature: 'RANDOM(%VAR%)', draggable: 'RANDOM()' }, + round: { signature: 'ROUND(%VAR%)', draggable: 'ROUND()' }, + sin: { signature: 'SIN(%VAR%)', draggable: 'SIN()' }, + sinh: { signature: 'SINH(%VAR%)', draggable: 'SINH()' }, + sqrt: { signature: 'SQRT(%VAR%)', draggable: 'SQRT()' }, + tan: { signature: 'TAN(%VAR%)', draggable: 'TAN()' }, + tanh: { signature: 'TANH(%VAR%)', draggable: 'TANH()' } + }; + + const TUPLE_BAG_MAP = { + totuple: { signature: 'TOTUPLE(%VAR%)', draggable: 'TOTUPLE()' }, + tobag: { signature: 'TOBAG(%VAR%)', draggable: 'TOBAG()' }, + tomap: { signature: 'TOMAP(%KEY%, %VALUE%)', draggable: 'TOMAP()' }, + top: { signature: 'TOP(%topN%, %COLUMN%, %RELATION%)', draggable: 'TOP()' } + }; + + const STRING_FUNCTIONS = { + indexof: { + signature: "INDEXOF(%STRING%, '%CHARACTER%', %STARTINDEX%)", + draggable: 'INDEXOF()' + }, + last_index_of: { + signature: "LAST_INDEX_OF(%STRING%, '%CHARACTER%', %STARTINDEX%)", + draggable: 'LAST_INDEX_OF()' + }, + lower: { signature: 'LOWER(%STRING%)', draggable: 'LOWER()' }, + regex_extract: { + signature: 'REGEX_EXTRACT(%STRING%, %REGEX%, %INDEX%)', + draggable: 'REGEX_EXTRACT()' + }, + regex_extract_all: { + signature: 'REGEX_EXTRACT_ALL(%STRING%, %REGEX%)', + draggable: 'REGEX_EXTRACT_ALL()' + }, + replace: { signature: "REPLACE(%STRING%, '%oldChar%', '%newChar%')", draggable: 'REPLACE()' }, + strsplit: { signature: 'STRSPLIT(%STRING%, %REGEX%, %LIMIT%)', draggable: 'STRSPLIT()' }, + substring: { + signature: 'SUBSTRING(%STRING%, %STARTINDEX%, %STOPINDEX%)', + draggable: 'SUBSTRING()' + }, + trim: { signature: 'TRIM(%STRING%)', draggable: 'TRIM()' }, + ucfirst: { signature: 'UCFIRST(%STRING%)', draggable: 'UCFIRST()' }, + upper: { signature: 'UPPER(%STRING%)', draggable: 'UPPER()' } + }; + + const MACROS = { + import: { signature: "IMPORT '%PATH_TO_MACRO%';", draggable: "IMPORT '%PATH_TO_MACRO%';" } + }; + + const HBASE = { + load: { + signature: + "LOAD 'hbase://%TABLE%' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('%columnList%')", + draggable: + "LOAD 'hbase://%TABLE%' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('%columnList%')" + }, + store: { + signature: + "STORE %VAR% INTO 'hbase://%TABLE%' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('%columnList%')", + draggable: + "STORE %VAR% INTO 'hbase://%TABLE%' USING org.apache.pig.backend.hadoop.hbase.HBaseStorage('%columnList%')" + } + }; + + const PYTHON_UDF = { + register: { + signature: "REGISTER 'python_udf.py' USING jython AS myfuncs;", + draggable: "REGISTER 'python_udf.py' USING jython AS myfuncs;" + } + }; + + const CATEGORIZED_FUNCTIONS = [ + { name: 'Eval', functions: EVAL_FUNCTIONS }, + { name: 'Relational Operators', functions: RELATIONAL_OPERATORS }, + { name: 'Input and Output', functions: INPUT_OUTPUT }, + { name: 'Debug', functions: DEBUG }, + { name: 'HCatalog', functions: HCATALOG }, + { name: 'Math', functions: MATH_FUNCTIONS }, + { name: 'Tuple, Bag and Map', functions: TUPLE_BAG_MAP }, + { name: 'String', functions: STRING_FUNCTIONS }, + { name: 'Macros', functions: MACROS }, + { name: 'HBase', functions: HBASE }, + { name: 'Python UDF', functions: PYTHON_UDF } + ]; + + return { + CATEGORIZED_FUNCTIONS: CATEGORIZED_FUNCTIONS + }; +})(); + +const SqlSetOptions = (function() { + const SET_OPTIONS = { + hive: {}, + impala: { + ALLOW_ERASURE_CODED_FILES: { + description: + 'Use the ALLOW_ERASURE_CODED_FILES query option to enable or disable the support of erasure coded files in Impala. Until Impala is fully tested and certified with erasure coded files, this query option is set to FALSE by default.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + APPX_COUNT_DISTINCT: { + description: + 'Allows multiple COUNT(DISTINCT) operations within a single query, by internally rewriting each COUNT(DISTINCT) to use the NDV() function. The resulting count is approximate rather than precise.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + BATCH_SIZE: { + description: + 'Number of rows evaluated at a time by SQL operators. Unspecified or a size of 0 uses a predefined default size. Using a large number improves responsiveness, especially for scan operations, at the cost of a higher memory footprint.', + type: 'Numeric', + default: '0 (meaning the predefined default of 1024)' + }, + BUFFER_POOL_LIMIT: { + description: + 'Defines a limit on the amount of memory that a query can allocate from the internal buffer pool. The value for this limit applies to the memory on each host, not the aggregate memory across the cluster. Typically not changed by users, except during diagnosis of out-of-memory errors during queries.', + type: 'Integer', + default: + 'The default setting for this option is the lower of 80% of the MEM_LIMIT setting, or the MEM_LIMIT setting minus 100 MB.' + }, + COMPRESSION_CODEC: { + description: + 'When Impala writes Parquet data files using the INSERT statement, the underlying compression is controlled by the COMPRESSION_CODEC query option.', + type: 'String; SNAPPY, GZIP or NONE', + default: 'SNAPPY' + }, + COMPUTE_STATS_MIN_SAMPLE_SIZE: { + description: + 'The COMPUTE_STATS_MIN_SAMPLE_SIZE query option specifies the minimum number of bytes that will be scanned in COMPUTE STATS TABLESAMPLE, regardless of the user-supplied sampling percent. This query option prevents sampling for very small tables where accurate stats can be obtained cheaply without sampling because the minimum sample size is required to get meaningful stats.', + type: 'Integer', + default: '1073741824 (1GB)' + }, + DEFAULT_JOIN_DISTRIBUTION_MODE: { + description: + 'This option determines the join distribution that Impala uses when any of the tables involved in a join query is missing statistics.\n\nThe setting DEFAULT_JOIN_DISTRIBUTION_MODE=SHUFFLE is recommended when setting up and deploying new clusters, because it is less likely to result in serious consequences such as spilling or out-of-memory errors if the query plan is based on incomplete information.', + type: + 'Integer; The allowed values are BROADCAST (equivalent to 0) or SHUFFLE (equivalent to 1).', + default: '0' + }, + DEFAULT_SPILLABLE_BUFFER_SIZE: { + description: + 'Specifies the default size for a memory buffer used when the spill-to-disk mechanism is activated, for example for queries against a large table with no statistics, or large join operations.\n\nAccepts a numeric value that represents a size in bytes; you can also use a suffix of m or mb for megabytes, or g or gb for gigabytes. If you specify a value with unrecognized formats, subsequent queries fail with an error.', + type: 'Integer', + default: '2097152 (2 MB)' + }, + DISABLE_CODEGEN: { + description: + 'This is a debug option, intended for diagnosing and working around issues that cause crashes. If a query fails with an "illegal instruction" or other hardware-specific message, try setting DISABLE_CODEGEN=true and running the query again. If the query succeeds only when the DISABLE_CODEGEN option is turned on, submit the problem to Cloudera Support and include that detail in the problem report. Do not otherwise run with this setting turned on, because it results in lower overall performance.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + DISABLE_ROW_RUNTIME_FILTERING: { + description: + 'The DISABLE_ROW_RUNTIME_FILTERING query option reduces the scope of the runtime filtering feature. Queries still dynamically prune partitions, but do not apply the filtering logic to individual rows within partitions.\n\nOnly applies to queries against Parquet tables. For other file formats, Impala only prunes at the level of partitions, not individual rows.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + DISABLE_STREAMING_PREAGGREGATIONS: { + description: + 'Turns off the "streaming preaggregation" optimization that is available in CDH 5.7 / Impala 2.5 and higher. This optimization reduces unnecessary work performed by queries that perform aggregation operations on columns with few or no duplicate values, for example DISTINCT id_column or GROUP BY unique_column. If the optimization causes regressions in existing queries that use aggregation functions, you can turn it off as needed by setting this query option.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + DISABLE_UNSAFE_SPILLS: { + description: + 'Enable this option if you prefer to have queries fail when they exceed the Impala memory limit, rather than write temporary data to disk.\n\nQueries that "spill" to disk typically complete successfully, when in earlier Impala releases they would have failed. However, queries with exorbitant memory requirements due to missing statistics or inefficient join clauses could become so slow as a result that you would rather have them cancelled automatically and reduce the memory usage through standard Impala tuning techniques.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + EXEC_SINGLE_NODE_ROWS_THRESHOLD: { + description: + 'This setting controls the cutoff point (in terms of number of rows scanned) below which Impala treats a query as a "small" query, turning off optimizations such as parallel execution and native code generation. The overhead for these optimizations is applicable for queries involving substantial amounts of data, but it makes sense to skip them for queries involving tiny amounts of data. Reducing the overhead for small queries allows Impala to complete them more quickly, keeping YARN resources, admission control slots, and so on available for data-intensive queries.', + type: 'Numeric', + default: '100' + }, + EXEC_TIME_LIMIT_S: { + description: + 'The EXEC_TIME_LIMIT_S query option sets a time limit on query execution. If a query is still executing when time limit expires, it is automatically canceled. The option is intended to prevent runaway queries that execute for much longer than intended.', + type: 'Numeric', + default: '0 (no time limit)' + }, + EXPLAIN_LEVEL: { + description: + 'Controls the amount of detail provided in the output of the EXPLAIN statement. The basic output can help you identify high-level performance issues such as scanning a higher volume of data or more partitions than you expect. The higher levels of detail show how intermediate results flow between nodes and how different SQL operations such as ORDER BY, GROUP BY, joins, and WHERE clauses are implemented within a distributed query.', + type: 'String or Int; 0 - MINIMAL, 1 - STANDARD, 2 - EXTENDED or 3 - VERBOSE', + default: '1' + }, + HBASE_CACHE_BLOCKS: { + description: + 'Setting this option is equivalent to calling the setCacheBlocks method of the class org.apache.hadoop.hbase.client.Scan, in an HBase Java application. Helps to control the memory pressure on the HBase RegionServer, in conjunction with the HBASE_CACHING query option.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + HBASE_CACHING: { + description: + 'Setting this option is equivalent to calling the setCaching method of the class org.apache.hadoop.hbase.client.Scan, in an HBase Java application. Helps to control the memory pressure on the HBase RegionServer, in conjunction with the HBASE_CACHE_BLOCKS query option.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + MAX_ERRORS: { + description: + 'Maximum number of non-fatal errors for any particular query that are recorded in the Impala log file. For example, if a billion-row table had a non-fatal data error in every row, you could diagnose the problem without all billion errors being logged. Unspecified or 0 indicates the built-in default value of 1000.\n\nThis option only controls how many errors are reported. To specify whether Impala continues or halts when it encounters such errors, use the ABORT_ON_ERROR option.', + type: 'Numeric', + default: '0 (meaning 1000 errors)' + }, + MAX_MEM_ESTIMATE_FOR_ADMISSION: { + description: + 'Use the MAX_MEM_ESTIMATE_FOR_ADMISSION query option to set an upper limit on the memory estimates of a query as a workaround for over-estimates precluding a query from being admitted.', + type: 'Numeric', + default: '' + }, + MAX_NUM_RUNTIME_FILTERS: { + description: + 'The MAX_NUM_RUNTIME_FILTERS query option sets an upper limit on the number of runtime filters that can be produced for each query.', + type: 'Integer', + default: '10' + }, + MAX_ROW_SIZE: { + description: + 'Ensures that Impala can process rows of at least the specified size. (Larger rows might be successfully processed, but that is not guaranteed.) Applies when constructing intermediate or final rows in the result set. This setting prevents out-of-control memory use when accessing columns containing huge strings.\n\nAccepts a numeric value that represents a size in bytes; you can also use a suffix of m or mb for megabytes, or g or gb for gigabytes. If you specify a value with unrecognized formats, subsequent queries fail with an error.', + type: 'Integer', + default: '524288 (512 KB)' + }, + MAX_SCAN_RANGE_LENGTH: { + description: + 'Maximum length of the scan range. Interacts with the number of HDFS blocks in the table to determine how many CPU cores across the cluster are involved with the processing for a query. (Each core processes one scan range.)\n\nLowering the value can sometimes increase parallelism if you have unused CPU capacity, but a too-small value can limit query performance because each scan range involves extra overhead.\n\nOnly applicable to HDFS tables. Has no effect on Parquet tables. Unspecified or 0 indicates backend default, which is the same as the HDFS block size for each table.', + type: 'Numeric', + default: '0' + }, + MEM_LIMIT: { + description: + 'When resource management is not enabled, defines the maximum amount of memory a query can allocate on each node. Therefore, the total memory that can be used by a query is the MEM_LIMIT times the number of nodes.\n\nAccepts a numeric value that represents a size in bytes; you can also use a suffix of m or mb for megabytes, or g or gb for gigabytes. If you specify a value with unrecognized formats, subsequent queries fail with an error.', + type: 'Numeric', + default: '0 (unlimited)' + }, + MIN_SPILLABLE_BUFFER_SIZE: { + description: + 'Specifies the minimum size for a memory buffer used when the spill-to-disk mechanism is activated, for example for queries against a large table with no statistics, or large join operations.\n\nAccepts a numeric value that represents a size in bytes; you can also use a suffix of m or mb for megabytes, or g or gb for gigabytes. If you specify a value with unrecognized formats, subsequent queries fail with an error.', + type: 'Integer', + default: '65536 (64 KB)' + }, + MT_DOP: { + description: + 'Sets the degree of parallelism used for certain operations that can benefit from multithreaded execution. You can specify values higher than zero to find the ideal balance of response time, memory usage, and CPU usage during statement processing.', + type: 'Integer; Range from 0 to 64', + default: '0' + }, + NUM_NODES: { + description: 'Limit the number of nodes that process a query, typically during debugging.', + type: + 'Numeric; Only accepts the values 0 (meaning all nodes) or 1 (meaning all work is done on the coordinator node).', + default: '0' + }, + NUM_SCANNER_THREADS: { + description: + 'Maximum number of scanner threads (on each node) used for each query. By default, Impala uses as many cores as are available (one thread per core). You might lower this value if queries are using excessive resources on a busy cluster. Impala imposes a maximum value automatically, so a high value has no practical', + type: 'Numeric', + default: '0' + }, + OPTIMIZE_PARTITION_KEY_SCANS: { + description: + 'Enables a fast code path for queries that apply simple aggregate functions to partition key columns: MIN(key_column), MAX(key_column), or COUNT(DISTINCT key_column).', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + PARQUET_ANNOTATE_STRINGS_UTF8: { + description: + 'Causes Impala INSERT and CREATE TABLE AS SELECT statements to write Parquet files that use the UTF-8 annotation for STRING columns.\n\nBy default, Impala represents a STRING column in Parquet as an unannotated binary field.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + PARQUET_FALLBACK_SCHEMA_RESOLUTION: { + description: + 'Allows Impala to look up columns within Parquet files by column name, rather than column order, when necessary.', + type: 'integer or string. Allowed values are 0 for POSITION and 1 for NAME.', + default: '0' + }, + PARQUET_FILE_SIZE: { + description: + 'Specifies the maximum size of each Parquet data file produced by Impala INSERT statements.', + type: 'Numeric, with optional unit specifier.', + default: + '0 (produces files with a target size of 256 MB; files might be larger for very wide tables)' + }, + PREFETCH_MODE: { + description: + 'Determines whether the prefetching optimization is applied during join query processing.', + type: 'Numeric (0, 1) or corresponding mnemonic strings (NONE, HT_BUCKET).', + default: '1 (equivalent to HT_BUCKET)' + }, + QUERY_TIMEOUT_S: { + description: + 'Sets the idle query timeout value for the session, in seconds. Queries that sit idle for longer than the timeout value are automatically cancelled. If the system administrator specified the --idle_query_timeout startup option, QUERY_TIMEOUT_S must be smaller than or equal to the --idle_query_timeout value.', + type: 'Numeric', + default: + '0 (no timeout if --idle_query_timeout not in effect; otherwise, use --idle_query_timeout value)' + }, + REQUEST_POOL: { + description: + 'The pool or queue name that queries should be submitted to. Only applies when you enable the Impala admission control feature. Specifies the name of the pool used by requests from Impala to the resource manager.', + type: 'String', + default: + 'empty (use the user-to-pool mapping defined by an impalad startup option in the Impala configuration file)' + }, + REPLICA_PREFERENCE: { + description: + 'The REPLICA_PREFERENCE query option lets you distribute the work more evenly if hotspots and bottlenecks persist. It causes the access cost of all replicas of a data block to be considered equal to or worse than the configured value. This allows Impala to schedule reads to suboptimal replicas (e.g. local in the presence of cached ones) in order to distribute the work across more executor nodes.', + type: + 'Numeric (0, 2, 4) or corresponding mnemonic strings (CACHE_LOCAL, DISK_LOCAL, REMOTE). The gaps in the numeric sequence are to accomodate other intermediate values that might be added in the future.', + default: '0 (equivalent to CACHE_LOCAL)' + }, + RUNTIME_BLOOM_FILTER_SIZE: { + description: + 'Size (in bytes) of Bloom filter data structure used by the runtime filtering feature.', + type: 'Integer; Maximum 16 MB.', + default: '1048576 (1 MB)' + }, + RUNTIME_FILTER_MAX_SIZE: { + description: + 'The RUNTIME_FILTER_MAX_SIZE query option adjusts the settings for the runtime filtering feature. This option defines the maximum size for a filter, no matter what the estimates produced by the planner are. This value also overrides any lower number specified for the RUNTIME_BLOOM_FILTER_SIZE query option. Filter sizes are rounded up to the nearest power of two.', + type: 'Integer', + default: '0 (meaning use the value from the corresponding impalad startup option)' + }, + RUNTIME_FILTER_MIN_SIZE: { + description: + 'The RUNTIME_FILTER_MIN_SIZE query option adjusts the settings for the runtime filtering feature. This option defines the minimum size for a filter, no matter what the estimates produced by the planner are. This value also overrides any lower number specified for the RUNTIME_BLOOM_FILTER_SIZE query option. Filter sizes are rounded up to the nearest power of two.', + type: 'Integer', + default: '0 (meaning use the value from the corresponding impalad startup option)' + }, + RUNTIME_FILTER_MODE: { + description: + 'The RUNTIME_FILTER_MODE query option adjusts the settings for the runtime filtering feature. It turns this feature on and off, and controls how extensively the filters are transmitted between hosts.', + type: 'Numeric (0, 1, 2) or corresponding mnemonic strings (OFF, LOCAL, GLOBAL).', + default: '2 (equivalent to GLOBAL); formerly was 1 / LOCAL, in CDH 5.7 / Impala 2.5' + }, + RUNTIME_FILTER_WAIT_TIME_MS: { + description: + 'The RUNTIME_FILTER_WAIT_TIME_MS query option adjusts the settings for the runtime filtering feature. It specifies a time in milliseconds that each scan node waits for runtime filters to be produced by other plan fragments.', + type: 'Integer', + default: '0 (meaning use the value from the corresponding impalad startup option)' + }, + S3_SKIP_INSERT_STAGING: { + description: + 'Speeds up INSERT operations on tables or partitions residing on the Amazon S3 filesystem. The tradeoff is the possibility of inconsistent data left behind if an error occurs partway through the operation.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'true (shown as 1 in output of SET statement)' + }, + SCHEDULE_RANDOM_REPLICA: { + description: + 'The SCHEDULE_RANDOM_REPLICA query option fine-tunes the algorithm for deciding which host processes each HDFS data block. It only applies to tables and partitions that are not enabled for the HDFS caching feature.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + SCRATCH_LIMIT: { + description: + 'Specifies the maximum amount of disk storage, in bytes, that any Impala query can consume on any host using the "spill to disk" mechanism that handles queries that exceed the memory limit.', + type: 'Numeric, with optional unit specifier', + default: '-1 (amount of spill space is unlimited)' + }, + SHUFFLE_DISTINCT_EXPRS: { + description: + 'The SHUFFLE_DISTINCT_EXPRS query option controls the shuffling behavior when a query has both grouping and distinct expressions. Impala can optionally include the distinct expressions in the hash exchange to spread the data among more nodes. However, this plan requires one more hash exchange phase. It is recommended that you turn off this option if the NDVs of the grouping expressions are high.', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + SYNC_DDL: { + description: + 'When enabled, causes any DDL operation such as CREATE TABLE or ALTER TABLE to return only when the changes have been propagated to all other Impala nodes in the cluster by the Impala catalog service. That way, if you issue a subsequent CONNECT statement in impala-shell to connect to a different node in the cluster, you can be sure that other node will already recognize any added or changed tables. (The catalog service automatically broadcasts the DDL changes to all nodes automatically, but without this option there could be a period of inconsistency if you quickly switched to another node, such as by issuing a subsequent query through a load-balancing proxy.)', + type: + 'Boolean; recognized values are 1 and 0, or true and false; any other value interpreted as false', + default: 'false (shown as 0 in output of SET statement)' + }, + TIMEZONE: { + description: + 'The TIMEZONE query option defines the timezone used for conversions between UTC and the local time. If not set, Impala uses the system time zone where the Coordinator Impalad runs. As query options are not sent to the Coordinator immediately, the timezones are validated only when the query runs.', + type: + 'String, can be a canonical code or a time zone name defined in the IANA Time Zone Database. The value is case-sensitive.', + default: 'Coordinator Impalad system time zone.' + }, + TOPN_BYTES_LIMIT: { + description: + 'The TOPN_BYTES_LIMIT query option places a limit on the amount of estimated memory that Impala can process for top-N queries.', + type: 'Numeric', + default: '536870912 (512 MB)' + } + } + }; + + const suggestOptions = function(dialect, completions, category) { + if (dialect === 'hive' || dialect === 'impala') { + Object.keys(SET_OPTIONS[dialect]).forEach(name => { + completions.push({ + category: category, + value: name, + meta: '', + weightAdjust: 0, + details: SET_OPTIONS[dialect][name] + }); + }); + } + }; + + return { + suggestOptions: suggestOptions + }; +})(); + +const SqlFunctions = (function() { + const MATHEMATICAL_FUNCTIONS = { + hive: { + abs: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'abs(DOUBLE a)', + draggable: 'abs()', + description: 'Returns the absolute value.' + }, + acos: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'acos(DECIMAL|DOUBLE a)', + draggable: 'acos()', + description: 'Returns the arccosine of a if -1<=a<=1 or NULL otherwise.' + }, + asin: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'asin(DECIMAL|DOUBLE a)', + draggable: 'asin()', + description: 'Returns the arc sin of a if -1<=a<=1 or NULL otherwise.' + }, + atan: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'atan(DECIMAL|DOUBLE a)', + draggable: 'atan()', + description: 'Returns the arctangent of a.' + }, + bin: { + returnTypes: ['STRING'], + arguments: [[{ type: 'BIGINT' }]], + signature: 'bin(BIGINT a)', + draggable: 'bin()', + description: 'Returns the number in binary format' + }, + bround: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }], [{ type: 'INT', optional: true }]], + signature: 'bround(DOUBLE a [, INT decimals])', + draggable: 'bround()', + description: + 'Returns the rounded BIGINT value of a using HALF_EVEN rounding mode with optional decimal places d.' + }, + cbrt: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'cbft(DOUBLE a)', + draggable: 'cbft()', + description: 'Returns the cube root of a double value.' + }, + ceil: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'ceil(DOUBLE a)', + draggable: 'ceil()', + description: 'Returns the minimum BIGINT value that is equal to or greater than a.' + }, + ceiling: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'ceiling(DOUBLE a)', + draggable: 'ceiling()', + description: 'Returns the minimum BIGINT value that is equal to or greater than a.' + }, + conv: { + returnTypes: ['T'], + arguments: [[{ type: 'BIGINT' }, { type: 'STRING' }], [{ type: 'INT' }], [{ type: 'INT' }]], + signature: 'conv(BIGINT|STRING a, INT from_base, INT to_base)', + draggable: 'conv()', + description: 'Converts a number from a given base to another' + }, + cos: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'cos(DECIMAL|DOUBLE a)', + draggable: 'cos()', + description: 'Returns the cosine of a (a is in radians).' + }, + degrees: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'degrees(DECIMAL|DOUBLE a)', + draggable: 'degrees()', + description: 'Converts value of a from radians to degrees.' + }, + e: { + returnTypes: ['DOUBLE'], + arguments: [[]], + signature: 'e()', + draggable: 'e()', + description: 'Returns the value of e.' + }, + exp: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'exp(DECIMAL|DOUBLE a)', + draggable: 'exp()', + description: 'Returns e^a where e is the base of the natural logarithm.' + }, + factorial: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'INT' }]], + signature: 'factorial(INT a)', + draggable: 'factorial()', + description: 'Returns the factorial of a. Valid a is [0..20].' + }, + floor: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'floor(DOUBLE a)', + draggable: 'floor()', + description: 'Returns the maximum BIGINT value that is equal to or less than a.' + }, + greatest: { + returnTypes: ['T'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'greatest(T a1, T a2, ...)', + draggable: 'greatest()', + description: + 'Returns the greatest value of the list of values. Fixed to return NULL when one or more arguments are NULL, and strict type restriction relaxed, consistent with ">" operator.' + }, + hex: { + returnTypes: ['STRING'], + arguments: [[{ type: 'BIGINT' }, { type: 'BINARY' }, { type: 'STRING' }]], + signature: 'hex(BIGINT|BINARY|STRING a)', + draggable: 'hex()', + description: + 'If the argument is an INT or binary, hex returns the number as a STRING in hexadecimal format. Otherwise if the number is a STRING, it converts each character into its hexadecimal representation and returns the resulting STRING.' + }, + least: { + returnTypes: ['T'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'least(T a1, T a2, ...)', + draggable: 'least()', + description: + 'Returns the least value of the list of values. Fixed to return NULL when one or more arguments are NULL, and strict type restriction relaxed, consistent with "<" operator.' + }, + ln: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'ln(DECIMAL|DOUBLE a)', + draggable: 'ln()', + description: 'Returns the natural logarithm of the argument a' + }, + log: { + returnTypes: ['DOUBLE'], + arguments: [ + [{ type: 'DECIMAL' }, { type: 'DOUBLE' }], + [{ type: 'DECIMAL' }, { type: 'DOUBLE' }] + ], + signature: 'log(DECIMAL|DOUBLE base, DECIMAL|DOUBLE a)', + draggable: 'log()', + description: 'Returns the base-base logarithm of the argument a.' + }, + log10: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'log10(DECIMAL|DOUBLE a)', + draggable: 'log10()', + description: 'Returns the base-10 logarithm of the argument a.' + }, + log2: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'log2(DECIMAL|DOUBLE a)', + draggable: 'log2()', + description: 'Returns the base-2 logarithm of the argument a.' + }, + negative: { + returnTypes: ['T'], + arguments: [[{ type: 'DOUBLE' }, { type: 'INT' }]], + signature: 'negative(T a)', + draggable: 'negative()', + description: 'Returns -a.' + }, + pi: { + returnTypes: ['DOUBLE'], + arguments: [], + signature: 'pi()', + draggable: 'pi()', + description: 'Returns the value of pi.' + }, + pmod: { + returnTypes: ['T'], + arguments: [[{ type: 'DOUBLE' }, { type: 'INT' }], [{ type: 'T' }]], + signature: 'pmod(T a, T b)', + draggable: 'pmod()', + description: 'Returns the positive value of a mod b' + }, + positive: { + returnTypes: ['T'], + arguments: [[{ type: 'DOUBLE' }, { type: 'INT' }]], + signature: 'positive(T a)', + draggable: 'positive()', + description: 'Returns a.' + }, + pow: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], + signature: 'pow(DOUBLE a, DOUBLE p)', + draggable: 'pow()', + description: 'Returns a^p' + }, + power: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], + signature: 'power(DOUBLE a, DOUBLE p)', + draggable: 'power()', + description: 'Returns a^p' + }, + radians: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'radians(DECIMAL|DOUBLE a)', + draggable: 'radians()', + description: 'Converts value of a from degrees to radians.' + }, + rand: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'INT', optional: true }]], + signature: 'rand([INT seed])', + draggable: 'rand()', + description: + 'Returns a random number (that changes from row to row) that is distributed uniformly from 0 to 1. Specifying the seed will make sure the generated random number sequence is deterministic.' + }, + round: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }], [{ type: 'INT', optional: true }]], + signature: 'round(DOUBLE a [, INT d])', + draggable: 'round()', + description: 'Returns the rounded BIGINT value of a or a rounded to d decimal places.' + }, + shiftleft: { + returnTypes: ['T'], + arguments: [ + [{ type: 'BIGINT' }, { type: 'INT' }, { type: 'SMALLINT' }, { type: 'TINYINT' }], + [{ type: 'INT' }] + ], + signature: 'shiftleft(T a, INT b)', + draggable: 'shiftleft()', + description: + 'Bitwise left shift. Shifts a b positions to the left. Returns int for tinyint, smallint and int a. Returns bigint for bigint a.' + }, + shiftright: { + returnTypes: ['T'], + arguments: [ + [{ type: 'BIGINT' }, { type: 'INT' }, { type: 'SMALLINT' }, { type: 'TINYINT' }], + [{ type: 'INT' }] + ], + signature: 'shiftright(T a, INT b)', + draggable: 'shiftright()', + description: + 'Bitwise right shift. Shifts a b positions to the right. Returns int for tinyint, smallint and int a. Returns bigint for bigint a.' + }, + shiftrightunsigned: { + returnTypes: ['T'], + arguments: [ + [{ type: 'BIGINT' }, { type: 'INT' }, { type: 'SMALLINT' }, { type: 'TINYINT' }], + [{ type: 'INT' }] + ], + signature: 'shiftrightunsigned(T a, INT b)', + draggable: 'shiftrightunsigned()', + description: + 'Bitwise unsigned right shift. Shifts a b positions to the right. Returns int for tinyint, smallint and int a. Returns bigint for bigint a.' + }, + sign: { + returnTypes: ['T'], + arguments: [[{ type: 'DOUBLE' }, { type: 'INT' }]], + signature: 'sign(T a)', + draggable: 'sign()', + description: + "Returns the sign of a as '1.0' (if a is positive) or '-1.0' (if a is negative), '0.0' otherwise. The decimal version returns INT instead of DOUBLE." + }, + sin: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'sin(DECIMAL|DOUBLE a)', + draggable: 'sin()', + description: 'Returns the sine of a (a is in radians).' + }, + sqrt: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'sqrt(DECIMAL|DOUBLE a)', + draggable: 'sqrt()', + description: 'Returns the square root of a' + }, + tan: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }]], + signature: 'tan(DECIMAL|DOUBLE a)', + draggable: 'tan()', + description: 'Returns the tangent of a (a is in radians).' + }, + unhex: { + returnTypes: ['BINARY'], + arguments: [[{ type: 'STRING' }]], + signature: 'unhex(STRING a)', + draggable: 'unhex()', + description: + 'Inverse of hex. Interprets each pair of characters as a hexadecimal number and converts to the byte representation of the number.' + }, + width_bucket: { + returnTypes: ['INT'], + arguments: [[{ type: 'NUMBER' }, { type: 'NUMBER' }, { type: 'NUMBER' }, { type: 'INT' }]], + signature: 'width_bucket(NUMBER expr, NUMBER min_value, NUMBER max_value, INT num_buckets)', + draggable: 'width_bucket()', + description: + 'Returns an integer between 0 and num_buckets+1 by mapping expr into the ith equally sized bucket. Buckets are made by dividing [min_value, max_value] into equally sized regions. If expr < min_value, return 1, if expr > max_value return num_buckets+1. (as of Hive 3.0.0)' + } + }, + impala: { + abs: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'abs(T a)', + draggable: 'abs()', + description: + 'Returns the absolute value of the argument. Use this function to ensure all return values are positive. This is different than the positive() function, which returns its argument unchanged (even if the argument was negative).' + }, + acos: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'acos(DOUBLE a)', + draggable: 'acos()', + description: 'Returns the arccosine of the argument.' + }, + asin: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'asin(DOUBLE a)', + draggable: 'asin()', + description: 'Returns the arcsine of the argument.' + }, + atan: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'atan(DOUBLE a)', + draggable: 'atan()', + description: 'Returns the arctangent of the argument.' + }, + atan2: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], + signature: 'atan2(DOUBLE a, DOUBLE b)', + draggable: 'atan2()', + description: + 'Returns the arctangent of the two arguments, with the signs of the arguments used to determine the quadrant of the result.' + }, + bin: { + returnTypes: ['STRING'], + arguments: [[{ type: 'BIGINT' }]], + signature: 'bin(BIGINT a)', + draggable: 'bin()', + description: + 'Returns the binary representation of an integer value, that is, a string of 0 and 1 digits.' + }, + ceil: { + returnTypes: ['T'], + arguments: [[{ type: 'DOUBLE' }, { type: 'DECIMAL' }]], + signature: 'ceil(T a)', + draggable: 'ceil()', + description: 'Returns the smallest integer that is greater than or equal to the argument.' + }, + ceiling: { + returnTypes: ['T'], + arguments: [[{ type: 'DOUBLE' }, { type: 'DECIMAL' }]], + signature: 'ceiling(T a)', + draggable: 'ceiling()', + description: 'Returns the smallest integer that is greater than or equal to the argument.' + }, + conv: { + returnTypes: ['T'], + arguments: [[{ type: 'BIGINT' }, { type: 'STRING' }], [{ type: 'INT' }], [{ type: 'INT' }]], + signature: 'conv(T a, INT from_base, INT to_base)', + draggable: 'conv()', + description: + 'Returns a string representation of an integer value in a particular base. The input value can be a string, for example to convert a hexadecimal number such as fce2 to decimal. To use the return value as a number (for example, when converting to base 10), use CAST() to convert to the appropriate type.' + }, + cos: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'cos(DOUBLE a)', + draggable: 'cos()', + description: 'Returns the cosine of the argument.' + }, + cosh: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'cosh(DOUBLE a)', + draggable: 'cosh()', + description: 'Returns the hyperbolic cosine of the argument.' + }, + cot: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'cot(DOUBLE a)', + draggable: 'cot()', + description: 'Returns the cotangent of the argument.' + }, + dceil: { + returnTypes: ['T'], + arguments: [[{ type: 'DOUBLE' }, { type: 'DECIMAL' }]], + signature: 'dceil(T a)', + draggable: 'dceil()', + description: 'Returns the smallest integer that is greater than or equal to the argument.' + }, + degrees: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'degrees(DOUBLE a)', + draggable: 'degrees()', + description: 'Converts argument value from radians to degrees.' + }, + dexp: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'dexp(DOUBLE a)', + draggable: 'dexp()', + description: 'Returns the mathematical constant e raised to the power of the argument.' + }, + dfloor: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'DOUBLE' }, { type: 'DECIMAL' }]], + signature: 'dfloor(T a)', + draggable: 'dfloor()', + description: 'Returns the largest integer that is less than or equal to the argument.' + }, + dlog1: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'dlog1(DOUBLE a)', + draggable: 'dlog1()', + description: 'Returns the natural logarithm of the argument.' + }, + dpow: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], + signature: 'dpow(DOUBLE a, DOUBLE p)', + draggable: 'dpow()', + description: 'Returns the first argument raised to the power of the second argument.' + }, + dround: { + returnTypes: ['T'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }], [{ type: 'INT', optional: true }]], + signature: 'dround(DOUBLE a [, INT d]), round(DECIMAL val, INT d)', + draggable: 'dround()', + description: + 'Rounds a floating-point value. By default (with a single argument), rounds to the nearest integer. Values ending in .5 are rounded up for positive numbers, down for negative numbers (that is, away from zero). The optional second argument specifies how many digits to leave after the decimal point; values greater than zero produce a floating-point return value rounded to the requested number of digits to the right of the decimal point.' + }, + dsqrt: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'dsqrt(DOUBLE a)', + draggable: 'dsqrt()', + description: 'Returns the square root of the argument.' + }, + dtrunc: { + returnTypes: ['T'], + arguments: [ + [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], + [{ type: 'NUMBER', optional: true }] + ], + signature: 'dtrunc(T a, [NUMBER b])', + draggable: 'dtrunc()', + description: + 'Removes some or all fractional digits from a numeric value. With no argument, removes all fractional digits, leaving an integer value. The optional argument specifies the number of fractional digits to include in the return value, and only applies with the argument type is DECIMAL. truncate(), trunc() and dtrunc() are aliases for the same function.' + }, + e: { + returnTypes: ['DOUBLE'], + arguments: [], + signature: 'e()', + draggable: 'e()', + description: 'Returns the mathematical constant e.' + }, + exp: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'exp(DOUBLE a)', + draggable: 'exp()', + description: 'Returns the mathematical constant e raised to the power of the argument.' + }, + factorial: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'T' }]], + signature: 'factorial(T a)', + draggable: 'factorial()', + description: + 'Computes the factorial of an integer value. It works with any integer type. You can use either the factorial() function or the ! operator. The factorial of 0 is 1. Likewise, the factorial() function returns 1 for any negative value. The maximum positive value for the input argument is 20; a value of 21 or greater overflows the range for a BIGINT and causes an error.' + }, + floor: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'DOUBLE' }, { type: 'DECIMAL' }]], + signature: 'floor(T a)', + draggable: 'floor()', + description: 'Returns the largest integer that is less than or equal to the argument.' + }, + fmod: { + returnTypes: ['T'], + arguments: [ + [{ type: 'DOUBLE' }, { type: 'DOUBLE' }], + [{ type: 'FLOAT' }, { type: 'FLOAT' }] + ], + signature: 'fmod(DOUBLE a, DOUBLE b), fmod(FLOAT a, FLOAT b)', + draggable: 'fmod()', + description: 'Returns the modulus of a floating-point number' + }, + fpow: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], + signature: 'fpow(DOUBLE a, DOUBLE p)', + draggable: 'fpow()', + description: 'Returns the first argument raised to the power of the second argument.' + }, + fnv_hash: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'T' }]], + signature: 'fnv_hash(T a)', + draggable: 'fnv_hash()', + description: + 'Returns a consistent 64-bit value derived from the input argument, for convenience of implementing hashing logic in an application.' + }, + greatest: { + returnTypes: ['T'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'greatest(T a1, T a2, ...)', + draggable: 'greatest()', + description: 'Returns the largest value from a list of expressions.' + }, + hex: { + returnTypes: ['STRING'], + arguments: [[{ type: 'BIGINT' }, { type: 'STRING' }]], + signature: 'hex(T a)', + draggable: 'hex()', + description: + 'Returns the hexadecimal representation of an integer value, or of the characters in a string.' + }, + is_inf: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'is_inf(DOUBLE a)', + draggable: 'is_inf()', + description: + 'Tests whether a value is equal to the special value "inf", signifying infinity.' + }, + is_nan: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'is_nan(DOUBLE A)', + draggable: 'is_nan()', + description: + 'Tests whether a value is equal to the special value "NaN", signifying "not a number".' + }, + least: { + returnTypes: ['T'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'least(T a1, T a2, ...)', + draggable: 'least()', + description: 'Returns the smallest value from a list of expressions.' + }, + ln: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'ln(DOUBLE a)', + draggable: 'ln()', + description: 'Returns the natural logarithm of the argument.' + }, + log: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], + signature: 'log(DOUBLE base, DOUBLE a)', + draggable: 'log()', + description: 'Returns the logarithm of the second argument to the specified base.' + }, + log10: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'log10(DOUBLE a)', + draggable: 'log10()', + description: 'Returns the logarithm of the argument to the base 10.' + }, + log2: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'log2(DOUBLE a)', + draggable: 'log2()', + description: 'Returns the logarithm of the argument to the base 2.' + }, + max_bigint: { + returnTypes: ['BIGINT'], + arguments: [], + signature: 'max_bigint()', + draggable: 'max_bigint()', + description: 'Returns the largest value of the associated integral type.' + }, + max_int: { + returnTypes: ['INT'], + arguments: [], + signature: 'max_int()', + draggable: 'max_int()', + description: 'Returns the largest value of the associated integral type.' + }, + max_smallint: { + returnTypes: ['SMALLINT'], + arguments: [], + signature: 'max_smallint()', + draggable: 'max_smallint()', + description: 'Returns the largest value of the associated integral type.' + }, + max_tinyint: { + returnTypes: ['TINYINT'], + arguments: [], + signature: 'max_tinyint()', + draggable: 'max_tinyint()', + description: 'Returns the largest value of the associated integral type.' + }, + min_bigint: { + returnTypes: ['BIGINT'], + arguments: [], + signature: 'min_bigint()', + draggable: 'min_bigint()', + description: + 'Returns the smallest value of the associated integral type (a negative number).' + }, + min_int: { + returnTypes: ['INT'], + arguments: [], + signature: 'min_int()', + draggable: 'min_int()', + description: + 'Returns the smallest value of the associated integral type (a negative number).' + }, + min_smallint: { + returnTypes: ['SMALLINT'], + arguments: [], + signature: 'min_smallint()', + draggable: 'min_smallint()', + description: + 'Returns the smallest value of the associated integral type (a negative number).' + }, + min_tinyint: { + returnTypes: ['TINYINT'], + arguments: [], + signature: 'min_tinyint()', + draggable: 'min_tinyint()', + description: + 'Returns the smallest value of the associated integral type (a negative number).' + }, + mod: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'mod(T a, T b)', + draggable: 'mod()', + description: + 'Returns the modulus of a number. Equivalent to the % arithmetic operator. Works with any size integer type, any size floating-point type, and DECIMAL with any precision and scale.' + }, + murmur_hash: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'T' }]], + signature: 'murmur_hash(T a)', + draggable: 'murmur_hash()', + description: + 'Returns a consistent 64-bit value derived from the input argument, for convenience of implementing MurmurHash2 non-cryptographic hash function.' + }, + negative: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'negative(T a)', + draggable: 'negative()', + description: + 'Returns the argument with the sign reversed; returns a positive value if the argument was already negative.' + }, + pi: { + returnTypes: ['DOUBLE'], + arguments: [], + signature: 'pi()', + draggable: 'pi()', + description: 'Returns the constant pi.' + }, + pmod: { + returnTypes: ['T'], + arguments: [[{ type: 'DOUBLE' }, { type: 'INT' }], [{ type: 'T' }]], + signature: 'pmod(T a, T b)', + draggable: 'pmod()', + description: 'Returns the positive modulus of a number.' + }, + positive: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'positive(T a)', + draggable: 'positive()', + description: 'Returns the original argument unchanged (even if the argument is negative).' + }, + pow: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], + signature: 'pow(DOUBLE a, DOUBLE p)', + draggable: 'pow()', + description: 'Returns the first argument raised to the power of the second argument.' + }, + power: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }], [{ type: 'DOUBLE' }]], + signature: 'power(DOUBLE a, DOUBLE p)', + draggable: 'power()', + description: 'Returns the first argument raised to the power of the second argument.' + }, + precision: { + returnTypes: ['INT'], + arguments: [[{ type: 'NUMBER' }]], + signature: 'precision(numeric_expression)', + draggable: 'precision()', + description: + 'Computes the precision (number of decimal digits) needed to represent the type of the argument expression as a DECIMAL value.' + }, + quotient: { + returnTypes: ['INT'], + arguments: [ + [{ type: 'BIGINT' }, { type: 'DOUBLE' }], + [{ type: 'BIGINT' }, { type: 'DOUBLE' }] + ], + signature: + 'quotient(BIGINT numerator, BIGINT denominator), quotient(DOUBLE numerator, DOUBLE denominator)', + draggable: 'quotient()', + description: + 'Returns the first argument divided by the second argument, discarding any fractional part. Avoids promoting arguments to DOUBLE as happens with the / SQL operator.' + }, + radians: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'radians(DOUBLE a)', + draggable: 'radians()', + description: 'Converts argument value from degrees to radians.' + }, + rand: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'INT', optional: true }]], + signature: 'rand([INT seed])', + draggable: 'rand()', + description: + 'Returns a random value between 0 and 1. After rand() is called with a seed argument, it produces a consistent random sequence based on the seed value.' + }, + random: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'INT', optional: true }]], + signature: 'random([INT seed])', + draggable: 'random()', + description: + 'Returns a random value between 0 and 1. After rand() is called with a seed argument, it produces a consistent random sequence based on the seed value.' + }, + round: { + returnTypes: ['T'], + arguments: [[{ type: 'DECIMAL' }, { type: 'DOUBLE' }], [{ type: 'INT', optional: true }]], + signature: 'round(DOUBLE a [, INT d]), round(DECIMAL val, INT d)', + draggable: 'round()', + description: + 'Rounds a floating-point value. By default (with a single argument), rounds to the nearest integer. Values ending in .5 are rounded up for positive numbers, down for negative numbers (that is, away from zero). The optional second argument specifies how many digits to leave after the decimal point; values greater than zero produce a floating-point return value rounded to the requested number of digits to the right of the decimal point.' + }, + scale: { + returnTypes: ['INT'], + arguments: [[{ type: 'NUMBER' }]], + signature: 'scale(numeric_expression)', + draggable: 'scale()', + description: + 'Computes the scale (number of decimal digits to the right of the decimal point) needed to represent the type of the argument expression as a DECIMAL value.' + }, + sign: { + returnTypes: ['INT'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'sign(DOUBLE a)', + draggable: 'sign()', + description: 'Returns -1, 0, or 1 to indicate the signedness of the argument value.' + }, + sin: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'sin(DOUBLE a)', + draggable: 'sin()', + description: 'Returns the sine of the argument.' + }, + sinh: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'sinh(DOUBLE a)', + draggable: 'sinh()', + description: 'Returns the hyperbolic sine of the argument.' + }, + sqrt: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'sqrt(DOUBLE a)', + draggable: 'sqrt()', + description: 'Returns the square root of the argument.' + }, + tan: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'tan(DOUBLE a)', + draggable: 'tan()', + description: 'Returns the tangent of the argument.' + }, + tanh: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'DOUBLE' }]], + signature: 'tanh(DOUBLE a)', + draggable: 'tanh()', + description: 'Returns the tangent of the argument.' + }, + trunc: { + returnTypes: ['T'], + arguments: [ + [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], + [{ type: 'NUMBER', optional: true }] + ], + signature: 'trunc(T a, [NUMBER b])', + draggable: 'trunc()', + description: + 'Removes some or all fractional digits from a numeric value. With no argument, removes all fractional digits, leaving an integer value. The optional argument specifies the number of fractional digits to include in the return value, and only applies with the argument type is DECIMAL. truncate(), trunc() and dtrunc() are aliases for the same function.' + }, + truncate: { + returnTypes: ['T'], + arguments: [ + [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], + [{ type: 'NUMBER', optional: true }] + ], + signature: 'truncate(T a, [NUMBER b])', + draggable: 'truncate()', + description: + 'Removes some or all fractional digits from a numeric value. With no argument, removes all fractional digits, leaving an integer value. The optional argument specifies the number of fractional digits to include in the return value, and only applies with the argument type is DECIMAL. truncate(), trunc() and dtrunc() are aliases for the same function.' + }, + unhex: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'unhex(STRING a)', + draggable: 'unhex()', + description: + 'Returns a string of characters with ASCII values corresponding to pairs of hexadecimal digits in the argument.' + }, + width_bucket: { + returnTypes: ['T'], + arguments: [ + [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], + [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], + [{ type: 'DOUBLE' }, { type: 'DECIMAL' }], + [{ type: 'INT' }] + ], + signature: + 'width_bucket(DECIMAL expr, DECIMAL min_value, DECIMAL max_value, INT num_buckets)', + draggable: 'width_bucket()', + description: + 'Returns the bucket number in which the expr value would fall in the histogram where its range between min_value and max_value is divided into num_buckets buckets of identical sizes.' + } + } + }; + + const COMPLEX_TYPE_CONSTRUCTS = { + hive: { + array: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'array(val1, val2, ...)', + draggable: 'array()', + description: 'Creates an array with the given elements.' + }, + create_union: { + returnTypes: ['UNION'], + arguments: [[{ type: 'T' }], [{ type: 'T', multiple: true }]], + signature: 'create_union(tag, val1, val2, ...)', + draggable: 'create_union()', + description: + 'Creates a union type with the value that is being pointed to by the tag parameter.' + }, + map: { + returnTypes: ['MAP'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'map(key1, value1, ...)', + draggable: 'map()', + description: 'Creates a map with the given key/value pairs.' + }, + named_struct: { + returnTypes: ['STRUCT'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'named_struct(name1, val1, ...)', + draggable: 'named_struct()', + description: 'Creates a struct with the given field names and values.' + }, + struct: { + returnTypes: ['STRUCT'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'struct(val1, val2, ...)', + draggable: 'struct()', + description: + 'Creates a struct with the given field values. Struct field names will be col1, col2, ....' + } + }, + impala: {} + }; + + const AGGREGATE_FUNCTIONS = { + generic: { + count: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'T' }]], + signature: 'count(col)', + draggable: 'count()', + description: + 'count(*) - Returns the total number of retrieved rows, including rows containing NULL values. count(expr) - Returns the number of rows for which the supplied expression is non-NULL.' + }, + sum: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'sum(col)', + draggable: 'sum()', + description: + 'Returns the sum of the elements in the group or the sum of the distinct values of the column in the group.' + }, + max: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'max(col)', + draggable: 'max()', + description: 'Returns the maximum value of the column in the group.' + }, + min: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'min(col)', + draggable: 'min()', + description: 'Returns the minimum of the column in the group.' + } + }, + hive: { + avg: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'avg(col)', + draggable: 'avg()', + description: + 'Returns the average of the elements in the group or the average of the distinct values of the column in the group.' + }, + collect_set: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'T' }]], + signature: 'collect_set(col)', + draggable: 'collect_set()', + description: 'Returns a set of objects with duplicate elements eliminated.' + }, + collect_list: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'T' }]], + signature: 'collect_list(col)', + draggable: 'collect_list()', + description: 'Returns a list of objects with duplicates. (As of Hive 0.13.0.)' + }, + corr: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'corr(col1, col2)', + draggable: 'corr()', + description: + 'Returns the Pearson coefficient of correlation of a pair of a numeric columns in the group.' + }, + count: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'T' }]], + signature: 'count([DISTINCT] col)', + draggable: 'count()', + description: + 'count(*) - Returns the total number of retrieved rows, including rows containing NULL values. count(expr) - Returns the number of rows for which the supplied expression is non-NULL. count(DISTINCT expr[, expr]) - Returns the number of rows for which the supplied expression(s) are unique and non-NULL. Execution of this can be optimized with hive.optimize.distinct.rewrite.' + }, + covar_pop: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'covar_pop(col1, col2)', + draggable: 'covar_pop()', + description: 'Returns the population covariance of a pair of numeric columns in the group.' + }, + covar_samp: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'covar_samp(col1, col2)', + draggable: 'covar_samp()', + description: 'Returns the sample covariance of a pair of a numeric columns in the group.' + }, + histogram_numeric: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'T' }], [{ type: 'INT' }]], + signature: 'histogram_numeric(col, b)', + draggable: 'histogram_numeric()', + description: + 'Computes a histogram of a numeric column in the group using b non-uniformly spaced bins. The output is an array of size b of double-valued (x,y) coordinates that represent the bin centers and heights.' + }, + max: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'max(col)', + draggable: 'max()', + description: 'Returns the maximum value of the column in the group.' + }, + min: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'min(col)', + draggable: 'min()', + description: 'Returns the minimum of the column in the group.' + }, + ntile: { + returnTypes: ['INT'], + arguments: [[{ type: 'INT' }]], + signature: 'ntile(INT x)', + draggable: 'ntile()', + description: + 'Divides an ordered partition into x groups called buckets and assigns a bucket number to each row in the partition. This allows easy calculation of tertiles, quartiles, deciles, percentiles and other common summary statistics. (As of Hive 0.11.0.)' + }, + percentile: { + returnTypes: ['DOUBLE', 'ARRAY'], + arguments: [[{ type: 'BIGINT' }], [{ type: 'ARRAY' }, { type: 'DOUBLE' }]], + signature: + 'percentile(BIGINT col, p), array percentile(BIGINT col, array(p1 [, p2]...))', + draggable: 'percentile()', + description: + 'Returns the exact pth percentile (or percentiles p1, p2, ..) of a column in the group (does not work with floating point types). p must be between 0 and 1. NOTE: A true percentile can only be computed for integer values. Use PERCENTILE_APPROX if your input is non-integral.' + }, + percentile_approx: { + returnTypes: ['DOUBLE', 'ARRAY'], + arguments: [ + [{ type: 'DOUBLE' }], + [{ type: 'DOUBLE' }, { type: 'ARRAY' }], + [{ type: 'BIGINT', optional: true }] + ], + signature: + 'percentile_approx(DOUBLE col, p, [, B]), array percentile_approx(DOUBLE col, array(p1 [, p2]...), [, B])', + draggable: 'percentile_approx()', + description: + 'Returns an approximate pth percentile (or percentiles p1, p2, ..) of a numeric column (including floating point types) in the group. The B parameter controls approximation accuracy at the cost of memory. Higher values yield better approximations, and the default is 10,000. When the number of distinct values in col is smaller than B, this gives an exact percentile value.' + }, + regr_avgx: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'regr_avgx(T independent, T dependent)', + draggable: 'regr_avgx()', + description: 'Equivalent to avg(dependent). As of Hive 2.2.0.' + }, + regr_avgy: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'regr_avgy(T independent, T dependent)', + draggable: 'regr_avgy()', + description: 'Equivalent to avg(dependent). As of Hive 2.2.0.' + }, + regr_count: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'regr_count(T independent, T dependent)', + draggable: 'regr_count()', + description: + 'Returns the number of non-null pairs used to fit the linear regression line. As of Hive 2.2.0.' + }, + regr_intercept: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'regr_intercept(T independent, T dependent)', + draggable: 'regr_intercept()', + description: + 'Returns the y-intercept of the linear regression line, i.e. the value of b in the equation dependent = a * independent + b. As of Hive 2.2.0.' + }, + regr_r2: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'regr_r2(T independent, T dependent)', + draggable: 'regr_r2()', + description: + 'Returns the coefficient of determination for the regression. As of Hive 2.2.0.' + }, + regr_slope: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'regr_slope(T independent, T dependent)', + draggable: 'regr_slope()', + description: + 'Returns the slope of the linear regression line, i.e. the value of a in the equation dependent = a * independent + b. As of Hive 2.2.0.' + }, + regr_sxx: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'regr_sxx(T independent, T dependent)', + draggable: 'regr_sxx()', + description: + 'Equivalent to regr_count(independent, dependent) * var_pop(dependent). As of Hive 2.2.0.' + }, + regr_sxy: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'regr_sxy(T independent, T dependent)', + draggable: 'regr_sxy()', + description: + 'Equivalent to regr_count(independent, dependent) * covar_pop(independent, dependent). As of Hive 2.2.0.' + }, + regr_syy: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'regr_syy(T independent, T dependent)', + draggable: 'regr_syy()', + description: + 'Equivalent to regr_count(independent, dependent) * var_pop(independent). As of Hive 2.2.0.' + }, + stddev_pop: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'stddev_pop(col)', + draggable: 'stddev_pop()', + description: 'Returns the standard deviation of a numeric column in the group.' + }, + stddev_samp: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'stddev_samp(col)', + draggable: 'stddev_samp()', + description: + 'Returns the unbiased sample standard deviation of a numeric column in the group.' + }, + sum: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'sum(col)', + draggable: 'sum()', + description: + 'Returns the sum of the elements in the group or the sum of the distinct values of the column in the group.' + }, + variance: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'variance(col)', + draggable: 'variance()', + description: 'Returns the variance of a numeric column in the group.' + }, + var_pop: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'var_pop(col)', + draggable: 'var_pop()', + description: 'Returns the variance of a numeric column in the group.' + }, + var_samp: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'var_samp(col)', + draggable: 'var_samp()', + description: 'Returns the unbiased sample variance of a numeric column in the group.' + } + }, + impala: { + appx_median: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'appx_median([DISTINCT|ALL] T col)', + draggable: 'appx_median()', + description: + 'An aggregate function that returns a value that is approximately the median (midpoint) of values in the set of input values.' + }, + avg: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'NUMBER' }]], + signature: 'avg([DISTINCT|ALL] col)', + draggable: 'avg()', + description: + 'An aggregate function that returns the average value from a set of numbers. Its single argument can be numeric column, or the numeric result of a function or expression applied to the column value. Rows with a NULL value for the specified column are ignored. If the table is empty, or all the values supplied to AVG are NULL, AVG returns NULL.' + }, + count: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'T' }]], + signature: 'count([DISTINCT|ALL] col)', + draggable: 'count()', + description: + 'An aggregate function that returns the number of rows, or the number of non-NULL rows.' + }, + group_concat: { + returnTypes: ['STRING'], + arguments: [[{ type: 'T' }], [{ type: 'STRING', optional: true }]], + signature: 'group_concat([ALL] col [, separator])', + draggable: 'group_concat()', + description: + 'An aggregate function that returns a single string representing the argument value concatenated together for each row of the result set. If the optional separator string is specified, the separator is added between each pair of concatenated values. The default separator is a comma followed by a space.' + }, + max: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'max([DISTINCT | ALL] T col)', + draggable: 'max()', + description: + 'An aggregate function that returns the maximum value from a set of numbers. Opposite of the MIN function. Its single argument can be numeric column, or the numeric result of a function or expression applied to the column value. Rows with a NULL value for the specified column are ignored. If the table is empty, or all the values supplied to MAX are NULL, MAX returns NULL.' + }, + min: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'min([DISTINCT | ALL] T col)', + draggable: 'min()', + description: + 'An aggregate function that returns the minimum value from a set of numbers. Opposite of the MAX function. Its single argument can be numeric column, or the numeric result of a function or expression applied to the column value. Rows with a NULL value for the specified column are ignored. If the table is empty, or all the values supplied to MIN are NULL, MIN returns NULL.' + }, + ndv: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'ndv([DISTINCT | ALL] col)', + draggable: 'ndv()', + description: + 'An aggregate function that returns an approximate value similar to the result of COUNT(DISTINCT col), the "number of distinct values". It is much faster than the combination of COUNT and DISTINCT, and uses a constant amount of memory and thus is less memory-intensive for columns with high cardinality.' + }, + stddev: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'stddev([DISTINCT | ALL] col)', + draggable: 'stddev()', + description: 'Returns the standard deviation of a numeric column in the group.' + }, + stddev_pop: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'stddev_pop([DISTINCT | ALL] col)', + draggable: 'stddev_pop()', + description: 'Returns the population standard deviation of a numeric column in the group.' + }, + stddev_samp: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'stddev_samp([DISTINCT | ALL] col)', + draggable: 'stddev_samp()', + description: + 'Returns the unbiased sample standard deviation of a numeric column in the group.' + }, + sum: { + returnTypes: ['BIGINT', 'DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'sum([DISTINCT | ALL] col)', + draggable: 'sum()', + description: + 'An aggregate function that returns the sum of a set of numbers. Its single argument can be numeric column, or the numeric result of a function or expression applied to the column value. Rows with a NULL value for the specified column are ignored. If the table is empty, or all the values supplied to MIN are NULL, SUM returns NULL.' + }, + variance: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'variance([DISTINCT | ALL] col)', + draggable: 'variance()', + description: + 'An aggregate function that returns the variance of a set of numbers. This is a mathematical property that signifies how far the values spread apart from the mean. The return value can be zero (if the input is a single value, or a set of identical values), or a positive number otherwise.' + }, + variance_pop: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'variance_pop([DISTINCT | ALL] col)', + draggable: 'variance_pop()', + description: + 'An aggregate function that returns the population variance of a set of numbers. This is a mathematical property that signifies how far the values spread apart from the mean. The return value can be zero (if the input is a single value, or a set of identical values), or a positive number otherwise.' + }, + variance_samp: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'variance_samp([DISTINCT | ALL] col)', + draggable: 'variance_samp()', + description: + 'An aggregate function that returns the sample variance of a set of numbers. This is a mathematical property that signifies how far the values spread apart from the mean. The return value can be zero (if the input is a single value, or a set of identical values), or a positive number otherwise.' + }, + var_pop: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'var_pop(col)', + draggable: 'var_pop()', + description: 'Returns the variance of a numeric column in the group.' + }, + var_samp: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'T' }]], + signature: 'var_samp(col)', + draggable: 'var_samp()', + description: 'Returns the unbiased sample variance of a numeric column in the group.' + } + } + }; + + const COLLECTION_FUNCTIONS = { + hive: { + array_contains: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'ARRAY' }], [{ type: 'T' }]], + signature: 'array_contains(Array a, val)', + draggable: 'array_contains()', + description: 'Returns TRUE if the array contains value.' + }, + map_keys: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'MAP' }]], + signature: 'array map_keys(Map a)', + draggable: 'array map_keys()', + description: 'Returns an unordered array containing the keys of the input map.' + }, + map_values: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'MAP' }]], + signature: 'array map_values(Map a)', + draggable: 'array map_values()', + description: 'Returns an unordered array containing the values of the input map.' + }, + size: { + returnTypes: ['INT'], + arguments: [[{ type: 'ARRAY' }, { type: 'MAP' }]], + signature: 'size(Map|Array a)', + draggable: 'size()', + description: 'Returns the number of elements in the map or array type.' + }, + sort_array: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'ARRAY' }]], + signature: 'sort_array(Array a)', + draggable: 'sort_array()', + description: + 'Sorts the input array in ascending order according to the natural ordering of the array elements and returns it.' + } + }, + impala: {} + }; + + const TYPE_CONVERSION_FUNCTIONS = { + hive: { + binary: { + returnTypes: ['BINARY'], + arguments: [[{ type: 'BINARY' }, { type: 'STRING' }]], + signature: 'binary(BINARY|STRING a)', + draggable: 'binary()', + description: 'Casts the parameter into a binary.' + }, + cast: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'cast(a as T)', + draggable: 'cast()', + description: + "Converts the results of the expression expr to type T. For example, cast('1' as BIGINT) will convert the string '1' to its integral representation. A null is returned if the conversion does not succeed. If cast(expr as boolean) Hive returns true for a non-empty string." + } + }, + impala: { + cast: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'cast(a as T)', + draggable: 'cast()', + description: + "Converts the results of the expression expr to type T. For example, cast('1' as BIGINT) will convert the string '1' to its integral representation. A null is returned if the conversion does not succeed. If cast(expr as boolean) Hive returns true for a non-empty string." + }, + typeof: { + returnTypes: ['STRING'], + arguments: [[{ type: 'T' }]], + signature: 'typeof(T a)', + draggable: 'typeof()', + description: + 'Returns the name of the data type corresponding to an expression. For types with extra attributes, such as length for CHAR and VARCHAR, or precision and scale for DECIMAL, includes the full specification of the type.' + } + } + }; + + const DATE_FUNCTIONS = { + hive: { + add_months: { + returnTypes: ['STRING'], + arguments: [ + [{ type: 'DATE' }, { type: 'STRING' }, { type: 'TIMESTAMP' }], + [{ type: 'INT' }] + ], + signature: 'add_months(DATE|STRING|TIMESTAMP start_date, INT num_months)', + draggable: 'add_months()', + description: + 'Returns the date that is num_months after start_date (as of Hive 1.1.0). start_date is a string, date or timestamp. num_months is an integer. The time part of start_date is ignored. If start_date is the last day of the month or if the resulting month has fewer days than the day component of start_date, then the result is the last day of the resulting month. Otherwise, the result has the same day component as start_date.' + }, + current_date: { + returnTypes: ['DATE'], + arguments: [], + signature: 'current_date', + draggable: 'current_date', + description: + 'Returns the current date at the start of query evaluation (as of Hive 1.2.0). All calls of current_date within the same query return the same value.' + }, + current_timestamp: { + returnTypes: ['TIMESTAMP'], + arguments: [], + signature: 'current_timestamp()', + draggable: 'current_timestamp()', + description: + 'Returns the current timestamp at the start of query evaluation (as of Hive 1.2.0). All calls of current_timestamp within the same query return the same value.' + }, + datediff: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'datediff(STRING enddate, STRING startdate)', + draggable: 'datediff()', + description: + "Returns the number of days from startdate to enddate: datediff('2009-03-01', '2009-02-27') = 2." + }, + date_add: { + returnTypes: ['T'], + arguments: [[{ type: 'DATE' }, { type: 'STRING' }], [{ type: 'INT' }]], + signature: 'date_add(DATE startdate, INT days)', + draggable: 'date_add()', + description: + "Adds a number of days to startdate: date_add('2008-12-31', 1) = '2009-01-01'. T = pre 2.1.0: STRING, 2.1.0 on: DATE" + }, + date_format: { + returnTypes: ['STRING'], + arguments: [ + [{ type: 'DATE' }, { type: 'STRING' }, { type: 'TIMESTAMP' }], + [{ type: 'STRING' }] + ], + signature: 'date_format(DATE|TIMESTAMP|STRING ts, STRING fmt)', + draggable: 'date_format()', + description: + "Converts a date/timestamp/string to a value of string in the format specified by the date format fmt (as of Hive 1.2.0). Supported formats are Java SimpleDateFormat formats - https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html. The second argument fmt should be constant. Example: date_format('2015-04-08', 'y') = '2015'." + }, + date_sub: { + returnTypes: ['T'], + arguments: [[{ type: 'DATE' }, { type: 'STRING' }], [{ type: 'INT' }]], + signature: 'date_sub(DATE startdate, INT days)', + draggable: 'date_sub()', + description: + "Subtracts a number of days to startdate: date_sub('2008-12-31', 1) = '2008-12-30'. T = pre 2.1.0: STRING, 2.1.0 on: DATE" + }, + day: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'day(STRING date)', + draggable: 'day()', + description: + "Returns the day part of a date or a timestamp string: day('1970-11-01 00:00:00') = 1, day('1970-11-01') = 1." + }, + dayofmonth: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'dayofmonth(STRING date)', + draggable: 'dayofmonth()', + description: + "Returns the day part of a date or a timestamp string: dayofmonth('1970-11-01 00:00:00') = 1, dayofmonth('1970-11-01') = 1." + }, + extract: { + returnTypes: ['INT'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'extract(field FROM source)', + draggable: 'extract()', + description: + 'Retrieve fields such as days or hours from source (as of Hive 2.2.0). Source must be a date, timestamp, interval or a string that can be converted into either a date or timestamp. Supported fields include: day, dayofweek, hour, minute, month, quarter, second, week and year.' + }, + from_unixtime: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'BIGINT' }], [{ type: 'STRING', optional: true }]], + signature: 'from_unixtime(BIGINT unixtime [, STRING format])', + draggable: 'from_unixtime()', + description: + "Converts the number of seconds from unix epoch (1970-01-01 00:00:00 UTC) to a string representing the timestamp of that moment in the current system time zone in the format of '1970-01-01 00:00:00'" + }, + from_utc_timestamp: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'T' }], [{ type: 'STRING' }]], + signature: 'from_utc_timestamp(T a, STRING timezone)', + draggable: 'from_utc_timestamp()', + description: + "Assumes given timestamp is UTC and converts to given timezone (as of Hive 0.8.0). For example, from_utc_timestamp('1970-01-01 08:00:00','PST') returns 1970-01-01 00:00:00" + }, + hour: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'hour(STRING date)', + draggable: 'hour()', + description: + "Returns the hour of the timestamp: hour('2009-07-30 12:58:59') = 12, hour('12:58:59') = 12." + }, + last_day: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'last_day(STRING date)', + draggable: 'last_day()', + description: + "Returns the last day of the month which the date belongs to (as of Hive 1.1.0). date is a string in the format 'yyyy-MM-dd HH:mm:ss' or 'yyyy-MM-dd'. The time part of date is ignored." + }, + minute: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'minute(STRING date)', + draggable: 'minute()', + description: 'Returns the minute of the timestamp.' + }, + month: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'month(STRING date)', + draggable: 'month()', + description: + "Returns the month part of a date or a timestamp string: month('1970-11-01 00:00:00') = 11, month('1970-11-01') = 11." + }, + months_between: { + returnTypes: ['DOUBLE'], + arguments: [ + [{ type: 'DATE' }, { type: 'STRING' }, { type: 'TIMESTAMP' }], + [{ type: 'DATE' }, { type: 'STRING' }, { type: 'TIMESTAMP' }] + ], + signature: 'months_between(DATE|TIMESTAMP|STRING date1, DATE|TIMESTAMP|STRING date2)', + draggable: 'months_between()', + description: + "Returns number of months between dates date1 and date2 (as of Hive 1.2.0). If date1 is later than date2, then the result is positive. If date1 is earlier than date2, then the result is negative. If date1 and date2 are either the same days of the month or both last days of months, then the result is always an integer. Otherwise the UDF calculates the fractional portion of the result based on a 31-day month and considers the difference in time components date1 and date2. date1 and date2 type can be date, timestamp or string in the format 'yyyy-MM-dd' or 'yyyy-MM-dd HH:mm:ss'. The result is rounded to 8 decimal places. Example: months_between('1997-02-28 10:30:00', '1996-10-30') = 3.94959677" + }, + next_day: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'next_day(STRING start_date, STRING day_of_week)', + draggable: 'next_day()', + description: + "Returns the first date which is later than start_date and named as day_of_week (as of Hive 1.2.0). start_date is a string/date/timestamp. day_of_week is 2 letters, 3 letters or full name of the day of the week (e.g. Mo, tue, FRIDAY). The time part of start_date is ignored. Example: next_day('2015-01-14', 'TU') = 2015-01-20." + }, + quarter: { + returnTypes: ['INT'], + arguments: [[{ type: 'DATE' }, { type: 'STRING' }, { type: 'TIMESTAMP' }]], + signature: 'quarter(DATE|TIMESTAMP|STRING a)', + draggable: 'quarter()', + description: + "Returns the quarter of the year for a date, timestamp, or string in the range 1 to 4. Example: quarter('2015-04-08') = 2." + }, + second: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'second(STRING date)', + draggable: 'second()', + description: 'Returns the second of the timestamp.' + }, + to_date: { + returnTypes: ['T'], + arguments: [[{ type: 'STRING' }]], + signature: 'to_date(STRING timestamp)', + draggable: 'to_date()', + description: + "Returns the date part of a timestamp string, example to_date('1970-01-01 00:00:00'). T = pre 2.1.0: STRING 2.1.0 on: DATE" + }, + to_utc_timestamp: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'T' }], [{ type: 'STRING' }]], + signature: 'to_utc_timestamp(T a, STRING timezone)', + draggable: 'to_utc_timestamp()', + description: + "Assumes given timestamp is in given timezone and converts to UTC (as of Hive 0.8.0). For example, to_utc_timestamp('1970-01-01 00:00:00','PST') returns 1970-01-01 08:00:00." + }, + trunc: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'trunc(STRING date, STRING format)', + draggable: 'trunc()', + description: + "Returns date truncated to the unit specified by the format (as of Hive 1.2.0). Supported formats: MONTH/MON/MM, YEAR/YYYY/YY. Example: trunc('2015-03-17', 'MM') = 2015-03-01." + }, + unix_timestamp: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'STRING', optional: true }], [{ type: 'STRING', optional: true }]], + signature: 'unix_timestamp([STRING date [, STRING pattern]])', + draggable: 'unix_timestamp()', + description: + "Convert time string with given pattern to Unix time stamp (in seconds), return 0 if fail: unix_timestamp('2009-03-20', 'yyyy-MM-dd') = 1237532400." + }, + weekofyear: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'weekofyear(STRING date)', + draggable: 'weekofyear()', + description: + "Returns the week number of a timestamp string: weekofyear('1970-11-01 00:00:00') = 44, weekofyear('1970-11-01') = 44." + }, + year: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'year(STRING date)', + draggable: 'year()', + description: + "Returns the year part of a date or a timestamp string: year('1970-01-01 00:00:00') = 1970, year('1970-01-01') = 1970" + } + }, + impala: { + add_months: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'add_months(TIMESTAMP date, BIGINT|INT months)', + draggable: 'add_months()', + description: 'Returns the specified date and time plus some number of months.' + }, + adddate: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'adddate(TIMESTAMP startdate, BIGINT|INT days)', + draggable: 'adddate()', + description: + 'Adds a specified number of days to a TIMESTAMP value. Similar to date_add(), but starts with an actual TIMESTAMP value instead of a string that is converted to a TIMESTAMP.' + }, + current_timestamp: { + returnTypes: ['TIMESTAMP'], + arguments: [], + signature: 'current_timestamp()', + draggable: 'current_timestamp()', + description: 'Alias for the now() function.' + }, + date_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'INT' }]], + signature: + 'date_add(TIMESTAMP startdate, INT days), date_add(TIMESTAMP startdate, interval_expression)', + draggable: 'date_add()', + description: + 'Adds a specified number of days to a TIMESTAMP value. The first argument can be a string, which is automatically cast to TIMESTAMP if it uses the recognized format. With an INTERVAL expression as the second argument, you can calculate a delta value using other units such as weeks, years, hours, seconds, and so on.' + }, + date_part: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'STRING' }], [{ type: 'TIMESTAMP' }]], + signature: 'date_part(STRING unit, TIMESTAMP timestamp)', + draggable: 'date_part()', + description: + 'Similar to EXTRACT(), with the argument order reversed. Supports the same date and time units as EXTRACT(). For compatibility with SQL code containing vendor extensions.' + }, + date_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'INT' }]], + signature: + 'date_sub(TIMESTAMP startdate, INT days), date_sub(TIMESTAMP startdate, interval_expression)', + draggable: 'date_sub()', + description: + 'Subtracts a specified number of days from a TIMESTAMP value. The first argument can be a string, which is automatically cast to TIMESTAMP if it uses the recognized format. With an INTERVAL expression as the second argument, you can calculate a delta value using other units such as weeks, years, hours, seconds, and so on.' + }, + date_trunc: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'STRING' }], [{ type: 'TIMESTAMP' }]], + signature: 'date_trunc(STRING unit, TIMESTAMP timestamp)', + draggable: 'date_trunc()', + description: + "Truncates a TIMESTAMP value to the specified precision. The unit argument value for truncating TIMESTAMP values is not case-sensitive. This argument string can be one of: 'microseconds', 'milliseconds', 'second', 'minute', 'hour', 'day', 'week', 'month', 'year', 'decade', 'century' or 'millennium'." + }, + datediff: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'TIMESTAMP' }]], + signature: 'datediff(TIMESTAMP enddate, TIMESTAMP startdate)', + draggable: 'datediff()', + description: 'Returns the number of days between two TIMESTAMP values.' + }, + day: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'day(TIMESTAMP date)', + draggable: 'day()', + description: + 'Returns the day field from the date portion of a TIMESTAMP. The value represents the day of the month, therefore is in the range 1-31, or less for months without 31 days.' + }, + dayname: { + returnTypes: ['STRING'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'dayname(TIMESTAMP date)', + draggable: 'dayname()', + description: + "Returns the day field from a TIMESTAMP value, converted to the string corresponding to that day name. The range of return values is 'Sunday' to 'Saturday'. Used in report-generating queries, as an alternative to calling dayofweek() and turning that numeric return value into a string using a CASE expression." + }, + dayofmonth: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'dayofmonth(TIMESTAMP date)', + draggable: 'dayofmonth()', + description: + 'Returns the day field from the date portion of a TIMESTAMP. The value represents the day of the month, therefore is in the range 1-31, or less for months without 31 days.' + }, + dayofweek: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'dayofweek(TIMESTAMP date)', + draggable: 'dayofweek()', + description: + 'Returns the day field from the date portion of a TIMESTAMP, corresponding to the day of the week. The range of return values is 1 (Sunday) to 7 (Saturday).' + }, + dayofyear: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'dayofyear(TIMESTAMP date)', + draggable: 'dayofyear()', + description: + 'Returns the day field from a TIMESTAMP value, corresponding to the day of the year. The range of return values is 1 (January 1) to 366 (December 31 of a leap year).' + }, + days_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'days_add(TIMESTAMP startdate, BIGINT|INT days)', + draggable: 'days_add()', + description: + 'Adds a specified number of days to a TIMESTAMP value. Similar to date_add(), but starts with an actual TIMESTAMP value instead of a string that is converted to a TIMESTAMP.' + }, + days_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'days_sub(TIMESTAMP startdate, BIGINT|INT days)', + draggable: 'days_sub()', + description: + 'Subtracts a specified number of days from a TIMESTAMP value. Similar to date_sub(), but starts with an actual TIMESTAMP value instead of a string that is converted to a TIMESTAMP.' + }, + extract: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], + signature: 'extract(TIMESTAMP date, STRING unit), extract(STRING unit FROM TIMESTAMP date)', + draggable: 'extract()', + description: 'Returns one of the numeric date or time fields from a TIMESTAMP value.' + }, + from_timestamp: { + returnTypes: ['STRING'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], + signature: 'from_timestamp(TIMESTAMP val, STRING format)', + draggable: 'from_timestamp()', + description: + "Converts a specified timestamp to a string with the given format. Example: from_timestamp(cast('1999-01-01 10:10:10' as timestamp), 'yyyy-MM-dd')\" results in \"1999-01-01\"" + }, + from_unixtime: { + returnTypes: ['STRING'], + arguments: [[{ type: 'BIGINT' }], [{ type: 'STRING', optional: true }]], + signature: 'from_unixtime(BIGINT unixtime [, STRING format])', + draggable: 'from_unixtime()', + description: + 'Converts the number of seconds from the Unix epoch to the specified time into a string in the local time zone.' + }, + from_utc_timestamp: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], + signature: 'from_utc_timestamp(TIMESTAMP date, STRING timezone)', + draggable: 'from_utc_timestamp()', + description: + 'Converts a specified UTC timestamp value into the appropriate value for a specified time zone.' + }, + hour: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'hour(TIMESTAMP date)', + draggable: 'hour()', + description: 'Returns the hour field from a TIMESTAMP field.' + }, + hours_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'hours_add(TIMESTAMP date, BIGINT|INT hours)', + draggable: 'hours_add()', + description: 'Returns the specified date and time plus some number of hours.' + }, + hours_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'hours_sub(TIMESTAMP date, BIGINT|INT hours)', + draggable: 'hours_sub()', + description: 'Returns the specified date and time minus some number of hours.' + }, + int_months_between: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'TIMESTAMP' }]], + signature: 'int_months_between(TIMESTAMP newer, TIMESTAMP older)', + draggable: 'int_months_between()', + description: + 'Returns the number of months between the date portions of two TIMESTAMP values, as an INT representing only the full months that passed.' + }, + last_day: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'last_day(TIMESTAMP t)', + draggable: 'last_day()', + description: + 'Returns a TIMESTAMP corresponding to the beginning of the last calendar day in the same month as the TIMESTAMP argument.' + }, + microseconds_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'microseconds_add(TIMESTAMP date, BIGINT|INT microseconds)', + draggable: 'microseconds_add()', + description: 'Returns the specified date and time plus some number of microseconds.' + }, + microseconds_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'microseconds_sub(TIMESTAMP date, BIGINT|INT microseconds)', + draggable: 'microseconds_sub()', + description: 'Returns the specified date and time minus some number of microseconds.' + }, + millisecond: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'millisecond(TIMESTAMP date)', + draggable: 'millisecond()', + description: 'Returns the millisecond portion of a TIMESTAMP value.' + }, + milliseconds_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'milliseconds_add(TIMESTAMP date, BIGINT|INT milliseconds)', + draggable: 'milliseconds_add()', + description: 'Returns the specified date and time plus some number of milliseconds.' + }, + milliseconds_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'milliseconds_sub(TIMESTAMP date, BIGINT|INT milliseconds)', + draggable: 'milliseconds_sub()', + description: 'Returns the specified date and time minus some number of milliseconds.' + }, + minute: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'minute(TIMESTAMP date)', + draggable: 'minute()', + description: 'Returns the minute field from a TIMESTAMP value.' + }, + minutes_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'minutes_add(TIMESTAMP date, BIGINT|INT minutes)', + draggable: 'minutes_add()', + description: 'Returns the specified date and time plus some number of minutes.' + }, + minutes_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'minutes_sub(TIMESTAMP date, BIGINT|INT minutes)', + draggable: 'minutes_sub()', + description: 'Returns the specified date and time minus some number of minutes.' + }, + month: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'month(TIMESTAMP date)', + draggable: 'month()', + description: + 'Returns the month field, represented as an integer, from the date portion of a TIMESTAMP.' + }, + monthname: { + returnTypes: ['STRING'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'monthname(TIMESTAMP date)', + draggable: 'monthname()', + description: + 'Returns the month field from TIMESTAMP value, converted to the string corresponding to that month name.' + }, + months_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'months_add(TIMESTAMP date, BIGINT|INT months)', + draggable: 'months_add()', + description: 'Returns the specified date and time plus some number of months.' + }, + months_between: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'TIMESTAMP' }]], + signature: 'months_between(TIMESTAMP newer, TIMESTAMP older)', + draggable: 'months_between()', + description: + 'Returns the number of months between the date portions of two TIMESTAMP values. Can include a fractional part representing extra days in addition to the full months between the dates. The fractional component is computed by dividing the difference in days by 31 (regardless of the month).' + }, + months_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'months_sub(TIMESTAMP date, BIGINT|INT months)', + draggable: 'months_sub()', + description: 'Returns the specified date and time minus some number of months.' + }, + nanoseconds_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'nanoseconds_add(TIMESTAMP date, BIGINT|INT nanoseconds)', + draggable: 'nanoseconds_add()', + description: 'Returns the specified date and time plus some number of nanoseconds.' + }, + nanoseconds_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'nanoseconds_sub(TIMESTAMP date, BIGINT|INT nanoseconds)', + draggable: 'nanoseconds_sub()', + description: 'Returns the specified date and time minus some number of nanoseconds.' + }, + next_day: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], + signature: 'next_day(TIMESTAMP date, STRING weekday)', + draggable: 'next_day()', + description: + 'Returns the date of the weekday that follows the specified date. The weekday parameter is case-insensitive. The following values are accepted for weekday: "Sunday"/"Sun", "Monday"/"Mon", "Tuesday"/"Tue", "Wednesday"/"Wed", "Thursday"/"Thu", "Friday"/"Fri", "Saturday"/"Sat".' + }, + now: { + returnTypes: ['TIMESTAMP'], + arguments: [], + signature: 'now()', + draggable: 'now()', + description: + 'Returns the current date and time (in the local time zone) as a timestamp value.' + }, + quarter: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'quarter(TIMESTAMP date)', + draggable: 'quarter()', + description: + 'Returns the quarter in the input TIMESTAMP expression as an integer value, 1, 2, 3, or 4, where 1 represents January 1 through March 31.' + }, + second: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'second(TIMESTAMP date)', + draggable: 'second()', + description: 'Returns the second field from a TIMESTAMP value.' + }, + seconds_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'seconds_add(TIMESTAMP date, BIGINT|INT seconds)', + draggable: 'seconds_add()', + description: 'Returns the specified date and time plus some number of seconds.' + }, + seconds_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'seconds_sub(TIMESTAMP date, BIGINT|INT seconds)', + draggable: 'seconds_sub()', + description: 'Returns the specified date and time minus some number of seconds.' + }, + subdate: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'subdate(TIMESTAMP startdate, BIGINT|INT days)', + draggable: 'subdate()', + description: + 'Subtracts a specified number of days from a TIMESTAMP value. Similar to date_sub(), but starts with an actual TIMESTAMP value instead of a string that is converted to a TIMESTAMP.' + }, + timeofday: { + returnTypes: ['STRING'], + arguments: [], + signature: 'timeofday()', + draggable: 'timeofday()', + description: + 'Returns a string representation of the current date and time, according to the time of the local system, including any time zone designation.' + }, + timestamp_cmp: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'TIMESTAMP' }]], + signature: 'timestamp_cmp(TIMESTAMP t1, TIMESTAMP t2)', + draggable: 'timestamp_cmp()', + description: + 'Tests if one TIMESTAMP value is newer than, older than, or identical to another TIMESTAMP. Returns either -1, 0, 1 or NULL.' + }, + to_date: { + returnTypes: ['STRING'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'to_date(TIMESTAMP date)', + draggable: 'to_date()', + description: 'Returns a string representation of the date field from a timestamp value.' + }, + to_timestamp: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + altArguments: [[{ type: 'BIGINT' }]], + signature: 'to_timestamp([STRING val, STRING format]|[BIGINT val])', + draggable: 'to_timestamp()', + description: + "Converts a bigint (delta from the Unix epoch) or a string with the specified format to a timestamp. Example: to_timestamp('1970-01-01 00:00:00', 'yyyy-MM-dd HH:mm:ss')." + }, + to_utc_timestamp: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], + signature: 'to_utc_timestamp(TIMESTAMP date, STRING timezone)', + draggable: 'to_utc_timestamp()', + description: + 'Converts a specified timestamp value in a specified time zone into the corresponding value for the UTC time zone.' + }, + trunc: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'STRING' }]], + signature: 'trunc(TIMESTAMP date, STRING unit)', + draggable: 'trunc()', + description: + 'Strips off fields and optionally rounds a TIMESTAMP value. The unit argument value is case-sensitive. This argument string can be one of: SYYYY, YYYY, YEAR, SYEAR, YYY, YY, Y: Year. Q: Quarter. MONTH, MON, MM, RM: Month. WW, W: Same day of the week as the first day of the month. DDD, DD, J: Day. DAY, DY, D: Starting day of the week. (Not necessarily the current day.) HH, HH12, HH24: Hour. A TIMESTAMP value truncated to the hour is always represented in 24-hour notation, even for the HH12 argument string. MI: Minute.' + }, + unix_timestamp: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING', optional: true }], [{ type: 'STRING', optional: true }]], + altArguments: [[{ type: 'TIMESTAMP' }]], + signature: 'unix_timestamp([STRING datetime [, STRING format]]|[TIMESTAMP datetime])', + draggable: 'unix_timestamp()', + description: + 'Returns an integer value representing the current date and time as a delta from the Unix epoch, or converts from a specified date and time value represented as a TIMESTAMP or STRING.' + }, + utc_timestamp: { + returnTypes: ['TIMESTAMP'], + arguments: [], + signature: 'utc_timestamp()', + draggable: 'utc_timestamp()', + description: + 'Returns a TIMESTAMP corresponding to the current date and time in the UTC time zone.' + }, + weekofyear: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'weekofyear(TIMESTAMP date)', + draggable: 'weekofyear()', + description: 'Returns the corresponding week (1-53) from the date portion of a TIMESTAMP.' + }, + weeks_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'weeks_add(TIMESTAMP date, BIGINT|INT weeks)', + draggable: 'weeks_add()', + description: 'Returns the specified date and time plus some number of weeks.' + }, + weeks_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'weeks_sub(TIMESTAMP date, BIGINT|INT weeks)', + draggable: 'weeks_sub()', + description: 'Returns the specified date and time minus some number of weeks.' + }, + year: { + returnTypes: ['INT'], + arguments: [[{ type: 'TIMESTAMP' }]], + signature: 'year(TIMESTAMP date)', + draggable: 'year()', + description: 'Returns the year field from the date portion of a TIMESTAMP.' + }, + years_add: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'years_add(TIMESTAMP date, BIGINT|INT years)', + draggable: 'years_add()', + description: 'Returns the specified date and time plus some number of years.' + }, + years_sub: { + returnTypes: ['TIMESTAMP'], + arguments: [[{ type: 'TIMESTAMP' }], [{ type: 'BIGINT' }, { type: 'INT' }]], + signature: 'years_sub(TIMESTAMP date, BIGINT|INT years)', + draggable: 'years_sub()', + description: 'Returns the specified date and time minus some number of years.' + } + } + }; + + const CONDITIONAL_FUNCTIONS = { + hive: { + assert_true: { + returnTypes: ['T'], + arguments: [[{ type: 'BOOLEAN' }]], + signature: 'assert_true(BOOLEAN condition)', + draggable: 'assert_true()', + description: + "Throw an exception if 'condition' is not true, otherwise return null (as of Hive 0.8.0). For example, select assert_true (2<1)." + }, + coalesce: { + returnTypes: ['T'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'coalesce(T v1, T v2, ...)', + draggable: 'coalesce()', + description: "Returns the first v that is not NULL, or NULL if all v's are NULL." + }, + if: { + returnTypes: ['T'], + arguments: [[{ type: 'BOOLEAN' }], [{ type: 'T' }], [{ type: 'T' }]], + signature: 'if(BOOLEAN testCondition, T valueTrue, T valueFalseOrNull)', + draggable: 'if()', + description: + 'Returns valueTrue when testCondition is true, returns valueFalseOrNull otherwise.' + }, + isnotnull: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'T' }]], + signature: 'isnotnull(a)', + draggable: 'isnotnull()', + description: 'Returns true if a is not NULL and false otherwise.' + }, + isnull: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'T' }]], + signature: 'isnull(a)', + draggable: 'isnull()', + description: 'Returns true if a is NULL and false otherwise.' + }, + nullif: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'nullif(a, b)', + draggable: 'nullif()', + description: 'Returns NULL if a=b; otherwise returns a (as of Hive 2.2.0).' + }, + nvl: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'nvl(T value, T default_value)', + draggable: 'nvl()', + description: 'Returns default value if value is null else returns value (as of Hive 0.11).' + } + }, + impala: { + coalesce: { + returnTypes: ['T'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'coalesce(T v1, T v2, ...)', + draggable: 'coalesce()', + description: + 'Returns the first specified argument that is not NULL, or NULL if all arguments are NULL.' + }, + decode: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }], [{ type: 'T', multiple: true }]], + signature: + 'decode(T expression, T search1, T result1 [, T search2, T result2 ...] [, T default] )', + draggable: 'decode()', + description: + 'Compares an expression to one or more possible values, and returns a corresponding result when a match is found.' + }, + if: { + returnTypes: ['T'], + arguments: [[{ type: 'BOOLEAN' }], [{ type: 'T' }], [{ type: 'T' }]], + signature: 'if(BOOLEAN condition, T ifTrue, T ifFalseOrNull)', + draggable: 'if()', + description: + 'Tests an expression and returns a corresponding result depending on whether the result is true, false, or NULL.' + }, + ifnull: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'ifnull(T a, T ifNotNull)', + draggable: 'ifnull()', + description: + 'Alias for the isnull() function, with the same behavior. To simplify porting SQL with vendor extensions to Impala.' + }, + isfalse: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'BOOLEAN' }]], + signature: 'isfalse(BOOLEAN condition)', + draggable: 'isfalse()', + description: + 'Tests if a Boolean expression is false or not. Returns true if so. If the argument is NULL, returns false. Identical to isnottrue(), except it returns the opposite value for a NULL argument.' + }, + isnotfalse: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'BOOLEAN' }]], + signature: 'isnotfalse(BOOLEAN condition)', + draggable: 'isnotfalse()', + description: + 'Tests if a Boolean expression is not false (that is, either true or NULL). Returns true if so. If the argument is NULL, returns true. Identical to istrue(), except it returns the opposite value for a NULL argument.' + }, + isnottrue: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'BOOLEAN' }]], + signature: 'isnottrue(BOOLEAN condition)', + draggable: 'isnottrue()', + description: + 'Tests if a Boolean expression is not true (that is, either false or NULL). Returns true if so. If the argument is NULL, returns true. Identical to isfalse(), except it returns the opposite value for a NULL argument.' + }, + isnull: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'isnull(T a, T ifNotNull)', + draggable: 'isnull()', + description: + 'Tests if an expression is NULL, and returns the expression result value if not. If the first argument is NULL, returns the second argument.' + }, + istrue: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'BOOLEAN' }]], + signature: 'istrue(BOOLEAN condition)', + draggable: 'istrue()', + description: + 'Tests if a Boolean expression is true or not. Returns true if so. If the argument is NULL, returns false. Identical to isnotfalse(), except it returns the opposite value for a NULL argument.' + }, + nonnullvalue: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'T' }]], + signature: 'nonnullvalue(T expression)', + draggable: 'nonnullvalue()', + description: + 'Tests if an expression (of any type) is NULL or not. Returns false if so. The converse of nullvalue().' + }, + nullif: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'nullif(T expr1, T expr2)', + draggable: 'nullif()', + description: + 'Returns NULL if the two specified arguments are equal. If the specified arguments are not equal, returns the value of expr1. The data types of the expressions must be compatible. You cannot use an expression that evaluates to NULL for expr1; that way, you can distinguish a return value of NULL from an argument value of NULL, which would never match expr2.' + }, + nullifzero: { + returnTypes: ['T'], + arguments: [[{ type: 'NUMBER' }]], + signature: 'nullifzero(T numeric_expr)', + draggable: 'nullifzero()', + description: + 'Returns NULL if the numeric expression evaluates to 0, otherwise returns the result of the expression.' + }, + nullvalue: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'T' }]], + signature: 'nullvalue(T expression)', + draggable: 'nullvalue()', + description: + 'Tests if an expression (of any type) is NULL or not. Returns true if so. The converse of nonnullvalue().' + }, + nvl: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'nvl(T a, T ifNotNull)', + draggable: 'nvl()', + description: + 'Alias for the isnull() function. Tests if an expression is NULL, and returns the expression result value if not. If the first argument is NULL, returns the second argument. Equivalent to the nvl() function from Oracle Database or ifnull() from MySQL.' + }, + nvl2: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }], [{ type: 'T' }]], + signature: 'nvl2(T a, T ifNull, T ifNotNull)', + draggable: 'nvl2()', + description: + 'Enhanced variant of the nvl() function. Tests an expression and returns different result values depending on whether it is NULL or not. If the first argument is NULL, returns the second argument. If the first argument is not NULL, returns the third argument. Equivalent to the nvl2() function from Oracle.' + }, + zeroifnull: { + returnTypes: ['T'], + arguments: [[{ type: 'NUMBER' }]], + signature: 'zeroifnull(T numeric_expr)', + draggable: 'zeroifnull()', + description: + 'Returns 0 if the numeric expression evaluates to NULL, otherwise returns the result of the expression.' + } + } + }; + + const STRING_FUNCTIONS = { + hive: { + ascii: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'ascii(STRING str)', + draggable: 'ascii()', + description: 'Returns the numeric value of the first character of str.' + }, + base64: { + returnTypes: ['STRING'], + arguments: [[{ type: 'BINARY' }]], + signature: 'base64(BINARY bin)', + draggable: 'base64()', + description: 'Converts the argument from binary to a base 64 string (as of Hive 0.12.0).' + }, + chr: { + returnTypes: ['STRING'], + arguments: [[{ type: 'BIGINT' }, { type: 'DOUBLE' }]], + signature: 'chr(BIGINT|DOUBLE a)', + draggable: 'chr()', + description: + 'Returns the ASCII character having the binary equivalent to a (as of Hive 1.3.0 and 2.1.0). If a is larger than 256 the result is equivalent to chr(a % 256). Example: select chr(88); returns "X".' + }, + char_length: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'char_length(STRING a)', + draggable: 'char_length()', + description: + 'Returns the number of UTF-8 characters contained in str (as of Hive 2.2.0). This is shorthand for character_length.' + }, + character_length: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'character_length(STRING a)', + draggable: 'character_length()', + description: + 'Returns the number of UTF-8 characters contained in str (as of Hive 2.2.0). The function char_length is shorthand for this function.' + }, + concat: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING', multiple: true }, { type: 'BINARY', multiple: true }]], + signature: 'concat(STRING|BINARY a, STRING|BINARY b...)', + draggable: 'concat()', + description: + "Returns the string or bytes resulting from concatenating the strings or bytes passed in as parameters in order. For example, concat('foo', 'bar') results in 'foobar'. Note that this function can take any number of input strings." + }, + concat_ws: { + returnTypes: ['STRING'], + arguments: [ + [{ type: 'STRING' }], + [{ type: 'STRING' }], + [{ type: 'STRING', multiple: true }] + ], + altArguments: [[{ type: 'STRING' }], [{ type: 'ARRAY' }]], + signature: + 'concat_ws(STRING sep, STRING a, STRING b...), concat_ws(STRING sep, Array)', + draggable: 'concat_ws()', + description: 'Like concat(), but with custom separator SEP.' + }, + context_ngrams: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'ARRAY' }], [{ type: 'ARRAY' }], [{ type: 'INT' }], [{ type: 'INT' }]], + signature: + 'array> context_ngrams(Array>, Array, INT k, INT pf)', + draggable: 'array> context_ngrams()', + description: + 'Returns the top-k contextual N-grams from a set of tokenized sentences, given a string of "context".' + }, + decode: { + returnTypes: ['STRING'], + arguments: [[{ type: 'BINARY' }], [{ type: 'STRING' }]], + signature: 'decode(BINARY bin, STRING charset)', + draggable: 'decode()', + description: + "Decodes the first argument into a String using the provided character set (one of 'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16'). If either argument is null, the result will also be null. (As of Hive 0.12.0.)" + }, + elt: { + returnTypes: ['STRING'], + arguments: [[{ type: 'INT' }], [{ type: 'STRING', multiple: true }]], + signature: 'elt(INT n, STRING str, STRING str1, ...])', + draggable: 'elt()', + description: + "Return string at index number. For example elt(2,'hello','world') returns 'world'. Returns NULL if N is less than 1 or greater than the number of arguments." + }, + encode: { + returnTypes: ['BINARY'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'encode(STRING src, STRING charset)', + draggable: 'encode()', + description: + "Encodes the first argument into a BINARY using the provided character set (one of 'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16'). If either argument is null, the result will also be null. (As of Hive 0.12.0.)" + }, + field: { + returnTypes: ['INT'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'field(T val, T val1, ...])', + draggable: 'field()', + description: + "Returns the index of val in the val1,val2,val3,... list or 0 if not found. For example field('world','say','hello','world') returns 3. All primitive types are supported, arguments are compared using str.equals(x). If val is NULL, the return value is 0." + }, + find_in_set: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'find_in_set(STRING str, STRING strList)', + draggable: 'find_in_set()', + description: + "Returns the first occurance of str in strList where strList is a comma-delimited string. Returns null if either argument is null. Returns 0 if the first argument contains any commas. For example, find_in_set('ab', 'abc,b,ab,c,def') returns 3." + }, + format_number: { + returnTypes: ['STRING'], + arguments: [[{ type: 'NUMBER' }], [{ type: 'INT' }]], + signature: 'format_number(NUMBER x, INT d)', + draggable: 'format_number()', + description: + "Formats the number X to a format like '#,###,###.##', rounded to D decimal places, and returns the result as a string. If D is 0, the result has no decimal point or fractional part. (As of Hive 0.10.0; bug with float types fixed in Hive 0.14.0, decimal type support added in Hive 0.14.0)" + }, + get_json_object: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'get_json_object(STRING json_string, STRING path)', + draggable: 'get_json_object()', + description: + 'Extracts json object from a json string based on json path specified, and returns json string of the extracted json object. It will return null if the input json string is invalid. NOTE: The json path can only have the characters [0-9a-z_], i.e., no upper-case or special characters. Also, the keys *cannot start with numbers.* This is due to restrictions on Hive column names.' + }, + initcap: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'initcap(STRING a)', + draggable: 'initcap()', + description: + 'Returns string, with the first letter of each word in uppercase, all other letters in lowercase. Words are delimited by whitespace. (As of Hive 1.1.0.)' + }, + instr: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'instr(STRING str, STRING substr)', + draggable: 'instr()', + description: + 'Returns the position of the first occurrence of substr in str. Returns null if either of the arguments are null and returns 0 if substr could not be found in str. Be aware that this is not zero based. The first character in str has index 1.' + }, + in_file: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'in_file(STRING str, STRING filename)', + draggable: 'in_file()', + description: 'Returns true if the string str appears as an entire line in filename.' + }, + length: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'length(STRING a)', + draggable: 'length()', + description: 'Returns the length of the string.' + }, + levenshtein: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'levenshtein(STRING a, STRING b)', + draggable: 'levenshtein()', + description: + "Returns the Levenshtein distance between two strings (as of Hive 1.2.0). For example, levenshtein('kitten', 'sitting') results in 3." + }, + lcase: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'lcase(STRING a)', + draggable: 'lcase()', + description: + "Returns the string resulting from converting all characters of B to lower case. For example, lcase('fOoBaR') results in 'foobar'." + }, + locate: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'INT', optional: true }]], + signature: 'locate(STRING substr, STRING str [, INT pos])', + draggable: 'locate()', + description: + 'Returns the position of the first occurrence of substr in str after position pos.' + }, + lower: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'lower(STRING a)', + draggable: 'lower()', + description: + "Returns the string resulting from converting all characters of B to lower case. For example, lower('fOoBaR') results in 'foobar'." + }, + lpad: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'STRING' }]], + signature: 'lpad(STRING str, INT len, STRING pad)', + draggable: 'lpad()', + description: 'Returns str, left-padded with pad to a length of len.' + }, + ltrim: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'ltrim(STRING a)', + draggable: 'ltrim()', + description: + "Returns the string resulting from trimming spaces from the beginning(left hand side) of A. For example, ltrim(' foobar ') results in 'foobar '." + }, + ngrams: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'ARRAY' }], [{ type: 'INT' }], [{ type: 'INT' }], [{ type: 'INT' }]], + signature: + 'array> ngrams(Array> a, INT n, INT k, INT pf)', + draggable: 'array> ngrams()', + description: + 'Returns the top-k N-grams from a set of tokenized sentences, such as those returned by the sentences() UDAF.' + }, + octet_length: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'octet_length(STRING a)', + draggable: 'octet_length()', + description: + 'Returns the number of octets required to hold the string str in UTF-8 encoding (since Hive 2.2.0). Note that octet_length(str) can be larger than character_length(str).' + }, + parse_url: { + returnTypes: ['STRING'], + arguments: [ + [{ type: 'STRING' }], + [{ type: 'STRING' }], + [{ type: 'STRING', optional: true }] + ], + signature: 'parse_url(STRING urlString, STRING partToExtract [, STRING keyToExtract])', + draggable: 'parse_url()', + description: + "Returns the specified part from the URL. Valid values for partToExtract include HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO. For example, parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'HOST') returns 'facebook.com'. Also a value of a particular key in QUERY can be extracted by providing the key as the third argument, for example, parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1', 'QUERY', 'k1') returns 'v1'." + }, + printf: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'T', multiple: true }]], + signature: 'printf(STRING format, Obj... args)', + draggable: 'printf()', + description: + 'Returns the input formatted according do printf-style format strings (as of Hive 0.9.0).' + }, + regexp_extract: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'INT' }]], + signature: 'regexp_extract(STRING subject, STRING pattern, INT index)', + draggable: 'regexp_extract()', + description: + "Returns the string extracted using the pattern. For example, regexp_extract('foothebar', 'foo(.*?)(bar)', 2) returns 'bar.' Note that some care is necessary in using predefined character classes: using '\\s' as the second argument will match the letter s; '\\\\s' is necessary to match whitespace, etc. The 'index' parameter is the Java regex Matcher group() method index." + }, + regexp_replace: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'regexp_replace(STRING initial_string, STRING pattern, STRING replacement)', + draggable: 'regexp_replace()', + description: + 'Returns the string resulting from replacing all substrings in INITIAL_STRING that match the java regular expression syntax defined in PATTERN with instances of REPLACEMENT. For example, regexp_replace("foobar", "oo|ar", "") returns \'fb.\' Note that some care is necessary in using predefined character classes: using \'\\s\' as the second argument will match the letter s; \'\\\\s\' is necessary to match whitespace, etc.' + }, + repeat: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], + signature: 'repeat(STRING str, INT n)', + draggable: 'repeat()', + description: 'Repeats str n times.' + }, + replace: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'replace(STRING a, STRING old, STRING new)', + draggable: 'replace()', + description: + 'Returns the string a with all non-overlapping occurrences of old replaced with new (as of Hive 1.3.0 and 2.1.0). Example: select replace("ababab", "abab", "Z"); returns "Zab".' + }, + reverse: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'reverse(STRING a)', + draggable: 'reverse()', + description: 'Returns the reversed string.' + }, + rpad: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'STRING' }]], + signature: 'rpad(STRING str, INT len, STRING pad)', + draggable: 'rpad()', + description: 'Returns str, right-padded with pad to a length of len.' + }, + rtrim: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'rtrim(STRING a)', + draggable: 'rtrim()', + description: + "Returns the string resulting from trimming spaces from the end(right hand side) of A. For example, rtrim(' foobar ') results in ' foobar'." + }, + sentences: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'array> sentences(STRING str, STRING lang, STRING locale)', + draggable: 'array> sentences()', + description: + 'Tokenizes a string of natural language text into words and sentences, where each sentence is broken at the appropriate sentence boundary and returned as an array of words. The \'lang\' and \'locale\' are optional arguments. For example, sentences(\'Hello there! How are you?\') returns ( ("Hello", "there"), ("How", "are", "you") ).' + }, + soundex: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'soundex(STRING a)', + draggable: 'soundex()', + description: + "Returns soundex code of the string (as of Hive 1.2.0). For example, soundex('Miller') results in M460." + }, + space: { + returnTypes: ['STRING'], + arguments: [[{ type: 'INT' }]], + signature: 'space(INT n)', + draggable: 'space()', + description: 'Returns a string of n spaces.' + }, + split: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'array split(STRING str, STRING pat)', + draggable: 'array split()', + description: 'Splits str around pat (pat is a regular expression).' + }, + str_to_map: { + returnTypes: ['MAP'], + arguments: [ + [{ type: 'STRING' }], + [{ type: 'STRING', optional: true }], + [{ type: 'STRING', optional: true }] + ], + signature: 'map str_to_map(STRING [, STRING delimiter1, STRING delimiter2])', + draggable: 'map str_to_map()', + description: + "Splits text into key-value pairs using two delimiters. Delimiter1 separates text into K-V pairs, and Delimiter2 splits each K-V pair. Default delimiters are ',' for delimiter1 and '=' for delimiter2." + }, + substr: { + returnTypes: ['STRING'], + arguments: [ + [{ type: 'STRING' }, { type: 'BINARY' }], + [{ type: 'INT' }], + [{ type: 'INT', optional: true }] + ], + signature: 'substr(STRING|BINARY A, INT start [, INT len]) ', + draggable: 'substr()', + description: + "Returns the substring or slice of the byte array of A starting from start position till the end of string A or with optional length len. For example, substr('foobar', 4) results in 'bar'" + }, + substring: { + returnTypes: ['STRING'], + arguments: [ + [{ type: 'STRING' }, { type: 'BINARY' }], + [{ type: 'INT' }], + [{ type: 'INT', optional: true }] + ], + signature: 'substring(STRING|BINARY a, INT start [, INT len])', + draggable: 'substring()', + description: + "Returns the substring or slice of the byte array of A starting from start position till the end of string A or with optional length len. For example, substr('foobar', 4) results in 'bar'" + }, + substring_index: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'INT' }]], + signature: 'substring_index(STRING a, STRING delim, INT count)', + draggable: 'substring_index()', + description: + "Returns the substring from string A before count occurrences of the delimiter delim (as of Hive 1.3.0). If count is positive, everything to the left of the final delimiter (counting from the left) is returned. If count is negative, everything to the right of the final delimiter (counting from the right) is returned. Substring_index performs a case-sensitive match when searching for delim. Example: substring_index('www.apache.org', '.', 2) = 'www.apache'." + }, + translate: { + returnTypes: ['STRING'], + arguments: [ + [{ type: 'STRING' }, { type: 'CHAR' }, { type: 'VARCHAR' }], + [{ type: 'STRING' }, { type: 'CHAR' }, { type: 'VARCHAR' }], + [{ type: 'STRING' }, { type: 'CHAR' }, { type: 'VARCHAR' }] + ], + signature: + 'translate(STRING|CHAR|VARCHAR input, STRING|CHAR|VARCHAR from, STRING|CHAR|VARCHAR to)', + draggable: 'translate()', + description: + 'Translates the input string by replacing the characters present in the from string with the corresponding characters in the to string. This is similar to the translate function in PostgreSQL. If any of the parameters to this UDF are NULL, the result is NULL as well. (Available as of Hive 0.10.0, for string types) Char/varchar support added as of Hive 0.14.0.' + }, + trim: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'trim(STRING a)', + draggable: 'trim()', + description: + "Returns the string resulting from trimming spaces from both ends of A. For example, trim(' foobar ') results in 'foobar'" + }, + ucase: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'ucase(STRING a)', + draggable: 'ucase()', + description: + "Returns the string resulting from converting all characters of A to upper case. For example, ucase('fOoBaR') results in 'FOOBAR'." + }, + unbase64: { + returnTypes: ['BINARY'], + arguments: [[{ type: 'STRING' }]], + signature: 'unbase64(STRING a)', + draggable: 'unbase64()', + description: 'Converts the argument from a base 64 string to BINARY. (As of Hive 0.12.0.)' + }, + upper: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'upper(STRING a)', + draggable: 'upper()', + description: + "Returns the string resulting from converting all characters of A to upper case. For example, upper('fOoBaR') results in 'FOOBAR'." + } + }, + impala: { + ascii: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'ascii(STRING str)', + draggable: 'ascii()', + description: 'Returns the numeric ASCII code of the first character of the argument.' + }, + base64decode: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'base64decode(STRING str)', + draggable: 'base64decode()', + description: + "Decodes the given string from Base64, an ACSII string format. It's typically used in combination with base64encode(), to store data in an Impala table string that is problematic to store or transmit" + }, + base64encode: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'base64encode(STRING str)', + draggable: 'base64encode()', + description: + "Encodes the given string to Base64, an ACSII string format. It's typically used in combination with base64decode(), to store data in an Impala table string that is problematic to store or transmit" + }, + btrim: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING', optional: true }]], + signature: 'btrim(STRING str [, STRING chars_to_trim])', + draggable: 'btrim()', + description: + 'Removes all instances of one or more characters from the start and end of a STRING value. By default, removes only spaces. If a non-NULL optional second argument is specified, the function removes all occurrences of characters in that second argument from the beginning and end of the string.' + }, + char_length: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'char_length(STRING a)', + draggable: 'char_length()', + description: + 'Returns the length in characters of the argument string. Aliases for the length() function.' + }, + character_length: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'character_length(STRING a)', + draggable: 'character_length()', + description: + 'Returns the length in characters of the argument string. Aliases for the length() function.' + }, + chr: { + returnTypes: ['STRING'], + arguments: [[{ type: 'INT' }]], + signature: 'chr(INT character_code)', + draggable: 'chr()', + description: + 'Returns a character specified by a decimal code point value. The interpretation and display of the resulting character depends on your system locale. Because consistent processing of Impala string values is only guaranteed for values within the ASCII range, only use this function for values corresponding to ASCII characters. In particular, parameter values greater than 255 return an empty string.' + }, + concat: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING', multiple: true }]], + signature: 'concat(STRING a, STRING b...)', + draggable: 'concat()', + description: 'Returns a single string representing all the argument values joined together.' + }, + concat_ws: { + returnTypes: ['STRING'], + arguments: [ + [{ type: 'STRING' }], + [{ type: 'STRING' }], + [{ type: 'STRING', multiple: true }] + ], + signature: 'concat_ws(STRING sep, STRING a, STRING b...)', + draggable: 'concat_ws()', + description: + 'Returns a single string representing the second and following argument values joined together, delimited by a specified separator.' + }, + find_in_set: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'find_in_set(STRING str, STRING strList)', + draggable: 'find_in_set()', + description: + 'Returns the position (starting from 1) of the first occurrence of a specified string within a comma-separated string. Returns NULL if either argument is NULL, 0 if the search string is not found, or 0 if the search string contains a comma.' + }, + group_concat: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING', optional: true }]], + signature: 'group_concat(STRING s [, STRING sep])', + draggable: 'group_concat()', + description: + 'Returns a single string representing the argument value concatenated together for each row of the result set. If the optional separator string is specified, the separator is added between each pair of concatenated values.' + }, + initcap: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'initcap(STRING str)', + draggable: 'initcap()', + description: 'Returns the input string with the first letter capitalized.' + }, + instr: { + returnTypes: ['INT'], + arguments: [ + [{ type: 'STRING' }], + [{ type: 'STRING' }], + [{ type: 'BIGINT', optional: true }], + [{ type: 'BIGINT', optional: true }] + ], + signature: 'instr(STRING str, STRING substr [, BIGINT position [, BIGINT occurrence]])', + draggable: 'instr()', + description: + 'Returns the position (starting from 1) of the first occurrence of a substring within a longer string. The optional third and fourth arguments let you find instances of the substring other than the first instance starting from the left.' + }, + left: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], + signature: 'left(STRING a, INT num_chars)', + draggable: 'left()', + description: 'Returns the leftmost characters of the string. Same as strleft().' + }, + length: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }]], + signature: 'length(STRING a)', + draggable: 'length()', + description: 'Returns the length in characters of the argument string.' + }, + levenshtein: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'levenshtein(STRING a, STRING b)', + draggable: 'levenshtein()', + description: + "Returns the Levenshtein distance between two strings. For example, levenshtein('kitten', 'sitting') results in 3." + }, + locate: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'INT', optional: true }]], + signature: 'locate(STRING substr, STRING str[, INT pos])', + draggable: 'locate()', + description: + 'Returns the position (starting from 1) of the first occurrence of a substring within a longer string, optionally after a particular position.' + }, + lower: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'lower(STRING a)', + draggable: 'lower()', + description: 'Returns the argument string converted to all-lowercase.' + }, + lcase: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'lcase(STRING a)', + draggable: 'lcase()', + description: 'Returns the argument string converted to all-lowercase.' + }, + lpad: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'STRING' }]], + signature: 'lpad(STRING str, INT len, STRING pad)', + draggable: 'lpad()', + description: + 'Returns a string of a specified length, based on the first argument string. If the specified string is too short, it is padded on the left with a repeating sequence of the characters from the pad string. If the specified string is too long, it is truncated on the right.' + }, + ltrim: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING', optional: true }]], + signature: 'ltrim(STRING a [, STRING charsToTrim])', + draggable: 'ltrim()', + description: + 'Returns the argument string with all occurrences of characters specified by the second argument removed from the left side. Removes spaces if the second argument is not specified.' + }, + parse_url: { + returnTypes: ['STRING'], + arguments: [ + [{ type: 'STRING' }], + [{ type: 'STRING' }], + [{ type: 'STRING', optional: true }] + ], + signature: 'parse_url(STRING urlString, STRING partToExtract [, STRING keyToExtract])', + draggable: 'parse_url()', + description: + "Returns the portion of a URL corresponding to a specified part. The part argument can be 'PROTOCOL', 'HOST', 'PATH', 'REF', 'AUTHORITY', 'FILE', 'USERINFO', or 'QUERY'. Uppercase is required for these literal values. When requesting the QUERY portion of the URL, you can optionally specify a key to retrieve just the associated value from the key-value pairs in the query string." + }, + regexp_escape: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'regexp_escape(STRING source)', + draggable: 'regexp_escape()', + description: + 'The regexp_escape function returns a string escaped for the special character in RE2 library so that the special characters are interpreted literally rather than as special characters. The following special characters are escaped by the function: .\\+*?[^]$(){}=!<>|:-' + }, + regexp_extract: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'INT' }]], + signature: 'regexp_extract(STRING subject, STRING pattern, INT index)', + draggable: 'regexp_extract()', + description: + 'Returns the specified () group from a string based on a regular expression pattern. Group 0 refers to the entire extracted string, while group 1, 2, and so on refers to the first, second, and so on (...) portion.' + }, + regexp_like: { + returnTypes: ['BOOLEAN'], + arguments: [ + [{ type: 'STRING' }], + [{ type: 'STRING' }], + [{ type: 'STRING', optional: true }] + ], + signature: 'regexp_like(STRING source, STRING pattern [, STRING options])', + draggable: 'regexp_like()', + description: + 'Returns true or false to indicate whether the source string contains anywhere inside it the regular expression given by the pattern. The optional third argument consists of letter flags that change how the match is performed, such as i for case-insensitive matching.' + }, + regexp_replace: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'regexp_replace(STRING initial, STRING pattern, STRING replacement)', + draggable: 'regexp_replace()', + description: + 'Returns the initial argument with the regular expression pattern replaced by the final argument string.' + }, + repeat: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], + signature: 'repeat(STRING str, INT n)', + draggable: 'repeat()', + description: 'Returns the argument string repeated a specified number of times.' + }, + replace: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'replace(STRING initial, STRING target, STRING replacement)', + draggable: 'replace()', + description: + 'Returns the initial argument with all occurrences of the target string replaced by the replacement string.' + }, + reverse: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'reverse(STRING a)', + draggable: 'reverse()', + description: 'Returns the argument string with characters in reversed order.' + }, + right: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], + signature: 'right(STRING a, INT num_chars)', + draggable: 'right()', + description: 'Returns the rightmost characters of the string. Same as strright().' + }, + rpad: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'STRING' }]], + signature: 'rpad(STRING str, INT len, STRING pad)', + draggable: 'rpad()', + description: + 'Returns a string of a specified length, based on the first argument string. If the specified string is too short, it is padded on the right with a repeating sequence of the characters from the pad string. If the specified string is too long, it is truncated on the right.' + }, + rtrim: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING', optional: true }]], + signature: 'rtrim(STRING a [, STRING charsToTrim])', + draggable: 'rtrim()', + description: + 'Returns the argument string with all occurrences of characters specified by the second argument removed from the right side. Removes spaces if the second argument is not specified.' + }, + space: { + returnTypes: ['STRING'], + arguments: [[{ type: 'INT' }]], + signature: 'space(INT n)', + draggable: 'space()', + description: + "Returns a concatenated string of the specified number of spaces. Shorthand for repeat(' ', n)." + }, + split_part: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'BIGINT' }]], + signature: 'split_part(STRING source, STRING delimiter, BIGINT n)', + draggable: 'split_part()', + description: + 'Returns the nth field within a delimited string. The fields are numbered starting from 1. The delimiter can consist of multiple characters, not just a single character. All matching of the delimiter is done exactly, not using any regular expression patterns.' + }, + strleft: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], + signature: 'strleft(STRING a, INT num_chars)', + draggable: 'strleft()', + description: + 'Returns the leftmost characters of the string. Shorthand for a call to substr() with 2 arguments.' + }, + strright: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }]], + signature: 'strright(STRING a, INT num_chars)', + draggable: 'strright()', + description: + 'Returns the rightmost characters of the string. Shorthand for a call to substr() with 2 arguments.' + }, + substr: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'INT', optional: true }]], + signature: 'substr(STRING a, INT start [, INT len])', + draggable: 'substr()', + description: + 'Returns the portion of the string starting at a specified point, optionally with a specified maximum length. The characters in the string are indexed starting at 1.' + }, + substring: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT' }], [{ type: 'INT', optional: true }]], + signature: 'substring(STRING a, INT start [, INT len])', + draggable: 'substring()', + description: + 'Returns the portion of the string starting at a specified point, optionally with a specified maximum length. The characters in the string are indexed starting at 1.' + }, + translate: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'translate(STRING input, STRING from, STRING to)', + draggable: 'translate()', + description: + 'Returns the input string with a set of characters replaced by another set of characters.' + }, + trim: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'trim(STRING a)', + draggable: 'trim()', + description: + 'Returns the input string with both leading and trailing spaces removed. The same as passing the string through both ltrim() and rtrim().' + }, + upper: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'upper(STRING a)', + draggable: 'upper()', + description: 'Returns the argument string converted to all-uppercase.' + }, + ucase: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }]], + signature: 'ucase(STRING a)', + draggable: 'ucase()', + description: 'Returns the argument string converted to all-uppercase.' + } + } + }; + + const DATA_MASKING_FUNCTIONS = { + hive: { + mask: { + returnTypes: ['STRING'], + arguments: [ + [{ type: 'STRING' }], + [{ type: 'STRING', optional: true }], + [{ type: 'STRING', optional: true }], + [{ type: 'STRING', optional: true }] + ], + signature: 'mask(STRING str [, STRING upper [, STRING lower [, STRING number]]])', + draggable: 'mask()', + description: + 'Returns a masked version of str (as of Hive 2.1.0). By default, upper case letters are converted to "X", lower case letters are converted to "x" and numbers are converted to "n". For example mask("abcd-EFGH-8765-4321") results in xxxx-XXXX-nnnn-nnnn. You can override the characters used in the mask by supplying additional arguments: the second argument controls the mask character for upper case letters, the third argument for lower case letters and the fourth argument for numbers. For example, mask("abcd-EFGH-8765-4321", "U", "l", "#") results in llll-UUUU-####-####.' + }, + mask_first_n: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT', optional: true }]], + signature: 'mask_first_n(STRING str [, INT n])', + draggable: 'mask_first_n()', + description: + 'Returns a masked version of str with the first n values masked (as of Hive 2.1.0). Upper case letters are converted to "X", lower case letters are converted to "x" and numbers are converted to "n". For example, mask_first_n("1234-5678-8765-4321", 4) results in nnnn-5678-8765-4321.' + }, + mask_last_n: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT', optional: true }]], + signature: 'mask_last_n(STRING str [, INT n])', + draggable: 'mask_last_n()', + description: + 'Returns a masked version of str with the last n values masked (as of Hive 2.1.0). Upper case letters are converted to "X", lower case letters are converted to "x" and numbers are converted to "n". For example, mask_last_n("1234-5678-8765-4321", 4) results in 1234-5678-8765-nnnn.' + }, + mask_show_first_n: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT', optional: true }]], + signature: 'mask_show_first_n(STRING str [, INT n])', + draggable: 'mask_show_first_n()', + description: + 'Returns a masked version of str, showing the first n characters unmasked (as of Hive 2.1.0). Upper case letters are converted to "X", lower case letters are converted to "x" and numbers are converted to "n". For example, mask_show_first_n("1234-5678-8765-4321", 4) results in 1234-nnnn-nnnn-nnnn.' + }, + mask_show_last_n: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'INT', optional: true }]], + signature: 'mask_show_last_n(STRING str [, INT n])', + draggable: 'mask_show_last_n()', + description: + 'Returns a masked version of str, showing the last n characters unmasked (as of Hive 2.1.0). Upper case letters are converted to "X", lower case letters are converted to "x" and numbers are converted to "n". For example, mask_show_last_n("1234-5678-8765-4321", 4) results in nnnn-nnnn-nnnn-4321.' + }, + mask_hash: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }, { type: 'CHAR' }, { type: 'VARCHAR' }]], + signature: 'mask_hash(STRING|CHAR|VARCHAR str)', + draggable: 'mask_hash()', + description: + 'Returns a hashed value based on str (as of Hive 2.1.0). The hash is consistent and can be used to join masked values together across tables. This function returns null for non-string types.' + } + }, + impala: {} + }; + + const TABLE_GENERATING_FUNCTIONS = { + hive: { + explode: { + returnTypes: ['table'], + arguments: [[{ type: 'ARRAY' }, { type: 'MAP' }]], + signature: 'explode(Array|Array|Map a)', + draggable: 'explode()', + description: '' + }, + inline: { + returnTypes: ['table'], + arguments: [[{ type: 'ARRAY' }]], + signature: 'inline(Array a)', + draggable: 'inline()', + description: 'Explodes an array of structs into a table. (As of Hive 0.10.)' + }, + json_tuple: { + returnTypes: ['table'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING', multiple: true }]], + signature: 'json_tuple(STRING jsonStr, STRING k1, STRING k2, ...)', + draggable: 'json_tuple()', + description: + 'A new json_tuple() UDTF is introduced in Hive 0.7. It takes a set of names (keys) and a JSON string, and returns a tuple of values using one function. This is much more efficient than calling GET_JSON_OBJECT to retrieve more than one key from a single JSON string.' + }, + parse_url_tuple: { + returnTypes: ['table'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING', multiple: true }]], + signature: 'parse_url_tuple(STRING url, STRING p1, STRING p2, ...)', + draggable: 'parse_url_tuple()', + description: + 'The parse_url_tuple() UDTF is similar to parse_url(), but can extract multiple parts of a given URL, returning the data in a tuple. Values for a particular key in QUERY can be extracted by appending a colon and the key to the partToExtract argument.' + }, + posexplode: { + returnTypes: ['table'], + arguments: [[{ type: 'ARRAY' }]], + signature: 'posexplode(ARRAY)', + draggable: 'posexplode()', + description: + 'posexplode() is similar to explode but instead of just returning the elements of the array it returns the element as well as its position in the original array.' + }, + stack: { + returnTypes: ['table'], + arguments: [[{ type: 'INT' }], [{ type: 'T', multiple: true }]], + signature: 'stack(INT n, v1, v2, ..., vk)', + draggable: 'stack()', + description: + 'Breaks up v1, v2, ..., vk into n rows. Each row will have k/n columns. n must be constant.' + } + }, + impala: {} + }; + + const MISC_FUNCTIONS = { + hive: { + crc32: { + returnTypes: ['BIGINT'], + arguments: [[{ type: 'STRING' }, { type: 'BINARY' }]], + signature: 'crc32(STRING|BINARY a)', + draggable: 'crc32()', + description: + "Computes a cyclic redundancy check value for string or binary argument and returns bigint value (as of Hive 1.3.0). Example: crc32('ABC') = 2743272264." + }, + current_database: { + returnTypes: ['STRING'], + arguments: [], + signature: 'current_database()', + draggable: 'current_database()', + description: 'Returns current database name (as of Hive 0.13.0).' + }, + current_user: { + returnTypes: ['STRING'], + arguments: [], + signature: 'current_user()', + draggable: 'current_user()', + description: 'Returns current user name (as of Hive 1.2.0).' + }, + get_json_object: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'get_json_object(STRING json, STRING jsonPath)', + draggable: 'get_json_object()', + description: + 'A limited version of JSONPath is supported ($ : Root object, . : Child operator, [] : Subscript operator for array, * : Wildcard for []' + }, + hash: { + returnTypes: ['INT'], + arguments: [[{ type: 'T', multiple: true }]], + signature: 'hash(a1[, a2...])', + draggable: 'hash()', + description: 'Returns a hash value of the arguments. (As of Hive 0.4.)' + }, + java_method: { + returnTypes: ['T'], + arguments: [ + [{ type: 'STRING' }], + [{ type: 'STRING' }], + [{ type: 'T', multiple: true, optional: true }] + ], + signature: 'java_method(class, method[, arg1[, arg2..]])', + draggable: 'java_method()', + description: + 'Calls a Java method by matching the argument signature, using reflection. (As of Hive 0.9.0.)' + }, + logged_in_user: { + returnTypes: ['STRING'], + arguments: [], + signature: 'logged_in_user()', + draggable: 'logged_in_user()', + description: + 'Returns current user name from the session state (as of Hive 2.2.0). This is the username provided when connecting to Hive.' + }, + md5: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }, { type: 'BINARY' }]], + signature: 'md5(STRING|BINARY a)', + draggable: 'md5()', + description: + "Calculates an MD5 128-bit checksum for the string or binary (as of Hive 1.3.0). The value is returned as a string of 32 hex digits, or NULL if the argument was NULL. Example: md5('ABC') = '902fbdd2b1df0c4f70b4a5d23525e932'." + }, + reflect: { + returnTypes: ['T'], + arguments: [ + [{ type: 'STRING' }], + [{ type: 'STRING' }], + [{ type: 'T', multiple: true, optional: true }] + ], + signature: 'reflect(class, method[, arg1[, arg2..]])', + draggable: 'reflect()', + description: + 'Calls a Java method by matching the argument signature, using reflection. (As of Hive 0.7.0.)' + }, + sha: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }, { type: 'BINARY' }]], + signature: 'sha(STRING|BINARY a)', + draggable: 'sha()', + description: + "Calculates the SHA-1 digest for string or binary and returns the value as a hex string (as of Hive 1.3.0). Example: sha1('ABC') = '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8'." + }, + sha1: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }, { type: 'BINARY' }]], + signature: 'sha1(STRING|BINARY a)', + draggable: 'sha1()', + description: + "Calculates the SHA-1 digest for string or binary and returns the value as a hex string (as of Hive 1.3.0). Example: sha1('ABC') = '3c01bdbb26f358bab27f267924aa2c9a03fcfdb8'." + }, + sha2: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }, { type: 'BINARY' }], [{ type: 'INT' }]], + signature: 'sha2(STRING|BINARY a, INT b)', + draggable: 'sha2()', + description: + "Calculates the SHA-2 family of hash functions (SHA-224, SHA-256, SHA-384, and SHA-512) (as of Hive 1.3.0). The first argument is the string or binary to be hashed. The second argument indicates the desired bit length of the result, which must have a value of 224, 256, 384, 512, or 0 (which is equivalent to 256). SHA-224 is supported starting from Java 8. If either argument is NULL or the hash length is not one of the permitted values, the return value is NULL. Example: sha2('ABC', 256) = 'b5d4045c3f466fa91fe2cc6abe79232a1a57cdf104f7a26e716e0a1e2789df78'." + }, + version: { + returnTypes: ['STRING'], + arguments: [], + signature: 'version()', + draggable: 'version()', + description: + 'Returns the Hive version (as of Hive 2.1.0). The string contains 2 fields, the first being a build number and the second being a build hash. Example: "select version();" might return "2.1.0.2.5.0.0-1245 r027527b9c5ce1a3d7d0b6d2e6de2378fb0c39232". Actual results will depend on your build.' + }, + xpath: { + returnTypes: ['ARRAY'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'array xpath(STRING xml, STRING xpath)', + draggable: 'array xpath()', + description: + 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' + }, + xpath_boolean: { + returnTypes: ['BOOLEAN'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'xpath_boolean(STRING xml, STRING xpath)', + draggable: 'xpath_boolean()', + description: + 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' + }, + xpath_double: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'xpath_double(STRING xml, STRING xpath)', + draggable: 'xpath_double()', + description: + 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' + }, + xpath_float: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'xpath_float(STRING xml, STRING xpath)', + draggable: 'xpath_float()', + description: + 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' + }, + xpath_int: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'xpath_int(STRING xml, STRING xpath)', + draggable: 'xpath_int()', + description: + 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' + }, + xpath_long: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'xpath_long(STRING xml, STRING xpath)', + draggable: 'xpath_long()', + description: + 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' + }, + xpath_number: { + returnTypes: ['DOUBLE'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'xpath_number(STRING xml, STRING xpath)', + draggable: 'xpath_number()', + description: + 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' + }, + xpath_short: { + returnTypes: ['INT'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'xpath_short(STRING xml, STRING xpath)', + draggable: 'xpath_short()', + description: + 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' + }, + xpath_string: { + returnTypes: ['STRING'], + arguments: [[{ type: 'STRING' }], [{ type: 'STRING' }]], + signature: 'xpath_string(STRING xml, STRING xpath)', + draggable: 'xpath_string()', + description: + 'The xpath family of UDFs are wrappers around the Java XPath library javax.xml.xpath provided by the JDK. The library is based on the XPath 1.0 specification.' + } + }, + impala: { + coordinator: { + returnTypes: ['STRING'], + arguments: [], + signature: 'coordinator()', + draggable: 'coordinator()', + description: + 'Returns the name of the host which is running the impalad daemon that is acting as the coordinator for the current query.' + }, + current_database: { + returnTypes: ['STRING'], + arguments: [], + signature: 'current_database()', + draggable: 'current_database()', + description: + 'Returns the database that the session is currently using, either default if no database has been selected, or whatever database the session switched to through a USE statement or the impalad - d option' + }, + effective_user: { + returnTypes: ['STRING'], + arguments: [], + signature: 'effective_user()', + draggable: 'effective_user()', + description: + 'Typically returns the same value as user(), except if delegation is enabled, in which case it returns the ID of the delegated user.' + }, + logged_in_user: { + returnTypes: ['STRING'], + arguments: [], + signature: 'logged_in_user()', + draggable: 'logged_in_user()', + description: + 'Purpose: Typically returns the same value as USER(). If delegation is enabled, it returns the ID of the delegated user. LOGGED_IN_USER() is an alias of EFFECTIVE_USER().' + }, + pid: { + returnTypes: ['INT'], + arguments: [], + signature: 'pid()', + draggable: 'pid()', + description: + 'Returns the process ID of the impalad daemon that the session is connected to.You can use it during low - level debugging, to issue Linux commands that trace, show the arguments, and so on the impalad process.' + }, + sleep: { + returnTypes: ['STRING'], + arguments: [[{ type: 'INT' }]], + signature: 'sleep(INT ms)', + draggable: 'sleep()', + description: + 'Pauses the query for a specified number of milliseconds. For slowing down queries with small result sets enough to monitor runtime execution, memory usage, or other factors that otherwise would be difficult to capture during the brief interval of query execution.' + }, + user: { + returnTypes: ['STRING'], + arguments: [], + signature: 'user()', + draggable: 'user()', + description: + 'Returns the username of the Linux user who is connected to the impalad daemon.Typically called a single time, in a query without any FROM clause, to understand how authorization settings apply in a security context; once you know the logged - in user name, you can check which groups that user belongs to, and from the list of groups you can check which roles are available to those groups through the authorization policy file.In Impala 2.0 and later, user() returns the the full Kerberos principal string, such as user@example.com, in a Kerberized environment.' + }, + uuid: { + returnTypes: ['STRING'], + arguments: [], + signature: 'uuid()', + draggable: 'uuid()', + description: + 'Returns a universal unique identifier, a 128-bit value encoded as a string with groups of hexadecimal digits separated by dashes.' + }, + version: { + returnTypes: ['STRING'], + arguments: [], + signature: 'version()', + draggable: 'version()', + description: + 'Returns information such as the precise version number and build date for the impalad daemon that you are currently connected to.Typically used to confirm that you are connected to the expected level of Impala to use a particular feature, or to connect to several nodes and confirm they are all running the same level of impalad.' + } + } + }; + + const ANALYTIC_FUNCTIONS = { + hive: { + cume_dist: { + returnTypes: ['T'], + arguments: [[{ type: 'T', multiple: true, optional: true }]], + signature: 'cume_dist()', + draggable: 'cume_dist()', + description: '' + }, + dense_rank: { + returnTypes: ['INT'], + arguments: [], + signature: 'dense_rank() OVER([partition_by_clause] order_by_clause)', + draggable: 'dense_rank() OVER()', + description: + 'Returns an ascending sequence of integers, starting with 1. The output sequence produces duplicate integers for duplicate values of the ORDER BY expressions.' + }, + first_value: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'first_value(expr) OVER([partition_by_clause] order_by_clause [window_clause])', + draggable: 'first_value() OVER()', + description: + 'Returns the expression value from the first row in the window. The return value is NULL if the input expression is NULL.' + }, + lag: { + returnTypes: ['T'], + arguments: [ + [{ type: 'T' }], + [{ type: 'INT', optional: true }], + [{ type: 'T', optional: true }] + ], + signature: 'lag(expr [, offset] [, default]) OVER ([partition_by_clause] order_by_clause)', + draggable: 'lag() OVER()', + description: + 'This function returns the value of an expression using column values from a preceding row. You specify an integer offset, which designates a row position some number of rows previous to the current row. Any column references in the expression argument refer to column values from that prior row.' + }, + last_value: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'last_value(expr) OVER([partition_by_clause] order_by_clause [window_clause])', + draggable: 'last_value() OVER()', + description: + 'Returns the expression value from the last row in the window. The return value is NULL if the input expression is NULL.' + }, + lead: { + returnTypes: ['T'], + arguments: [ + [{ type: 'T' }], + [{ type: 'INT', optional: true }], + [{ type: 'T', optional: true }] + ], + signature: 'lead(expr [, offset] [, default]) OVER([partition_by_clause] order_by_clause)', + draggable: 'lead() OVER()', + description: + 'This function returns the value of an expression using column values from a following row. You specify an integer offset, which designates a row position some number of rows after to the current row. Any column references in the expression argument refer to column values from that later row.' + }, + ntile: { + returnTypes: ['T'], + arguments: [[{ type: 'T', multiple: true, optional: true }]], + signature: 'ntile()', + draggable: 'ntile()', + description: '' + }, + percent_rank: { + returnTypes: ['T'], + arguments: [[{ type: 'T', multiple: true, optional: true }]], + signature: 'percent_rank()', + draggable: 'percent_rank()', + description: '' + }, + rank: { + returnTypes: ['INT'], + arguments: [], + signature: 'rank() OVER([partition_by_clause] order_by_clause)', + draggable: 'rank() OVER()', + description: + 'Returns an ascending sequence of integers, starting with 1. The output sequence produces duplicate integers for duplicate values of the ORDER BY expressions. After generating duplicate output values for the "tied" input values, the function increments the sequence by the number of tied values.' + }, + row_number: { + returnTypes: ['INT'], + arguments: [], + signature: 'row_number() OVER([partition_by_clause] order_by_clause)', + draggable: 'row_number() OVER()', + description: + 'Returns an ascending sequence of integers, starting with 1. Starts the sequence over for each group produced by the PARTITIONED BY clause. The output sequence includes different values for duplicate input values. Therefore, the sequence never contains any duplicates or gaps, regardless of duplicate input values.' + } + }, + impala: { + cume_dist: { + returnTypes: ['T'], + arguments: [{ type: 'T' }], + signature: 'cume_dist(T expr) OVER([partition_by_clause] order_by_clause)', + draggable: 'cume_dist() OVER()', + description: + 'Returns the cumulative distribution of a value. The value for each row in the result set is greater than 0 and less than or equal to 1.' + }, + dense_rank: { + returnTypes: ['INT'], + arguments: [], + signature: 'dense_rank() OVER([partition_by_clause] order_by_clause)', + draggable: 'dense_rank() OVER()', + description: + 'Returns an ascending sequence of integers, starting with 1. The output sequence produces duplicate integers for duplicate values of the ORDER BY expressions.' + }, + first_value: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'first_value(expr) OVER([partition_by_clause] order_by_clause [window_clause])', + draggable: 'first_value() OVER()', + description: + 'Returns the expression value from the first row in the window. The return value is NULL if the input expression is NULL.' + }, + lag: { + returnTypes: ['T'], + arguments: [ + [{ type: 'T' }], + [{ type: 'INT', optional: true }], + [{ type: 'T', optional: true }] + ], + signature: 'lag(expr [, offset] [, default]) OVER ([partition_by_clause] order_by_clause)', + draggable: 'lag() OVER()', + description: + 'This function returns the value of an expression using column values from a preceding row. You specify an integer offset, which designates a row position some number of rows previous to the current row. Any column references in the expression argument refer to column values from that prior row.' + }, + last_value: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'last_value(expr) OVER([partition_by_clause] order_by_clause [window_clause])', + draggable: 'last_value() OVER()', + description: + 'Returns the expression value from the last row in the window. The return value is NULL if the input expression is NULL.' + }, + lead: { + returnTypes: ['T'], + arguments: [ + [{ type: 'T' }], + [{ type: 'INT', optional: true }], + [{ type: 'T', optional: true }] + ], + signature: 'lead(expr [, offset] [, default]) OVER ([partition_by_clause] order_by_clause)', + draggable: 'lead() OVER()', + description: + 'This function returns the value of an expression using column values from a following row. You specify an integer offset, which designates a row position some number of rows after to the current row. Any column references in the expression argument refer to column values from that later row.' + }, + ntile: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T', multiple: true, optional: true }]], + signature: 'ntile(T expr [, T offset ...])', + draggable: 'ntile()', + description: + 'Returns the "bucket number" associated with each row, between 1 and the value of an expression. For example, creating 100 buckets puts the lowest 1% of values in the first bucket, while creating 10 buckets puts the lowest 10% of values in the first bucket. Each partition can have a different number of buckets.' + }, + percent_rank: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'percent_rank(T expr) OVER ([partition_by_clause] order_by_clause)', + draggable: 'percent_rank() OVER()', + description: + 'Calculates the rank, expressed as a percentage, of each row within a group of rows. If rank is the value for that same row from the RANK() function (from 1 to the total number of rows in the partition group), then the PERCENT_RANK() value is calculated as (rank - 1) / (rows_in_group - 1) . If there is only a single item in the partition group, its PERCENT_RANK() value is 0. The ORDER BY clause is required. The PARTITION BY clause is optional. The window clause is not allowed.' + }, + rank: { + returnTypes: ['INT'], + arguments: [], + signature: 'rank() OVER([partition_by_clause] order_by_clause)', + draggable: 'rank() OVER()', + description: + 'Returns an ascending sequence of integers, starting with 1. The output sequence produces duplicate integers for duplicate values of the ORDER BY expressions. After generating duplicate output values for the "tied" input values, the function increments the sequence by the number of tied values.' + }, + row_number: { + returnTypes: ['INT'], + arguments: [], + signature: 'row_number() OVER([partition_by_clause] order_by_clause)', + draggable: 'row_number() OVER()', + description: + 'Returns an ascending sequence of integers, starting with 1. Starts the sequence over for each group produced by the PARTITIONED BY clause. The output sequence includes different values for duplicate input values. Therefore, the sequence never contains any duplicates or gaps, regardless of duplicate input values.' + } + } + }; + + const BIT_FUNCTIONS = { + hive: {}, + impala: { + bitand: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'bitand(T a, T b)', + draggable: 'bitand()', + description: + 'Returns an integer value representing the bits that are set to 1 in both of the arguments. If the arguments are of different sizes, the smaller is promoted to the type of the larger.' + }, + bitnot: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }]], + signature: 'bitnot(T a)', + draggable: 'bitnot()', + description: 'Inverts all the bits of the input argument.' + }, + bitor: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'bitor(T a, T b)', + draggable: 'bitor()', + description: + 'Returns an integer value representing the bits that are set to 1 in either of the arguments. If the arguments are of different sizes, the smaller is promoted to the type of the larger.' + }, + bitxor: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'T' }]], + signature: 'bitxor(T a, T b)', + draggable: 'bitxor()', + description: + 'Returns an integer value representing the bits that are set to 1 in one but not both of the arguments. If the arguments are of different sizes, the smaller is promoted to the type of the larger.' + }, + countset: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'INT', optional: true }]], + signature: 'countset(T a [, INT b])', + draggable: 'countset()', + description: + 'By default, returns the number of 1 bits in the specified integer value. If the optional second argument is set to zero, it returns the number of 0 bits instead.' + }, + getbit: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'INT' }]], + signature: 'getbit(T a, INT b)', + draggable: 'getbit()', + description: + 'Returns a 0 or 1 representing the bit at a specified position. The positions are numbered right to left, starting at zero. The position argument (b) cannot be negative.' + }, + rotateleft: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'INT' }]], + signature: 'rotateleft(T a, INT b)', + draggable: 'rotateleft()', + description: + 'Rotates an integer value left by a specified number of bits. As the most significant bit is taken out of the original value, if it is a 1 bit, it is "rotated" back to the least significant bit. Therefore, the final value has the same number of 1 bits as the original value, just in different positions. In computer science terms, this operation is a "circular shift".' + }, + rotateright: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'INT' }]], + signature: 'rotateright(T a, INT b)', + draggable: 'rotateright()', + description: + 'Rotates an integer value right by a specified number of bits. As the least significant bit is taken out of the original value, if it is a 1 bit, it is "rotated" back to the most significant bit. Therefore, the final value has the same number of 1 bits as the original value, just in different positions. In computer science terms, this operation is a "circular shift".' + }, + setbit: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'INT' }], [{ type: 'INT', optional: true }]], + signature: 'setbit(T a, INT b [, INT c])', + draggable: 'setbit()', + description: + 'By default, changes a bit at a specified position (b) to a 1, if it is not already. If the optional third argument is set to zero, the specified bit is set to 0 instead.' + }, + shiftleft: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'INT' }]], + signature: 'shiftleft(T a, INT b)', + draggable: 'shiftleft()', + description: + 'Shifts an integer value left by a specified number of bits. As the most significant bit is taken out of the original value, it is discarded and the least significant bit becomes 0. In computer science terms, this operation is a "logical shift".' + }, + shiftright: { + returnTypes: ['T'], + arguments: [[{ type: 'T' }], [{ type: 'INT' }]], + signature: 'shiftright(T a, INT b)', + draggable: 'shiftright()', + description: + 'Shifts an integer value right by a specified number of bits. As the least significant bit is taken out of the original value, it is discarded and the most significant bit becomes 0. In computer science terms, this operation is a "logical shift".' + } + } + }; + + const CATEGORIZED_FUNCTIONS = { + hive: [ + { name: 'Aggregate', functions: AGGREGATE_FUNCTIONS['hive'] }, + { name: 'Analytic', functions: ANALYTIC_FUNCTIONS['hive'] }, + { name: 'Collection', functions: COLLECTION_FUNCTIONS['hive'] }, + { name: 'Complex Type', functions: COMPLEX_TYPE_CONSTRUCTS['hive'] }, + { name: 'Conditional', functions: CONDITIONAL_FUNCTIONS['hive'] }, + { name: 'Date', functions: DATE_FUNCTIONS['hive'] }, + { name: 'Mathematical', functions: MATHEMATICAL_FUNCTIONS['hive'] }, + { name: 'Misc', functions: MISC_FUNCTIONS['hive'] }, + { name: 'String', functions: STRING_FUNCTIONS['hive'] }, + { name: 'Data Masking', functions: DATA_MASKING_FUNCTIONS['hive'] }, + { name: 'Table Generating', functions: TABLE_GENERATING_FUNCTIONS['hive'] }, + { name: 'Type Conversion', functions: TYPE_CONVERSION_FUNCTIONS['hive'] } + ], + impala: [ + { name: 'Aggregate', functions: AGGREGATE_FUNCTIONS['impala'] }, + { name: 'Analytic', functions: ANALYTIC_FUNCTIONS['impala'] }, + { name: 'Bit', functions: BIT_FUNCTIONS['impala'] }, + { name: 'Conditional', functions: CONDITIONAL_FUNCTIONS['impala'] }, + { name: 'Date', functions: DATE_FUNCTIONS['impala'] }, + { name: 'Mathematical', functions: MATHEMATICAL_FUNCTIONS['impala'] }, + { name: 'Misc', functions: MISC_FUNCTIONS['impala'] }, + { name: 'String', functions: STRING_FUNCTIONS['impala'] }, + { name: 'Type Conversion', functions: TYPE_CONVERSION_FUNCTIONS['impala'] } + ] + }; + + const typeImplicitConversion = { + hive: { + BOOLEAN: { + BOOLEAN: true, + TIMESTAMP: false, + DATE: false, + BINARY: false, + TINYINT: false, + SMALLINT: false, + INT: false, + INTEGER: false, + BIGINT: false, + FLOAT: false, + DOUBLE: false, + DECIMAL: false, + NUMBER: false, + STRING: false, + CHAR: false, + VARCHAR: false, + T: true + }, + TIMESTAMP: { + BOOLEAN: false, + TIMESTAMP: true, + DATE: false, + BINARY: false, + TINYINT: false, + SMALLINT: false, + INT: false, + INTEGER: false, + BIGINT: false, + FLOAT: false, + DOUBLE: false, + DECIMAL: false, + NUMBER: false, + STRING: false, + CHAR: false, + VARCHAR: false, + T: true + }, + DATE: { + BOOLEAN: false, + TIMESTAMP: false, + DATE: true, + BINARY: false, + TINYINT: false, + SMALLINT: false, + INT: false, + INTEGER: false, + BIGINT: false, + FLOAT: false, + DOUBLE: false, + DECIMAL: false, + NUMBER: false, + STRING: false, + CHAR: false, + VARCHAR: false, + T: true + }, + BINARY: { + BOOLEAN: false, + TIMESTAMP: false, + DATE: false, + BINARY: true, + TINYINT: false, + SMALLINT: false, + INT: false, + INTEGER: false, + BIGINT: false, + FLOAT: false, + DOUBLE: false, + DECIMAL: false, + NUMBER: false, + STRING: false, + CHAR: false, + VARCHAR: false, + T: true + }, + TINYINT: { + BOOLEAN: false, + TIMESTAMP: false, + DATE: false, + BINARY: false, + TINYINT: true, + SMALLINT: false, + INT: false, + INTEGER: false, + BIGINT: false, + FLOAT: false, + DOUBLE: false, + DECIMAL: false, + NUMBER: true, + STRING: false, + CHAR: false, + VARCHAR: false, + T: true + }, + SMALLINT: { + BOOLEAN: false, + TIMESTAMP: false, + DATE: false, + BINARY: false, + TINYINT: true, + SMALLINT: true, + INT: false, + INTEGER: false, + BIGINT: false, + FLOAT: false, + DOUBLE: false, + DECIMAL: false, + NUMBER: true, + STRING: false, + CHAR: false, + VARCHAR: false, + T: true + }, + INT: { + BOOLEAN: false, + TIMESTAMP: false, + DATE: false, + BINARY: false, + TINYINT: true, + SMALLINT: true, + INT: true, + INTEGER: true, + BIGINT: false, + FLOAT: false, + DOUBLE: false, + DECIMAL: false, + NUMBER: true, + STRING: false, + CHAR: false, + VARCHAR: false, + T: true + }, + BIGINT: { + BOOLEAN: false, + TIMESTAMP: false, + DATE: false, + BINARY: false, + TINYINT: true, + SMALLINT: true, + INT: true, + INTEGER: true, + BIGINT: true, + FLOAT: false, + DOUBLE: false, + DECIMAL: false, + NUMBER: true, + STRING: false, + CHAR: false, + VARCHAR: false, + T: true + }, + FLOAT: { + BOOLEAN: false, + TIMESTAMP: false, + DATE: false, + BINARY: false, + TINYINT: true, + SMALLINT: true, + INT: true, + INTEGER: true, + BIGINT: true, + FLOAT: true, + DOUBLE: false, + DECIMAL: false, + NUMBER: true, + STRING: false, + CHAR: false, + VARCHAR: false, + T: true + }, + DOUBLE: { + BOOLEAN: false, + TIMESTAMP: false, + DATE: false, + BINARY: false, + TINYINT: true, + SMALLINT: true, + INT: true, + INTEGER: true, + BIGINT: true, + FLOAT: true, + DOUBLE: true, + DECIMAL: false, + NUMBER: true, + STRING: true, + CHAR: true, + VARCHAR: true, + T: true + }, + DECIMAL: { + BOOLEAN: false, + TIMESTAMP: false, + DATE: false, + BINARY: false, + TINYINT: true, + SMALLINT: true, + INT: true, + INTEGER: true, + BIGINT: true, + FLOAT: true, + DOUBLE: true, + DECIMAL: true, + NUMBER: true, + STRING: true, + CHAR: true, + VARCHAR: true, + T: true + }, + NUMBER: { + BOOLEAN: false, + TIMESTAMP: false, + DATE: false, + BINARY: false, + TINYINT: true, + SMALLINT: true, + INT: true, + INTEGER: true, + BIGINT: true, + FLOAT: true, + DOUBLE: true, + DECIMAL: true, + NUMBER: true, + STRING: true, + CHAR: true, + VARCHAR: true, + T: true + }, + STRING: { + BOOLEAN: false, + TIMESTAMP: true, + DATE: true, + BINARY: false, + TINYINT: true, + SMALLINT: true, + INT: true, + INTEGER: true, + BIGINT: true, + FLOAT: true, + DOUBLE: true, + DECIMAL: true, + NUMBER: true, + STRING: true, + CHAR: true, + VARCHAR: true, + T: true + }, + CHAR: { + BOOLEAN: false, + TIMESTAMP: true, + DATE: true, + BINARY: false, + TINYINT: true, + SMALLINT: true, + INT: true, + INTEGER: true, + BIGINT: true, + FLOAT: true, + DOUBLE: true, + DECIMAL: true, + NUMBER: true, + STRING: true, + CHAR: true, + VARCHAR: true, + T: true + }, + VARCHAR: { + BOOLEAN: false, + TIMESTAMP: true, + DATE: true, + BINARY: false, + TINYINT: true, + SMALLINT: true, + INT: true, + INTEGER: true, + BIGINT: true, + FLOAT: true, + DOUBLE: true, + DECIMAL: true, + NUMBER: true, + STRING: true, + CHAR: true, + VARCHAR: true, + T: true + }, + T: { + BOOLEAN: true, + TIMESTAMP: true, + DATE: true, + BINARY: true, + TINYINT: true, + SMALLINT: true, + INT: true, + INTEGER: true, + BIGINT: true, + FLOAT: true, + DOUBLE: true, + DECIMAL: true, + NUMBER: true, + STRING: true, + CHAR: true, + VARCHAR: true, + T: true + } + }, + impala: { + BOOLEAN: { + BOOLEAN: true, + TIMESTAMP: false, + TINYINT: false, + SMALLINT: false, + INT: false, + BIGINT: false, + DOUBLE: false, + REAL: false, + DECIMAL: false, + FLOAT: false, + NUMBER: false, + CHAR: false, + VARCHAR: false, + STRING: false, + T: true + }, + TIMESTAMP: { + BOOLEAN: false, + TIMESTAMP: true, + TINYINT: false, + SMALLINT: false, + INT: false, + BIGINT: false, + DOUBLE: false, + REAL: false, + DECIMAL: false, + FLOAT: false, + NUMBER: false, + CHAR: false, + VARCHAR: false, + STRING: true, + T: true + }, + TINYINT: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: true, + SMALLINT: false, + INT: false, + BIGINT: false, + DOUBLE: false, + REAL: false, + DECIMAL: false, + FLOAT: false, + NUMBER: true, + CHAR: false, + VARCHAR: false, + STRING: false, + T: true + }, + SMALLINT: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: true, + SMALLINT: true, + INT: false, + BIGINT: false, + DOUBLE: false, + REAL: false, + DECIMAL: false, + FLOAT: false, + NUMBER: true, + CHAR: false, + VARCHAR: false, + STRING: false, + T: true + }, + INT: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: true, + SMALLINT: true, + INT: true, + BIGINT: false, + DOUBLE: false, + REAL: false, + DECIMAL: false, + FLOAT: false, + NUMBER: true, + CHAR: false, + VARCHAR: false, + STRING: false, + T: true + }, + BIGINT: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: true, + SMALLINT: true, + INT: true, + BIGINT: true, + DOUBLE: false, + REAL: false, + DECIMAL: false, + FLOAT: false, + NUMBER: true, + CHAR: false, + VARCHAR: false, + STRING: false, + T: true + }, + DOUBLE: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: true, + SMALLINT: true, + INT: true, + BIGINT: true, + DOUBLE: true, + REAL: true, + DECIMAL: false, + FLOAT: true, + NUMBER: true, + CHAR: false, + VARCHAR: false, + STRING: false, + T: true + }, + REAL: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: true, + SMALLINT: true, + INT: true, + BIGINT: true, + DOUBLE: true, + REAL: true, + DECIMAL: false, + FLOAT: true, + NUMBER: true, + CHAR: false, + VARCHAR: false, + STRING: false, + T: true + }, + DECIMAL: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: true, + SMALLINT: true, + INT: true, + BIGINT: true, + DOUBLE: true, + REAL: true, + DECIMAL: true, + FLOAT: true, + NUMBER: true, + CHAR: false, + VARCHAR: false, + STRING: false, + T: true + }, + FLOAT: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: true, + SMALLINT: true, + INT: true, + BIGINT: true, + DOUBLE: false, + REAL: false, + DECIMAL: false, + FLOAT: true, + NUMBER: true, + CHAR: false, + VARCHAR: false, + STRING: false, + T: true + }, + NUMBER: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: true, + SMALLINT: true, + INT: true, + BIGINT: true, + DOUBLE: true, + REAL: true, + DECIMAL: true, + FLOAT: true, + NUMBER: true, + CHAR: false, + VARCHAR: false, + STRING: false, + T: true + }, + CHAR: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: false, + SMALLINT: false, + INT: false, + BIGINT: false, + DOUBLE: false, + REAL: false, + DECIMAL: false, + FLOAT: false, + NUMBER: false, + CHAR: true, + VARCHAR: false, + STRING: false, + T: true + }, + VARCHAR: { + BOOLEAN: false, + TIMESTAMP: false, + TINYINT: false, + SMALLINT: false, + INT: false, + BIGINT: false, + DOUBLE: false, + REAL: false, + DECIMAL: false, + FLOAT: false, + NUMBER: false, + CHAR: true, + VARCHAR: true, + STRING: false, + T: true + }, + STRING: { + BOOLEAN: false, + TIMESTAMP: true, + TINYINT: false, + SMALLINT: false, + INT: false, + BIGINT: false, + DOUBLE: false, + REAL: false, + DECIMAL: false, + FLOAT: false, + NUMBER: false, + CHAR: true, + VARCHAR: false, + STRING: true, + T: true + }, + T: { + BOOLEAN: true, + TIMESTAMP: true, + TINYINT: true, + SMALLINT: true, + INT: true, + BIGINT: true, + DOUBLE: true, + REAL: true, + DECIMAL: true, + FLOAT: true, + NUMBER: true, + CHAR: true, + VARCHAR: true, + STRING: true, + T: true + } + } + }; + + const createDocHtml = function(funcDesc) { + let html = + '

' + funcDesc.signature + '

'; + if (funcDesc.description) { + html += '

' + funcDesc.description.replace(/[<]/g, '<').replace(/[>]/g, '>') + '

'; + } + html += '
'; + return html; + }; + + const stripPrecision = function(types) { + const result = []; + types.forEach(type => { + if (type.indexOf('(') > -1) { + result.push(type.substring(0, type.indexOf('('))); + } else { + result.push(type); + } + }); + return result; + }; + + /** + * Matches types based on implicit conversion i.e. if you expect a BIGINT then INT is ok but not BOOLEAN etc. + * + * @param dialect + * @param expectedTypes + * @param actualRawTypes + * @returns {boolean} + */ + const matchesType = function(dialect, expectedTypes, actualRawTypes) { + if (dialect !== 'hive') { + dialect = 'impala'; + } + if (expectedTypes.length === 1 && expectedTypes[0] === 'T') { + return true; + } + const actualTypes = stripPrecision(actualRawTypes); + if ( + actualTypes.indexOf('ARRAY') !== -1 || + actualTypes.indexOf('MAP') !== -1 || + actualTypes.indexOf('STRUCT') !== -1 + ) { + return true; + } + for (let i = 0; i < expectedTypes.length; i++) { + for (let j = 0; j < actualTypes.length; j++) { + // To support future unknown types + if ( + typeof typeImplicitConversion[dialect][expectedTypes[i]] === 'undefined' || + typeof typeImplicitConversion[dialect][expectedTypes[i]][actualTypes[j]] == 'undefined' + ) { + return true; + } + if ( + typeImplicitConversion[dialect][expectedTypes[i]] && + typeImplicitConversion[dialect][expectedTypes[i]][actualTypes[j]] + ) { + return true; + } + } + } + return false; + }; + + const addFunctions = function(functionIndex, dialect, returnTypes, result) { + const indexForDialect = functionIndex[dialect || 'generic']; + if (indexForDialect) { + Object.keys(indexForDialect).forEach(funcName => { + const func = indexForDialect[funcName]; + if ( + typeof returnTypes === 'undefined' || + matchesType(dialect, returnTypes, func.returnTypes) + ) { + result[funcName] = func; + } + }); + } + if (functionIndex.shared) { + Object.keys(functionIndex.shared).forEach(funcName => { + const func = functionIndex.shared[funcName]; + if ( + typeof returnTypes === 'undefined' || + matchesType(dialect, returnTypes, func.returnTypes) + ) { + result[funcName] = func; + } + }); + } + }; + + const getFunctionsWithReturnTypes = function( + dialect, + returnTypes, + includeAggregate, + includeAnalytic + ) { + const result = {}; + addFunctions(BIT_FUNCTIONS, dialect, returnTypes, result); + addFunctions(COLLECTION_FUNCTIONS, dialect, returnTypes, result); + addFunctions(CONDITIONAL_FUNCTIONS, dialect, returnTypes, result); + addFunctions(COMPLEX_TYPE_CONSTRUCTS, dialect, returnTypes, result); + addFunctions(DATE_FUNCTIONS, dialect, returnTypes, result); + addFunctions(MATHEMATICAL_FUNCTIONS, dialect, returnTypes, result); + addFunctions(TYPE_CONVERSION_FUNCTIONS, dialect, returnTypes, result); + addFunctions(STRING_FUNCTIONS, dialect, returnTypes, result); + addFunctions(DATA_MASKING_FUNCTIONS, dialect, returnTypes, result); + addFunctions(MISC_FUNCTIONS, dialect, returnTypes, result); + addFunctions(TABLE_GENERATING_FUNCTIONS, dialect, returnTypes, result); + if (includeAggregate) { + addFunctions(AGGREGATE_FUNCTIONS, dialect, returnTypes, result); + } + if (includeAnalytic) { + addFunctions(ANALYTIC_FUNCTIONS, dialect, returnTypes, result); + } + return result; + }; + + const suggestFunctions = function( + dialect, + returnTypes, + includeAggregate, + includeAnalytic, + completions, + weight + ) { + const functionsToSuggest = getFunctionsWithReturnTypes( + dialect, + returnTypes, + includeAggregate, + includeAnalytic + ); + Object.keys(functionsToSuggest).forEach(name => { + completions.push({ + value: name + '()', + meta: functionsToSuggest[name].returnTypes.join('|'), + weight: + returnTypes.filter(type => { + return ( + functionsToSuggest[name].returnTypes.filter(otherType => { + return otherType === type; + }).length > 0 + ); + }).length > 0 + ? weight + 1 + : weight, + docHTML: createDocHtml(functionsToSuggest[name]) + }); + }); + }; + + const findFunction = function(dialect, functionName) { + return ( + BIT_FUNCTIONS[dialect][functionName] || + COLLECTION_FUNCTIONS[dialect][functionName] || + CONDITIONAL_FUNCTIONS[dialect][functionName] || + COMPLEX_TYPE_CONSTRUCTS[dialect][functionName] || + DATE_FUNCTIONS[dialect][functionName] || + MATHEMATICAL_FUNCTIONS[dialect][functionName] || + TYPE_CONVERSION_FUNCTIONS[dialect][functionName] || + STRING_FUNCTIONS[dialect][functionName] || + DATA_MASKING_FUNCTIONS[dialect][functionName] || + MISC_FUNCTIONS[dialect][functionName] || + TABLE_GENERATING_FUNCTIONS[dialect][functionName] || + AGGREGATE_FUNCTIONS[dialect][functionName] || + ANALYTIC_FUNCTIONS[dialect][functionName] + ); + }; + + const getArgumentTypes = function(dialect, functionName, argumentPosition) { + if (dialect !== 'hive' && dialect !== 'impala') { + return ['T']; + } + const foundFunction = findFunction(dialect, functionName); + if (!foundFunction) { + return ['T']; + } + const args = foundFunction.arguments; + if (argumentPosition > args.length) { + const multiples = args[args.length - 1].filter(type => { + return type.multiple; + }); + if (multiples.length > 0) { + return multiples + .map(argument => { + return argument.type; + }) + .sort(); + } + return []; + } + return args[argumentPosition - 1] + .map(argument => { + return argument.type; + }) + .sort(); + }; + + const getReturnTypes = function(dialect, functionName) { + if (dialect !== 'hive' && dialect !== 'impala') { + return ['T']; + } + const foundFunction = findFunction(dialect, functionName); + if (!foundFunction) { + return ['T']; + } + return foundFunction.returnTypes; + }; + + return { + suggestFunctions: suggestFunctions, + getArgumentTypes: getArgumentTypes, + CATEGORIZED_FUNCTIONS: CATEGORIZED_FUNCTIONS, + getFunctionsWithReturnTypes: getFunctionsWithReturnTypes, + getReturnTypes: getReturnTypes, + matchesType: matchesType, + findFunction: findFunction + }; +})(); + +export { PigFunctions, SqlSetOptions, SqlFunctions }; diff --git a/src/core/parse/sqlParserRepository.js b/src/core/parse/sqlParserRepository.js new file mode 100644 index 0000000..e989463 --- /dev/null +++ b/src/core/parse/sqlParserRepository.js @@ -0,0 +1,74 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/* eslint-disable */ +/** + * AUTOCOMPLETE_MODULES and SYNTAX_MODULES are generated, do not edit manually, see tools/jison/generateParsers.js + */ +const AUTOCOMPLETE_MODULES = { + calcite: require("calcite/calciteAutocompleteParser"), + druid: require("druid/druidAutocompleteParser"), + elasticsearch: require("elasticsearch/elasticsearchAutocompleteParser"), + flink: require("flink/flinkAutocompleteParser"), + generic: require("generic/genericAutocompleteParser"), + hive: require("hive/hiveAutocompleteParser"), + impala: require("impala/impalaAutocompleteParser"), + ksql: require("ksql/ksqlAutocompleteParser"), + phoenix: require("phoenix/phoenixAutocompleteParser"), + presto: require("presto/prestoAutocompleteParser") +}; +const SYNTAX_MODULES = { + calcite: require("calcite/calciteSyntaxParser"), + druid: require("druid/druidSyntaxParser"), + elasticsearch: require("elasticsearch/elasticsearchSyntaxParser"), + flink: require("flink/flinkSyntaxParser"), + generic: require("generic/genericSyntaxParser"), + hive: require("hive/hiveSyntaxParser"), + impala: require("impala/impalaSyntaxParser"), + ksql: require("ksql/ksqlSyntaxParser"), + phoenix: require("phoenix/phoenixSyntaxParser"), + presto: require("presto/prestoSyntaxParser") +}; +/* eslint-enable */ + +class SqlParserRepository { + constructor() { + this.modulePromises = {}; + } + + async getParser(sourceType, parserType) { + if (!this.modulePromises[sourceType + parserType]) { + const modules = parserType === 'Autocomplete' ? AUTOCOMPLETE_MODULES : SYNTAX_MODULES; + this.modulePromises[sourceType + parserType] = new Promise((resolve, reject) => { + const targetModule = modules[sourceType] || modules.generic; + resolve(targetModule); + }); + } + return this.modulePromises[sourceType + parserType]; + } + + async getAutocompleter(sourceType) { + return this.getParser(sourceType, 'Autocomplete'); + } + + async getSyntaxParser(sourceType) { + return this.getParser(sourceType, 'Syntax'); + } +} + +const sqlParserRepository = new SqlParserRepository(); + +export default sqlParserRepository; diff --git a/src/core/parse/stringDistance.js b/src/core/parse/stringDistance.js new file mode 100644 index 0000000..b02bb38 --- /dev/null +++ b/src/core/parse/stringDistance.js @@ -0,0 +1,77 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * Calculates the Optimal String Alignment distance between two strings. Returns 0 when the strings are equal and the + * distance when not, distances is less than or equal to the length of the longest string. + * + * @param strA + * @param strB + * @param [ignoreCase] + * @returns {number} The similarity + */ +const stringDistance = function(strA, strB, ignoreCase) { + if (ignoreCase) { + strA = strA.toLowerCase(); + strB = strB.toLowerCase(); + } + + // TODO: Consider other algorithms for performance + const strALength = strA.length; + const strBLength = strB.length; + if (strALength === 0) { + return strBLength; + } + if (strBLength === 0) { + return strALength; + } + + const distances = new Array(strALength); + + let cost, deletion, insertion, substitution, transposition; + for (let i = 0; i <= strALength; i++) { + distances[i] = new Array(strBLength); + distances[i][0] = i; + for (let j = 1; j <= strBLength; j++) { + if (!i) { + distances[0][j] = j; + } else { + cost = strA[i - 1] === strB[j - 1] ? 0 : 1; + deletion = distances[i - 1][j] + 1; + insertion = distances[i][j - 1] + 1; + substitution = distances[i - 1][j - 1] + cost; + if (deletion <= insertion && deletion <= substitution) { + distances[i][j] = deletion; + } else if (insertion <= deletion && insertion <= substitution) { + distances[i][j] = insertion; + } else { + distances[i][j] = substitution; + } + + if (i > 1 && j > 1 && strA[i] === strB[j - 1] && strA[i - 1] === strB[j]) { + transposition = distances[i - 2][j - 2] + cost; + if (transposition < distances[i][j]) { + distances[i][j] = transposition; + } + } + } + } + } + + return distances[strALength][strBLength]; +}; + +export default stringDistance; diff --git a/src/core/sqlAutoCompleteParser.js b/src/core/sqlAutoCompleteParser.js deleted file mode 100644 index 24367e6..0000000 --- a/src/core/sqlAutoCompleteParser.js +++ /dev/null @@ -1,9283 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var SqlParseSupport = (function () { - - // endsWith polyfill from hue_utils.js, needed as workers live in their own js environment - if (!String.prototype.endsWith) { - String.prototype.endsWith = function (searchString, position) { - var subjectString = this.toString(); - if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { - position = subjectString.length; - } - position -= searchString.length; - var lastIndex = subjectString.lastIndexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; - } - - /** - * Calculates the Optimal String Alignment distance between two strings. Returns 0 when the strings are equal and the - * distance when not, distances is less than or equal to the length of the longest string. - * - * @param strA - * @param strB - * @param [ignoreCase] - * @returns {number} The similarity - */ - var stringDistance = function (strA, strB, ignoreCase) { - if (ignoreCase) { - strA = strA.toLowerCase(); - strB = strB.toLowerCase(); - } - - // TODO: Consider other algorithms for performance - var strALength = strA.length; - var strBLength = strB.length; - if (strALength === 0) { - return strBLength; - } - if (strBLength === 0) { - return strALength; - } - - var distances = new Array(strALength); - - var cost, deletion, insertion, substitution, transposition; - for (var i = 0; i <= strALength; i++) { - distances[i] = new Array(strBLength); - distances[i][0] = i; - for (var j = 1; j <= strBLength; j++) { - if (!i){ - distances[0][j] = j; - } else { - cost = strA[i-1] === strB[j-1] ? 0 : 1; - deletion = distances[i - 1][j] + 1; - insertion = distances[i][j - 1] + 1; - substitution = distances[i - 1][j - 1] + cost; - if (deletion <= insertion && deletion <= substitution) { - distances[i][j] = deletion; - } else if (insertion <= deletion && insertion <= substitution) { - distances[i][j] = insertion; - } else { - distances[i][j] = substitution; - } - - if (i > 1 && j > 1 && strA[i] === strB[j - 1] && strA[i - 1] === strB[j]) { - transposition = distances[i - 2][j - 2] + cost; - if (transposition < distances[i][j]) { - distances[i][j] = transposition; - } - } - } - } - } - - return distances[strALength][strBLength]; - }; - - var equalIgnoreCase = function (a, b) { - return a && b && a.toLowerCase() === b.toLowerCase(); - }; - - var initSqlParser = function (parser) { - - var SIMPLE_TABLE_REF_SUGGESTIONS = ['suggestJoinConditions', 'suggestAggregateFunctions', 'suggestFilters', 'suggestGroupBys', 'suggestOrderBys']; - - parser.prepareNewStatement = function () { - linkTablePrimaries(); - parser.commitLocations(); - - delete parser.yy.lateralViews; - delete parser.yy.latestCommonTableExpressions; - delete parser.yy.correlatedSubQuery; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - prioritizeSuggestions(); - }; - - parser.yy.parseError = function (message, error) { - parser.yy.errors.push(error); - return message; - }; - - parser.addCommonTableExpressions = function (identifiers) { - parser.yy.result.commonTableExpressions = identifiers; - parser.yy.latestCommonTableExpressions = identifiers; - }; - - parser.isInSubquery = function () { - return !!parser.yy.primariesStack.length - }; - - parser.pushQueryState = function () { - parser.yy.resultStack.push(parser.yy.result); - parser.yy.locationsStack.push(parser.yy.locations); - parser.yy.lateralViewsStack.push(parser.yy.lateralViews); - parser.yy.selectListAliasesStack.push(parser.yy.selectListAliases); - parser.yy.primariesStack.push(parser.yy.latestTablePrimaries); - parser.yy.subQueriesStack.push(parser.yy.subQueries); - - parser.yy.result = {}; - parser.yy.locations = []; - parser.yy.selectListAliases = []; // Not allowed in correlated sub-queries - parser.yy.lateralViews = []; // Not allowed in correlated sub-queries - - if (parser.yy.correlatedSubQuery) { - parser.yy.latestTablePrimaries = parser.yy.latestTablePrimaries.concat(); - parser.yy.subQueries = parser.yy.subQueries.concat(); - } else { - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - } - }; - - parser.popQueryState = function (subQuery) { - linkTablePrimaries(); - parser.commitLocations(); - - if (Object.keys(parser.yy.result).length === 0) { - parser.yy.result = parser.yy.resultStack.pop(); - } else { - parser.yy.resultStack.pop(); - } - var oldSubQueries = parser.yy.subQueries; - parser.yy.subQueries = parser.yy.subQueriesStack.pop(); - if (subQuery) { - if (oldSubQueries.length > 0) { - subQuery.subQueries = oldSubQueries; - } - parser.yy.subQueries.push(subQuery); - } - - parser.yy.lateralViews = parser.yy.lateralViewsStack.pop(); - parser.yy.latestTablePrimaries = parser.yy.primariesStack.pop(); - parser.yy.locations = parser.yy.locationsStack.pop(); - parser.yy.selectListAliases = parser.yy.selectListAliasesStack.pop(); - }; - - parser.suggestSelectListAliases = function () { - if (parser.yy.selectListAliases && parser.yy.selectListAliases.length > 0 && parser.yy.result.suggestColumns - && (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || parser.yy.result.suggestColumns.identifierChain.length === 0)) { - parser.yy.result.suggestColumnAliases = parser.yy.selectListAliases; - } - }; - - parser.isHive = function () { - return parser.yy.activeDialect === 'hive'; - }; - - parser.isImpala = function () { - return parser.yy.activeDialect === 'impala'; - }; - - parser.mergeSuggestKeywords = function () { - var result = []; - Array.prototype.slice.call(arguments).forEach(function (suggestion) { - if (typeof suggestion !== 'undefined' && typeof suggestion.suggestKeywords !== 'undefined') { - result = result.concat(suggestion.suggestKeywords); - } - }); - if (result.length > 0) { - return {suggestKeywords: result}; - } - return {}; - }; - - parser.suggestValueExpressionKeywords = function (valueExpression, extras) { - var expressionKeywords = parser.getValueExpressionKeywords(valueExpression, extras); - parser.suggestKeywords(expressionKeywords.suggestKeywords); - if (expressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(expressionKeywords.suggestColRefKeywords); - } - if (valueExpression.lastType) { - parser.addColRefIfExists(valueExpression.lastType); - } else { - parser.addColRefIfExists(valueExpression); - } - }; - - parser.getSelectListKeywords = function (excludeAsterisk) { - var keywords = [{ value: 'CASE', weight: 450 }, 'FALSE', 'TRUE', 'NULL']; - if (!excludeAsterisk) { - keywords.push({ value: '*', weight: 10000 }); - } - if (parser.isHive()) { - keywords = keywords.concat(['EXISTS', 'NOT']); - } - return keywords; - }; - - parser.getValueExpressionKeywords = function (valueExpression, extras) { - var types = valueExpression.lastType ? valueExpression.lastType.types : valueExpression.types; - // We could have valueExpression.columnReference to suggest based on column type - var keywords = ['<', '<=', '<=>', '<>', '=', '>', '>=', 'BETWEEN', 'IN', 'IS NOT NULL', 'IS NULL', 'IS NOT TRUE', 'IS TRUE', 'IS NOT FALSE', 'IS FALSE', 'NOT BETWEEN', 'NOT IN']; - if (parser.isImpala()) { - keywords = keywords.concat(['IS DISTINCT FROM', 'IS NOT DISTINCT FROM', 'IS NOT UNKNOWN', 'IS UNKNOWN']); - } - if (extras) { - keywords = keywords.concat(extras); - } - if (valueExpression.suggestKeywords) { - keywords = keywords.concat(valueExpression.suggestKeywords); - } - if (types.length === 1 && types[0] === 'COLREF') { - return { - suggestKeywords: keywords, - suggestColRefKeywords: { - BOOLEAN: ['AND', 'OR'], - NUMBER: ['+', '-', '*', '/', '%', 'DIV'], - STRING: parser.isImpala() ? ['ILIKE', 'IREGEXP', 'LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] : ['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] - } - } - } - if (typeof SqlFunctions === 'undefined' || SqlFunctions.matchesType(parser.yy.activeDialect, ['BOOLEAN'], types)) { - keywords = keywords.concat(['AND', 'OR']); - } - if (typeof SqlFunctions === 'undefined' || SqlFunctions.matchesType(parser.yy.activeDialect, ['NUMBER'], types)) { - keywords = keywords.concat(['+', '-', '*', '/', '%', 'DIV']); - } - if (typeof SqlFunctions === 'undefined' || SqlFunctions.matchesType(parser.yy.activeDialect, ['STRING'], types)) { - keywords = keywords.concat(parser.isImpala() ? ['ILIKE', 'IREGEXP', 'LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] : ['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE']); - } - return { suggestKeywords: keywords }; - }; - - parser.getTypeKeywords = function () { - if (parser.isHive()) { - return ['BIGINT', 'BINARY', 'BOOLEAN', 'CHAR', 'DATE', 'DECIMAL', 'DOUBLE', 'DOUBLE PRECISION', 'FLOAT', 'INT', 'SMALLINT', 'TIMESTAMP', 'STRING', 'TINYINT', 'VARCHAR']; - } - if (parser.isImpala()) { - return ['BIGINT', 'BOOLEAN', 'CHAR', 'DECIMAL', 'DOUBLE', 'FLOAT', 'INT', 'REAL', 'SMALLINT', 'TIMESTAMP', 'STRING', 'TINYINT', 'VARCHAR']; - } - return ['BIGINT', 'BOOLEAN', 'CHAR', 'DECIMAL', 'DOUBLE', 'FLOAT', 'INT', 'SMALLINT', 'TIMESTAMP', 'STRING', 'TINYINT', 'VARCHAR']; - }; - - parser.getColumnDataTypeKeywords = function () { - if (parser.isHive()) { - return parser.getTypeKeywords().concat(['ARRAY<>', 'MAP<>', 'STRUCT<>', 'UNIONTYPE<>']); - } - if (parser.isImpala()) { - return parser.getTypeKeywords().concat(['ARRAY<>', 'MAP<>', 'STRUCT<>']); - } - return parser.getTypeKeywords(); - }; - - parser.addColRefIfExists = function (valueExpression) { - if (valueExpression.columnReference) { - parser.yy.result.colRef = {identifierChain: valueExpression.columnReference}; - } - }; - - parser.selectListNoTableSuggest = function (selectListEdit, hasDistinctOrAll) { - if (selectListEdit.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!hasDistinctOrAll) { - keywords = keywords.concat([{ value: 'ALL', weight: 2 }, { value: 'DISTINCT', weight: 2 }]); - } - if (parser.isImpala()) { - keywords.push('STRAIGHT_JOIN'); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForKeywords(selectListEdit); - } - if (selectListEdit.suggestFunctions) { - parser.suggestFunctions(); - } - if (selectListEdit.suggestColumns) { - parser.suggestColumns(); - } - if (selectListEdit.suggestAggregateFunctions && (!hasDistinctOrAll || hasDistinctOrAll === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - }; - - parser.suggestJoinConditions = function (details) { - parser.yy.result.suggestJoinConditions = details || {}; - if (parser.yy.latestTablePrimaries && !parser.yy.result.suggestJoinConditions.tablePrimaries) { - parser.yy.result.suggestJoinConditions.tablePrimaries = parser.yy.latestTablePrimaries.concat(); - } - }; - - parser.suggestJoins = function (details) { - parser.yy.result.suggestJoins = details || {}; - }; - - parser.valueExpressionSuggest = function (oppositeValueExpression, operator) { - if (oppositeValueExpression && oppositeValueExpression.columnReference) { - parser.suggestValues(); - parser.yy.result.colRef = {identifierChain: oppositeValueExpression.columnReference}; - } - parser.suggestColumns(); - parser.suggestFunctions(); - var keywords = [{ value: 'CASE', weight: 450 }, { value: 'FALSE', weight: 450 }, { value: 'NULL', weight: 450 }, { value: 'TRUE', weight: 450 }]; - if (parser.isHive() || typeof oppositeValueExpression === 'undefined' || typeof operator === 'undefined') { - keywords = keywords.concat(['EXISTS', 'NOT']); - } - if (oppositeValueExpression && oppositeValueExpression.types[0] === 'NUMBER') { - parser.applyTypeToSuggestions(['NUMBER']); - } else if (parser.isImpala() && (typeof operator === 'undefined' || operator === '-' || operator === '+')) { - keywords.push('INTERVAL'); - } - parser.suggestKeywords(keywords); - }; - - parser.applyTypeToSuggestions = function (types) { - if (types[0] === 'BOOLEAN') { - return; - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.yy.result.suggestFunctions.types = types; - } - if (parser.yy.result.suggestColumns && !parser.yy.result.suggestColumns.types) { - parser.yy.result.suggestColumns.types = types; - } - }; - - parser.findCaseType = function (whenThenList) { - var types = {}; - whenThenList.caseTypes.forEach(function (valueExpression) { - valueExpression.types.forEach(function (type) { - types[type] = true; - }); - }); - if (Object.keys(types).length === 1) { - return {types: [Object.keys(types)[0]]}; - } - return {types: ['T']}; - }; - - parser.findReturnTypes = function (functionName) { - return typeof SqlFunctions === 'undefined' ? ['T'] : SqlFunctions.getReturnTypes(parser.yy.activeDialect, functionName.toLowerCase()); - }; - - parser.applyArgumentTypesToSuggestions = function (functionName, position) { - var foundArguments = typeof SqlFunctions === 'undefined' ? ['T'] : SqlFunctions.getArgumentTypes(parser.yy.activeDialect, functionName.toLowerCase(), position); - if (foundArguments.length == 0 && parser.yy.result.suggestColumns) { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.suggestKeyValues; - delete parser.yy.result.suggestValues; - delete parser.yy.result.suggestFunctions; - delete parser.yy.result.suggestIdentifiers; - delete parser.yy.result.suggestKeywords; - } else { - parser.applyTypeToSuggestions(foundArguments); - } - }; - - var getCleanImpalaPrimaries = function (primaries) { - var cleanPrimaries = []; - for (var i = primaries.length - 1; i >= 0; i--) { - var cleanPrimary = primaries[i]; - if (cleanPrimary.identifierChain && cleanPrimary.identifierChain.length > 0) { - for (var j = i - 1; j >=0; j--) { - var parentPrimary = primaries[j]; - if (parentPrimary.alias && cleanPrimary.identifierChain[0].name === parentPrimary.alias) { - var restOfChain = cleanPrimary.identifierChain.concat(); - restOfChain.shift(); - if (cleanPrimary.alias) { - cleanPrimary = { identifierChain: parentPrimary.identifierChain.concat(restOfChain), alias: cleanPrimary.alias, impalaComplex: true }; - } else { - cleanPrimary = { identifierChain: parentPrimary.identifierChain.concat(restOfChain), impalaComplex: true }; - } - } - } - } - cleanPrimaries.push(cleanPrimary); - } - return cleanPrimaries; - }; - - parser.commitLocations = function () { - if (parser.yy.locations.length === 0) { - return; - } - - var tablePrimaries = parser.yy.latestTablePrimaries; - - if (parser.isImpala()) { - tablePrimaries = []; - getCleanImpalaPrimaries(parser.yy.latestTablePrimaries).forEach(function (primary) { - var cleanPrimary = primary; - if (primary.identifierChain && primary.identifierChain.length > 0) { - for (var j = parser.yy.primariesStack.length - 1; j >= 0; j--) { - getCleanImpalaPrimaries(parser.yy.primariesStack[j]).every(function (parentPrimary) { - if (parentPrimary.alias && parentPrimary.alias === primary.identifierChain[0].name) { - var identifierChain = primary.identifierChain.concat(); - identifierChain.shift(); - cleanPrimary = { identifierChain: parentPrimary.identifierChain.concat(identifierChain) }; - if (primary.alias) { - cleanPrimary.alias = primary.alias; - } - return false; - } - return true; - }); - } - } - tablePrimaries.unshift(cleanPrimary); - }); - } - var i = parser.yy.locations.length; - - while (i--) { - var location = parser.yy.locations[i]; - if (location.type === 'variable' && location.colRef) { - parser.expandIdentifierChain({ wrapper: location.colRef, tablePrimaries: tablePrimaries, isColumnWrapper: true }); - delete location.colRef.linked; - } - - // Impala can have references to previous tables after FROM, i.e. FROM testTable t, t.testArray - // In this testArray would be marked a type table so we need to switch it to column. - if (location.type === 'table' && typeof location.identifierChain !== 'undefined' && location.identifierChain.length > 1 && tablePrimaries) { - var allPrimaries = tablePrimaries; - parser.yy.primariesStack.forEach(function (parentPrimaries) { - allPrimaries = getCleanImpalaPrimaries(parentPrimaries).concat(allPrimaries); - }); - var found = allPrimaries.filter(function (primary) { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name); - }); - if (found.length > 0) { - location.type = 'column'; - } - } - - if (location.type === 'database' && typeof location.identifierChain !== 'undefined' && location.identifierChain.length > 0 && tablePrimaries) { - var allPrimaries = tablePrimaries; - parser.yy.primariesStack.forEach(function (parentPrimaries) { - allPrimaries = getCleanImpalaPrimaries(parentPrimaries).concat(allPrimaries); - }); - var foundAlias = allPrimaries.filter(function (primary) { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name); - }); - if (foundAlias.length > 0 && parser.isImpala()) { - // Impala complex reference in FROM clause, i.e. FROM testTable t, t.testMap tm - location.type = 'table'; - parser.expandIdentifierChain({ tablePrimaries: allPrimaries, wrapper: location, anyOwner: true }); - location.type = location.identifierChain.length === 1 ? 'table' : 'complex'; - continue; - } - } - - if (location.type === 'unknown') { - if (typeof location.identifierChain !== 'undefined' && location.identifierChain.length > 0 && location.identifierChain.length <= 2 && tablePrimaries) { - var found = tablePrimaries.filter(function (primary) { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name) || (primary.identifierChain && equalIgnoreCase(primary.identifierChain[0].name, location.identifierChain[0].name)); - }); - if (!found.length && location.firstInChain) { - found = tablePrimaries.filter(function (primary) { - return !primary.alias && primary.identifierChain && equalIgnoreCase(primary.identifierChain[primary.identifierChain.length - 1].name, location.identifierChain[0].name); - }); - } - - if (found.length) { - if (found[0].identifierChain.length > 1 && location.identifierChain.length === 1 && equalIgnoreCase(found[0].identifierChain[0].name, location.identifierChain[0].name)) { - location.type = 'database'; - } else if (found[0].alias && equalIgnoreCase(location.identifierChain[0].name, found[0].alias) && location.identifierChain.length > 1) { - location.type = 'column'; - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true }); - } else if (!found[0].alias && found[0].identifierChain && equalIgnoreCase(location.identifierChain[0].name, found[0].identifierChain[found[0].identifierChain.length - 1].name) && location.identifierChain.length > 1) { - location.type = 'column'; - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true }); - } else { - location.type = found[0].impalaComplex ? 'column' : 'table'; - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true }); - } - } else { - if (parser.yy.subQueries) { - found = parser.yy.subQueries.filter(function (subQuery) { - return equalIgnoreCase(subQuery.alias, location.identifierChain[0].name); - }); - if (found.length > 0) { - location.type = 'subQuery'; - location.identifierChain = [{subQuery: found[0].alias}]; - } - } - } - } - } - - if (location.type === 'asterisk' && !location.linked) { - - if (tablePrimaries && tablePrimaries.length > 0) { - location.tables = []; - location.linked = false; - if (!location.identifierChain) { - location.identifierChain = [{ asterisk: true }]; - } - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: false }); - if (location.tables.length === 0) { - parser.yy.locations.splice(i, 1); - } - } else { - parser.yy.locations.splice(i, 1); - } - } - - if (location.type === 'table' && typeof location.identifierChain !== 'undefined' && location.identifierChain.length === 1 && location.identifierChain[0].name) { - // Could be a cte reference - parser.yy.locations.some(function (otherLocation) { - if (otherLocation.type === 'alias' && otherLocation.source === 'cte' && SqlUtils.identifierEquals(otherLocation.alias, location.identifierChain[0].name)) { - // TODO: Possibly add the other location if we want to show the link in the future. - // i.e. highlight select definition on hover over alias, also for subquery references. - location.type = 'alias'; - location.target = 'cte'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - return true; - } - }); - } - - if (location.type === 'table' && (typeof location.identifierChain === 'undefined' || location.identifierChain.length === 0)) { - parser.yy.locations.splice(i, 1); - } - - if (location.type === 'unknown') { - location.type = 'column'; - } - - // A column location might refer to a previously defined alias, i.e. last 'foo' in "SELECT cast(id AS int) foo FROM tbl ORDER BY foo;" - if (location.type === 'column') { - for (var j = i - 1; j >= 0; j--) { - var otherLocation = parser.yy.locations[j]; - if (otherLocation.type === 'alias' && otherLocation.source === 'column' && location.identifierChain && location.identifierChain.length === 1 && location.identifierChain[0].name && otherLocation.alias && location.identifierChain[0].name.toLowerCase() === otherLocation.alias.toLowerCase()) { - location.type = 'alias'; - location.source = 'column'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - location.parentLocation = otherLocation.parentLocation; - break; - } - } - } - - if (location.type === 'column') { - if (parser.isHive() && !location.linked) { - location.identifierChain = parser.expandLateralViews(parser.yy.lateralViews, location.identifierChain); - } - - var initialIdentifierChain = location.identifierChain ? location.identifierChain.concat() : undefined; - - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true, isColumnWrapper: true, isColumnLocation: true }); - - if (typeof location.identifierChain === 'undefined') { - parser.yy.locations.splice(i, 1); - } else if (location.identifierChain.length === 0 && initialIdentifierChain && initialIdentifierChain.length === 1) { - // This is for the case "SELECT tblOrColName FROM db.tblOrColName"; - location.identifierChain = initialIdentifierChain; - } - } - if (location.type === 'column' && location.identifierChain) { - if (location.identifierChain.length > 1 && location.tables && location.tables.length > 0) { - location.type = 'complex'; - } - } - delete location.firstInChain; - if (location.type !== 'column' && location.type !== 'complex') { - delete location.qualified; - } else if (typeof location.qualified === 'undefined') { - location.qualified = false; - } - } - - if (parser.yy.locations.length > 0) { - parser.yy.allLocations = parser.yy.allLocations.concat(parser.yy.locations); - parser.yy.locations = []; - } - }; - - var prioritizeSuggestions = function () { - parser.yy.result.lowerCase = parser.yy.lowerCase || false; - - var cteIndex = {}; - - if (typeof parser.yy.latestCommonTableExpressions !== 'undefined') { - parser.yy.latestCommonTableExpressions.forEach(function (cte) { - cteIndex[cte.alias.toLowerCase()] = cte; - }) - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) { - if (suggestionType !== 'suggestAggregateFunctions' && typeof parser.yy.result[suggestionType] !== 'undefined' && parser.yy.result[suggestionType].tables.length === 0) { - delete parser.yy.result[suggestionType]; - } else if (typeof parser.yy.result[suggestionType] !== 'undefined' && typeof parser.yy.result[suggestionType].tables !== 'undefined') { - for (var i = parser.yy.result[suggestionType].tables.length - 1; i >= 0; i--) { - var table = parser.yy.result[suggestionType].tables[i]; - if (table.identifierChain.length === 1 && typeof table.identifierChain[0].name !== 'undefined' && typeof cteIndex[table.identifierChain[0].name.toLowerCase()] !== 'undefined') { - parser.yy.result[suggestionType].tables.splice(i, 1); - } - } - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - if (!parser.yy.result.colRef.linked || typeof parser.yy.result.colRef.identifierChain === 'undefined' || parser.yy.result.colRef.identifierChain.length === 0) { - delete parser.yy.result.colRef; - if (typeof parser.yy.result.suggestColRefKeywords !== 'undefined') { - Object.keys(parser.yy.result.suggestColRefKeywords).forEach(function (type) { - parser.yy.result.suggestKeywords = parser.yy.result.suggestKeywords.concat(parser.createWeightedKeywords(parser.yy.result.suggestColRefKeywords[type], -1)); - }); - delete parser.yy.result.suggestColRefKeywords; - } - if (parser.yy.result.suggestColumns && parser.yy.result.suggestColumns.types.length === 1 && parser.yy.result.suggestColumns.types[0] === 'COLREF') { - parser.yy.result.suggestColumns.types = ['T']; - } - delete parser.yy.result.suggestValues; - } - } - - if (typeof parser.yy.result.colRef !== 'undefined') { - if (!parser.yy.result.suggestValues && !parser.yy.result.suggestColRefKeywords && - (!parser.yy.result.suggestColumns || - parser.yy.result.suggestColumns.types[0] !== 'COLREF')) { - delete parser.yy.result.colRef; - } - } - if (typeof parser.yy.result.suggestIdentifiers !== 'undefined' && parser.yy.result.suggestIdentifiers.length > 0) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - var suggestColumns = parser.yy.result.suggestColumns; - if (typeof suggestColumns.tables === 'undefined' || suggestColumns.tables.length === 0) { - // Impala supports statements like SELECT * FROM tbl1, tbl2 WHERE db.tbl1.col = tbl2.bla - if (parser.yy.result.suggestColumns.linked && parser.isImpala() && typeof suggestColumns.identifierChain !== 'undefined' && suggestColumns.identifierChain.length > 0) { - if (suggestColumns.identifierChain.length === 1) { - parser.yy.result.suggestTables = suggestColumns; - delete parser.yy.result.suggestColumns - } else { - suggestColumns.tables = [{identifierChain: suggestColumns.identifierChain}]; - delete suggestColumns.identifierChain; - } - } else { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.subQueries; - } - } else { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - - suggestColumns.tables.forEach(function (table) { - if (typeof table.identifierChain !== 'undefined' && table.identifierChain.length === 1 && typeof table.identifierChain[0].name !== 'undefined') { - var cte = cteIndex[table.identifierChain[0].name.toLowerCase()]; - if (typeof cte !== 'undefined') { - delete table.identifierChain[0].name; - table.identifierChain[0].cte = cte.alias; - } - } else if (typeof table.identifierChain === 'undefined' && table.subQuery) { - table.identifierChain = [{ subQuery: table.subQuery }]; - delete table.subQuery; - } - }); - - if (typeof suggestColumns.identifierChain !== 'undefined' && suggestColumns.identifierChain.length === 0) { - delete suggestColumns.identifierChain; - } - } - } else { - delete parser.yy.result.subQueries; - } - - if (typeof parser.yy.result.suggestJoinConditions !== 'undefined') { - if (typeof parser.yy.result.suggestJoinConditions.tables === 'undefined' || parser.yy.result.suggestJoinConditions.tables.length === 0) { - delete parser.yy.result.suggestJoinConditions; - } - } - - if (typeof parser.yy.result.suggestTables !== 'undefined' && typeof parser.yy.latestCommonTableExpressions !== 'undefined') { - var ctes = []; - parser.yy.latestCommonTableExpressions.forEach(function (cte) { - var suggestion = {name: cte.alias}; - if (parser.yy.result.suggestTables.prependFrom) { - suggestion.prependFrom = true - } - if (parser.yy.result.suggestTables.prependQuestionMark) { - suggestion.prependQuestionMark = true; - } - ctes.push(suggestion); - }); - if (ctes.length > 0) { - parser.yy.result.suggestCommonTableExpressions = ctes; - } - } - }; - - /** - * Impala supports referencing maps and arrays in the the table reference list i.e. - * - * SELECT m['foo'].bar.| FROM someDb.someTable t, t.someMap m; - * - * From this the tablePrimaries would look like: - * - * [ { alias: 't', identifierChain: [ { name: 'someDb' }, { name: 'someTable' } ] }, - * { alias: 'm', identifierChain: [ { name: 't' }, { name: 'someMap' } ] } ] - * - * with an identifierChain from the select list: - * - * [ { name: 'm', keySet: true }, { name: 'bar' } ] - * - * Calling this would return an expanded identifierChain, given the above it would be: - * - * [ { name: 't' }, { name: 'someMap', keySet: true }, { name: 'bar' } ] - */ - parser.expandImpalaIdentifierChain = function (tablePrimaries, identifierChain) { - var expandedChain = identifierChain.concat(); // Clone in case it's called multiple times. - if (typeof expandedChain === 'undefined' || expandedChain.length === 0) { - return identifierChain; - } - var expand = function (identifier, expandedChain) { - var foundPrimary = tablePrimaries.filter(function (tablePrimary) { - var primaryIdentifier = tablePrimary.alias; - if (!primaryIdentifier && tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { - primaryIdentifier = tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1].name; - } - return equalIgnoreCase(primaryIdentifier, identifier); - }); - - if (foundPrimary.length === 1 && foundPrimary[0].identifierChain) { - var parentPrimary = tablePrimaries.filter(function (tablePrimary) { - return equalIgnoreCase(tablePrimary.alias, foundPrimary[0].identifierChain[0].name); - }); - if (parentPrimary.length === 1) { - var keySet = expandedChain[0].keySet; - var secondPart = expandedChain.slice(1); - var firstPart = []; - // Clone to make sure we don't add keySet to the primaries - foundPrimary[0].identifierChain.forEach(function (identifier) { - firstPart.push({name: identifier.name}); - }); - if (keySet && firstPart.length > 0) { - firstPart[firstPart.length - 1].keySet = true; - } - - if (firstPart.length === 0 || typeof secondPart === 'undefined' || secondPart.length === 0) { - return firstPart; - } - var result = firstPart.concat(secondPart); - if (result.length > 0) { - return expand(firstPart[0].name, result); - } else { - return result; - } - } - } - return expandedChain; - }; - return expand(expandedChain[0].name, expandedChain); - }; - - parser.identifyPartials = function (beforeCursor, afterCursor) { - var beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - var afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return {left: beforeMatch ? beforeMatch[0].length : 0, right: afterMatch ? afterMatch[0].length : 0}; - }; - - parser.expandLateralViews = function (lateralViews, originalIdentifierChain, columnSuggestion) { - var identifierChain = originalIdentifierChain.concat(); // Clone in case it's re-used - var firstIdentifier = identifierChain[0]; - if (typeof lateralViews !== 'undefined') { - lateralViews.concat().reverse().forEach(function (lateralView) { - if (!lateralView.udtf.expression.columnReference) { - return; - } - if (equalIgnoreCase(firstIdentifier.name, lateralView.tableAlias) && identifierChain.length > 1) { - identifierChain.shift(); - firstIdentifier = identifierChain[0]; - if (columnSuggestion) { - delete parser.yy.result.suggestKeywords; - } - } else if (equalIgnoreCase(firstIdentifier.name, lateralView.tableAlias) && identifierChain.length === 1 && typeof parser.yy.result.suggestColumns !== 'undefined') { - if (columnSuggestion) { - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = []; - } - lateralView.columnAliases.forEach(function (columnAlias) { - parser.yy.result.suggestIdentifiers.push({name: columnAlias, type: 'alias'}); - }); - delete parser.yy.result.suggestColumns; - delete parser.yy.result.suggestKeywords; - } - return identifierChain; - } - if (lateralView.columnAliases.indexOf(firstIdentifier.name) !== -1) { - if (lateralView.columnAliases.length === 2 && lateralView.udtf.function.toLowerCase() === 'explode' && equalIgnoreCase(firstIdentifier.name, lateralView.columnAliases[0])) { - identifierChain[0] = {name: 'key'}; - } else if (lateralView.columnAliases.length === 2 && lateralView.udtf.function.toLowerCase() === 'explode' && equalIgnoreCase(firstIdentifier.name, lateralView.columnAliases[1])) { - identifierChain[0] = {name: 'value'}; - } else { - identifierChain[0] = {name: 'item'}; - } - identifierChain = lateralView.udtf.expression.columnReference.concat(identifierChain); - firstIdentifier = identifierChain[0]; - } - }); - } - return identifierChain; - }; - - var addCleanTablePrimary = function (tables, tablePrimary) { - if (tablePrimary.alias) { - tables.push({alias: tablePrimary.alias, identifierChain: tablePrimary.identifierChain}); - } else { - tables.push({identifierChain: tablePrimary.identifierChain}); - } - }; - - parser.expandIdentifierChain = function (options) { - var wrapper = options.wrapper; - var anyOwner = options.anyOwner; - var isColumnWrapper = options.isColumnWrapper; - var isColumnLocation = options.isColumnLocation; - var tablePrimaries = options.tablePrimaries || parser.yy.latestTablePrimaries; - - if (typeof wrapper.identifierChain === 'undefined' || typeof tablePrimaries === 'undefined') { - return; - } - var identifierChain = wrapper.identifierChain.concat(); - - if (tablePrimaries.length === 0) { - delete wrapper.identifierChain; - return; - } - - if (!anyOwner) { - tablePrimaries = filterTablePrimariesForOwner(tablePrimaries, wrapper.owner); - } - - if (identifierChain.length > 0 && identifierChain[identifierChain.length - 1].asterisk) { - var tables = []; - tablePrimaries.forEach(function (tablePrimary) { - if (identifierChain.length > 1 && !tablePrimary.subQueryAlias) { - if (identifierChain.length === 2 && equalIgnoreCase(tablePrimary.alias, identifierChain[0].name)) { - addCleanTablePrimary(tables, tablePrimary); - } else if (identifierChain.length === 2 && equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name)) { - addCleanTablePrimary(tables, tablePrimary); - } else if (identifierChain.length === 3 && tablePrimary.identifierChain.length > 1 && - equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimary.identifierChain[1].name, identifierChain[1].name)) { - addCleanTablePrimary(tables, tablePrimary); - } - } else { - if (tablePrimary.subQueryAlias) { - tables.push({identifierChain: [{subQuery: tablePrimary.subQueryAlias}]}); - } else { - addCleanTablePrimary(tables, tablePrimary); - } - } - }); - // Possible Joins - if (tables.length > 0) { - wrapper.tables = tables; - delete wrapper.identifierChain; - return; - } - } - - // Impala can have references to maps or array, i.e. FROM table t, t.map m - // We need to replace those in the identifierChain - if (parser.isImpala()) { - var lengthBefore = identifierChain.length; - identifierChain = parser.expandImpalaIdentifierChain(tablePrimaries, identifierChain); - // Change type of any locations marked as table - if (wrapper.type === 'table' && identifierChain.length > lengthBefore) { - wrapper.type = 'column'; - } - wrapper.identifierChain = identifierChain; - } - // Expand exploded views in the identifier chain - if (parser.isHive() && identifierChain.length > 0) { - identifierChain = parser.expandLateralViews(parser.yy.lateralViews, identifierChain); - wrapper.identifierChain = identifierChain; - } - - // IdentifierChain contains a possibly started identifier or empty, example: a.b.c = ['a', 'b', 'c'] - // Reduce the tablePrimaries to the one that matches the first identifier if found - var foundPrimary; - var doubleMatch = false; - var aliasMatch = false; - if (identifierChain.length > 0) { - for (var i = 0; i < tablePrimaries.length; i++) { - if (tablePrimaries[i].subQueryAlias) { - if (equalIgnoreCase(tablePrimaries[i].subQueryAlias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - } - } else if (equalIgnoreCase(tablePrimaries[i].alias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - aliasMatch = true; - break; - } else if (tablePrimaries[i].identifierChain.length > 1 && identifierChain.length > 1 && - equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimaries[i].identifierChain[1].name, identifierChain[1].name)) { - foundPrimary = tablePrimaries[i]; - doubleMatch = true; - break; - } else if (!foundPrimary && equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && identifierChain.length > (isColumnLocation ? 1 : 0)) { - foundPrimary = tablePrimaries[i]; - // No break as first two can still match. - } else if (!foundPrimary && tablePrimaries[i].identifierChain.length > 1 && !tablePrimaries[i].alias - && equalIgnoreCase(tablePrimaries[i].identifierChain[tablePrimaries[i].identifierChain.length - 1].name, identifierChain[0].name)) { - // This is for the case SELECT baa. FROM bla.baa, blo.boo; - foundPrimary = tablePrimaries[i]; - break; - } - } - } - - if (foundPrimary) { - if (foundPrimary.impalaComplex && wrapper.type === 'column') { - wrapper.type = 'complex'; - } - identifierChain.shift(); - if (doubleMatch) { - identifierChain.shift(); - } - } else if (tablePrimaries.length === 1 && !isColumnWrapper) { - foundPrimary = tablePrimaries[0]; - } - - if (foundPrimary) { - if (isColumnWrapper) { - wrapper.identifierChain = identifierChain; - if (foundPrimary.subQueryAlias) { - wrapper.tables = [{ subQuery: foundPrimary.subQueryAlias }]; - } else if (foundPrimary.alias) { - if (!isColumnLocation && isColumnWrapper && aliasMatch) { - // TODO: add alias on table in suggestColumns (needs support in sqlAutocomplete3.js) - // the case is: SELECT cu.| FROM customers cu; - // This prevents alias from being added automatically in sqlAutocompleter3.js - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } else { - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain, alias: foundPrimary.alias }]; - } - } else { - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } - } else { - if (foundPrimary.subQueryAlias) { - identifierChain.unshift({ subQuery: foundPrimary.subQueryAlias }); - } else { - identifierChain = foundPrimary.identifierChain.concat(identifierChain); - } - if (wrapper.tables) { - wrapper.tables.push({identifierChain: identifierChain}); - delete wrapper.identifierChain; - } else { - wrapper.identifierChain = identifierChain; - } - } - } else { - if (isColumnWrapper) { - wrapper.tables = []; - } - tablePrimaries.forEach(function (tablePrimary) { - var targetTable = tablePrimary.subQueryAlias ? { subQuery: tablePrimary.subQueryAlias } : { identifierChain: tablePrimary.identifierChain } ; - if (tablePrimary.alias) { - targetTable.alias = tablePrimary.alias; - } - if (wrapper.tables) { - wrapper.tables.push(targetTable) - } - }); - } - delete wrapper.owner; - wrapper.linked = true; - }; - - var suggestLateralViewAliasesAsIdentifiers = function () { - if (typeof parser.yy.lateralViews === 'undefined' || parser.yy.lateralViews.length === 0) { - return; - } - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = []; - } - parser.yy.lateralViews.forEach(function (lateralView) { - if (typeof lateralView.tableAlias !== 'undefined') { - parser.yy.result.suggestIdentifiers.push({name: lateralView.tableAlias + '.', type: 'alias'}); - } - lateralView.columnAliases.forEach(function (columnAlias) { - parser.yy.result.suggestIdentifiers.push({name: columnAlias, type: 'alias'}); - }); - }); - if (parser.yy.result.suggestIdentifiers.length === 0) { - delete parser.yy.result.suggestIdentifiers; - } - }; - - var filterTablePrimariesForOwner = function (tablePrimaries, owner) { - var result = []; - tablePrimaries.forEach(function (primary) { - if (typeof owner === 'undefined' && typeof primary.owner === 'undefined') { - result.push(primary); - } else if (owner === primary.owner) { - result.push(primary); - } - }); - return result; - }; - - var convertTablePrimariesToSuggestions = function (tablePrimaries) { - var tables = []; - var identifiers = []; - tablePrimaries.forEach(function (tablePrimary) { - if (tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { - var table = {identifierChain: tablePrimary.identifierChain}; - if (tablePrimary.alias) { - table.alias = tablePrimary.alias; - identifiers.push({name: table.alias + '.', type: 'alias'}); - if (parser.isImpala()) { - var testForImpalaAlias = [{name: table.alias}]; - var result = parser.expandImpalaIdentifierChain(tablePrimaries, testForImpalaAlias); - if (result.length > 1) { - // Continue if it's a reference to a complex type - return; - } - } - } else { - var lastIdentifier = tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1]; - if (typeof lastIdentifier.name !== 'undefined') { - identifiers.push({name: lastIdentifier.name + '.', type: 'table'}); - } else if (typeof lastIdentifier.subQuery !== 'undefined') { - identifiers.push({name: lastIdentifier.subQuery + '.', type: 'sub-query'}); - } - } - tables.push(table); - } else if (tablePrimary.subQueryAlias) { - identifiers.push({name: tablePrimary.subQueryAlias + '.', type: 'sub-query'}); - tables.push({identifierChain: [{subQuery: tablePrimary.subQueryAlias}]}); - } - }); - if (identifiers.length > 0) { - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = identifiers; - } else { - parser.yy.result.suggestIdentifiers = identifiers.concat(parser.yy.result.suggestIdentifiers); - } - } - parser.yy.result.suggestColumns.tables = tables; - if (parser.yy.result.suggestColumns.identifierChain && parser.yy.result.suggestColumns.identifierChain.length === 0) { - delete parser.yy.result.suggestColumns.identifierChain; - } - parser.yy.result.suggestColumns.linked = true; - }; - - var linkTablePrimaries = function () { - if (!parser.yy.cursorFound || typeof parser.yy.latestTablePrimaries === 'undefined') { - return; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) { - if (typeof parser.yy.result[suggestionType] !== 'undefined' && parser.yy.result[suggestionType].tablePrimaries && !parser.yy.result[suggestionType].linked) { - parser.yy.result[suggestionType].tables = []; - parser.yy.result[suggestionType].tablePrimaries.forEach(function (tablePrimary) { - if (!tablePrimary.subQueryAlias) { - parser.yy.result[suggestionType].tables.push(tablePrimary.alias ? { - identifierChain: tablePrimary.identifierChain.concat(), - alias: tablePrimary.alias - } : {identifierChain: tablePrimary.identifierChain.concat()}); - } - }); - delete parser.yy.result[suggestionType].tablePrimaries; - parser.yy.result[suggestionType].linked = true; - } - }); - - if (typeof parser.yy.result.suggestColumns !== 'undefined' && !parser.yy.result.suggestColumns.linked) { - var tablePrimaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries, parser.yy.result.suggestColumns.owner); - if (!parser.yy.result.suggestColumns.tables) { - parser.yy.result.suggestColumns.tables = []; - } - if (parser.yy.subQueries.length > 0) { - parser.yy.result.subQueries = parser.yy.subQueries; - } - if (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || parser.yy.result.suggestColumns.identifierChain.length === 0) { - if (tablePrimaries.length > 1) { - convertTablePrimariesToSuggestions(tablePrimaries); - } else { - suggestLateralViewAliasesAsIdentifiers(); - if (tablePrimaries.length === 1 && (tablePrimaries[0].alias || tablePrimaries[0].subQueryAlias)) { - convertTablePrimariesToSuggestions(tablePrimaries); - } - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestColumns, anyOwner: false, isColumnWrapper: true }); - } - } else { - // Expand exploded views in the identifier chain - if (parser.isHive() && !parser.yy.result.suggestColumns.linked) { - var originalLength = parser.yy.result.suggestColumns.identifierChain.length; - parser.yy.result.suggestColumns.identifierChain = parser.expandLateralViews(parser.yy.lateralViews, parser.yy.result.suggestColumns.identifierChain, true); - // Drop '*' keyword for lateral views - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - if (parser.yy.result.suggestColumns.identifierChain.length > originalLength && - typeof parser.yy.result.suggestKeywords !== 'undefined' && - parser.yy.result.suggestKeywords.length === 1 && - parser.yy.result.suggestKeywords[0].value === '*') { - delete parser.yy.result.suggestKeywords; - } - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestColumns, anyOwner: false, isColumnWrapper: true }); - } - } else { - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestColumns, anyOwner: false, isColumnWrapper: true }); - } - } - } - - if (typeof parser.yy.result.colRef !== 'undefined' && !parser.yy.result.colRef.linked) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.colRef }); - - var primaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries); - if (primaries.length === 0 || (primaries.length > 1 && parser.yy.result.colRef.identifierChain.length === 1)) { - parser.yy.result.colRef.identifierChain = []; - } - } - if (typeof parser.yy.result.suggestKeyValues !== 'undefined' && !parser.yy.result.suggestKeyValues.linked) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestKeyValues }); - } - }; - - parser.getSubQuery = function (cols) { - var columns = []; - cols.selectList.forEach(function (col) { - var result = {}; - if (col.alias) { - result.alias = col.alias; - } - if (col.valueExpression && col.valueExpression.columnReference) { - result.identifierChain = col.valueExpression.columnReference - } else if (col.asterisk) { - result.identifierChain = [{asterisk: true}]; - } - if (col.valueExpression && col.valueExpression.types && col.valueExpression.types.length === 1) { - result.type = col.valueExpression.types[0]; - } - - columns.push(result); - }); - - return { - columns: columns - }; - }; - - parser.addTablePrimary = function (ref) { - if (typeof parser.yy.latestTablePrimaries === 'undefined') { - parser.yy.latestTablePrimaries = []; - } - parser.yy.latestTablePrimaries.push(ref); - }; - - parser.suggestFileFormats = function () { - if (parser.isHive()) { - parser.suggestKeywords(['AVRO', 'INPUTFORMAT', 'ORC', 'PARQUET', 'RCFILE', 'SEQUENCEFILE', 'TEXTFILE']); - } else { - parser.suggestKeywords(['AVRO', 'KUDU', 'ORC', 'PARQUET', 'RCFILE', 'SEQUENCEFILE', 'TEXTFILE']); - } - }; - - parser.getKeywordsForOptionalsLR = function (optionals, keywords, override) { - var result = []; - - for (var i = 0; i < optionals.length; i++) { - if (!optionals[i] && (typeof override === 'undefined' || override[i])) { - if (keywords[i] instanceof Array) { - result = result.concat(keywords[i]); - } else { - result.push(keywords[i]); - } - } else if (optionals[i]) { - break; - } - } - return result; - }; - - parser.suggestDdlAndDmlKeywords = function (extraKeywords) { - var keywords = ['ALTER', 'CREATE', 'DESCRIBE', 'DROP', 'GRANT', 'INSERT', 'REVOKE', 'SELECT', 'SET', 'SHOW', 'TRUNCATE', 'UPDATE', 'USE', 'WITH']; - - if (extraKeywords) { - keywords = keywords.concat(extraKeywords); - } - - if (parser.isHive()) { - keywords = keywords.concat(['ABORT', 'ANALYZE TABLE', 'DELETE', 'EXPORT', 'IMPORT', 'LOAD', 'MERGE', 'MSCK', 'RELOAD FUNCTION', 'RESET']); - } - - if (parser.isImpala()) { - keywords = keywords.concat(['COMMENT ON', 'COMPUTE', 'DELETE', 'INVALIDATE METADATA', 'LOAD', 'REFRESH', 'UPSERT']); - } - - parser.suggestKeywords(keywords); - }; - - parser.checkForSelectListKeywords = function (selectList) { - if (selectList.length === 0) { - return; - } - var last = selectList[selectList.length - 1]; - if (!last || !last.valueExpression) { - return; - } - var valueExpressionKeywords = parser.getValueExpressionKeywords(last.valueExpression); - var keywords = []; - if (last.suggestKeywords) { - keywords = keywords.concat(last.suggestKeywords); - } - if (valueExpressionKeywords.suggestKeywords) { - keywords = keywords.concat(valueExpressionKeywords.suggestKeywords); - } - if (valueExpressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(valueExpressionKeywords.suggestColRefKeywords); - parser.addColRefIfExists(last.valueExpression); - } - if (!last.alias) { - keywords.push('AS'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - }; - - parser.checkForKeywords = function (expression) { - if (expression) { - if (expression.suggestKeywords && expression.suggestKeywords.length > 0) { - parser.suggestKeywords(expression.suggestKeywords); - } - if (expression.suggestColRefKeywords) { - parser.suggestColRefKeywords(expression.suggestColRefKeywords); - parser.addColRefIfExists(expression); - } - } - }; - - parser.createWeightedKeywords = function (keywords, weight) { - var result = []; - keywords.forEach(function (keyword) { - if (typeof keyword.weight !== 'undefined') { - keyword.weight = weight + (keyword.weight / 10); - result.push(keyword); - } else { - result.push({value: keyword, weight: weight}); - } - }); - return result; - }; - - parser.suggestKeywords = function (keywords) { - var weightedKeywords = []; - if (keywords.length == 0) { - return; - } - keywords.forEach(function (keyword) { - if (typeof keyword.weight !== 'undefined') { - weightedKeywords.push(keyword); - } else { - weightedKeywords.push({value: keyword, weight: -1}) - } - }); - weightedKeywords.sort(function (a, b) { - if (a.weight !== b.weight) { - return b.weight - a.weight; - } - return a.value.localeCompare(b.value); - }); - parser.yy.result.suggestKeywords = weightedKeywords; - }; - - parser.suggestColRefKeywords = function (colRefKeywords) { - parser.yy.result.suggestColRefKeywords = colRefKeywords; - }; - - parser.suggestTablesOrColumns = function (identifier) { - if (typeof parser.yy.latestTablePrimaries == 'undefined') { - parser.suggestTables({identifierChain: [{name: identifier}]}); - return; - } - var tableRef = parser.yy.latestTablePrimaries.filter(function (tablePrimary) { - return equalIgnoreCase(tablePrimary.alias, identifier); - }); - if (tableRef.length > 0) { - parser.suggestColumns({identifierChain: [{name: identifier}]}); - } else { - parser.suggestTables({identifierChain: [{name: identifier}]}); - } - }; - - parser.suggestFunctions = function (details) { - parser.yy.result.suggestFunctions = details || {}; - }; - - parser.suggestAggregateFunctions = function () { - var primaries = []; - var aliases = {}; - parser.yy.latestTablePrimaries.forEach(function (primary) { - if (typeof primary.alias !== 'undefined') { - aliases[primary.alias] = true; - } - // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...) - if (typeof primary.identifierChain !== 'undefined' && !aliases[primary.identifierChain[0].name] && typeof primary.owner === 'undefined') { - primaries.push(primary); - } - }); - parser.yy.result.suggestAggregateFunctions = {tablePrimaries: primaries}; - }; - - parser.suggestAnalyticFunctions = function () { - parser.yy.result.suggestAnalyticFunctions = true; - }; - - parser.suggestSetOptions = function () { - parser.yy.result.suggestSetOptions = true; - }; - - parser.suggestIdentifiers = function (identifiers) { - parser.yy.result.suggestIdentifiers = identifiers; - }; - - parser.suggestColumns = function (details) { - if (typeof details === 'undefined') { - details = {identifierChain: []}; - } else if (typeof details.identifierChain === 'undefined') { - details.identifierChain = []; - } - parser.yy.result.suggestColumns = details; - }; - - parser.suggestGroupBys = function (details) { - parser.yy.result.suggestGroupBys = details || {}; - }; - - parser.suggestOrderBys = function (details) { - parser.yy.result.suggestOrderBys = details || {}; - }; - - parser.suggestFilters = function (details) { - parser.yy.result.suggestFilters = details || {}; - }; - - parser.suggestKeyValues = function (details) { - parser.yy.result.suggestKeyValues = details || {}; - }; - - parser.suggestTables = function (details) { - parser.yy.result.suggestTables = details || {}; - }; - - var adjustLocationForCursor = function (location) { - // columns are 0-based and lines not, so add 1 to cols - var newLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - if (parser.yy.cursorFound) { - if (parser.yy.cursorFound.first_line === newLocation.first_line && parser.yy.cursorFound.last_column <= newLocation.first_column) { - var additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. - newLocation.first_column = newLocation.first_column + additionalSpace; - newLocation.last_column = newLocation.last_column + additionalSpace; - } - } - return newLocation; - }; - - parser.addFunctionLocation = function (location, functionName) { - // Remove trailing '(' from location - var adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column, - last_column: location.last_column - 1 - }; - parser.yy.locations.push({ - type: 'function', - location: adjustLocationForCursor(adjustedLocation), - function: functionName.toLowerCase() - }); - }; - - parser.addStatementLocation = function (location) { - // Don't report lonely cursor as a statement - if (location.first_line === location.last_line && Math.abs(location.last_column - location.first_column) === 1) { - return; - } - var adjustedLocation; - if (parser.yy.cursorFound && parser.yy.cursorFound.last_line === location.last_line && - parser.yy.cursorFound.first_column >= location.first_column && parser.yy.cursorFound.last_column <= location.last_column) { - var additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + additionalSpace - (parser.yy.partialCursor ? 0 : 2) - } - } else { - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - } - } - - parser.yy.locations.push({ - type: 'statement', - location: adjustedLocation - }); - }; - - parser.firstDefined = function () { - for (var i = 0; i + 1 < arguments.length; i += 2) { - if (arguments[i]) { - return arguments[i + 1]; - } - } - }; - - parser.addClauseLocation = function (type, precedingLocation, locationIfPresent, isCursor) { - var location; - if (isCursor) { - if (parser.yy.partialLengths.left === 0 && parser.yy.partialLengths.right === 0) { - location = { - type: type, - missing: true, - location: adjustLocationForCursor({ - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - }) - } - } else { - location = { - type: type, - missing: false, - location: { - first_line: locationIfPresent.last_line, - first_column: locationIfPresent.last_column - 1, - last_line: locationIfPresent.last_line, - last_column: locationIfPresent.last_column - 1 + parser.yy.partialLengths.right + parser.yy.partialLengths.left - } - } - } - } else { - location = { - type: type, - missing: !locationIfPresent, - location: adjustLocationForCursor(locationIfPresent || { - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - }) - }; - } - if (parser.isInSubquery()) { - location.subquery = true; - } - parser.yy.locations.push(location) - }; - - parser.addStatementTypeLocation = function (identifier, location, additionalText) { - if (!parser.isImpala()) { - return; - } - var loc = { - type: 'statementType', - location: adjustLocationForCursor(location), - identifier: identifier - }; - if (typeof additionalText !== 'undefined') { - switch (identifier) { - case 'ALTER': - if (/ALTER\s+VIEW/i.test(additionalText)) { - loc.identifier = 'ALTER VIEW'; - } else { - loc.identifier = 'ALTER TABLE'; - } - break; - case 'COMPUTE': - loc.identifier = 'COMPUTE STATS'; - break; - case 'CREATE': - if (/CREATE\s+VIEW/i.test(additionalText)) { - loc.identifier = 'CREATE VIEW'; - } else if (/CREATE\s+TABLE/i.test(additionalText)) { - loc.identifier = 'CREATE TABLE'; - } else if (/CREATE\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'CREATE DATABASE'; - } else if (/CREATE\s+ROLE/i.test(additionalText)) { - loc.identifier = 'CREATE ROLE'; - } else if (/CREATE\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'CREATE FUNCTION'; - } else { - loc.identifier = 'CREATE TABLE'; - } - break; - case 'DROP': - if (/DROP\s+VIEW/i.test(additionalText)) { - loc.identifier = 'DROP VIEW'; - } else if (/DROP\s+TABLE/i.test(additionalText)) { - loc.identifier = 'DROP TABLE'; - } else if (/DROP\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'DROP DATABASE'; - } else if (/DROP\s+ROLE/i.test(additionalText)) { - loc.identifier = 'DROP ROLE'; - } else if (/DROP\s+STATS/i.test(additionalText)) { - loc.identifier = 'DROP STATS'; - } else if (/DROP\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'DROP FUNCTION'; - } else { - loc.identifier = 'DROP TABLE'; - } - break; - case 'INVALIDATE': - loc.identifier = 'INVALIDATE METADATA'; - break; - case 'LOAD': - loc.identifier = 'LOAD DATA'; - break; - case 'TRUNCATE': - loc.identifier = 'TRUNCATE TABLE'; - break; - default: - } - } - parser.yy.locations.push(loc); - }; - - parser.addFileLocation = function (location, path) { - parser.yy.locations.push({ - type: 'file', - location: adjustLocationForCursor(location), - path: path - }); - }; - - parser.addDatabaseLocation = function (location, identifierChain) { - parser.yy.locations.push({ - type: 'database', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addTableLocation = function (location, identifierChain) { - parser.yy.locations.push({ - type: 'table', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addColumnAliasLocation = function (location, alias, parentLocation) { - var aliasLocation = { - type: 'alias', - source: 'column', - alias: alias, - location: adjustLocationForCursor(location), - parentLocation: adjustLocationForCursor(parentLocation) - }; - if (parser.yy.locations.length && parser.yy.locations[parser.yy.locations.length - 1].type === 'column') { - var closestColumn = parser.yy.locations[parser.yy.locations.length - 1]; - if (closestColumn.location.first_line === aliasLocation.parentLocation.first_line && - closestColumn.location.last_line === aliasLocation.parentLocation.last_line && - closestColumn.location.first_column === aliasLocation.parentLocation.first_column && - closestColumn.location.last_column === aliasLocation.parentLocation.last_column) { - parser.yy.locations[parser.yy.locations.length - 1].alias = alias; - } - } - parser.yy.locations.push(aliasLocation); - }; - - parser.addTableAliasLocation = function (location, alias, identifierChain) { - parser.yy.locations.push({ - type: 'alias', - source: 'table', - alias: alias, - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addSubqueryAliasLocation = function (location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'subquery', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addAsteriskLocation = function (location, identifierChain) { - parser.yy.locations.push({ - type: 'asterisk', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addVariableLocation = function (location, value) { - if (/\$\{[^}]*\}/.test(value)) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: value - }); - } - }; - - parser.addColumnLocation = function (location, identifierChain) { - var isVariable = identifierChain.length && /\$\{[^}]*\}/.test(identifierChain[identifierChain.length - 1].name); - if (isVariable) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }); - } else { - parser.yy.locations.push({ - type: 'column', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }); - } - }; - - parser.addCteAliasLocation = function (location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'cte', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addUnknownLocation = function (location, identifierChain) { - var isVariable = identifierChain.length && /\$\{[^}]*\}/.test(identifierChain[identifierChain.length - 1].name); - var loc; - if (isVariable) { - loc = { - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }; - } else { - loc = { - type: 'unknown', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }; - } - parser.yy.locations.push(loc); - return loc; - }; - - parser.addColRefToVariableIfExists = function (left, right) { - if (left && left.columnReference && left.columnReference.length && right && right.columnReference && right.columnReference.length && parser.yy.locations.length > 1) { - var addColRefToVariableLocation = function (variableValue, colRef) { - // See if colref is actually an alias - if (colRef.length === 1 && colRef[0].name) { - parser.yy.locations.some(function (location) { - if (location.type === 'column' && location.alias === colRef[0].name) { - colRef = location.identifierChain; - return true; - } - }); - } - - for (var i = parser.yy.locations.length - 1; i > 0; i--) { - var location = parser.yy.locations[i]; - if (location.type === 'variable' && location.value === variableValue) { - location.colRef = { identifierChain: colRef }; - break; - } - } - }; - - if (/\$\{[^}]*\}/.test(left.columnReference[0].name)) { - // left is variable - addColRefToVariableLocation(left.columnReference[0].name, right.columnReference); - } else if (/\$\{[^}]*\}/.test(right.columnReference[0].name)) { - // right is variable - addColRefToVariableLocation(right.columnReference[0].name, left.columnReference); - } - } - }; - - parser.suggestDatabases = function (details) { - parser.yy.result.suggestDatabases = details || {}; - }; - - parser.suggestHdfs = function (details) { - parser.yy.result.suggestHdfs = details || {}; - }; - - parser.suggestValues = function (details) { - parser.yy.result.suggestValues = details || {}; - }; - - parser.determineCase = function (text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.handleQuotedValueWithCursor = function (lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - var cursorIndex = parser.yy.partialCursor ? yytext.indexOf('\u2021') : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - var remainder = yytext.substring(cursorIndex + 1); - var remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []).length; - if (remainingQuotes > 0 && remainingQuotes & 1 != 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - var lexerModified = false; - - /** - * Main parser function - */ - parser.parseSql = function (beforeCursor, afterCursor, dialect, debug) { - // Jison counts CRLF as two lines in the locations - beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); - afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); - parser.yy.result = {locations: []}; - parser.yy.lowerCase = false; - parser.yy.locations = []; - parser.yy.allLocations = []; - parser.yy.subQueries = []; - parser.yy.errors = []; - parser.yy.selectListAliases = []; - - parser.yy.locationsStack = []; - parser.yy.primariesStack = []; - parser.yy.lateralViewsStack = []; - parser.yy.subQueriesStack = []; - parser.yy.resultStack = []; - parser.yy.selectListAliasesStack = []; - - delete parser.yy.caseDetermined; - delete parser.yy.cursorFound; - delete parser.yy.partialCursor; - - parser.prepareNewStatement(); - - var REASONABLE_SURROUNDING_LENGTH = 150000; // About 3000 lines before and after - - if (beforeCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if ((beforeCursor.length - beforeCursor.lastIndexOf(';')) > REASONABLE_SURROUNDING_LENGTH) { - // Bail out if the last complete statement is more than 150000 chars before - return {}; - } - // Cut it at the first statement found within 150000 chars before - var lastReasonableChunk = beforeCursor.substring(beforeCursor.length - REASONABLE_SURROUNDING_LENGTH); - beforeCursor = lastReasonableChunk.substring(lastReasonableChunk.indexOf(';') + 1); - } - - if (afterCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if ((afterCursor.length - afterCursor.indexOf(';')) > REASONABLE_SURROUNDING_LENGTH) { - // No need to bail out for what's comes after, we can still get keyword completion - afterCursor = ''; - } else { - // Cut it at the last statement found within 150000 chars after - var firstReasonableChunk = afterCursor.substring(0, REASONABLE_SURROUNDING_LENGTH); - afterCursor = firstReasonableChunk.substring(0, firstReasonableChunk.lastIndexOf(';')); - } - } - - parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); - - if (parser.yy.partialLengths.left > 0) { - beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); - } - - if (parser.yy.partialLengths.right > 0) { - afterCursor = afterCursor.substring(parser.yy.partialLengths.right); - } - - parser.yy.activeDialect = (dialect !== 'hive' && dialect !== 'impala') ? undefined : dialect; - - // Hack to set the inital state of the lexer without first having to hit a token - // has to be done as the first token found can be dependant on dialect - if (!lexerModified) { - var originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function (input, yy) { - var lexer = originalSetInput.bind(parser.lexer)(input, yy); - if (typeof parser.yy.activeDialect !== 'undefined') { - lexer.begin(parser.yy.activeDialect); - } - return lexer; - }; - lexerModified = true; - } - - var result; - try { - // Add |CURSOR| or |PARTIAL_CURSOR| to represent the different cursor states in the lexer - result = parser.parse(beforeCursor + (beforeCursor.length == 0 || /[\s\(]$$/.test(beforeCursor) ? ' \u2020 ' : '\u2021') + afterCursor); - } catch (err) { - // On any error try to at least return any existing result - if (typeof parser.yy.result === 'undefined') { - throw err; - } - if (debug) { - console.log(err); - console.error(err.stack); - } - result = parser.yy.result; - } - if (parser.yy.errors.length > 0) { - parser.yy.result.errors = parser.yy.errors; - if (debug) { - console.log(parser.yy.errors); - } - } - try { - linkTablePrimaries(); - parser.commitLocations(); - // Clean up and prioritize - prioritizeSuggestions(); - } catch (err) { - if (debug) { - console.log(err); - console.error(err.stack); - } - } - - - parser.yy.allLocations.sort(function (a, b) { - if (a.location.first_line !== b.location.first_line) { - return a.location.first_line - b.location.first_line; - } - if (a.location.first_column !== b.location.first_column) { - return a.location.first_column - b.location.first_column; - } - if (a.location.last_column !== b.location.last_column) { - return b.location.last_column - a.location.last_column; - } - return b.type.localeCompare(a.type); - }); - parser.yy.result.locations = parser.yy.allLocations; - - parser.yy.result.locations.forEach(function (location) { - delete location.linked; - }); - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - delete parser.yy.result.suggestColumns.linked; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) { - if (typeof parser.yy.result[suggestionType] !== 'undefined') { - delete parser.yy.result[suggestionType].linked; - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - delete parser.yy.result.colRef.linked; - } - if (typeof parser.yy.result.suggestKeyValues !== 'undefined') { - delete parser.yy.result.suggestKeyValues.linked; - } - - if (typeof result.error !== 'undefined' && typeof result.error.expected !== 'undefined') { - // Remove any expected tokens from other dialects, jison doesn't remove tokens from other lexer states. - var actualExpected = {}; - result.error.expected.forEach(function (expected) { - var match = expected.match(/\<([a-z]+)\>(.*)/); - if (match !== null) { - if (typeof parser.yy.activeDialect !== 'undefined' && parser.yy.activeDialect === match[1]) { - actualExpected[("'" + match[2])] = true; - } - } else if (expected.indexOf('CURSOR') == -1) { - actualExpected[expected] = true; - } - }); - result.error.expected = Object.keys(actualExpected); - } - - if (typeof result.error !== 'undefined' && result.error.recoverable) { - delete result.error; - } - - // Adjust all the statement locations to include white space surrounding them - var lastStatementLocation = null; - result.locations.forEach(function (location) { - if (location.type === 'statement') { - if (lastStatementLocation === null) { - location.location.first_line = 1; - location.location.first_column = 1; - } else { - location.location.first_line = lastStatementLocation.location.last_line; - location.location.first_column = lastStatementLocation.location.last_column + 1; - } - lastStatementLocation = location; - } - }); - - return result; - }; - }; - - var SYNTAX_PARSER_NOOP_FUNCTIONS = ['prepareNewStatement', 'addCommonTableExpressions', 'pushQueryState', 'popQueryState', 'suggestSelectListAliases', - 'suggestValueExpressionKeywords', 'getSelectListKeywords', 'getValueExpressionKeywords', 'addColRefIfExists', 'selectListNoTableSuggest', 'suggestJoinConditions', - 'suggestJoins', 'valueExpressionSuggest', 'applyTypeToSuggestions', 'applyArgumentTypesToSuggestions', 'commitLocations', 'identifyPartials', - 'getSubQuery', 'addTablePrimary', 'suggestFileFormats', 'suggestDdlAndDmlKeywords', 'checkForSelectListKeywords', 'checkForKeywords', - 'suggestKeywords', 'suggestColRefKeywords', 'suggestTablesOrColumns', 'suggestFunctions', 'suggestAggregateFunctions', 'suggestAnalyticFunctions', - 'suggestColumns', 'suggestGroupBys', 'suggestIdentifiers', 'suggestOrderBys', 'suggestFilters', 'suggestKeyValues', 'suggestTables', 'addFunctionLocation', - 'addStatementLocation', 'firstDefined', 'addClauseLocation', 'addStatementTypeLocation', 'addFileLocation', 'addDatabaseLocation', 'addColumnAliasLocation', - 'addTableAliasLocation', 'addSubqueryAliasLocation', 'addTableLocation', 'addAsteriskLocation', 'addVariableLocation', 'addColumnLocation', 'addCteAliasLocation', - 'addUnknownLocation', 'addColRefToVariableIfExists', 'suggestDatabases', 'suggestHdfs', 'suggestValues']; - - var SYNTAX_PARSER_NOOP = function () {}; - - var initSyntaxParser = function (parser) { - - // Noop functions for compatibility with the autocomplete parser as the grammar is shared - SYNTAX_PARSER_NOOP_FUNCTIONS.forEach(function (noopFn) { - parser[noopFn] = SYNTAX_PARSER_NOOP - }); - - parser.yy.locations = [{}]; - - parser.determineCase = function (text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.getKeywordsForOptionalsLR = function () { - return []; - }; - - parser.mergeSuggestKeywords = function () { - return {}; - }; - - parser.getTypeKeywords = function () { - return []; - }; - - parser.getColumnDataTypeKeywords = function () { - return []; - }; - - parser.findCaseType = function () { - return {types: ['T']}; - }; - - parser.findReturnTypes = function (functionName) { - return ['T']; - }; - - parser.isHive = function () { - return parser.yy.activeDialect === 'hive'; - }; - - parser.isImpala = function () { - return parser.yy.activeDialect === 'impala'; - }; - - parser.expandImpalaIdentifierChain = function () { - return []; - }; - - parser.expandIdentifierChain = function () { - return []; - }; - - parser.expandLateralViews = function () { - return []; - }; - - parser.createWeightedKeywords = function () { - return []; - }; - - parser.handleQuotedValueWithCursor = function (lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - var cursorIndex = parser.yy.partialCursor ? yytext.indexOf('\u2021') : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - var remainder = yytext.substring(cursorIndex + 1); - var remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []).length; - if (remainingQuotes > 0 && remainingQuotes & 1 != 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - var lexerModified = false; - - parser.yy.parseError = function (str, hash) { - parser.yy.error = hash; - }; - - var IGNORED_EXPECTED = { - ';': true, - '.': true, - 'EOF': true, - 'UNSIGNED_INTEGER': true, - 'UNSIGNED_INTEGER_E': true, - 'REGULAR_IDENTIFIER': true, // TODO: Indicate that an identifier was expected - 'CURSOR': true, - 'PARTIAL_CURSOR': true, - 'HDFS_START_QUOTE': true, - 'HDFS_PATH': true, - 'HDFS_END_QUOTE' : true, - 'COMPARISON_OPERATOR': true, // TODO: Expand in results when found - 'ARITHMETIC_OPERATOR' : true, // TODO: Expand in results when found - 'VARIABLE_REFERENCE': true, - 'BACKTICK': true, - 'VALUE': true, - 'PARTIAL_VALUE': true, - 'SINGLE_QUOTE': true, - 'DOUBLE_QUOTE': true - }; - - var CLEAN_EXPECTED = { - 'BETWEEN_AND': 'AND', - 'OVERWRITE_DIRECTORY' : 'OVERWRITE', - 'STORED_AS_DIRECTORIES' : 'STORED', - 'LIKE_PARQUET' : 'LIKE', - 'PARTITION_VALUE' : 'PARTITION' - }; - - parser.parseSyntax = function (beforeCursor, afterCursor, dialect, debug) { - parser.yy.caseDetermined = false; - parser.yy.error = undefined; - - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - parser.yy.activeDialect = (dialect !== 'hive' && dialect !== 'impala') ? undefined : dialect; - - // Hack to set the inital state of the lexer without first having to hit a token - // has to be done as the first token found can be dependant on dialect - if (!lexerModified) { - var originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function (input, yy) { - var lexer = originalSetInput.bind(parser.lexer)(input, yy); - if (typeof parser.yy.activeDialect !== 'undefined') { - lexer.begin(parser.yy.activeDialect); - } - return lexer; - }; - lexerModified = true; - } - - // TODO: Find a way around throwing an exception when the parser finds a syntax error - try { - parser.yy.error = false; - parser.parse(beforeCursor + afterCursor); - } catch (err) { - if (debug) { - console.log(err); - console.error(err.stack); - console.log(parser.yy.error); - } - } - - if (parser.yy.error && (parser.yy.error.loc.last_column < beforeCursor.length || !beforeCursor.endsWith(parser.yy.error.text))) { - var weightedExpected = []; - - var addedExpected = {}; - - var isLowerCase = parser.yy.caseDetermined && parser.yy.lowerCase || parser.yy.error.text.toLowerCase() === parser.yy.error.text; - - if (parser.yy.error.expected.length == 2 && parser.yy.error.expected.indexOf('\';\'') !== -1 && parser.yy.error.expected.indexOf('\'EOF\'') !== -1) { - parser.yy.error.expected = []; - parser.yy.error.expectedStatementEnd = true; - return parser.yy.error; - } - for (var i = 0; i < parser.yy.error.expected.length; i++) { - var expected = parser.yy.error.expected[i]; - // Strip away the surrounding ' chars - expected = expected.substring(1, expected.length - 1); - // TODO: Only suggest alphanumeric? - if (!IGNORED_EXPECTED[expected] && /[a-z_]+/i.test(expected)) { - if (dialect && expected.indexOf('<' + dialect + '>') == 0) { - expected = expected.substring(dialect.length + 2); - } else if (/^<[a-z]+>/.test(expected)) { - continue; - } - expected = CLEAN_EXPECTED[expected] || expected; - if (expected === parser.yy.error.text.toUpperCase()) { - // Can happen when the lexer entry for a rule contains multiple words like 'stored' in 'stored as parquet' - return false; - } - var text = isLowerCase ? expected.toLowerCase() : expected; - if (text && !addedExpected[text]) { - addedExpected[text] = true; - weightedExpected.push({ - text: text, - distance: stringDistance(parser.yy.error.text, text, true) - }); - } - } - } - if (weightedExpected.length === 0) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - weightedExpected.sort(function (a, b) { - if (a.distance === b.distance) { - return a.text.localeCompare(b.text); - } - return a.distance - b.distance - }); - parser.yy.error.expected = weightedExpected; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } else if (parser.yy.error) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - return false; - } - }; - - var initGlobalSearchParser = function (parser) { - - parser.identifyPartials = function (beforeCursor, afterCursor) { - var beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - var afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return {left: beforeMatch ? beforeMatch[0].length : 0, right: afterMatch ? afterMatch[0].length : 0}; - }; - - parser.mergeFacets = function (a, b) { - if (!a.facets) { - a.facets = {}; - } - if (!b.facets) { - return; - } - Object.keys(b.facets).forEach(function (key) { - if (a.facets[key]) { - Object.keys(b.facets[key]).forEach(function (val) { - a.facets[key][val.toLowerCase()] = true; - }); - } else { - a.facets[key] = b.facets[key]; - } - }); - }; - - parser.mergeText = function (a, b) { - if (!a.text) { - a.text = []; - } - if (!b.text) { - return; - } - a.text = a.text.concat(b.text); - }; - - parser.handleQuotedValueWithCursor = function (lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - var cursorIndex = yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - var remainder = yytext.substring(cursorIndex + 1); - var remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []).length; - if (remainingQuotes > 0 && remainingQuotes & 1 != 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - parser.parseGlobalSearch = function (beforeCursor, afterCursor, debug) { - delete parser.yy.cursorFound; - - var result; - try { - result = parser.parse(beforeCursor + '\u2020' + afterCursor); - } catch (err) { - if (debug) { - console.log(err); - console.error(err.stack); - console.log(parser.yy.error); - } - return { - facets: {}, - text: [] - } - } - return result; - }; - }; - - return { - initSqlParser: initSqlParser, - initSyntaxParser: initSyntaxParser, - stringDistance: stringDistance, - initGlobalSearchParser: initGlobalSearchParser - }; -})(); -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var sqlAutocompleteParser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,6,10,19,24,26,28,30,32,33,34,37,38,39,40,42,43,45,46,47,48,49,50,51,52,54,56,58,59,60,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,85,86,87,88,89,90,91,92,93,95,96,97,98,99,100,101,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,128,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,156,157,158,160,161,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,438,439,440,441,452,569,570,571,577,763,826,868,930,931,933,1166,1190,1191,1192,1193,1195,1213,1227,1252,1253,1278,1314],$V1=[2,4],$V2=[6,10],$V3=[2,5],$V4=[1,6],$V5=[1,385],$V6=[1,359],$V7=[1,442],$V8=[1,13],$V9=[1,422],$Va=[1,17],$Vb=[1,19],$Vc=[1,20],$Vd=[1,23],$Ve=[1,24],$Vf=[1,78],$Vg=[1,79],$Vh=[1,80],$Vi=[1,25],$Vj=[1,81],$Vk=[1,82],$Vl=[1,30],$Vm=[1,32],$Vn=[1,83],$Vo=[1,33],$Vp=[1,34],$Vq=[1,35],$Vr=[1,38],$Vs=[1,39],$Vt=[1,383],$Vu=[1,473],$Vv=[1,42],$Vw=[1,43],$Vx=[1,46],$Vy=[1,85],$Vz=[1,88],$VA=[1,89],$VB=[1,91],$VC=[1,50],$VD=[1,90],$VE=[1,51],$VF=[1,92],$VG=[1,93],$VH=[1,545],$VI=[1,94],$VJ=[1,95],$VK=[1,56],$VL=[1,96],$VM=[1,562],$VN=[1,531],$VO=[1,98],$VP=[1,58],$VQ=[1,100],$VR=[1,102],$VS=[1,59],$VT=[1,60],$VU=[1,103],$VV=[1,104],$VW=[1,105],$VX=[1,62],$VY=[1,63],$VZ=[1,106],$V_=[1,65],$V$=[1,532],$V01=[1,67],$V11=[1,57],$V21=[1,68],$V31=[1,69],$V41=[1,107],$V51=[1,108],$V61=[1,110],$V71=[1,111],$V81=[1,112],$V91=[1,113],$Va1=[1,71],$Vb1=[1,559],$Vc1=[1,114],$Vd1=[1,115],$Ve1=[1,72],$Vf1=[1,116],$Vg1=[1,118],$Vh1=[1,278],$Vi1=[1,119],$Vj1=[1,121],$Vk1=[1,122],$Vl1=[1,123],$Vm1=[1,124],$Vn1=[1,75],$Vo1=[1,125],$Vp1=[1,126],$Vq1=[1,127],$Vr1=[1,542],$Vs1=[1,76],$Vt1=[1,129],$Vu1=[1,131],$Vv1=[1,307],$Vw1=[1,310],$Vx1=[1,311],$Vy1=[1,312],$Vz1=[1,316],$VA1=[1,317],$VB1=[1,318],$VC1=[1,319],$VD1=[1,196],$VE1=[1,198],$VF1=[1,199],$VG1=[1,179],$VH1=[1,204],$VI1=[1,205],$VJ1=[1,194],$VK1=[1,186],$VL1=[1,166],$VM1=[1,290],$VN1=[1,260],$VO1=[1,330],$VP1=[1,349],$VQ1=[1,384],$VR1=[1,16],$VS1=[1,40],$VT1=[1,14],$VU1=[1,15],$VV1=[1,18],$VW1=[1,21],$VX1=[1,22],$VY1=[1,26],$VZ1=[1,27],$V_1=[1,28],$V$1=[1,29],$V02=[1,31],$V12=[1,36],$V22=[1,37],$V32=[1,41],$V42=[1,44],$V52=[1,45],$V62=[1,47],$V72=[1,48],$V82=[1,49],$V92=[1,52],$Va2=[1,53],$Vb2=[1,54],$Vc2=[1,55],$Vd2=[1,61],$Ve2=[1,64],$Vf2=[1,66],$Vg2=[1,70],$Vh2=[1,73],$Vi2=[1,74],$Vj2=[1,77],$Vk2=[1,84],$Vl2=[1,86],$Vm2=[1,87],$Vn2=[1,97],$Vo2=[1,99],$Vp2=[1,101],$Vq2=[1,109],$Vr2=[1,117],$Vs2=[1,120],$Vt2=[1,128],$Vu2=[1,130],$Vv2=[1,132],$Vw2=[1,133],$Vx2=[1,134],$Vy2=[1,135],$Vz2=[1,136],$VA2=[1,137],$VB2=[1,138],$VC2=[1,139],$VD2=[1,140],$VE2=[1,141],$VF2=[1,142],$VG2=[1,143],$VH2=[1,144],$VI2=[1,145],$VJ2=[1,146],$VK2=[1,147],$VL2=[1,148],$VM2=[1,149],$VN2=[1,150],$VO2=[1,151],$VP2=[1,152],$VQ2=[1,153],$VR2=[1,154],$VS2=[1,155],$VT2=[1,156],$VU2=[1,157],$VV2=[1,158],$VW2=[1,159],$VX2=[1,160],$VY2=[1,161],$VZ2=[1,162],$V_2=[1,163],$V$2=[1,164],$V03=[1,165],$V13=[1,167],$V23=[1,168],$V33=[1,169],$V43=[1,170],$V53=[1,171],$V63=[1,172],$V73=[1,173],$V83=[1,174],$V93=[1,175],$Va3=[1,176],$Vb3=[1,177],$Vc3=[1,178],$Vd3=[1,180],$Ve3=[1,181],$Vf3=[1,182],$Vg3=[1,183],$Vh3=[1,184],$Vi3=[1,185],$Vj3=[1,187],$Vk3=[1,188],$Vl3=[1,189],$Vm3=[1,190],$Vn3=[1,191],$Vo3=[1,192],$Vp3=[1,193],$Vq3=[1,195],$Vr3=[1,197],$Vs3=[1,200],$Vt3=[1,201],$Vu3=[1,202],$Vv3=[1,203],$Vw3=[1,206],$Vx3=[1,207],$Vy3=[1,208],$Vz3=[1,209],$VA3=[1,210],$VB3=[1,211],$VC3=[1,212],$VD3=[1,213],$VE3=[1,214],$VF3=[1,215],$VG3=[1,216],$VH3=[1,217],$VI3=[1,218],$VJ3=[1,219],$VK3=[1,220],$VL3=[1,221],$VM3=[1,222],$VN3=[1,223],$VO3=[1,224],$VP3=[1,225],$VQ3=[1,226],$VR3=[1,227],$VS3=[1,228],$VT3=[1,229],$VU3=[1,230],$VV3=[1,231],$VW3=[1,232],$VX3=[1,233],$VY3=[1,234],$VZ3=[1,235],$V_3=[1,236],$V$3=[1,237],$V04=[1,238],$V14=[1,239],$V24=[1,240],$V34=[1,241],$V44=[1,242],$V54=[1,243],$V64=[1,244],$V74=[1,245],$V84=[1,246],$V94=[1,247],$Va4=[1,248],$Vb4=[1,249],$Vc4=[1,250],$Vd4=[1,251],$Ve4=[1,252],$Vf4=[1,253],$Vg4=[1,254],$Vh4=[1,255],$Vi4=[1,256],$Vj4=[1,257],$Vk4=[1,258],$Vl4=[1,259],$Vm4=[1,261],$Vn4=[1,262],$Vo4=[1,263],$Vp4=[1,264],$Vq4=[1,265],$Vr4=[1,266],$Vs4=[1,267],$Vt4=[1,268],$Vu4=[1,269],$Vv4=[1,270],$Vw4=[1,271],$Vx4=[1,272],$Vy4=[1,273],$Vz4=[1,274],$VA4=[1,275],$VB4=[1,276],$VC4=[1,277],$VD4=[1,279],$VE4=[1,280],$VF4=[1,281],$VG4=[1,282],$VH4=[1,283],$VI4=[1,284],$VJ4=[1,285],$VK4=[1,286],$VL4=[1,287],$VM4=[1,288],$VN4=[1,289],$VO4=[1,291],$VP4=[1,292],$VQ4=[1,293],$VR4=[1,294],$VS4=[1,295],$VT4=[1,296],$VU4=[1,297],$VV4=[1,298],$VW4=[1,299],$VX4=[1,300],$VY4=[1,301],$VZ4=[1,302],$V_4=[1,303],$V$4=[1,304],$V05=[1,305],$V15=[1,306],$V25=[1,308],$V35=[1,309],$V45=[1,313],$V55=[1,314],$V65=[1,315],$V75=[1,320],$V85=[1,321],$V95=[1,322],$Va5=[1,323],$Vb5=[1,324],$Vc5=[1,325],$Vd5=[1,326],$Ve5=[1,327],$Vf5=[1,328],$Vg5=[1,329],$Vh5=[1,331],$Vi5=[1,332],$Vj5=[1,333],$Vk5=[1,334],$Vl5=[1,335],$Vm5=[1,336],$Vn5=[1,337],$Vo5=[1,338],$Vp5=[1,339],$Vq5=[1,340],$Vr5=[1,341],$Vs5=[1,342],$Vt5=[1,343],$Vu5=[1,344],$Vv5=[1,345],$Vw5=[1,346],$Vx5=[1,347],$Vy5=[1,348],$Vz5=[1,350],$VA5=[1,351],$VB5=[1,352],$VC5=[1,553],$VD5=[1,554],$VE5=[1,555],$VF5=[1,386],$VG5=[1,533],$VH5=[1,528],$VI5=[1,563],$VJ5=[1,564],$VK5=[1,475],$VL5=[1,540],$VM5=[1,485],$VN5=[1,501],$VO5=[1,423],$VP5=[1,424],$VQ5=[1,425],$VR5=[1,466],$VS5=[1,543],$VT5=[1,474],$VU5=[1,570],$VV5=[1,443],$VW5=[1,444],$VX5=[1,523],$VY5=[1,569],$VZ5=[1,546],$V_5=[1,472],$V$5=[1,558],$V06=[1,541],$V16=[1,588],$V26=[1,587],$V36=[2,213],$V46=[1,592],$V56=[1,614],$V66=[1,615],$V76=[1,616],$V86=[1,617],$V96=[1,618],$Va6=[1,619],$Vb6=[1,620],$Vc6=[1,621],$Vd6=[1,622],$Ve6=[1,623],$Vf6=[1,624],$Vg6=[1,625],$Vh6=[1,626],$Vi6=[1,627],$Vj6=[1,628],$Vk6=[1,629],$Vl6=[1,630],$Vm6=[1,631],$Vn6=[1,632],$Vo6=[1,633],$Vp6=[1,634],$Vq6=[1,635],$Vr6=[1,636],$Vs6=[1,637],$Vt6=[1,638],$Vu6=[1,639],$Vv6=[1,640],$Vw6=[1,641],$Vx6=[1,642],$Vy6=[1,643],$Vz6=[1,644],$VA6=[1,645],$VB6=[1,646],$VC6=[1,647],$VD6=[1,648],$VE6=[1,649],$VF6=[1,650],$VG6=[1,651],$VH6=[1,652],$VI6=[1,653],$VJ6=[1,654],$VK6=[1,655],$VL6=[1,656],$VM6=[1,657],$VN6=[1,658],$VO6=[1,659],$VP6=[1,660],$VQ6=[1,661],$VR6=[1,662],$VS6=[1,663],$VT6=[1,664],$VU6=[1,665],$VV6=[1,666],$VW6=[1,667],$VX6=[1,668],$VY6=[1,669],$VZ6=[1,670],$V_6=[1,671],$V$6=[1,672],$V07=[1,673],$V17=[1,674],$V27=[1,675],$V37=[1,676],$V47=[1,677],$V57=[1,678],$V67=[1,679],$V77=[1,680],$V87=[1,681],$V97=[1,682],$Va7=[1,683],$Vb7=[1,684],$Vc7=[1,685],$Vd7=[1,686],$Ve7=[1,687],$Vf7=[1,688],$Vg7=[1,689],$Vh7=[1,690],$Vi7=[1,691],$Vj7=[1,692],$Vk7=[1,693],$Vl7=[1,591],$Vm7=[1,694],$Vn7=[1,695],$Vo7=[1,696],$Vp7=[1,697],$Vq7=[1,698],$Vr7=[1,699],$Vs7=[1,700],$Vt7=[1,701],$Vu7=[1,702],$Vv7=[1,703],$Vw7=[1,704],$Vx7=[1,705],$Vy7=[1,706],$Vz7=[1,707],$VA7=[1,708],$VB7=[1,709],$VC7=[1,710],$VD7=[1,711],$VE7=[1,712],$VF7=[1,713],$VG7=[1,714],$VH7=[1,715],$VI7=[1,716],$VJ7=[1,717],$VK7=[1,718],$VL7=[1,719],$VM7=[1,720],$VN7=[1,721],$VO7=[1,722],$VP7=[1,723],$VQ7=[1,724],$VR7=[1,725],$VS7=[1,726],$VT7=[1,727],$VU7=[1,728],$VV7=[1,729],$VW7=[1,730],$VX7=[1,731],$VY7=[1,732],$VZ7=[1,733],$V_7=[1,734],$V$7=[1,735],$V08=[1,736],$V18=[1,737],$V28=[1,738],$V38=[1,739],$V48=[1,740],$V58=[1,741],$V68=[1,742],$V78=[1,743],$V88=[1,744],$V98=[1,745],$Va8=[1,611],$Vb8=[1,612],$Vc8=[1,610],$Vd8=[1,608],$Ve8=[1,609],$Vf8=[1,607],$Vg8=[1,599],$Vh8=[1,605],$Vi8=[1,601],$Vj8=[1,604],$Vk8=[1,606],$Vl8=[1,603],$Vm8=[1,600],$Vn8=[1,602],$Vo8=[19,307],$Vp8=[2,2790],$Vq8=[2,309],$Vr8=[1,768],$Vs8=[1,765],$Vt8=[1,767],$Vu8=[2,364],$Vv8=[1,771],$Vw8=[1,769],$Vx8=[1,773],$Vy8=[1,775],$Vz8=[1,779],$VA8=[1,774],$VB8=[1,776],$VC8=[1,778],$VD8=[1,777],$VE8=[2,389],$VF8=[2,399],$VG8=[2,407],$VH8=[1,781],$VI8=[2,440],$VJ8=[1,785],$VK8=[1,786],$VL8=[1,788],$VM8=[2,454],$VN8=[1,798],$VO8=[1,804],$VP8=[1,814],$VQ8=[1,810],$VR8=[1,825],$VS8=[1,848],$VT8=[1,834],$VU8=[1,835],$VV8=[1,816],$VW8=[1,815],$VX8=[1,822],$VY8=[1,846],$VZ8=[1,819],$V_8=[1,828],$V$8=[1,836],$V09=[1,830],$V19=[1,827],$V29=[1,839],$V39=[1,831],$V49=[1,838],$V59=[1,811],$V69=[1,812],$V79=[1,813],$V89=[1,821],$V99=[1,843],$Va9=[1,826],$Vb9=[1,850],$Vc9=[1,817],$Vd9=[1,818],$Ve9=[1,844],$Vf9=[1,849],$Vg9=[1,824],$Vh9=[6,10,399,957],$Vi9=[2,871],$Vj9=[1,857],$Vk9=[19,26,30,59,74,79,80,97,113,131,145,182,218,307,339,352,438,439,440,452,569,570,571,577,763,826,868,930,931,933,1166,1190,1191,1192,1193,1195,1213,1227,1252,1253,1278,1314],$Vl9=[2,174],$Vm9=[1,860],$Vn9=[1,859],$Vo9=[1,861],$Vp9=[26,30,59,74,79,80,97,113,131,145,182,218,307,339,352,438,439,440,452,569,570,571,577,763,826,868,930,931,933,1166,1190,1191,1192,1193,1195,1213,1227,1252,1253,1278,1314],$Vq9=[2,171],$Vr9=[2,557],$Vs9=[2,864],$Vt9=[1,865],$Vu9=[1,867],$Vv9=[2,6,10,399],$Vw9=[1,870],$Vx9=[1,882],$Vy9=[1,902],$Vz9=[1,903],$VA9=[2,3154],$VB9=[2,908],$VC9=[1,924],$VD9=[1,925],$VE9=[1,926],$VF9=[1,938],$VG9=[1,936],$VH9=[1,934],$VI9=[1,937],$VJ9=[1,932],$VK9=[1,933],$VL9=[1,935],$VM9=[1,939],$VN9=[19,178,193,222,262,342],$VO9=[2,653],$VP9=[1,949],$VQ9=[1,950],$VR9=[1,951],$VS9=[1,967],$VT9=[1,998],$VU9=[1,975],$VV9=[1,987],$VW9=[1,999],$VX9=[1,1003],$VY9=[1,991],$VZ9=[1,1006],$V_9=[1,986],$V$9=[1,968],$V0a=[1,1007],$V1a=[1,1008],$V2a=[1,1005],$V3a=[1,973],$V4a=[2,623],$V5a=[1,1000],$V6a=[1,1004],$V7a=[1,996],$V8a=[1,997],$V9a=[1,1022],$Vaa=[1,1028],$Vba=[19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,402],$Vca=[2,627],$Vda=[1,1037],$Vea=[1,1038],$Vfa=[2,633],$Vga=[1,1041],$Vha=[1,1042],$Via=[1,1058],$Vja=[1,1084],$Vka=[1,1089],$Vla=[1,1082],$Vma=[1,1073],$Vna=[1,1072],$Voa=[1,1088],$Vpa=[1,1087],$Vqa=[1,1061],$Vra=[1,1077],$Vsa=[1,1085],$Vta=[1,1092],$Vua=[1,1091],$Vva=[1,1078],$Vwa=[1,1090],$Vxa=[1,1059],$Vya=[1,1060],$Vza=[1,1098],$VAa=[1,1097],$VBa=[1,1101],$VCa=[19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161],$VDa=[1,1109],$VEa=[1,1110],$VFa=[19,45,216],$VGa=[1,1129],$VHa=[1,1126],$VIa=[1,1130],$VJa=[1,1119],$VKa=[1,1118],$VLa=[1,1120],$VMa=[1,1122],$VNa=[1,1123],$VOa=[1,1124],$VPa=[1,1125],$VQa=[19,106,122,133,147,157,178,181,193,196,201,210,222,229,262,296,337,342,1101],$VRa=[19,39,42,46,65,76,91,106,107,108,120,121,128,143,144,145,147,148,171,174,182,193,195,196,197,205,210,215,217,224,230,247,250,256,262,263,439,440],$VSa=[1,1136],$VTa=[1,1135],$VUa=[2,3064],$VVa=[19,577],$VWa=[19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,165,181,195,201,296,337,402],$VXa=[6,10,267,273,348,577],$VYa=[19,267,273,348,577],$VZa=[1,1145],$V_a=[1,1146],$V$a=[2,6,10,26,28,30,32,33,34,37,38,39,40,42,43,45,46,47,48,49,50,51,52,54,56,58,59,60,61,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,85,86,87,88,89,90,91,92,93,95,96,97,98,99,100,101,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,128,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,156,157,158,160,161,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,438,439,440,452,569,570,571,577,763,826,868,930,931,933,1166,1190,1191,1192,1193,1195,1213,1227,1252,1253,1278,1314],$V0b=[19,837],$V1b=[2,2833],$V2b=[1,1152],$V3b=[1,1151],$V4b=[1,1155],$V5b=[2,114],$V6b=[1,1157],$V7b=[1,1159],$V8b=[6,10,19,307,324,394,837],$V9b=[6,10,19,307,394,837],$Vab=[6,10,324],$Vbb=[2,694],$Vcb=[1,1164],$Vdb=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,165,167,168,170,175,176,180,183,184,188,189,194,203,206,207,208,209,212,213,231,233,239,242,244,246,249,250,251,254,258,264,265,266,267,269,273,274,275,281,282,283,285,286,287,288,289,290,293,294,297,299,300,301,302,305,307,308,309,310,311,312,313,314,316,317,318,319,320,321,322,323,324,325,326,328,330,331,332,333,334,335,336,338,339,340,341,343,344,345,347,348,349,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,403,441,445,452,543,571,577,583,656,663,668,762,826,837,868,906,908,910,957,975,1006,1190],$Veb=[1,1166],$Vfb=[1,1165],$Vgb=[6,10,19,307,324,394,398,837],$Vhb=[2,2872],$Vib=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,165,167,168,170,175,176,180,183,184,188,189,194,203,204,206,207,208,209,212,213,231,233,239,242,244,246,249,250,251,254,258,264,265,266,267,269,273,274,275,281,282,283,285,286,287,288,289,290,293,294,297,299,300,301,302,305,307,308,309,310,311,312,313,314,316,317,318,319,320,321,322,323,324,325,326,328,330,331,332,333,334,335,336,338,339,340,341,343,344,345,347,348,349,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,403,441,445,452,543,571,577,583,656,663,668,762,826,837,868,906,908,910,952,957,975,1006,1190],$Vjb=[2,36],$Vkb=[2,155],$Vlb=[6,10,307],$Vmb=[2,6,10,19,170,176,184,206,231,242,307,309,310,320,325,347,351,394,399,445,577,656,663,957,1190],$Vnb=[2,6,10,170,176,184,206,231,242,307,309,310,320,325,347,351,394,399,445,577,656,663,1190],$Vob=[6,10,19,170,176,184,206,231,242,307,309,310,320,325,347,351,394,399,445,577,656,663,957,1190],$Vpb=[2,1293],$Vqb=[1,1175],$Vrb=[1,1176],$Vsb=[1,1180],$Vtb=[1,1177],$Vub=[1,1174],$Vvb=[1,1181],$Vwb=[1,1178],$Vxb=[1,1182],$Vyb=[1,1179],$Vzb=[1,1186],$VAb=[1,1187],$VBb=[1,1191],$VCb=[1,1188],$VDb=[1,1192],$VEb=[1,1189],$VFb=[1,1193],$VGb=[1,1190],$VHb=[2,1372],$VIb=[6,10,19,170,176,184,206,231,242,264,265,266,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,445,577,656,663,957,1190],$VJb=[2,1413],$VKb=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,206,231,242,264,265,266,286,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,402,445,577,656,663,1190],$VLb=[1,1203],$VMb=[2,6,10,170,176,184,206,231,242,264,265,266,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,445,577,656,663,1190],$VNb=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,206,231,242,264,265,266,286,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,402,445,577,656,663,957,1190],$VOb=[6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,188,203,206,212,231,242,244,258,264,265,266,267,269,273,274,275,286,294,307,308,309,310,311,313,317,318,320,322,324,325,326,328,330,333,335,338,339,347,348,351,352,394,398,399,402,441,445,452,543,577,656,663,762,826,837,868,906,908,910,957,1190],$VPb=[2,711],$VQb=[1,1209],$VRb=[1,1208],$VSb=[1,1207],$VTb=[352,577],$VUb=[2,1391],$VVb=[1,1215],$VWb=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,188,203,206,212,231,242,244,258,264,265,266,267,269,273,274,275,286,294,307,308,309,310,313,317,318,320,322,324,325,326,328,330,333,335,338,339,347,348,351,352,394,398,399,402,445,452,543,577,656,663,762,826,837,868,906,908,910,1190],$VXb=[19,324],$VYb=[6,10,19,170,176,184,206,231,242,309,310,320,325,347,351,399,445,577,656,663,957,1190],$VZb=[2,1419],$V_b=[2,6,10,170,176,206,231,242,309,310,320,325,347,351,399,445,577,656,663,1190],$V$b=[2,6,10,170,176,184,206,231,242,309,310,320,325,347,351,399,445,577,656,663,1190],$V0c=[2,6,10,19,170,176,184,206,231,242,309,310,320,325,347,351,394,399,445,577,656,663,957,1190],$V1c=[207,281,387,395],$V2c=[1,1229],$V3c=[1,1230],$V4c=[2,896],$V5c=[2,6,10,307,398,399,577,1190,1192,1227],$V6c=[2,6,10,19,307,394,398,399,577,1190,1192,1227],$V7c=[2,6,10,399,957],$V8c=[1,1246],$V9c=[1,1256],$Vac=[1,1258],$Vbc=[1,1260],$Vcc=[1,1269],$Vdc=[1,1278],$Vec=[1,1279],$Vfc=[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,402],$Vgc=[178,193,222,262,342],$Vhc=[1,1350],$Vic=[2,872],$Vjc=[2,6,10,347,399,957],$Vkc=[2,170],$Vlc=[6,10,26,30,59,74,79,80,97,113,131,145,182,218,307,339,352,438,439,440,452,569,570,571,577,763,826,868,930,931,933,1166,1190,1191,1192,1193,1195,1213,1227,1252,1253,1278,1314],$Vmc=[6,10,19],$Vnc=[2,665],$Voc=[2,2077],$Vpc=[1,1397],$Vqc=[1,1399],$Vrc=[19,307,394],$Vsc=[1,1410],$Vtc=[19,66,238],$Vuc=[2,3136],$Vvc=[1,1419],$Vwc=[19,66,185,238],$Vxc=[2,1498],$Vyc=[2,3155],$Vzc=[6,10,19,339],$VAc=[6,10,339],$VBc=[6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,165,188,328,339,398,402],$VCc=[2,764],$VDc=[6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,165,188,328,339,402],$VEc=[2,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,402,403,404,441,762,763,794,806],$VFc=[2,894],$VGc=[1,1439],$VHc=[2,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,260,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,394,395,396,397,398,399,402,403,404,441,577,762,763,794,806],$VIc=[6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,165,311,402],$VJc=[19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,311,402],$VKc=[19,193,262,342],$VLc=[2,630],$VMc=[1,1450],$VNc=[1,1451],$VOc=[2,658],$VPc=[1,1454],$VQc=[2,654],$VRc=[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161],$VSc=[6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,402],$VTc=[2,655],$VUc=[1,1471],$VVc=[1,1501],$VWc=[1,1502],$VXc=[1,1509],$VYc=[1,1510],$VZc=[1,1512],$V_c=[1,1514],$V$c=[19,319],$V0d=[1,1517],$V1d=[1,1521],$V2d=[2,3294],$V3d=[1,1527],$V4d=[6,10,19,319,403],$V5d=[2,662],$V6d=[1,1549],$V7d=[6,10,19,319],$V8d=[2,3378],$V9d=[2,624],$Vad=[19,193,262,342,1101],$Vbd=[6,10,19,324],$Vcd=[6,10,19,312,319,403],$Vdd=[19,230],$Ved=[6,10,170,176,206,231,242,309,310,320,325,445,656,663],$Vfd=[2,970],$Vgd=[1,1566],$Vhd=[1,1572],$Vid=[2,2963],$Vjd=[6,10,1190],$Vkd=[2,3019],$Vld=[1,1585],$Vmd=[1,1613],$Vnd=[1,1624],$Vod=[1,1612],$Vpd=[1,1596],$Vqd=[1,1594],$Vrd=[1,1679],$Vsd=[1,1611],$Vtd=[1,1614],$Vud=[1,1590],$Vvd=[1,1606],$Vwd=[1,1678],$Vxd=[1,1656],$Vyd=[1,1639],$Vzd=[1,1647],$VAd=[1,1667],$VBd=[1,1668],$VCd=[1,1665],$VDd=[1,1666],$VEd=[1,1648],$VFd=[1,1673],$VGd=[1,1676],$VHd=[1,1677],$VId=[1,1657],$VJd=[1,1658],$VKd=[1,1659],$VLd=[1,1660],$VMd=[1,1661],$VNd=[1,1663],$VOd=[1,1670],$VPd=[1,1671],$VQd=[1,1672],$VRd=[1,1655],$VSd=[1,1641],$VTd=[1,1662],$VUd=[1,1669],$VVd=[1,1664],$VWd=[1,1674],$VXd=[1,1675],$VYd=[1,1638],$VZd=[1,1593],$V_d=[1,1592],$V$d=[1,1591],$V0e=[1,1595],$V1e=[1,1653],$V2e=[1,1654],$V3e=[1,1615],$V4e=[1,1616],$V5e=[1,1640],$V6e=[2,625],$V7e=[1,1684],$V8e=[2,1954],$V9e=[1,1703],$Vae=[2,1955],$Vbe=[1,1721],$Vce=[1,1729],$Vde=[1,1713],$Vee=[1,1726],$Vfe=[1,1724],$Vge=[1,1728],$Vhe=[1,1730],$Vie=[1,1727],$Vje=[1,1725],$Vke=[1,1716],$Vle=[1,1717],$Vme=[1,1722],$Vne=[19,39,172,188,250,311,328,898],$Voe=[1,1733],$Vpe=[1,1741],$Vqe=[1,1742],$Vre=[2,1851],$Vse=[1,1746],$Vte=[1,1760],$Vue=[2,1962],$Vve=[1,1762],$Vwe=[19,39,898],$Vxe=[19,188,328],$Vye=[1,1771],$Vze=[1,1772],$VAe=[19,83,84],$VBe=[19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,402,860],$VCe=[19,291,398],$VDe=[1,1773],$VEe=[2,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,175,211,240,251,268,270,271,277,289,290,293,297,299,305,314,340,341,344,345,349,352,398,399,402,577,1040],$VFe=[2,3030],$VGe=[1,1787],$VHe=[1,1789],$VIe=[6,10,352,577,1190],$VJe=[1,1792],$VKe=[1,1794],$VLe=[1,1797],$VMe=[1,1799],$VNe=[1,1805],$VOe=[1,1809],$VPe=[1,1807],$VQe=[188,250,328],$VRe=[1,1814],$VSe=[1,1825],$VTe=[1,1832],$VUe=[2,3062],$VVe=[1,1837],$VWe=[19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,262,402],$VXe=[1,1849],$VYe=[1,1845],$VZe=[1,1850],$V_e=[1,1843],$V$e=[1,1844],$V0f=[1,1846],$V1f=[1,1847],$V2f=[1,1848],$V3f=[1,1869],$V4f=[1,1867],$V5f=[1,1868],$V6f=[2,1297],$V7f=[19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,398,402],$V8f=[2,1304],$V9f=[1,1890],$Vaf=[1,1889],$Vbf=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,266,273,279,294,308,313,317,318,326,333,338,347,398,399,402],$Vcf=[1,1892],$Vdf=[1,1894],$Vef=[1,1896],$Vff=[1,1898],$Vgf=[1,1900],$Vhf=[1,1902],$Vif=[1,1905],$Vjf=[1,1911],$Vkf=[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,398,402],$Vlf=[2,6,10,19,170,176,184,206,231,242,265,266,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,445,577,656,663,957,1190],$Vmf=[2,1383],$Vnf=[1,1933],$Vof=[2,6,10,170,176,184,206,231,242,265,266,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,445,577,656,663,1190],$Vpf=[2,6,10,19,170,176,184,206,231,242,264,265,266,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,445,577,583,656,663,957,1190],$Vqf=[1,1943],$Vrf=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,212,231,233,239,242,244,246,249,250,258,266,274,275,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,331,332,333,334,335,336,338,343,347,350,351,352,382,383,385,386,387,388,389,390,391,392,393,394,399,402,441,445,452,543,571,577,583,656,663,668,957,1190],$Vsf=[1,1949],$Vtf=[1,1948],$Vuf=[1,1977],$Vvf=[1,1976],$Vwf=[1,1975],$Vxf=[1,1974],$Vyf=[2,919],$Vzf=[1,1984],$VAf=[1,1992],$VBf=[1,1993],$VCf=[1,1991],$VDf=[1,1995],$VEf=[1,1996],$VFf=[2,6,10,307,394,398,399,577,1190,1192,1227],$VGf=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,188,203,206,212,231,242,244,258,264,265,266,267,269,273,274,275,286,294,307,308,309,310,311,313,317,318,320,322,324,325,326,328,330,333,335,338,339,347,348,351,352,394,398,399,402,445,452,543,577,656,663,762,826,837,868,906,908,910,957,1190],$VHf=[1,2012],$VIf=[1,2015],$VJf=[307,394],$VKf=[2,6,10,170,176,184,206,231,242,307,309,310,320,325,347,351,394,399,445,577,656,663,957,1190],$VLf=[2,6,10,170,176,184,206,231,242,264,265,266,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,445,577,656,663,957,1190],$VMf=[1,2039],$VNf=[6,10,319],$VOf=[1,2094],$VPf=[1,2096],$VQf=[1,2111],$VRf=[1,2105],$VSf=[1,2103],$VTf=[1,2099],$VUf=[1,2113],$VVf=[1,2117],$VWf=[1,2118],$VXf=[1,2115],$VYf=[1,2112],$VZf=[1,2102],$V_f=[1,2101],$V$f=[1,2100],$V0g=[1,2104],$V1g=[1,2114],$V2g=[2,6,10,170,176,184,206,231,242,309,310,320,325,347,351,399,445,577,656,663,957,1190],$V3g=[1,2121],$V4g=[6,10,43],$V5g=[2,2070],$V6g=[6,10,394],$V7g=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,212,231,233,239,242,244,246,249,250,258,266,274,275,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,331,332,333,334,335,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,543,571,577,583,656,663,668,957,1190],$V8g=[2,1248],$V9g=[1,2150],$Vag=[1,2164],$Vbg=[1,2166],$Vcg=[1,2179],$Vdg=[1,2180],$Veg=[1,2199],$Vfg=[1,2216],$Vgg=[1,2215],$Vhg=[1,2217],$Vig=[6,10,27,31,36,37,41,44,53,55,57,102,103,104,114,127,129,188,322,328,339,762,826,868,906,908,910],$Vjg=[2,2113],$Vkg=[6,10,19,37,40,75,90,114,117,121,167,212,244,258,269,274,275,286,319,328,335,398,452,543,957,975],$Vlg=[2,726],$Vmg=[1,2253],$Vng=[6,10,207],$Vog=[1,2296],$Vpg=[1,2295],$Vqg=[1,2302],$Vrg=[1,2301],$Vsg=[2,3283],$Vtg=[2,3295],$Vug=[2,3311],$Vvg=[1,2311],$Vwg=[2,3324],$Vxg=[1,2326],$Vyg=[1,2327],$Vzg=[1,2329],$VAg=[2,640],$VBg=[1,2334],$VCg=[1,2335],$VDg=[2,3365],$VEg=[1,2339],$VFg=[1,2344],$VGg=[2,3383],$VHg=[1,2351],$VIg=[2,6,10,170,176,206,242,266,294,308,310,313,317,318,320,325,326,333,338,347,399,656,663,957,1190],$VJg=[2,975],$VKg=[1,2366],$VLg=[1,2364],$VMg=[1,2365],$VNg=[2,6,10,19,170,176,206,231,242,266,294,308,309,310,313,317,318,320,325,326,333,338,347,399,445,656,663,957,1190],$VOg=[2,971],$VPg=[2,6,10,170,176,206,242,266,294,308,310,313,317,318,320,325,326,333,338,347,399,656,663,1190],$VQg=[6,10,170,176,206,242,310,320,325,347,399,656,663,957,1190],$VRg=[6,10,170,176,206,231,242,309,310,320,325,445,656,663,1190],$VSg=[1,2401],$VTg=[1,2402],$VUg=[1,2400],$VVg=[1,2399],$VWg=[1,2404],$VXg=[1,2403],$VYg=[1,2395],$VZg=[1,2394],$V_g=[1,2390],$V$g=[1,2391],$V0h=[1,2392],$V1h=[1,2393],$V2h=[1,2396],$V3h=[1,2397],$V4h=[1,2411],$V5h=[1,2410],$V6h=[1,2409],$V7h=[1,2413],$V8h=[1,2412],$V9h=[1,2405],$Vah=[1,2406],$Vbh=[1,2407],$Vch=[1,2408],$Vdh=[1,2414],$Veh=[1,2415],$Vfh=[1,2416],$Vgh=[1,2439],$Vhh=[1,2440],$Vih=[1,2428],$Vjh=[1,2427],$Vkh=[1,2422],$Vlh=[1,2438],$Vmh=[1,2421],$Vnh=[1,2442],$Voh=[1,2441],$Vph=[1,2443],$Vqh=[1,2430],$Vrh=[1,2429],$Vsh=[1,2423],$Vth=[1,2424],$Vuh=[1,2425],$Vvh=[1,2426],$Vwh=[1,2431],$Vxh=[1,2432],$Vyh=[1,2433],$Vzh=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,246,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,319,320,322,325,326,332,333,334,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,656,663,668,1190],$VAh=[1,2450],$VBh=[1,2454],$VCh=[1,2470],$VDh=[1,2473],$VEh=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,583,656,663,668,957,1190],$VFh=[2,1221],$VGh=[1,2476],$VHh=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,246,249,250,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,571,577,583,656,663,668,957,1190],$VIh=[2,1233],$VJh=[2,1465],$VKh=[1,2484],$VLh=[1,2486],$VMh=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,207,209,231,233,239,242,246,249,250,266,281,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,445,452,571,577,583,656,663,668,957,1190],$VNh=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,246,249,250,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,327,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,571,577,583,656,663,668,957,1190],$VOh=[2,793],$VPh=[1,2497],$VQh=[1,2498],$VRh=[1,2513],$VSh=[1,2536],$VTh=[1,2545],$VUh=[1,2543],$VVh=[1,2544],$VWh=[1,2550],$VXh=[1,2551],$VYh=[1,2552],$VZh=[1,2553],$V_h=[1,2554],$V$h=[1,2555],$V0i=[1,2556],$V1i=[1,2557],$V2i=[1,2558],$V3i=[1,2560],$V4i=[1,2561],$V5i=[1,2562],$V6i=[1,2563],$V7i=[1,2559],$V8i=[1,2565],$V9i=[2,756],$Vai=[1,2571],$Vbi=[19,32,67,85,89,95,109,124,211,240,268,270,271,277,1040],$Vci=[1,2577],$Vdi=[6,10,19,352],$Vei=[2,1897],$Vfi=[2,6,10,19,29,35,37,40,63,69,75,86,90,105,114,117,121,152,153,154,155,167,212,244,249,258,269,274,275,286,312,322,323,328,335,352,385,387,389,394,399,452,543,577,952,957,1190],$Vgi=[2,643],$Vhi=[1,2602],$Vii=[2,1963],$Vji=[6,10,75,114,117,121,167,212,244,274,275,286,335,543],$Vki=[1,2616],$Vli=[1,2631],$Vmi=[1,2634],$Vni=[6,10,117,274,352,577,1190],$Voi=[2,3021],$Vpi=[1,2639],$Vqi=[19,117,274,352,577,1209],$Vri=[1,2642],$Vsi=[1,2654],$Vti=[6,10,352],$Vui=[1,2667],$Vvi=[1,2669],$Vwi=[2,3035],$Vxi=[1,2681],$Vyi=[1,2691],$Vzi=[6,10,19,307,837],$VAi=[2,2900],$VBi=[1,2707],$VCi=[1,2706],$VDi=[1,2708],$VEi=[6,10,19,352,394],$VFi=[1,2718],$VGi=[1,2717],$VHi=[2,6,10,242,266,294,308,313,317,318,320,326,333,338,347,399,656,663,1190],$VIi=[2,6,10,19,242,266,294,308,313,317,318,320,326,333,338,347,394,399,656,663,957,1190],$VJi=[1,2729],$VKi=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,170,176,184,206,231,242,266,294,307,308,309,310,313,317,318,320,325,326,333,338,347,351,394,398,399,402,445,577,656,663,1190],$VLi=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,170,176,184,206,231,242,266,273,279,294,307,308,309,310,313,317,318,320,325,326,333,338,347,351,394,398,399,402,445,577,656,663,1190],$VMi=[1,2730],$VNi=[1,2734],$VOi=[1,2736],$VPi=[1,2738],$VQi=[1,2740],$VRi=[1,2744],$VSi=[1,2746],$VTi=[1,2748],$VUi=[1,2750],$VVi=[2,6,10,170,176,184,206,231,242,266,294,307,308,309,310,313,317,318,320,325,326,333,338,347,351,394,399,445,577,656,663,1190],$VWi=[1,2759],$VXi=[1,2763],$VYi=[1,2765],$VZi=[1,2767],$V_i=[2,712],$V$i=[1,2775],$V0j=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,165,167,170,176,183,184,188,194,203,206,207,209,212,231,233,239,242,244,246,258,264,265,266,267,269,273,274,275,281,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,319,320,322,324,325,326,328,330,332,333,334,335,338,339,343,347,348,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,445,452,543,571,577,656,663,668,762,826,837,868,906,908,910,975,1190],$V1j=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,246,250,264,265,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,324,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,583,656,663,668,957,1190],$V2j=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,246,264,265,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,319,320,322,324,325,326,332,333,334,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,656,663,668,1190],$V3j=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,168,170,176,183,184,188,194,206,207,209,212,231,233,236,239,242,244,246,247,255,258,264,265,266,267,269,273,274,275,281,283,285,286,287,288,292,294,300,301,302,303,304,307,308,309,310,311,312,313,315,317,318,319,320,321,322,323,324,325,326,327,328,332,333,334,335,338,343,346,347,348,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,402,403,404,445,452,543,571,577,656,663,668,762,763,794,837,1190,1192,1227],$V4j=[1,2778],$V5j=[2,6,10,19,170,176,184,206,231,242,309,310,320,325,347,351,399,445,577,656,663,957,1190],$V6j=[1,2791],$V7j=[6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,286,957],$V8j=[1,2816],$V9j=[1,2815],$Vaj=[117,274,352,577],$Vbj=[1,2882],$Vcj=[1,2881],$Vdj=[1,2875],$Vej=[1,2880],$Vfj=[1,2889],$Vgj=[1,2884],$Vhj=[1,2883],$Vij=[1,2876],$Vjj=[1,2877],$Vkj=[1,2878],$Vlj=[1,2879],$Vmj=[1,2885],$Vnj=[1,2886],$Voj=[1,2887],$Vpj=[1,2897],$Vqj=[1,2898],$Vrj=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,246,249,250,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,398,399,402,445,452,571,577,583,656,663,668,957,1190],$Vsj=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,168,170,175,176,183,184,188,194,206,207,209,231,233,239,242,246,249,250,251,266,281,283,285,286,287,288,289,290,293,294,297,299,300,301,302,305,307,308,309,310,312,313,314,316,317,318,319,320,321,322,323,325,326,328,331,332,333,334,336,338,339,340,341,343,344,345,347,349,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,445,452,571,577,583,656,663,668,868,957,1190],$Vtj=[2,6,10,347,399],$Vuj=[2,1249],$Vvj=[1,2938],$Vwj=[2,2906],$Vxj=[1,2954],$Vyj=[6,10,19,307],$Vzj=[6,10,19,351],$VAj=[2,3413],$VBj=[1,2975],$VCj=[6,10,351],$VDj=[1,2978],$VEj=[6,10,19,307,350,351,394],$VFj=[6,10,307,351],$VGj=[6,10,307,351,394],$VHj=[2,19,40,387,394,399,452],$VIj=[2,772],$VJj=[1,2984],$VKj=[2,867],$VLj=[1,2987],$VMj=[1,3001],$VNj=[1,3000],$VOj=[1,2999],$VPj=[2,6,10,19,170,176,206,231,242,307,309,310,320,325,347,351,394,399,445,583,656,663,957,1190],$VQj=[2,1699],$VRj=[2,6,10,170,176,206,231,242,307,309,310,320,325,347,351,399,445,656,663,1190],$VSj=[2,1265],$VTj=[2,6,10,170,176,206,231,242,307,309,310,320,325,347,351,394,399,445,656,663,1190],$VUj=[1,3010],$VVj=[2,2118],$VWj=[1,3027],$VXj=[1,3028],$VYj=[1,3030],$VZj=[6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,352,402,577,1190],$V_j=[19,40,121,167,286,452],$V$j=[2,2585],$V0k=[40,121,167,286,452],$V1k=[1,3038],$V2k=[6,10,37,40,75,90,114,117,121,167,212,244,258,269,274,275,286,319,328,335,398,452,543,975],$V3k=[1,3046],$V4k=[1,3050],$V5k=[1,3053],$V6k=[2,645],$V7k=[1,3063],$V8k=[1,3065],$V9k=[1,3064],$Vak=[1,3066],$Vbk=[2,2747],$Vck=[1,3075],$Vdk=[1,3074],$Vek=[2,3240],$Vfk=[1,3099],$Vgk=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,188,194,204,206,209,212,214,220,225,231,233,235,239,242,243,244,245,246,248,249,250,257,258,266,269,274,275,278,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,321,322,323,325,326,328,331,332,333,334,335,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,543,571,577,583,656,663,668,952,957,1055,1190,1209],$Vhk=[1,3104],$Vik=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,212,231,233,239,242,244,246,249,250,258,266,269,274,275,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,328,331,332,333,334,335,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,543,571,577,583,656,663,668,952,957,1190],$Vjk=[2,3275],$Vkk=[1,3105],$Vlk=[1,3107],$Vmk=[2,3298],$Vnk=[2,3313],$Vok=[1,3115],$Vpk=[2,687],$Vqk=[2,3374],$Vrk=[2,6,10,170,176,206,242,266,294,308,313,317,318,320,325,326,333,338,347,399,656,663,957,1190],$Vsk=[2,1525],$Vtk=[1,3138],$Vuk=[2,976],$Vvk=[19,291],$Vwk=[2,1085],$Vxk=[2,6,10,170,176,206,242,266,294,308,313,317,318,320,325,326,333,338,347,399,656,663,1190],$Vyk=[6,10,170,176,206,242,320,325,347,399,656,663,957,1190],$Vzk=[1,3145],$VAk=[2,6,10,170,176,206,231,242,266,294,308,309,310,313,317,318,320,325,326,333,338,347,399,445,656,663,1190],$VBk=[1,3160],$VCk=[151,298,304,323,346],$VDk=[2,1262],$VEk=[2,3099],$VFk=[1,3237],$VGk=[1,3251],$VHk=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,322,325,326,333,338,343,347,350,351,352,385,386,394,399,402,445,571,577,656,663,668,1190],$VIk=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,320,322,325,326,333,338,343,347,350,351,352,385,386,391,394,399,402,445,571,577,656,663,668,1190],$VJk=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,322,325,326,331,333,336,338,343,347,350,351,352,385,386,394,399,402,445,571,577,583,656,663,668,957,1190],$VKk=[2,1088],$VLk=[2,1089],$VMk=[2,1090],$VNk=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,322,325,326,333,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,656,663,668,1190],$VOk=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,322,325,326,331,333,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,583,656,663,668,957,1190],$VPk=[2,1091],$VQk=[1,3254],$VRk=[1,3261],$VSk=[1,3257],$VTk=[1,3260],$VUk=[1,3259],$VVk=[1,3271],$VWk=[2,301,302],$VXk=[2,19,301,302,350],$VYk=[1,3283],$VZk=[1,3284],$V_k=[1,3291],$V$k=[1,3292],$V0l=[1,3299],$V1l=[1,3304],$V2l=[1,3307],$V3l=[1,3309],$V4l=[1,3310],$V5l=[1,3311],$V6l=[1,3312],$V7l=[1,3313],$V8l=[1,3314],$V9l=[1,3315],$Val=[1,3308],$Vbl=[1,3321],$Vcl=[1,3322],$Vdl=[1,3320],$Vel=[1,3327],$Vfl=[1,3328],$Vgl=[19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,209,236,281,283,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,395,396,397,398,402,403,404,441,762,763,794],$Vhl=[1,3330],$Vil=[1,3331],$Vjl=[1,3333],$Vkl=[6,10,19,188,207,281,328,395],$Vll=[6,10,188,328],$Vml=[6,10,188,207,281,328,395],$Vnl=[6,10,19,188,212,328,543],$Vol=[2,745],$Vpl=[1,3361],$Vql=[1,3363],$Vrl=[1,3374],$Vsl=[6,10,19,40,75,121,167,212,244,275,286,352,452,543,577,957,1190],$Vtl=[2,2454],$Vul=[1,3389],$Vvl=[2,1868],$Vwl=[6,10,19,167,286,957],$Vxl=[1,3396],$Vyl=[6,10,167,286],$Vzl=[2,1984],$VAl=[1,3407],$VBl=[2,1927],$VCl=[6,10,19,94,394],$VDl=[6,10,94],$VEl=[2,1900],$VFl=[1,3419],$VGl=[1,3420],$VHl=[2,1968],$VIl=[1,3427],$VJl=[1,3426],$VKl=[2,6,10,394,399],$VLl=[2,740],$VMl=[19,315],$VNl=[2,2357],$VOl=[6,10,75,114,117,121,167,212,244,274,275,286,315,335,543],$VPl=[1,3433],$VQl=[2,650],$VRl=[1,3443],$VSl=[1,3444],$VTl=[6,10,352,398,577,1190],$VUl=[2,2395],$VVl=[1,3470],$VWl=[1,3471],$VXl=[19,352,577],$VYl=[1,3479],$VZl=[2,6,10,37,40,75,87,90,114,117,121,167,179,188,212,237,244,258,261,269,274,275,278,286,315,328,335,352,452,543,577,952,1190,1230],$V_l=[6,10,188,212,328,543],$V$l=[1,3486],$V0m=[1,3489],$V1m=[1,3493],$V2m=[1,3509],$V3m=[1,3508],$V4m=[2,325,394,399],$V5m=[2,1205],$V6m=[1,3513],$V7m=[1,3516],$V8m=[1,3515],$V9m=[2,325,399],$Vam=[19,325,394,399],$Vbm=[6,10,188,267,273,328,348,577],$Vcm=[2,2894],$Vdm=[1,3534],$Vem=[2,2798],$Vfm=[2,6,10,37,53,75,114,115,117,121,167,188,212,244,247,258,264,267,273,274,275,286,315,324,328,335,348,352,394,399,543,577,1190],$Vgm=[6,10,19,170,176,184,206,231,242,266,294,307,308,309,310,313,317,318,320,325,326,333,338,347,351,394,399,445,577,656,663,957,1190],$Vhm=[2,1354],$Vim=[1,3554],$Vjm=[1,3553],$Vkm=[1,3556],$Vlm=[2,6,10,170,176,184,206,231,242,266,294,307,308,309,310,313,317,318,320,325,326,333,338,347,351,394,399,445,577,656,663,957,1190],$Vmm=[1,3562],$Vnm=[1,3563],$Vom=[19,92,336],$Vpm=[2,713],$Vqm=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,188,203,206,212,231,242,244,258,264,265,266,267,269,273,274,275,281,286,294,307,308,309,310,311,313,317,318,320,322,324,325,326,328,330,333,335,338,339,347,348,351,352,394,398,399,402,441,445,452,543,577,656,663,762,826,837,868,906,908,910,957,1190],$Vrm=[1,3573],$Vsm=[19,307,837],$Vtm=[2,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,285,311,321,762,763],$Vum=[2,1633],$Vvm=[1,3581],$Vwm=[1,3596],$Vxm=[1,3595],$Vym=[1,3598],$Vzm=[1,3619],$VAm=[1,3620],$VBm=[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,395,396,397,398,402,403,404,762,763,794],$VCm=[267,273,348,577],$VDm=[1,3681],$VEm=[394,399],$VFm=[2,394,399],$VGm=[2,2083],$VHm=[2,2904],$VIm=[2,2907],$VJm=[1,3696],$VKm=[2,3133],$VLm=[1,3699],$VMm=[1,3700],$VNm=[1,3726],$VOm=[1,3740],$VPm=[1,3745],$VQm=[1,3747],$VRm=[2,2114],$VSm=[2,952],$VTm=[2,75,244,952],$VUm=[403,404],$VVm=[121,167,286],$VWm=[1,3790],$VXm=[1,3800],$VYm=[1,3802],$VZm=[1,3816],$V_m=[1,3819],$V$m=[1,3824],$V0n=[1,3809],$V1n=[1,3825],$V2n=[1,3826],$V3n=[1,3817],$V4n=[1,3812],$V5n=[1,3813],$V6n=[1,3821],$V7n=[1,3820],$V8n=[1,3815],$V9n=[1,3814],$Van=[1,3811],$Vbn=[1,3810],$Vcn=[1,3818],$Vdn=[1,3823],$Ven=[1,3808],$Vfn=[1,3822],$Vgn=[1,3803],$Vhn=[2,2574],$Vin=[2,2741],$Vjn=[2,3266],$Vkn=[2,6,10,170,176,242,266,294,308,313,317,318,320,325,326,333,338,347,399,656,663,957,1190],$Vln=[2,1530],$Vmn=[1,3872],$Vnn=[2,1526],$Von=[2,6,10,170,176,242,266,294,308,313,317,318,320,325,326,333,338,347,399,656,663,1190],$Vpn=[6,10,170,176,242,320,325,347,399,656,663,957,1190],$Vqn=[1,3882],$Vrn=[170,176,206,242,320,325,656,663],$Vsn=[6,10,170,176,206,231,242,309,310,320,325,351,445,656,663,1190],$Vtn=[2,3026],$Vun=[1,3902],$Vvn=[1,3905],$Vwn=[2,1642],$Vxn=[2,1643],$Vyn=[2,1644],$Vzn=[2,1645],$VAn=[2,1646],$VBn=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,322,325,326,333,338,343,347,350,351,352,385,386,387,388,389,390,394,399,402,445,571,577,656,663,668,1190],$VCn=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,266,283,286,287,294,300,301,302,307,308,309,310,313,317,318,320,325,326,333,338,343,347,350,351,352,385,386,394,399,402,445,571,577,656,663,668,1190],$VDn=[2,1263],$VEn=[1,3925],$VFn=[1,3924],$VGn=[1,3922],$VHn=[1,3923],$VIn=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,322,325,326,331,333,336,338,343,347,350,351,352,385,386,387,388,389,390,394,399,402,445,571,577,583,656,663,668,957,1190],$VJn=[2,1099],$VKn=[2,1100],$VLn=[2,1101],$VMn=[2,1102],$VNn=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,320,325,326,333,338,343,347,350,351,352,385,386,391,394,399,402,445,571,577,656,663,668,1190],$VOn=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,250,266,283,286,287,294,300,301,302,307,308,309,310,313,317,318,320,325,326,331,333,336,338,343,347,350,351,352,385,386,394,399,402,445,571,577,583,656,663,668,957,1190],$VPn=[2,1109],$VQn=[2,1110],$VRn=[2,1111],$VSn=[2,1112],$VTn=[2,1113],$VUn=[2,3100],$VVn=[1,3941],$VWn=[2,301,302,350],$VXn=[1,3963],$VYn=[2,1448],$VZn=[325,399],$V_n=[2,1476],$V$n=[1,3979],$V0o=[19,327],$V1o=[2,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,395,396,397,398,399,402,403,404,441,762,763,794],$V2o=[1,4002],$V3o=[1,4015],$V4o=[6,10,19,212,543],$V5o=[2,1986],$V6o=[6,10,212,543],$V7o=[1,4037],$V8o=[1,4043],$V9o=[1,4044],$Vao=[1,4047],$Vbo=[2,1866],$Vco=[6,10,19,40,75,117,121,167,212,244,274,275,286,452,543,957],$Vdo=[1,4066],$Veo=[1,4067],$Vfo=[1,4069],$Vgo=[2,1869],$Vho=[2,2430],$Vio=[1,4074],$Vjo=[1,4075],$Vko=[1,4077],$Vlo=[1,4081],$Vmo=[1,4083],$Vno=[1,4084],$Voo=[1,4085],$Vpo=[1,4082],$Vqo=[1,4086],$Vro=[2,1925],$Vso=[1,4095],$Vto=[2,1873],$Vuo=[6,10,19,35,105],$Vvo=[2,1956],$Vwo=[1,4106],$Vxo=[1,4107],$Vyo=[6,10,35,105],$Vzo=[1,4128],$VAo=[1,4129],$VBo=[1,4126],$VCo=[1,4127],$VDo=[1,4143],$VEo=[1,4145],$VFo=[2,1904],$VGo=[1,4151],$VHo=[2,2169],$VIo=[1,4160],$VJo=[2,2766],$VKo=[1,4163],$VLo=[1,4168],$VMo=[19,167,286],$VNo=[2,603],$VOo=[1,4178],$VPo=[1,4181],$VQo=[1,4186],$VRo=[1,4196],$VSo=[1,4197],$VTo=[1,4194],$VUo=[1,4195],$VVo=[1,4208],$VWo=[2,2797],$VXo=[1,4225],$VYo=[2,2799],$VZo=[2,6,10,19,170,176,184,206,231,242,266,294,307,308,309,310,313,317,318,320,325,326,333,338,347,351,394,399,445,577,656,663,957,1190],$V_o=[1,4248],$V$o=[1,4258],$V0p=[6,10,81,169],$V1p=[2,2060],$V2p=[1,4311],$V3p=[6,10,19,315],$V4p=[2,3144],$V5p=[2,3386],$V6p=[2,3411],$V7p=[2,1700],$V8p=[2,916],$V9p=[1,4353],$Vap=[2,1702],$Vbp=[1,4354],$Vcp=[6,10,19,37,40,75,90,114,117,121,167,212,244,258,269,274,275,286,328,335,452,543,957],$Vdp=[2,2156],$Vep=[6,10,37,40,75,90,114,117,121,167,212,244,258,269,274,275,286,328,335,452,543],$Vfp=[1,4368],$Vgp=[1,4367],$Vhp=[2,2126],$Vip=[1,4371],$Vjp=[2,2463],$Vkp=[1,4377],$Vlp=[1,4380],$Vmp=[19,394,399],$Vnp=[167,286],$Vop=[1,4385],$Vpp=[1,4391],$Vqp=[2,2638],$Vrp=[19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,395,396,397,398,402,403,404,762,763,794],$Vsp=[1,4392],$Vtp=[6,10,19,255],$Vup=[1,4409],$Vvp=[2,2545],$Vwp=[2,19,280,394,399],$Vxp=[2,6,10,19,29,35,40,63,75,105,152,153,154,155,244,249,280,322,323,389,394,399,452],$Vyp=[2,821],$Vzp=[1,4415],$VAp=[1,4419],$VBp=[2,2529],$VCp=[1,4431],$VDp=[1,4432],$VEp=[1,4433],$VFp=[2,3347],$VGp=[2,6,10,170,176,242,266,294,308,313,317,318,320,326,333,338,347,399,656,663,957,1190],$VHp=[2,1014],$VIp=[1,4442],$VJp=[2,1531],$VKp=[2,1527],$VLp=[2,982],$VMp=[1,4448],$VNp=[1,4447],$VOp=[1,4445],$VPp=[2,6,10,170,176,183,206,242,266,294,308,310,313,317,318,320,325,326,333,338,347,352,394,399,656,663,957,1190],$VQp=[2,1002],$VRp=[2,6,10,170,176,242,266,294,308,313,317,318,320,326,333,338,347,399,656,663,1190],$VSp=[6,10,170,176,242,320,347,399,656,663,957,1190],$VTp=[1,4456],$VUp=[170,176,242,320,325,656,663],$VVp=[2,6,10,170,176,183,206,242,266,294,308,310,313,317,318,320,325,326,333,338,347,352,399,656,663,1190],$VWp=[2,6,10,19,170,176,183,206,242,310,320,325,347,352,394,399,656,663,957,1190],$VXp=[1,4484],$VYp=[6,10,19,350],$VZp=[1,4502],$V_p=[19,343],$V$p=[2,3113],$V0q=[1,4517],$V1q=[2,1482],$V2q=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,246,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,319,320,322,325,326,327,332,333,334,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,656,663,668,1190],$V3q=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,188,194,206,207,209,231,233,239,242,246,266,281,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,319,320,322,325,326,328,332,333,334,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,395,399,402,445,571,577,656,663,668,1190],$V4q=[1,4573],$V5q=[1,4577],$V6q=[1,4581],$V7q=[2,749],$V8q=[1,4588],$V9q=[2,1987],$Vaq=[1,4600],$Vbq=[1,4601],$Vcq=[1,4602],$Vdq=[1,4599],$Veq=[1,4623],$Vfq=[2,2446],$Vgq=[1,4634],$Vhq=[1,4635],$Viq=[1,4640],$Vjq=[1,4641],$Vkq=[19,123,276],$Vlq=[2,2011],$Vmq=[1,4644],$Vnq=[1,4648],$Voq=[19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,207,281,304,323,346,382,383,391,395,403,404,689],$Vpq=[1,4655],$Vqq=[6,10,19,29,35,63,105,394,399],$Vrq=[2,2183],$Vsq=[1,4674],$Vtq=[1,4672],$Vuq=[1,4673],$Vvq=[1,4671],$Vwq=[1,4677],$Vxq=[1,4669],$Vyq=[1,4675],$Vzq=[2,6,10,29,35,63,105,394,399],$VAq=[1,4681],$VBq=[1,4680],$VCq=[2,6,10,19,29,35,40,63,105,152,153,154,155,249,322,323,389,394,399,452],$VDq=[2,6,10,29,35,40,63,105,152,153,154,155,249,322,323,389,394,399,452],$VEq=[2,739],$VFq=[19,352],$VGq=[1,4695],$VHq=[6,10,19,35,37,40,75,90,105,114,117,121,167,212,244,258,269,274,275,286,328,335,452,543,957],$VIq=[1,4699],$VJq=[6,10,35,37,40,75,90,105,114,117,121,167,212,244,258,269,274,275,286,328,335,452,543],$VKq=[6,10,38,40,73,75,117,121,167,212,243,244,274,275,286,321,323,352,452,543,577,957,1190],$VLq=[6,10,19,38,40,73,75,117,121,167,212,243,244,274,275,286,321,323,352,452,543,577,957,1209],$VMq=[2,1206],$VNq=[1,4750],$VOq=[1,4752],$VPq=[2,1355],$VQq=[2,2801],$VRq=[1,4769],$VSq=[1,4771],$VTq=[1,4796],$VUq=[6,10,81],$VVq=[2,2064],$VWq=[2,2061],$VXq=[1,4818],$VYq=[1,4819],$VZq=[2,2908],$V_q=[2,3165],$V$q=[6,10,19,37,75,114,117,121,167,212,244,258,274,275,286,335,543,957],$V0r=[2,2297],$V1r=[1,4856],$V2r=[1,4857],$V3r=[6,10,37,75,114,117,121,167,212,244,258,274,275,286,335,543],$V4r=[1,4860],$V5r=[2,6,10,19],$V6r=[2,2589],$V7r=[1,4890],$V8r=[6,10,255],$V9r=[6,10,19,394],$Var=[2,6,10,242,266,294,308,313,317,318,320,326,333,338,347,399,663,957,1190],$Vbr=[2,1039],$Vcr=[1,4918],$Vdr=[1,4919],$Ver=[1,4920],$Vfr=[2,1015],$Vgr=[2,6,10,19,170,176,206,242,266,294,308,310,313,317,318,320,325,326,333,338,347,399,656,663,957,1190],$Vhr=[1,4924],$Vir=[1,4925],$Vjr=[2,6,10,242,266,294,308,313,317,318,320,326,333,338,347,399,663,1190],$Vkr=[6,10,242,320,347,399,663,957,1190],$Vlr=[1,4939],$Vmr=[1,4940],$Vnr=[1,4941],$Vor=[170,176,242,320,656,663],$Vpr=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,325,326,333,338,343,347,350,351,352,385,386,394,399,402,445,571,577,656,663,668,1190],$Vqr=[1,4985],$Vrr=[2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,325,326,331,333,336,338,343,347,350,351,352,385,386,394,399,402,445,571,577,583,656,663,668,957,1190],$Vsr=[2,1108],$Vtr=[2,1679],$Vur=[2,1487],$Vvr=[1,5006],$Vwr=[1,5005],$Vxr=[1,5003],$Vyr=[1,5027],$Vzr=[1,5032],$VAr=[2,1751],$VBr=[19,207,281,304,346,348,382,383,395,403,404],$VCr=[1,5046],$VDr=[1,5050],$VEr=[1,5052],$VFr=[6,10,40,75,121,167,212,244,275,286,452,543],$VGr=[6,10,38,40,73,75,117,121,167,212,243,244,274,275,286,321,323,352,452,543,577,1190],$VHr=[2,1801],$VIr=[2,1875],$VJr=[2,2184],$VKr=[2,6,10,19,29,35,40,63,105,152,153,154,155,249,322,323,394,399,452],$VLr=[2,6,10,29,35,40,63,105,152,153,154,155,249,322,323,394,399,452],$VMr=[1,5080],$VNr=[1,5086],$VOr=[1,5088],$VPr=[1,5092],$VQr=[1,5094],$VRr=[1,5096],$VSr=[1,5102],$VTr=[1,5104],$VUr=[1,5111],$VVr=[6,10,19,75,114,117,121,167,212,244,274,275,286,315,335,543],$VWr=[2,2170],$VXr=[2,2258],$VYr=[1,5139],$VZr=[2,2436],$V_r=[1,5141],$V$r=[6,10,40,73,75,117,121,167,212,243,244,274,275,286,321,323,352,452,543,577,1190],$V0s=[1,5146],$V1s=[19,167],$V2s=[2,2802],$V3s=[2,1619],$V4s=[2,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,402],$V5s=[2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,170,176,184,206,231,242,309,310,320,325,347,351,399,402,445,577,656,663,1190],$V6s=[2,2068],$V7s=[1,5194],$V8s=[2,2065],$V9s=[1,5197],$Vas=[2,2905],$Vbs=[2,2909],$Vcs=[1,5210],$Vds=[2,1703],$Ves=[2,1701],$Vfs=[6,10,19,37,75,114,117,121,167,212,244,274,275,286,335,543,957],$Vgs=[2,2313],$Vhs=[6,10,37,75,114,117,121,167,212,244,274,275,286,335,543],$Vis=[1,5224],$Vjs=[1,5251],$Vks=[1,5256],$Vls=[2,2550],$Vms=[6,10,278],$Vns=[1,5268],$Vos=[2,6,10,266,294,308,313,317,318,326,333,338,347,399,663,957,1190],$Vps=[2,1070],$Vqs=[1,5277],$Vrs=[1,5276],$Vss=[2,1040],$Vts=[2,6,10,19,242,266,294,308,313,317,318,320,326,333,338,347,399,663,957,1190],$Vus=[2,1042],$Vvs=[2,1003],$Vws=[2,6,10,266,294,308,313,317,318,326,333,338,347,399,663,1190],$Vxs=[6,10,347,399,663,957,1190],$Vys=[1,5297],$Vzs=[1,5296],$VAs=[2,6,10,19,242,320,347,399,663,957,1190],$VBs=[242,320,663],$VCs=[2,6,10,170,176,183,206,242,266,294,308,310,313,317,318,320,325,326,333,338,347,352,394,399,656,663,1190],$VDs=[2,1107],$VEs=[2,1096],$VFs=[1,5354],$VGs=[19,288,785],$VHs=[19,288,398,785],$VIs=[2,1478],$VJs=[1,5368],$VKs=[1,5375],$VLs=[6,10,40,75,117,121,167,212,244,274,275,286,323,352,452,543,577,1190],$VMs=[1,5386],$VNs=[1,5385],$VOs=[1,5391],$VPs=[1,5392],$VQs=[2,389,394],$VRs=[1,5397],$VSs=[2,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,175,251,285,289,290,293,297,299,305,314,321,340,341,344,345,349,389,394,402,441],$VTs=[1,5398],$VUs=[1,5399],$VVs=[1,5406],$VWs=[1,5407],$VXs=[1,5404],$VYs=[1,5405],$VZs=[6,10,19,75,114,117,121,167,212,244,274,275,286,335,543,957],$V_s=[1,5408],$V$s=[2,1030],$V0t=[1,5414],$V1t=[1,5413],$V2t=[1,5415],$V3t=[1,5416],$V4t=[1,5419],$V5t=[1,5421],$V6t=[1,5427],$V7t=[1,5429],$V8t=[2,2441],$V9t=[1,5433],$Vat=[6,10,40,73,75,117,121,167,212,243,244,274,275,286,323,352,452,543,577,1190],$Vbt=[1,5444],$Vct=[1,5446],$Vdt=[19,399],$Vet=[2,1387],$Vft=[1,5460],$Vgt=[2,1635],$Vht=[2,2347],$Vit=[2,2590],$Vjt=[6,10,19,40,69,75,117,121,244,274,275,312,335,452],$Vkt=[2,2619],$Vlt=[6,10,40,69,75,117,121,244,274,275,312,335,452],$Vmt=[1,5511],$Vnt=[6,10,40,69,75,117,121,244,274,275,312,335,352,452],$Vot=[1,5526],$Vpt=[2,6,10,266,294,308,313,317,318,326,333,338,347,399,957,1190],$Vqt=[2,1080],$Vrt=[1,5536],$Vst=[2,1071],$Vtt=[1,5538],$Vut=[2,1016],$Vvt=[1,5545],$Vwt=[2,6,10,19,170,176,242,250,266,294,308,313,317,318,320,326,331,333,336,338,347,394,399,656,663,957,1190],$Vxt=[2,991],$Vyt=[1,5549],$Vzt=[2,6,10,266,294,308,313,317,318,326,333,338,347,399,1190],$VAt=[6,10,347,399,957,1190],$VBt=[2,6,10,170,176,242,246,266,294,308,313,317,318,320,326,333,338,347,394,399,656,663,1190],$VCt=[1,5612],$VDt=[1,5627],$VEt=[2,144,174,295,382,385,399,785],$VFt=[2,1497],$VGt=[19,144,174,295,382,385,399,785],$VHt=[2,2431],$VIt=[1,5643],$VJt=[1,5644],$VKt=[2,2369],$VLt=[2,6,10,19,170,176,242,246,250,266,294,308,313,317,318,320,326,331,333,336,338,347,394,399,656,663,957,1190],$VMt=[1,5686],$VNt=[2,3122],$VOt=[6,10,19,75,117,121,167,212,244,274,275,286,335,543,957],$VPt=[2,2373],$VQt=[6,10,75,117,121,167,212,244,274,275,286,335,543],$VRt=[1,5713],$VSt=[6,10,19,40,75,117,121,244,274,275,312,335,452],$VTt=[2,2623],$VUt=[1,5728],$VVt=[6,10,40,75,117,121,244,274,275,312,335,452],$VWt=[1,5743],$VXt=[2,6,10,19,266,294,308,313,317,318,326,333,338,347,399,663,957,1190],$VYt=[2,1076],$VZt=[2,1050],$V_t=[2,1054],$V$t=[2,1058],$V0u=[1,5759],$V1u=[2,6,10,19,242,266,294,308,313,317,318,320,326,333,338,347,394,399,663,957,1190],$V2u=[2,1035],$V3u=[1,5763],$V4u=[1,5765],$V5u=[1,5764],$V6u=[1,5767],$V7u=[2,6,10,242,266,294,308,313,317,318,320,326,333,338,347,394,399,663,1190],$V8u=[1,5783],$V9u=[2,6,10,170,176,242,266,294,308,313,317,318,320,326,333,338,347,394,399,656,663,1190],$Vau=[1,5810],$Vbu=[2,385,399],$Vcu=[2,1507],$Vdu=[1,5833],$Veu=[1,5832],$Vfu=[1,5831],$Vgu=[1,5829],$Vhu=[1,5830],$Viu=[19,385,399],$Vju=[1,5843],$Vku=[1,5862],$Vlu=[2,2450],$Vmu=[1,5866],$Vnu=[1,5868],$Vou=[6,10,40,75,117,121,167,212,244,274,275,286,352,452,543,577,1190],$Vpu=[2,1388],$Vqu=[2,2382],$Vru=[1,5898],$Vsu=[1,5896],$Vtu=[6,10,75,121,167,212,244,275,286,543],$Vuu=[1,5900],$Vvu=[1,5915],$Vwu=[6,10,19,40,75,117,121,244,274,275,335,452],$Vxu=[2,2625],$Vyu=[6,10,40,75,117,121,244,274,275,335,452],$Vzu=[1,5924],$VAu=[1,5925],$VBu=[6,10,19,214,225,235,257],$VCu=[2,2557],$VDu=[6,10,214,225,235,257],$VEu=[1,5935],$VFu=[2,1082],$VGu=[1,5950],$VHu=[1,5951],$VIu=[1,5953],$VJu=[2,3116],$VKu=[2,1517],$VLu=[1,5968],$VMu=[1,5969],$VNu=[1,5970],$VOu=[19,306,329],$VPu=[19,335],$VQu=[1,5980],$VRu=[6,10,19,40,75,117,121,167,212,244,274,275,286,352,452,543,577,957,1190,1209],$VSu=[1,5988],$VTu=[6,10,121,167,212,275,286,543],$VUu=[6,10,19,40,75,121,167,212,244,275,286,452,543,957],$VVu=[1,6005],$VWu=[1,6006],$VXu=[1,6023],$VYu=[1,6024],$VZu=[1,6029],$V_u=[1,6030],$V$u=[6,10,40,75,121,244,275,452],$V0v=[6,10,19,225,235,257],$V1v=[2,2560],$V2v=[6,10,225,235,257],$V3v=[1,6045],$V4v=[2,1489],$V5v=[2,19,385,399],$V6v=[2,2286],$V7v=[1,6068],$V8v=[1,6069],$V9v=[1,6070],$Vav=[2,2460],$Vbv=[6,10,167,212,286,543],$Vcv=[1,6092],$Vdv=[19,50,110,219],$Vev=[1,6097],$Vfv=[1,6102],$Vgv=[1,6106],$Vhv=[1,6115],$Viv=[6,10,40,121,275,452],$Vjv=[6,10,19,225,235],$Vkv=[2,2563],$Vlv=[6,10,225,235],$Vmv=[1,6134],$Vnv=[1,6150],$Vov=[1,6151],$Vpv=[2,2276],$Vqv=[1,6154],$Vrv=[2,6,10,19,399],$Vsv=[6,10,19,40,167,212,286,452,543,957],$Vtv=[1,6190],$Vuv=[1,6191],$Vvv=[6,10,40,452],$Vwv=[6,10,19,235],$Vxv=[2,2566],$Vyv=[6,10,235],$Vzv=[1,6211],$VAv=[2,19,399],$VBv=[6,10,957],$VCv=[2,2465],$VDv=[2,2345],$VEv=[2,2346],$VFv=[2,2569],$VGv=[1,6270],$VHv=[2,2469],$VIv=[2,2330],$VJv=[2,2329],$VKv=[2,2599],$VLv=[2,2501],$VMv=[2,2328]; -var parser = {trace: function trace () { }, -yy: {}, -symbols_: {"error":2,"SqlSyntax":3,"NewStatement":4,"SqlStatements":5,"EOF":6,"SqlAutocomplete":7,"SqlStatements_EDIT":8,"SqlStatement":9,";":10,"NonStartingToken":11,"SqlStatement_EDIT":12,"DataDefinition":13,"DataManipulation":14,"QuerySpecification":15,"ExplainClause":16,"AnyCursor":17,"CommonTableExpression":18,"CURSOR":19,"ExplainClause_EDIT":20,"DataDefinition_EDIT":21,"DataManipulation_EDIT":22,"QuerySpecification_EDIT":23,"SetSpecification_EDIT":24,"NonReservedKeyword":25,"ABORT":26,"ADD":27,"ADMIN":28,"AFTER":29,"ANALYZE":30,"ARCHIVE":31,"AVRO":32,"BUCKET":33,"BUCKETS":34,"CASCADE":35,"CHANGE":36,"CLUSTERED":37,"COLLECTION":38,"COLUMNS":39,"COMMENT":40,"COMPACT":41,"COMPACTIONS":42,"COMPUTE":43,"CONCATENATE":44,"DATA":45,"DATABASES":46,"DBPROPERTIES":47,"DEFERRED":48,"DEFINED":49,"DELIMITED":50,"DEPENDENCY":51,"DIRECTORY":52,"DISABLE":53,"DOUBLE_PRECISION":54,"ENABLE":55,"ESCAPED":56,"EXCHANGE":57,"EXPLAIN":58,"EXPORT":59,"FIELDS":60,"FILE":61,"FILEFORMAT":62,"FIRST":63,"FORMAT":64,"FUNCTIONS":65,"INPATH":66,"INPUTFORMAT":67,"JAR":68,"IDXPROPERTIES":69,"ITEMS":70,"KEY":71,"KEYS":72,"LINES":73,"LOAD":74,"LOCATION":75,"LOCKS":76,"MATCHED":77,"METADATA":78,"MERGE":79,"MSCK":80,"NOSCAN":81,"NOVALIDATE":82,"NO_DROP":83,"OFFLINE":84,"ORC":85,"OUTPUTFORMAT":86,"OVERWRITE":87,"OWNER":88,"PARQUET":89,"PARTITIONED":90,"PARTITIONS":91,"PERCENT":92,"PRIVILEGES":93,"PURGE":94,"RCFILE":95,"REBUILD":96,"RELOAD":97,"RELY":98,"NORELY":99,"REPAIR":100,"REPLICATION":101,"RECOVER":102,"RENAME":103,"REPLACE":104,"RESTRICT":105,"ROLE":106,"ROLES":107,"SCHEMAS":108,"SEQUENCEFILE":109,"SERDE":110,"SERDEPROPERTIES":111,"SETS":112,"SHOW":113,"SKEWED":114,"SORTED":115,"STATISTICS":116,"STORED":117,"STRING":118,"STRUCT":119,"TABLES":120,"TBLPROPERTIES":121,"TEMPORARY":122,"TERMINATED":123,"TEXTFILE":124,"TIMESTAMP":125,"TINYINT":126,"TOUCH":127,"TRANSACTIONS":128,"UNARCHIVE":129,"UNIONTYPE":130,"USE":131,"USER":132,"VIEW":133,"WAIT":134,"DAY":135,"HOUR":136,"MINUTE":137,"MONTH":138,"QUARTER":139,"SECOND":140,"WEEK":141,"YEAR":142,"ANALYTIC":143,"CURRENT":144,"GRANT":145,"RECOVER":146,"ROLE":147,"ROLES":148,"URI":149,"SERVER":150,"UNKNOWN":151,"BLOCK_SIZE":152,"COMPRESSION":153,"DEFAULT":154,"ENCODING":155,"KEY":156,"ROLE":157,"OPTION":158,"RegularIdentifier":159,"REGULAR_IDENTIFIER":160,"VARIABLE_REFERENCE":161,"OptionalHiveExplainTypes":162,"EXPLAIN":163,"AUTHORIZATION":164,"EXTENDED":165,"ALL":166,"AS":167,"BINARY":168,"CACHE":169,"CLUSTER":170,"CONF":171,"CONSTRAINT":172,"CUBE":173,"CURRENT":174,"DATE":175,"DISTRIBUTE":176,"DISTRIBUTED":177,"EXTERNAL":178,"FOR":179,"FOREIGN":180,"FUNCTION":181,"GRANT":182,"GROUPING":183,"LATERAL":184,"LOCAL":185,"LOCK":186,"MACRO":187,"PARTITION":188,"PRIMARY":189,"REFERENCES":190,"ROLLUP":191,"SHOW_DATABASE":192,"TABLE":193,"ASC":194,"FORMATTED":195,"INDEX":196,"INDEXES":197,"NONE":198,"OF":199,"OUT":200,"SCHEMA":201,"STORED_AS_DIRECTORIES":202,"TABLESAMPLE":203,"USING":204,"VIEWS":205,"WINDOW":206,".":207,"[":208,"]":209,"AGGREGATE":210,"AVRO":211,"CACHED":212,"CASCADE":213,"CLOSE_FN":214,"COLUMN":215,"DATA":216,"DATABASES":217,"DELETE":218,"DELIMITED":219,"ESCAPED":220,"EXTENDED":221,"EXTERNAL":222,"FIELDS":223,"FILES":224,"FINALIZE_FN":225,"FIRST":226,"FORMAT":227,"FORMATTED":228,"FUNCTION":229,"FUNCTIONS":230,"GROUP":231,"HASH":232,"ILIKE":233,"INCREMENTAL":234,"INTERMEDIATE":235,"INTERVAL":236,"INIT_FN":237,"INPATH":238,"IREGEXP":239,"KUDU":240,"LAST":241,"LIMIT":242,"LINES":243,"LOCATION":244,"MERGE_FN":245,"NULLS":246,"PARTITIONS":247,"PREPARE_FN":248,"PRIMARY":249,"RANGE":250,"REAL":251,"REPEATABLE":252,"REPLICATION":253,"RESTRICT":254,"RETURNS":255,"SCHEMAS":256,"SERIALIZE_FN":257,"SORT":258,"STATS":259,"STRAIGHT_JOIN":260,"SYMBOL":261,"TABLE":262,"TABLES":263,"TABLESAMPLE":264,"USING":265,"ANTI":266,"NOSHUFFLE":267,"PARQUET":268,"PARTITIONED":269,"RCFILE":270,"SEQUENCEFILE":271,"SERDEPROPERTIES":272,"SHUFFLE":273,"STORED":274,"TBLPROPERTIES":275,"TERMINATED":276,"TEXTFILE":277,"UPDATE_FN":278,"BROADCAST":279,"...":280,".":281,"[":282,"]":283,"ALL":284,"ARRAY":285,"AS":286,"ASC":287,"BETWEEN":288,"BIGINT":289,"BOOLEAN":290,"BY":291,"CASE":292,"CHAR":293,"CROSS":294,"CURRENT":295,"DATABASE":296,"DECIMAL":297,"DISTINCT":298,"DOUBLE":299,"DESC":300,"ELSE":301,"END":302,"EXISTS":303,"FALSE":304,"FLOAT":305,"FOLLOWING":306,"FROM":307,"FULL":308,"GROUP":309,"HAVING":310,"IF":311,"IN":312,"INNER":313,"INT":314,"INTO":315,"IS":316,"JOIN":317,"LEFT":318,"LIKE":319,"LIMIT":320,"MAP":321,"NOT":322,"NULL":323,"ON":324,"ORDER":325,"OUTER":326,"OVER":327,"PARTITION":328,"PRECEDING":329,"PURGE":330,"RANGE":331,"REGEXP":332,"RIGHT":333,"RLIKE":334,"ROW":335,"ROWS":336,"SCHEMA":337,"SEMI":338,"SET":339,"SMALLINT":340,"STRING":341,"TABLE":342,"THEN":343,"TIMESTAMP":344,"TINYINT":345,"TRUE":346,"UNION":347,"VALUES":348,"VARCHAR":349,"WHEN":350,"WHERE":351,"WITH":352,"AVG":353,"CAST":354,"COUNT":355,"MAX":356,"MIN":357,"STDDEV_POP":358,"STDDEV_SAMP":359,"SUM":360,"VARIANCE":361,"VAR_POP":362,"VAR_SAMP":363,"COLLECT_SET":364,"COLLECT_LIST":365,"CORR":366,"COVAR_POP":367,"COVAR_SAMP":368,"DAYOFWEEK":369,"HISTOGRAM_NUMERIC":370,"NTILE":371,"PERCENTILE":372,"PERCENTILE_APPROX":373,"APPX_MEDIAN":374,"EXTRACT":375,"GROUP_CONCAT":376,"NDV":377,"STDDEV":378,"VARIANCE_POP":379,"VARIANCE_SAMP":380,"ANALYTIC":381,"UNSIGNED_INTEGER":382,"UNSIGNED_INTEGER_E":383,"HDFS_START_QUOTE":384,"AND":385,"OR":386,"=":387,"<":388,">":389,"COMPARISON_OPERATOR":390,"-":391,"*":392,"ARITHMETIC_OPERATOR":393,",":394,".":395,"~":396,"!":397,"(":398,")":399,"[":400,"]":401,"BACKTICK":402,"SINGLE_QUOTE":403,"DOUBLE_QUOTE":404,"DescribeStatement":405,"AlterStatement":406,"AnalyzeStatement":407,"RefreshStatement":408,"InvalidateStatement":409,"ComputeStatsStatement":410,"CreateStatement":411,"DropStatement":412,"HiveAbortStatement":413,"GrantStatement":414,"RevokeStatement":415,"SetRoleStatement":416,"SetSpecification":417,"ShowStatement":418,"UseStatement":419,"DescribeStatement_EDIT":420,"AlterStatement_EDIT":421,"AnalyzeStatement_EDIT":422,"RefreshStatement_EDIT":423,"InvalidateStatement_EDIT":424,"ComputeStatsStatement_EDIT":425,"CreateStatement_EDIT":426,"DropStatement_EDIT":427,"HiveAbortStatement_EDIT":428,"GrantStatement_EDIT":429,"RevokeStatement_EDIT":430,"SetRoleStatement_EDIT":431,"ShowStatement_EDIT":432,"UseStatement_EDIT":433,"AggregateOrAnalytic":434,"Commas":435,"AnyAs":436,"AnyCreate":437,"CREATE":438,"CREATE":439,"CREATE":440,"PARTIAL_CURSOR":441,"AnyDot":442,"AnyFromOrIn":443,"AnyGroup":444,"GROUP":445,"AnyPartition":446,"AnyTable":447,"DatabaseOrSchema":448,"FromOrIn":449,"HiveIndexOrIndexes":450,"HiveOrImpalaComment":451,"COMMENT":452,"HiveOrImpalaCreate":453,"HiveOrImpalaDatabasesOrSchemas":454,"HiveOrImpalaEscaped":455,"HiveOrImpalaFields":456,"HiveOrImpalaFormat":457,"HiveOrImpalaLeftSquareBracket":458,"HiveOrImpalaLines":459,"HiveOrImpalaLocation":460,"HiveOrImpalaRightSquareBracket":461,"HiveOrImpalaPartitioned":462,"HiveOrImpalaStored":463,"HiveOrImpalaTables":464,"HiveOrImpalaTblproperties":465,"HiveOrImpalaTerminated":466,"HiveRoleOrUser":467,"SingleQuotedValue":468,"VALUE":469,"SingleQuotedValue_EDIT":470,"PARTIAL_VALUE":471,"DoubleQuotedValue":472,"DoubleQuotedValue_EDIT":473,"QuotedValue":474,"QuotedValue_EDIT":475,"OptionalAggregateOrAnalytic":476,"OptionalHiveExtended":477,"OptionalHiveExtendedOrFormatted":478,"OptionalExternal":479,"OptionalImpalaExtendedOrFormatted":480,"OptionallyFormattedIndex":481,"OptionallyFormattedIndex_EDIT":482,"OptionalFromDatabase":483,"DatabaseIdentifier":484,"OptionalFromDatabase_EDIT":485,"DatabaseIdentifier_EDIT":486,"OptionalCascade":487,"OptionalCascadeOrRestrict":488,"OptionalHiveCascadeOrRestrict":489,"OptionalHiveTemporary":490,"OptionalIfExists":491,"OptionalIfExists_EDIT":492,"OptionalIfNotExists":493,"OptionalIfNotExists_EDIT":494,"OptionalInDatabase":495,"OptionalPartitionSpec":496,"PartitionSpec":497,"OptionalPartitionSpec_EDIT":498,"PartitionSpec_EDIT":499,"PartitionSpecList":500,"PartitionSpecList_EDIT":501,"RightParenthesisOrError":502,"RangePartitionSpec":503,"UnsignedValueSpecification":504,"RangePartitionComparisonOperator":505,"RangePartitionSpec_EDIT":506,"ConfigurationName":507,"PartialBacktickedOrAnyCursor":508,"PartialBacktickedIdentifier":509,"PartialBacktickedOrCursor":510,"PartialBacktickedOrPartialCursor":511,"OptionalParenthesizedColumnList":512,"ParenthesizedColumnList":513,"OptionalParenthesizedColumnList_EDIT":514,"ParenthesizedColumnList_EDIT":515,"ColumnList":516,"ColumnList_EDIT":517,"ColumnIdentifier":518,"ColumnIdentifier_EDIT":519,"ParenthesizedSimpleValueList":520,"SimpleValueList":521,"SchemaQualifiedTableIdentifier":522,"RegularOrBacktickedIdentifier":523,"ImpalaFields":524,"SchemaQualifiedTableIdentifier_EDIT":525,"ImpalaFields_EDIT":526,"ImpalaField":527,"ImpalaField_EDIT":528,"SchemaQualifiedIdentifier":529,"SchemaQualifiedIdentifier_EDIT":530,"PartitionExpression":531,"PartitionExpression_EDIT":532,"ValueExpression":533,"ValueExpression_EDIT":534,"OptionalHdfsLocation":535,"HdfsLocation":536,"HdfsPath":537,"HdfsLocation_EDIT":538,"HdfsPath_EDIT":539,"OptionalCachedInOrUncached":540,"CachedIn":541,"OptionalWithReplication":542,"UNCACHED":543,"OptionalCachedIn":544,"CachedIn_EDIT":545,"WithReplication":546,"SignedInteger":547,"WithReplication_EDIT":548,"RegularOrBackTickedSchemaQualifiedName":549,"RegularOrBackTickedSchemaQualifiedName_EDIT":550,"LocalOrSchemaQualifiedName":551,"LocalOrSchemaQualifiedName_EDIT":552,"ColumnReference":553,"BasicIdentifierChain":554,"ColumnReference_EDIT":555,"BasicIdentifierChain_EDIT":556,"DerivedColumnChain":557,"DerivedColumnChain_EDIT":558,"PartialBacktickedIdentifierOrPartialCursor":559,"HiveOrImpalaRightSquareBracketOrError":560,"PrimitiveType":561,"OptionalTypePrecision":562,"OptionalTypeLength":563,"HiveDescribeStatement":564,"ImpalaDescribeStatement":565,"HiveDescribeStatement_EDIT":566,"ImpalaDescribeStatement_EDIT":567,"HiveDesc":568,"DESCRIBE":569,"DESCRIBE":570,"DESC":571,"SelectStatement":572,"OptionalUnions":573,"SelectStatement_EDIT":574,"OptionalUnions_EDIT":575,"CommonTableExpression_EDIT":576,"SELECT":577,"OptionalAllOrDistinct":578,"OptionalStraightJoin":579,"SelectList":580,"TableExpression":581,"SelectList_ERROR":582,"TableExpression_ERROR":583,"Unions":584,"Unions_EDIT":585,"UnionClause":586,"UnionClause_EDIT":587,"SelectList_EDIT":588,"TableExpression_EDIT":589,"SelectList_ERROR_EDIT":590,"WithQueries":591,"WithQueries_EDIT":592,"WithQuery":593,"WithQuery_EDIT":594,"TableSubQueryInner":595,"TableSubQueryInner_EDIT":596,"FromClause":597,"OptionalSelectConditions":598,"FromClause_EDIT":599,"OptionalJoins":600,"OptionalSelectConditions_EDIT":601,"Joins":602,"Joins_INVALID":603,"TableReferenceList":604,"OptionalLateralViews":605,"TableReferenceList_EDIT":606,"OptionalLateralViews_EDIT":607,"OptionalWhereClause":608,"OptionalGroupByClause":609,"OptionalHavingClause":610,"OptionalWindowClause":611,"OptionalOrderByClause":612,"OptionalClusterOrDistributeBy":613,"OptionalLimitClause":614,"OptionalOffsetClause":615,"WhereClause_EDIT":616,"GroupByClause_EDIT":617,"HavingClause_EDIT":618,"WindowClause_EDIT":619,"OrderByClause_EDIT":620,"ClusterOrDistributeBy_EDIT":621,"LimitClause_EDIT":622,"OffsetClause_EDIT":623,"WhereClause":624,"GroupByClause":625,"HavingClause":626,"WindowClause":627,"OrderByClause":628,"ClusterOrDistributeBy":629,"LimitClause":630,"SearchCondition":631,"SearchCondition_EDIT":632,"GroupByColumnList":633,"OptionalHiveGroupingSetsCubeOrRollup":634,"GroupByColumnList_EDIT":635,"OptionalHiveGroupingSetsCubeOrRollup_EDIT":636,"HiveGroupingSets":637,"HiveGroupingSets_EDIT":638,"ColumnGroupingSets":639,"ColumnGroupingSets_EDIT":640,"ColumnGroupingSet_EDIT":641,"GroupByColumnListPartTwo_EDIT":642,"OrderByColumnList":643,"OrderByColumnList_EDIT":644,"OrderByIdentifier":645,"OrderByIdentifier_EDIT":646,"OptionalAscOrDesc":647,"OptionalImpalaNullsFirstOrLast":648,"OptionalImpalaNullsFirstOrLast_EDIT":649,"ClusterByClause":650,"DistributeByClause":651,"SortByClause":652,"ClusterByClause_EDIT":653,"DistributeByClause_EDIT":654,"SortByClause_EDIT":655,"SORT":656,"SortByList":657,"SortByList_EDIT":658,"SortByIdentifier":659,"SortByIdentifier_EDIT":660,"UnsignedNumericLiteral":661,"OffsetClause":662,"OFFSET":663,"NonParenthesizedValueExpressionPrimary":664,"OptionalNot":665,"TableSubQuery":666,"ValueExpressionList":667,"BETWEEN_AND":668,"LikeRightPart":669,"CaseRightPart":670,"NonParenthesizedValueExpressionPrimary_EDIT":671,"TableSubQuery_EDIT":672,"ValueExpressionInSecondPart_EDIT":673,"LikeRightPart_EDIT":674,"CaseRightPart_EDIT":675,"EndOrError":676,"ValueExpressionList_EDIT":677,"InValueList":678,"ColumnOrArbitraryFunctionRef":679,"ArbitraryFunctionRightPart":680,"ArbitraryFunctionName":681,"UserDefinedFunction":682,"ImpalaInterval":683,"UnsignedValueSpecification_EDIT":684,"ColumnOrArbitraryFunctionRef_EDIT":685,"ArbitraryFunctionRightPart_EDIT":686,"UserDefinedFunction_EDIT":687,"ImpalaInterval_EDIT":688,"+":689,"UnsignedLiteral":690,"UnsignedLiteral_EDIT":691,"GeneralLiteral":692,"GeneralLiteral_EDIT":693,"ExactNumericLiteral":694,"ApproximateNumericLiteral":695,"TruthValue":696,"SelectSpecification":697,"OptionalCorrelationName":698,"SelectSpecification_EDIT":699,"OptionalCorrelationName_EDIT":700,"TableReference":701,"TableReference_EDIT":702,"TablePrimaryOrJoinedTable":703,"TablePrimaryOrJoinedTable_EDIT":704,"TablePrimary":705,"JoinedTable":706,"TablePrimary_EDIT":707,"JoinedTable_EDIT":708,"Joins_EDIT":709,"JoinType":710,"OptionalImpalaBroadcastOrShuffle":711,"OptionalJoinCondition":712,"Join_EDIT":713,"JoinType_EDIT":714,"JoinCondition_EDIT":715,"UsingColList":716,"TableOrQueryName":717,"OptionalHiveTableSample":718,"OptionalImpalaTableSample":719,"DerivedTable":720,"TableOrQueryName_EDIT":721,"OptionalHiveTableSample_EDIT":722,"OptionalImpalaTableSample_EDIT":723,"DerivedTable_EDIT":724,"OptionalOnColumn":725,"OptionalOnColumn_EDIT":726,"SYSTEM":727,"PushQueryState":728,"PopQueryState":729,"SubQuery":730,"SubQuery_EDIT":731,"QueryExpression":732,"QueryExpression_EDIT":733,"QueryExpressionBody":734,"QueryExpressionBody_EDIT":735,"NonJoinQueryExpression":736,"NonJoinQueryExpression_EDIT":737,"NonJoinQueryTerm":738,"NonJoinQueryTerm_EDIT":739,"NonJoinQueryPrimary":740,"NonJoinQueryPrimary_EDIT":741,"SimpleTable":742,"SimpleTable_EDIT":743,"LateralView":744,"LateralView_EDIT":745,"AggregateFunction":746,"OptionalOverClause":747,"AnalyticFunction":748,"OverClause":749,"CastFunction":750,"HiveExtractFunction":751,"ImpalaExtractFunction":752,"AggregateFunction_EDIT":753,"OptionalOverClause_EDIT":754,"AnalyticFunction_EDIT":755,"OverClause_EDIT":756,"CastFunction_EDIT":757,"HiveExtractFunction_EDIT":758,"ImpalaExtractFunction_EDIT":759,"ArbitraryFunction":760,"ArbitraryFunction_EDIT":761,"REPLACE":762,"TRUNCATE":763,"OptionalFunctionSquareBracket":764,"CountFunction":765,"SumFunction":766,"OtherAggregateFunction":767,"CountFunction_EDIT":768,"SumFunction_EDIT":769,"OtherAggregateFunction_EDIT":770,"WindowExpression":771,"WindowExpression_EDIT":772,"OptionalPartitionBy":773,"OptionalOrderByAndWindow":774,"PartitionBy_EDIT":775,"OptionalOrderByAndWindow_EDIT":776,"PartitionBy":777,"OptionalWindowSpec":778,"WindowSpec_EDIT":779,"WindowSpec":780,"RowsOrRange":781,"PopLexerState":782,"OptionalCurrentOrPreceding":783,"OptionalAndFollowing":784,"UNBOUNDED":785,"OptionalCurrentOrPreceding_EDIT":786,"OptionalAndFollowing_EDIT":787,"PushHdfsLexerState":788,"HDFS_PATH":789,"HDFS_END_QUOTE":790,"AnyRange":791,"IntegerOrUnbounded":792,"AnyCurrent":793,"EXTRACT":794,"HiveDateField":795,"OtherAggregateFunction_Type":796,"FromOrComma":797,"OptionalOuter":798,"LateralViewColumnAliases":799,"LateralViewColumnAliases_EDIT":800,"CaseWhenThenList":801,"CaseWhenThenList_EDIT":802,"CaseWhenThenListPartTwo":803,"CaseWhenThenListPartTwo_EDIT":804,"ErrorList":805,"Errors":806,"SetOption":807,"SetValue":808,"DatabaseDefinition_EDIT":809,"DatabaseDefinitionOptionals_EDIT":810,"DatabaseDefinitionOptionals":811,"AlterDatabase":812,"AlterIndex":813,"AlterTable":814,"AlterView":815,"Msck":816,"ReloadFunction":817,"CommentOn":818,"AlterDatabase_EDIT":819,"AlterIndex_EDIT":820,"AlterTable_EDIT":821,"AlterView_EDIT":822,"Msck_EDIT":823,"ReloadFunction_EDIT":824,"CommentOn_EDIT":825,"ALTER":826,"ParenthesizedPropertyAssignmentList":827,"PrincipalSpecification":828,"PrincipalSpecification_EDIT":829,"AlterTableLeftSide":830,"AnyAdd":831,"OptionalPartitionSpecs":832,"PARTITION_VALUE":833,"HivePrimaryKeySpecification":834,"HiveForeignKeySpecification":835,"AnyRename":836,"TO":837,"HiveSpecificOperations":838,"ImpalaSpecificOperations":839,"DropOperations":840,"OptionalPartitionOperations":841,"AlterTableLeftSide_EDIT":842,"AnyReplace":843,"OptionalPartitionSpecs_EDIT":844,"HivePrimaryKeySpecification_EDIT":845,"HiveForeignKeySpecification_EDIT":846,"HiveSpecificOperations_EDIT":847,"ImpalaSpecificOperations_EDIT":848,"OptionalPartitionOperations_EDIT":849,"DropOperations_EDIT":850,"AddOrReplace":851,"ClusteredBy":852,"ParenthesizedSkewedValueList":853,"OptionalStoredAsDirectories":854,"HiveExchange":855,"HiveArchiveOrUnArchive":856,"SKEWED_LOCATION":857,"ParenthesizedSkewedLocationList":858,"AnyChange":859,"COLUMN":860,"ParenthesizedColumnSpecificationList":861,"ClusteredBy_EDIT":862,"HiveExchange_EDIT":863,"ParenthesizedSkewedLocationList_EDIT":864,"OptionalStoredAsDirectories_EDIT":865,"OptionalImpalaColumn":866,"KuduStorageAttribute":867,"DROP":868,"ParenthesizedStatsList":869,"ParenthesizedStatsList_EDIT":870,"StatsList":871,"StatsList_EDIT":872,"StatsAssignment":873,"StatsAssignment_EDIT":874,"AnyFileFormat":875,"FileFormat":876,"OptionalWithSerdeproperties":877,"HiveOrImpalaSerdeproperties":878,"ImpalaRowFormat":879,"AddReplaceColumns":880,"OptionalAndWait":881,"OptionalWithOverwriteTblProperties":882,"HiveEnableOrDisable":883,"HiveNoDropOrOffline":884,"OptionalHiveColumn":885,"ColumnSpecification":886,"OptionalHiveFirstOrAfter":887,"AddReplaceColumns_EDIT":888,"ColumnSpecification_EDIT":889,"OptionalHiveFirstOrAfter_EDIT":890,"AndWait_EDIT":891,"WithOverwriteTblProperties_EDIT":892,"HiveNoDropOrOffline_EDIT":893,"ImpalaRowFormat_EDIT":894,"WithSerdeproperties_EDIT":895,"AnyColumns":896,"ParenthesizedColumnSpecificationList_EDIT":897,"COLUMNS":898,"ExchangePartitionSpec":899,"ExchangePartitionSpec_EDIT":900,"OneOrMorePartitionSpecLists":901,"OneOrMorePartitionSpecLists_EDIT":902,"OneOrMorePartitionSpecs":903,"OptionalHivePurge":904,"OneOrMorePartitionSpecs_EDIT":905,"CHANGE":906,"FILEFORMAT":907,"ADD":908,"HiveAfterOrFirst":909,"RENAME":910,"PartitionSpecWithLocationList":911,"PartitionSpecWithLocation":912,"PartitionSpecWithLocation_EDIT":913,"SkewedLocationList":914,"SkewedLocationList_EDIT":915,"SkewedLocation":916,"SkewedLocation_EDIT":917,"ColumnReferences":918,"AlterViewLeftSide":919,"AlterViewLeftSide_EDIT":920,"AnyView":921,"NullableComment":922,"OptionalForColumns":923,"OptionalCacheMetadata":924,"OptionalNoscan":925,"ForColumns":926,"CacheMetadata":927,"ForColumns_EDIT":928,"CacheMetadata_EDIT":929,"REFRESH":930,"INVALIDATE":931,"METADATA":932,"COMPUTE":933,"DatabaseDefinition":934,"TableDefinition":935,"ViewDefinition":936,"RoleDefinition":937,"FunctionDefinition":938,"IndexDefinition":939,"MacroDefinition":940,"TableDefinition_EDIT":941,"ViewDefinition_EDIT":942,"FunctionDefinition_EDIT":943,"IndexDefinition_EDIT":944,"MacroDefinition_EDIT":945,"OptionalComment":946,"OptionalHiveDbProperties":947,"OptionalComment_INVALID":948,"Comment":949,"Comment_INVALID":950,"HiveDbProperties":951,"WITH":952,"PropertyAssignmentList":953,"PropertyAssignment":954,"TableDefinitionRightPart":955,"LifeCyclePart":956,"LIFECYCLE":957,"TableDefinitionRightPart_EDIT":958,"TableIdentifierAndOptionalColumnSpecification":959,"OptionalPartitionedBy":960,"OptionalSortBy":961,"OptionalClusteredBy":962,"OptionalSkewedBy":963,"OptionalStoredAsOrBy":964,"OptionalTblproperties":965,"OptionalAsSelectStatement":966,"TableIdentifierAndOptionalColumnSpecification_EDIT":967,"PartitionedBy_EDIT":968,"SortBy_EDIT":969,"SkewedBy_EDIT":970,"StoredAsOrBy_EDIT":971,"OptionalAsSelectStatement_EDIT":972,"OptionalColumnSpecificationsOrLike":973,"OptionalColumnSpecificationsOrLike_EDIT":974,"LIKE_PARQUET":975,"ColumnSpecificationList":976,"ConstraintSpecification":977,"ColumnSpecificationList_EDIT":978,"ConstraintSpecification_EDIT":979,"ColumnDataType":980,"OptionalColumnOptions":981,"ColumnDataType_EDIT":982,"ColumnOptions_EDIT":983,"ColumnOptions":984,"ColumnOption":985,"ColumnOption_EDIT":986,"ImpalaPrimaryKey":987,"ImpalaPrimaryKey_EDIT":988,"ArrayType":989,"MapType":990,"StructType":991,"UnionType":992,"ArrayType_INVALID":993,"MapType_INVALID":994,"StructType_INVALID":995,"UnionType_INVALID":996,"ArrayType_EDIT":997,"MapType_EDIT":998,"StructType_EDIT":999,"UnionType_EDIT":1000,"GreaterThanOrError":1001,"StructDefinitionList":1002,"StructDefinitionList_EDIT":1003,"StructDefinition":1004,"StructDefinition_EDIT":1005,":":1006,"ColumnDataTypeList":1007,"ColumnDataTypeList_EDIT":1008,"ColumnDataTypeListInner_EDIT":1009,"ImpalaPrimaryKeySpecification":1010,"ImpalaPrimaryKeySpecification_EDIT":1011,"HivePrimaryKey":1012,"HivePrimaryKey_EDIT":1013,"OptionalRelyNoRely":1014,"PartitionedBy":1015,"ParenthesizedPartitionValuesList":1016,"ParenthesizedPartitionValuesList_EDIT":1017,"SortBy":1018,"PartitionValueList":1019,"PartitionValueList_EDIT":1020,"PartitionValue":1021,"PartitionValue_EDIT":1022,"LessThanOrEqualTo":1023,"OptionalHiveSortedBy":1024,"OptionalHiveSortedBy_EDIT":1025,"ParenthesizedSortList":1026,"ParenthesizedSortList_EDIT":1027,"SortList":1028,"SortList_EDIT":1029,"SortIdentifier":1030,"SortIdentifier_EDIT":1031,"SkewedBy":1032,"SkewedValueList":1033,"StoredAsOrBy":1034,"StoredAs":1035,"HiveOrImpalaRowFormat":1036,"OptionalStoredAs":1037,"StoredAs_EDIT":1038,"HiveOrImpalaRowFormat_EDIT":1039,"ORC":1040,"HiveRowFormat":1041,"HiveRowFormat_EDIT":1042,"HiveDelimitedRowFormat":1043,"HiveDelimitedRowFormat_EDIT":1044,"OptionalFieldsTerminatedBy":1045,"OptionalCollectionItemsTerminatedBy":1046,"OptionalMapKeysTerminatedBy":1047,"OptionalLinesTerminatedBy":1048,"OptionalNullDefinedAs":1049,"OptionalFieldsTerminatedBy_EDIT":1050,"OptionalCollectionItemsTerminatedBy_EDIT":1051,"OptionalMapKeysTerminatedBy_EDIT":1052,"OptionalLinesTerminatedBy_EDIT":1053,"OptionalNullDefinedAs_EDIT":1054,"ESCAPED":1055,"WithSerdeproperties":1056,"TblProperties":1057,"OptionalHiveTblproperties":1058,"CommitLocations":1059,"OptionalParenthesizedViewColumnList":1060,"ParenthesizedViewColumnList_EDIT":1061,"ImpalaFunctionDefinition":1062,"ImpalaAggregateFunctionDefinition":1063,"HiveFunctionDefinition":1064,"HiveTemporaryFunction":1065,"ImpalaFunctionDefinition_EDIT":1066,"ImpalaAggregateFunctionDefinition_EDIT":1067,"HiveFunctionDefinition_EDIT":1068,"HiveTemporaryFunction_EDIT":1069,"ParenthesizedImpalaArgumentList":1070,"ImpalaReturns":1071,"ImpalaSymbol":1072,"ParenthesizedImpalaArgumentList_EDIT":1073,"ImpalaReturns_EDIT":1074,"OptionalImpalaInitFn":1075,"ImpalaUpdateFn":1076,"ImpalaMergeFn":1077,"OptionalImpalaPrepareFn":1078,"OptionalImpalaCloseFn":1079,"OptionalImpalaSerializeFn":1080,"OptionalImpalaFinalizeFn":1081,"OptionalIntermediate":1082,"OptionalImpalaInitFn_EDIT":1083,"ImpalaUpdateFn_EDIT":1084,"ImpalaMergeFn_EDIT":1085,"OptionalImpalaPrepareFn_EDIT":1086,"OptionalImpalaCloseFn_EDIT":1087,"OptionalImpalaSerializeFn_EDIT":1088,"OptionalImpalaFinalizeFn_EDIT":1089,"Intermediate_EDIT":1090,"OptionalHiveUsing":1091,"OptionalHiveUsing_EDIT":1092,"ImpalaArgumentList":1093,"OptionalVariableArguments":1094,"ImpalaArgumentList_EDIT":1095,"FunctionReference":1096,"FunctionReference_EDIT":1097,"OneOrMoreFunctionResources":1098,"FunctionResource":1099,"FunctionResourceType":1100,"VIEW":1101,"ParenthesizedViewColumnList":1102,"ViewColumnList":1103,"ViewColumnList_EDIT":1104,"AnyRole":1105,"ExistingTable":1106,"ParenthesizedIndexColumnList":1107,"IndexType":1108,"OptionalWithDeferredRebuild":1109,"OptionalIdxProperties":1110,"OptionalInTable":1111,"ExistingTable_EDIT":1112,"ParenthesizedIndexColumnList_EDIT":1113,"IndexType_EDIT":1114,"OptionalWithDeferredRebuild_EDIT":1115,"OptionalInTable_EDIT":1116,"IndexColumnList":1117,"IndexColumnList_EDIT":1118,"MacroArguments":1119,"MacroArguments_EDIT":1120,"MacroArgumentList":1121,"MacroArgumentList_EDIT":1122,"MacroArgument":1123,"MacroArgument_EDIT":1124,"HiveDeleteStatement":1125,"ImpalaDeleteStatement":1126,"InsertStatement":1127,"LoadStatement":1128,"ImportStatement":1129,"ExportStatement":1130,"UpdateStatement":1131,"HiveDeleteStatement_EDIT":1132,"ImpalaDeleteStatement_EDIT":1133,"HiveInsertStatement_EDIT":1134,"InsertValuesStatement_EDIT":1135,"ImpalaInsertOrUpsertStatement_EDIT":1136,"HiveInsertStatement":1137,"ImpalaInsertOrUpsertStatement":1138,"HiveMergeStatement_EDIT":1139,"LoadStatement_EDIT":1140,"ImportStatement_EDIT":1141,"ExportStatement_EDIT":1142,"UpdateStatement_EDIT":1143,"DropDatabaseStatement":1144,"DropFunctionStatement":1145,"DropRoleStatement":1146,"DropStatsStatement":1147,"DropTableStatement":1148,"DropIndexStatement":1149,"DropMacroStatement":1150,"DropViewStatement":1151,"TruncateTableStatement":1152,"DropDatabaseStatement_EDIT":1153,"DropFunctionStatement_EDIT":1154,"DropStatsStatement_EDIT":1155,"DropTableStatement_EDIT":1156,"DropIndexStatement_EDIT":1157,"DropMacroStatement_EDIT":1158,"DropViewStatement_EDIT":1159,"TruncateTableStatement_EDIT":1160,"DropImpalaFunction":1161,"DropHiveFunction":1162,"DropImpalaFunction_EDIT":1163,"DropHiveFunction_EDIT":1164,"OptionalPurge":1165,"DELETE":1166,"OptionalImpalaDeleteTableRef":1167,"ImpalaDeleteTableRef_EDIT":1168,"TransactionIdList":1169,"HivePrivilegeTypeList":1170,"OptionalOnSpecification":1171,"PrincipalSpecificationList":1172,"OptionalWithGrantOption":1173,"UserOrRoleList":1174,"OptionalWithAdminOption":1175,"ImpalaPrivilegeType":1176,"ImpalaObjectSpecification":1177,"HivePrivilegeTypeList_EDIT":1178,"OnSpecification_EDIT":1179,"PrincipalSpecificationList_EDIT":1180,"WithGrantOption_EDIT":1181,"WithAdminOption_EDIT":1182,"ImpalaPrivilegeType_EDIT":1183,"ImpalaObjectSpecification_EDIT":1184,"HiveObjectSpecification":1185,"HiveObjectSpecification_EDIT":1186,"HivePrivilegeTypeWithOptionalColumn":1187,"HivePrivilegeTypeWithOptionalColumn_EDIT":1188,"HivePrivilegeType":1189,"INSERT":1190,"UPDATE":1191,"INSERT":1192,"REVOKE":1193,"PrivilegesOrGrantOption":1194,"REVOKE":1195,"PrivilegesOrGrantOption_EDIT":1196,"InsertValuesStatement":1197,"HiveMergeStatement":1198,"HiveInsertWithoutQuery":1199,"HiveInserts":1200,"SelectWithoutTableExpression":1201,"HiveInsertWithoutQuery_EDIT":1202,"HiveInserts_EDIT":1203,"SelectWithoutTableExpression_EDIT":1204,"OptionalHiveTable":1205,"OptionalInsertRowFormat":1206,"OVERWRITE_DIRECTORY":1207,"OptionalInsertRowFormat_EDIT":1208,"OptionalStoredAs_EDIT":1209,"HiveInsert":1210,"HiveInsert_EDIT":1211,"InsertValuesList":1212,"INSERT":1213,"OptionalTable":1214,"ParenthesizedRowValuesList":1215,"ImpalaInsertOrUpsertStatementWithoutCTE":1216,"ImpalaInsertOrUpsertStatementWithoutCTE_EDIT":1217,"ImpalaInsertOrUpsertLeftPart":1218,"OptionalImpalaShuffleOrNoShuffle":1219,"ImpalaRowValuesLists":1220,"ImpalaInsertOrUpsertLeftPart_EDIT":1221,"ImpalaRowValuesLists_EDIT":1222,"ImpalaUpsertStatementLeftPart":1223,"ImpalaInsertLeftPart":1224,"ImpalaUpsertStatementLeftPart_EDIT":1225,"ImpalaInsertLeftPart_EDIT":1226,"UPSERT":1227,"OptionalImpalaTable":1228,"IntoOrOverwrite":1229,"OVERWRITE":1230,"ParenthesizedImpalaRowValuesList":1231,"ParenthesizedImpalaRowValuesList_EDIT":1232,"HiveMergeStatementLeftPart":1233,"WhenList":1234,"HiveMergeStatementLeftPart_EDIT":1235,"WhenList_EDIT":1236,"MergeSource":1237,"MergeSource_EDIT":1238,"WhenClause":1239,"WhenClause_EDIT":1240,"OptionalMatchCondition":1241,"UpdateDeleteOrInsert":1242,"MatchCondition_EDIT":1243,"UpdateDeleteOrInsert_EDIT":1244,"SetClauseList":1245,"SetClauseList_EDIT":1246,"AnyLoad":1247,"AnyData":1248,"OptionalHiveLocal":1249,"AnyInpath":1250,"OptionalOverwrite":1251,"LOAD":1252,"IMPORT":1253,"OptionalTableWithPartition":1254,"TableWithPartition":1255,"TableWithPartition_EDIT":1256,"ShowColumnStatsStatement":1257,"ShowColumnsStatement":1258,"ShowCompactionsStatement":1259,"ShowConfStatement":1260,"ShowCreateTableStatement":1261,"ShowCurrentRolesStatement":1262,"ShowDatabasesStatement":1263,"ShowFilesStatement":1264,"ShowFunctionsStatement":1265,"ShowGrantStatement":1266,"ShowIndexStatement":1267,"ShowLocksStatement":1268,"ShowPartitionsStatement":1269,"ShowRoleStatement":1270,"ShowRolesStatement":1271,"ShowTableStatement":1272,"ShowTablesStatement":1273,"ShowTblPropertiesStatement":1274,"ShowTransactionsStatement":1275,"ShowViewsStatement":1276,"AnyShow":1277,"SHOW":1278,"ShowColumnStatsStatement_EDIT":1279,"ShowColumnsStatement_EDIT":1280,"ShowCreateTableStatement_EDIT":1281,"ShowCurrentRolesStatement_EDIT":1282,"ShowDatabasesStatement_EDIT":1283,"ShowFilesStatement_EDIT":1284,"ShowFunctionsStatement_EDIT":1285,"ShowGrantStatement_EDIT":1286,"ShowIndexStatement_EDIT":1287,"ShowLocksStatement_EDIT":1288,"ShowPartitionsStatement_EDIT":1289,"ShowRoleStatement_EDIT":1290,"ShowTableStatement_EDIT":1291,"ShowTablesStatement_EDIT":1292,"ShowTblPropertiesStatement_EDIT":1293,"ShowViewsStatement_EDIT":1294,"AnyTableOrView":1295,"OptionalPrincipalName":1296,"OptionalPrincipalName_EDIT":1297,"OptionalInOrFromDatabase":1298,"OptionalLike":1299,"InOrFromDatabase_EDIT":1300,"Like_EDIT":1301,"TargetTable":1302,"OptionalFromJoinedTable":1303,"TargetTable_EDIT":1304,"FromJoinedTable_EDIT":1305,"TableName":1306,"TableName_EDIT":1307,"SetClause":1308,"SetClause_EDIT":1309,"SetTarget":1310,"UpdateSource":1311,"UpdateSource_EDIT":1312,"AnyUse":1313,"USE":1314,"$accept":0,"$end":1}, -terminals_: {2:"error",6:"EOF",10:";",19:"CURSOR",24:"SetSpecification_EDIT",26:"ABORT",27:"ADD",28:"ADMIN",29:"AFTER",30:"ANALYZE",31:"ARCHIVE",32:"AVRO",33:"BUCKET",34:"BUCKETS",35:"CASCADE",36:"CHANGE",37:"CLUSTERED",38:"COLLECTION",39:"COLUMNS",40:"COMMENT",41:"COMPACT",42:"COMPACTIONS",43:"COMPUTE",44:"CONCATENATE",45:"DATA",46:"DATABASES",47:"DBPROPERTIES",48:"DEFERRED",49:"DEFINED",50:"DELIMITED",51:"DEPENDENCY",52:"DIRECTORY",53:"DISABLE",54:"DOUBLE_PRECISION",55:"ENABLE",56:"ESCAPED",57:"EXCHANGE",58:"EXPLAIN",59:"EXPORT",60:"FIELDS",61:"FILE",62:"FILEFORMAT",63:"FIRST",64:"FORMAT",65:"FUNCTIONS",66:"INPATH",67:"INPUTFORMAT",68:"JAR",69:"IDXPROPERTIES",70:"ITEMS",71:"KEY",72:"KEYS",73:"LINES",74:"LOAD",75:"LOCATION",76:"LOCKS",77:"MATCHED",78:"METADATA",79:"MERGE",80:"MSCK",81:"NOSCAN",82:"NOVALIDATE",83:"NO_DROP",84:"OFFLINE",85:"ORC",86:"OUTPUTFORMAT",87:"OVERWRITE",88:"OWNER",89:"PARQUET",90:"PARTITIONED",91:"PARTITIONS",92:"PERCENT",93:"PRIVILEGES",94:"PURGE",95:"RCFILE",96:"REBUILD",97:"RELOAD",98:"RELY",99:"NORELY",100:"REPAIR",101:"REPLICATION",102:"RECOVER",103:"RENAME",104:"REPLACE",105:"RESTRICT",106:"ROLE",107:"ROLES",108:"SCHEMAS",109:"SEQUENCEFILE",110:"SERDE",111:"SERDEPROPERTIES",112:"SETS",113:"SHOW",114:"SKEWED",115:"SORTED",116:"STATISTICS",117:"STORED",118:"STRING",119:"STRUCT",120:"TABLES",121:"TBLPROPERTIES",122:"TEMPORARY",123:"TERMINATED",124:"TEXTFILE",125:"TIMESTAMP",126:"TINYINT",127:"TOUCH",128:"TRANSACTIONS",129:"UNARCHIVE",130:"UNIONTYPE",131:"USE",132:"USER",133:"VIEW",134:"WAIT",135:"DAY",136:"HOUR",137:"MINUTE",138:"MONTH",139:"QUARTER",140:"SECOND",141:"WEEK",142:"YEAR",143:"ANALYTIC",144:"CURRENT",145:"GRANT",146:"RECOVER",147:"ROLE",148:"ROLES",149:"URI",150:"SERVER",151:"UNKNOWN",152:"BLOCK_SIZE",153:"COMPRESSION",154:"DEFAULT",155:"ENCODING",156:"KEY",157:"ROLE",158:"OPTION",160:"REGULAR_IDENTIFIER",161:"VARIABLE_REFERENCE",163:"EXPLAIN",164:"AUTHORIZATION",165:"EXTENDED",166:"ALL",167:"AS",168:"BINARY",169:"CACHE",170:"CLUSTER",171:"CONF",172:"CONSTRAINT",173:"CUBE",174:"CURRENT",175:"DATE",176:"DISTRIBUTE",177:"DISTRIBUTED",178:"EXTERNAL",179:"FOR",180:"FOREIGN",181:"FUNCTION",182:"GRANT",183:"GROUPING",184:"LATERAL",185:"LOCAL",186:"LOCK",187:"MACRO",188:"PARTITION",189:"PRIMARY",190:"REFERENCES",191:"ROLLUP",192:"SHOW_DATABASE",193:"TABLE",194:"ASC",195:"FORMATTED",196:"INDEX",197:"INDEXES",198:"NONE",199:"OF",200:"OUT",201:"SCHEMA",202:"STORED_AS_DIRECTORIES",203:"TABLESAMPLE",204:"USING",205:"VIEWS",206:"WINDOW",207:".",208:"[",209:"]",210:"AGGREGATE",211:"AVRO",212:"CACHED",213:"CASCADE",214:"CLOSE_FN",215:"COLUMN",216:"DATA",217:"DATABASES",218:"DELETE",219:"DELIMITED",220:"ESCAPED",221:"EXTENDED",222:"EXTERNAL",223:"FIELDS",224:"FILES",225:"FINALIZE_FN",226:"FIRST",227:"FORMAT",228:"FORMATTED",229:"FUNCTION",230:"FUNCTIONS",231:"GROUP",232:"HASH",233:"ILIKE",234:"INCREMENTAL",235:"INTERMEDIATE",236:"INTERVAL",237:"INIT_FN",238:"INPATH",239:"IREGEXP",240:"KUDU",241:"LAST",242:"LIMIT",243:"LINES",244:"LOCATION",245:"MERGE_FN",246:"NULLS",247:"PARTITIONS",248:"PREPARE_FN",249:"PRIMARY",250:"RANGE",251:"REAL",252:"REPEATABLE",253:"REPLICATION",254:"RESTRICT",255:"RETURNS",256:"SCHEMAS",257:"SERIALIZE_FN",258:"SORT",259:"STATS",260:"STRAIGHT_JOIN",261:"SYMBOL",262:"TABLE",263:"TABLES",264:"TABLESAMPLE",265:"USING",266:"ANTI",267:"NOSHUFFLE",268:"PARQUET",269:"PARTITIONED",270:"RCFILE",271:"SEQUENCEFILE",272:"SERDEPROPERTIES",273:"SHUFFLE",274:"STORED",275:"TBLPROPERTIES",276:"TERMINATED",277:"TEXTFILE",278:"UPDATE_FN",279:"BROADCAST",280:"...",281:".",282:"[",283:"]",284:"ALL",285:"ARRAY",286:"AS",287:"ASC",288:"BETWEEN",289:"BIGINT",290:"BOOLEAN",291:"BY",292:"CASE",293:"CHAR",294:"CROSS",295:"CURRENT",296:"DATABASE",297:"DECIMAL",298:"DISTINCT",299:"DOUBLE",300:"DESC",301:"ELSE",302:"END",303:"EXISTS",304:"FALSE",305:"FLOAT",306:"FOLLOWING",307:"FROM",308:"FULL",309:"GROUP",310:"HAVING",311:"IF",312:"IN",313:"INNER",314:"INT",315:"INTO",316:"IS",317:"JOIN",318:"LEFT",319:"LIKE",320:"LIMIT",321:"MAP",322:"NOT",323:"NULL",324:"ON",325:"ORDER",326:"OUTER",327:"OVER",328:"PARTITION",329:"PRECEDING",330:"PURGE",331:"RANGE",332:"REGEXP",333:"RIGHT",334:"RLIKE",335:"ROW",336:"ROWS",337:"SCHEMA",338:"SEMI",339:"SET",340:"SMALLINT",341:"STRING",342:"TABLE",343:"THEN",344:"TIMESTAMP",345:"TINYINT",346:"TRUE",347:"UNION",348:"VALUES",349:"VARCHAR",350:"WHEN",351:"WHERE",352:"WITH",353:"AVG",354:"CAST",355:"COUNT",356:"MAX",357:"MIN",358:"STDDEV_POP",359:"STDDEV_SAMP",360:"SUM",361:"VARIANCE",362:"VAR_POP",363:"VAR_SAMP",364:"COLLECT_SET",365:"COLLECT_LIST",366:"CORR",367:"COVAR_POP",368:"COVAR_SAMP",369:"DAYOFWEEK",370:"HISTOGRAM_NUMERIC",371:"NTILE",372:"PERCENTILE",373:"PERCENTILE_APPROX",374:"APPX_MEDIAN",375:"EXTRACT",376:"GROUP_CONCAT",377:"NDV",378:"STDDEV",379:"VARIANCE_POP",380:"VARIANCE_SAMP",381:"ANALYTIC",382:"UNSIGNED_INTEGER",383:"UNSIGNED_INTEGER_E",384:"HDFS_START_QUOTE",385:"AND",386:"OR",387:"=",388:"<",389:">",390:"COMPARISON_OPERATOR",391:"-",392:"*",393:"ARITHMETIC_OPERATOR",394:",",395:".",396:"~",397:"!",398:"(",399:")",400:"[",401:"]",402:"BACKTICK",403:"SINGLE_QUOTE",404:"DOUBLE_QUOTE",438:"CREATE",439:"CREATE",440:"CREATE",441:"PARTIAL_CURSOR",445:"GROUP",452:"COMMENT",469:"VALUE",471:"PARTIAL_VALUE",543:"UNCACHED",569:"DESCRIBE",570:"DESCRIBE",571:"DESC",577:"SELECT",583:"TableExpression_ERROR",656:"SORT",663:"OFFSET",668:"BETWEEN_AND",689:"+",727:"SYSTEM",762:"REPLACE",763:"TRUNCATE",785:"UNBOUNDED",789:"HDFS_PATH",790:"HDFS_END_QUOTE",794:"EXTRACT",806:"Errors",826:"ALTER",833:"PARTITION_VALUE",837:"TO",857:"SKEWED_LOCATION",860:"COLUMN",868:"DROP",898:"COLUMNS",906:"CHANGE",907:"FILEFORMAT",908:"ADD",910:"RENAME",918:"ColumnReferences",930:"REFRESH",931:"INVALIDATE",932:"METADATA",933:"COMPUTE",952:"WITH",957:"LIFECYCLE",975:"LIKE_PARQUET",1006:":",1040:"ORC",1055:"ESCAPED",1101:"VIEW",1166:"DELETE",1190:"INSERT",1191:"UPDATE",1192:"INSERT",1193:"REVOKE",1195:"REVOKE",1207:"OVERWRITE_DIRECTORY",1209:"OptionalStoredAs_EDIT",1213:"INSERT",1227:"UPSERT",1230:"OVERWRITE",1252:"LOAD",1253:"IMPORT",1278:"SHOW",1314:"USE"}, -productions_: [0,[3,3],[7,3],[7,3],[4,0],[5,0],[5,1],[5,4],[5,1],[5,2],[8,1],[8,4],[8,4],[8,7],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[12,2],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[159,1],[159,1],[159,1],[16,2],[16,1],[20,3],[20,2],[162,0],[162,1],[162,1],[162,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[11,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,2],[21,1],[21,1],[434,1],[434,1],[435,1],[435,2],[436,1],[436,1],[437,1],[437,1],[437,1],[17,1],[17,1],[442,1],[442,1],[442,1],[443,1],[443,1],[444,1],[444,1],[444,1],[446,1],[446,1],[447,1],[447,1],[447,1],[448,1],[448,1],[448,1],[449,1],[449,1],[450,1],[450,1],[451,1],[451,1],[453,1],[453,1],[454,1],[454,1],[454,1],[454,1],[455,1],[455,1],[456,1],[456,1],[457,1],[457,1],[458,1],[458,1],[459,1],[459,1],[460,1],[460,1],[461,1],[461,1],[462,1],[462,1],[463,1],[463,1],[464,1],[464,1],[465,1],[465,1],[466,1],[466,1],[467,1],[467,1],[468,3],[468,2],[470,2],[472,3],[472,2],[473,2],[474,1],[474,1],[475,1],[475,1],[476,0],[476,1],[477,0],[477,1],[478,0],[478,1],[478,1],[479,0],[479,1],[479,1],[480,0],[480,1],[480,1],[481,2],[481,1],[482,2],[482,2],[483,0],[483,2],[485,2],[487,0],[487,1],[488,0],[488,1],[488,1],[488,1],[488,1],[489,0],[489,1],[489,1],[490,0],[490,1],[491,0],[491,2],[492,2],[493,0],[493,3],[494,2],[494,3],[495,0],[495,2],[495,2],[496,0],[496,1],[498,1],[497,4],[499,4],[503,5],[506,2],[506,3],[506,4],[506,5],[506,5],[506,5],[505,1],[505,1],[505,1],[505,1],[507,1],[507,1],[507,3],[507,3],[508,1],[508,1],[510,1],[510,1],[511,1],[511,1],[509,2],[502,1],[502,1],[512,0],[512,1],[514,1],[513,3],[515,3],[515,3],[516,1],[516,3],[517,1],[517,3],[517,3],[517,3],[517,5],[517,5],[520,3],[521,1],[521,3],[522,1],[522,3],[522,4],[525,1],[525,3],[525,3],[525,4],[524,1],[524,2],[526,1],[526,2],[526,3],[526,2],[527,2],[528,2],[529,1],[529,3],[530,1],[530,3],[530,3],[484,1],[486,1],[500,1],[500,3],[501,1],[501,3],[501,3],[501,5],[531,3],[531,1],[532,3],[532,3],[532,3],[532,1],[535,0],[535,1],[536,2],[538,2],[540,0],[540,2],[540,1],[544,0],[544,2],[541,3],[545,2],[542,0],[542,1],[546,4],[548,2],[548,3],[523,1],[523,3],[523,2],[549,1],[549,3],[550,1],[550,3],[551,1],[551,2],[552,1],[552,2],[553,1],[553,3],[555,1],[554,1],[554,3],[556,1],[556,3],[556,5],[556,3],[556,3],[556,5],[557,1],[557,3],[558,1],[558,3],[558,5],[558,3],[558,1],[558,3],[558,5],[558,3],[518,1],[518,4],[518,3],[519,4],[519,4],[559,1],[559,1],[560,1],[560,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,2],[561,2],[561,2],[561,1],[561,1],[561,1],[561,1],[563,0],[563,3],[562,0],[562,3],[562,5],[405,1],[405,1],[420,1],[420,1],[564,5],[564,4],[564,4],[564,4],[566,4],[566,5],[566,6],[566,5],[566,5],[566,6],[566,5],[566,4],[566,3],[566,4],[566,5],[566,4],[566,5],[565,3],[565,4],[567,3],[567,3],[567,4],[567,4],[567,5],[568,1],[568,1],[15,2],[15,3],[15,5],[23,2],[23,2],[23,4],[23,3],[23,3],[23,1],[23,4],[23,3],[572,4],[572,5],[572,5],[572,5],[573,0],[573,1],[575,1],[584,1],[584,2],[585,1],[585,2],[585,2],[585,3],[586,4],[587,3],[587,4],[587,4],[574,4],[574,4],[574,5],[574,5],[574,5],[574,6],[574,7],[574,5],[574,5],[574,5],[579,0],[579,1],[18,2],[576,2],[591,1],[591,3],[592,1],[592,3],[592,3],[592,5],[593,5],[594,2],[594,5],[594,5],[578,0],[578,1],[578,1],[578,1],[581,2],[589,2],[589,4],[589,3],[600,0],[600,1],[600,1],[597,3],[599,2],[599,3],[599,3],[598,8],[601,8],[601,8],[601,8],[601,8],[601,8],[601,8],[601,8],[601,8],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,10],[601,10],[601,10],[601,10],[601,10],[601,10],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[601,9],[608,0],[608,1],[624,2],[616,2],[616,2],[609,0],[609,1],[625,4],[617,4],[617,4],[617,2],[617,4],[634,0],[634,1],[634,2],[634,2],[636,1],[636,2],[637,5],[638,2],[638,5],[639,0],[639,1],[639,3],[639,3],[640,1],[640,3],[640,3],[640,5],[640,3],[641,1],[641,1],[633,1],[633,3],[635,1],[635,2],[635,3],[635,3],[635,3],[635,4],[635,5],[642,1],[642,2],[642,1],[612,0],[612,1],[628,3],[620,3],[620,2],[643,1],[643,3],[644,1],[644,2],[644,3],[644,4],[644,5],[645,3],[646,3],[646,3],[646,3],[647,0],[647,1],[647,1],[647,1],[647,1],[648,0],[648,2],[648,2],[649,2],[613,0],[613,1],[629,1],[629,1],[629,2],[629,1],[621,1],[621,1],[621,2],[621,2],[621,1],[650,3],[653,2],[653,3],[653,3],[651,3],[654,2],[654,3],[654,3],[652,3],[655,2],[655,3],[657,1],[657,3],[658,1],[658,3],[658,3],[658,5],[659,2],[660,2],[660,2],[614,0],[614,1],[630,2],[630,4],[630,2],[630,4],[630,2],[622,2],[622,2],[622,2],[615,0],[615,1],[662,2],[623,2],[623,2],[631,1],[632,1],[533,1],[533,2],[533,2],[533,2],[533,2],[533,4],[533,4],[533,4],[533,4],[533,6],[533,2],[533,3],[533,3],[533,3],[533,3],[533,3],[533,6],[533,6],[533,5],[533,5],[533,6],[533,5],[533,3],[533,3],[533,3],[533,3],[533,3],[533,2],[533,3],[533,2],[533,3],[534,1],[534,3],[534,2],[534,2],[534,2],[534,2],[534,2],[534,2],[534,2],[534,2],[534,3],[534,4],[534,5],[534,4],[534,4],[534,4],[534,6],[534,6],[534,2],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,4],[534,3],[534,6],[534,6],[534,5],[534,5],[534,6],[534,6],[534,6],[534,6],[534,5],[534,4],[534,5],[534,5],[534,5],[534,5],[534,4],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,2],[534,3],[534,2],[534,3],[534,2],[534,3],[534,2],[534,3],[534,3],[534,4],[534,3],[534,3],[534,3],[667,1],[667,3],[677,1],[677,3],[677,3],[677,5],[677,3],[677,5],[677,4],[677,3],[677,2],[677,2],[677,4],[678,1],[678,3],[664,1],[664,1],[664,2],[664,2],[664,1],[664,1],[664,1],[671,1],[671,1],[671,2],[671,2],[671,1],[671,1],[679,1],[679,3],[685,1],[683,3],[688,3],[547,1],[547,2],[547,2],[504,1],[684,1],[690,1],[690,1],[691,1],[661,1],[661,1],[694,1],[694,2],[694,3],[694,2],[695,2],[695,3],[695,4],[692,1],[692,1],[692,1],[693,1],[693,1],[696,1],[696,1],[665,0],[665,1],[697,2],[697,1],[699,2],[699,3],[699,2],[580,1],[580,3],[588,1],[588,2],[588,3],[588,3],[588,3],[588,4],[588,3],[588,3],[588,4],[588,4],[588,4],[588,5],[588,5],[604,1],[604,3],[606,1],[606,3],[606,3],[606,5],[606,3],[701,1],[702,1],[703,1],[703,1],[704,1],[704,1],[706,2],[708,2],[708,2],[602,4],[602,5],[603,2],[603,3],[711,0],[711,1],[711,1],[713,4],[713,2],[713,4],[713,4],[713,4],[709,1],[709,2],[709,2],[709,3],[710,1],[710,2],[710,2],[710,2],[710,2],[710,2],[710,2],[710,3],[710,2],[710,3],[710,3],[710,3],[710,3],[710,2],[710,3],[710,3],[710,3],[710,3],[714,2],[714,2],[714,2],[714,2],[714,2],[714,3],[714,3],[714,3],[714,3],[714,3],[714,3],[714,3],[714,3],[714,3],[714,3],[714,3],[714,3],[714,3],[714,3],[714,3],[712,0],[712,2],[712,4],[716,1],[716,3],[715,2],[715,2],[705,4],[705,3],[707,4],[707,4],[707,4],[707,3],[707,3],[717,1],[721,1],[720,1],[724,1],[718,0],[718,9],[718,5],[718,5],[718,4],[722,4],[722,6],[722,7],[722,10],[722,9],[722,5],[719,0],[719,5],[719,9],[723,2],[725,0],[725,2],[726,2],[726,2],[728,0],[729,0],[666,3],[666,4],[672,3],[672,3],[595,2],[596,3],[730,1],[731,1],[732,1],[733,1],[734,1],[735,1],[736,1],[737,1],[738,1],[739,1],[740,1],[741,1],[742,1],[743,1],[698,0],[698,1],[698,2],[700,1],[700,2],[700,2],[605,0],[605,2],[607,3],[682,2],[682,2],[682,1],[682,1],[682,1],[687,1],[687,2],[687,1],[687,2],[687,2],[687,2],[687,1],[687,1],[687,1],[760,2],[760,2],[761,2],[761,2],[681,1],[681,1],[681,1],[681,1],[681,1],[681,1],[764,3],[764,2],[764,0],[680,3],[680,4],[686,3],[686,4],[686,3],[746,1],[746,1],[746,1],[753,1],[753,1],[753,1],[748,3],[748,4],[755,4],[755,5],[755,4],[747,0],[747,1],[754,1],[749,2],[749,2],[756,2],[771,4],[772,4],[772,4],[772,5],[772,7],[773,0],[773,1],[777,3],[775,2],[775,3],[775,3],[774,0],[774,2],[776,1],[776,3],[776,2],[778,0],[778,1],[780,5],[780,5],[779,2],[779,6],[779,5],[779,5],[779,5],[779,4],[782,0],[788,0],[537,3],[539,5],[539,4],[539,3],[539,3],[539,2],[781,1],[781,1],[783,0],[783,2],[783,2],[786,2],[786,2],[793,1],[793,1],[793,1],[791,1],[791,1],[784,0],[784,3],[784,3],[787,2],[787,3],[787,3],[792,1],[792,1],[610,0],[610,1],[626,2],[618,2],[618,2],[611,0],[611,1],[627,4],[619,3],[619,4],[750,6],[750,3],[757,6],[757,5],[757,4],[757,6],[757,5],[757,4],[757,6],[757,5],[757,6],[757,5],[765,4],[765,3],[765,5],[768,5],[768,6],[768,5],[751,6],[758,4],[758,5],[758,6],[758,6],[758,6],[758,6],[795,1],[795,1],[795,1],[795,1],[795,1],[795,1],[795,1],[795,1],[795,1],[767,4],[767,5],[770,5],[770,6],[770,5],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[796,1],[752,6],[752,3],[759,6],[759,5],[759,4],[759,6],[759,5],[759,4],[759,6],[759,5],[759,6],[759,5],[759,6],[759,5],[797,1],[797,1],[766,5],[766,3],[769,5],[769,6],[769,5],[744,6],[744,5],[744,5],[744,7],[744,5],[744,4],[744,2],[745,4],[745,5],[745,6],[745,6],[745,5],[745,6],[745,4],[745,2],[798,0],[798,1],[799,2],[799,4],[800,2],[800,4],[673,3],[673,3],[673,3],[669,2],[669,2],[669,2],[669,2],[669,2],[674,2],[674,2],[674,2],[674,2],[674,2],[674,2],[674,2],[674,2],[674,2],[674,2],[670,2],[670,4],[675,2],[675,4],[675,4],[675,3],[675,4],[675,3],[675,4],[675,4],[675,3],[675,4],[675,3],[676,1],[676,1],[801,1],[801,2],[802,1],[802,2],[802,3],[802,3],[802,2],[803,4],[804,2],[804,3],[804,4],[804,4],[804,3],[804,3],[804,4],[804,2],[804,3],[804,2],[804,3],[804,3],[804,4],[804,3],[804,4],[804,4],[804,5],[804,4],[804,3],[582,1],[582,3],[582,5],[582,3],[582,5],[590,3],[590,5],[590,7],[590,3],[590,5],[590,7],[417,4],[417,4],[417,2],[805,1],[805,3],[809,6],[809,4],[809,3],[809,5],[809,4],[809,6],[406,1],[406,1],[406,1],[406,1],[406,1],[406,1],[406,1],[421,1],[421,1],[421,1],[421,1],[421,1],[421,1],[421,1],[421,2],[812,6],[812,5],[812,6],[819,3],[819,4],[819,5],[819,5],[819,6],[819,6],[813,7],[820,4],[820,5],[820,5],[820,6],[820,7],[814,7],[814,6],[814,7],[814,5],[814,5],[814,4],[814,2],[814,2],[814,2],[814,2],[814,3],[814,3],[821,1],[821,7],[821,4],[821,2],[821,2],[821,2],[821,2],[821,3],[821,4],[821,3],[821,3],[821,7],[821,7],[821,7],[821,8],[821,7],[821,5],[821,6],[821,6],[821,6],[821,4],[821,5],[821,5],[821,5],[821,2],[821,2],[821,2],[821,2],[821,2],[821,3],[821,4],[821,4],[821,3],[821,3],[821,3],[821,4],[821,3],[838,1],[838,6],[838,1],[838,2],[838,2],[838,2],[838,2],[838,2],[838,3],[838,3],[838,4],[838,5],[847,2],[847,2],[847,1],[847,1],[847,2],[847,3],[847,4],[847,3],[847,4],[847,2],[847,3],[847,3],[847,2],[847,3],[847,3],[847,3],[847,6],[847,4],[847,7],[847,6],[847,2],[847,2],[839,6],[839,5],[839,5],[848,3],[848,4],[848,5],[848,5],[848,6],[848,3],[848,4],[848,5],[848,5],[867,1],[867,1],[867,1],[867,1],[867,1],[866,0],[866,1],[869,3],[870,3],[871,1],[871,3],[872,1],[872,3],[872,5],[872,3],[873,3],[874,1],[841,3],[841,2],[841,3],[841,4],[841,3],[841,3],[841,4],[841,2],[841,1],[841,1],[841,4],[841,2],[841,6],[849,1],[849,3],[849,6],[849,7],[849,6],[849,5],[849,4],[849,4],[849,2],[849,2],[849,3],[849,2],[849,2],[849,4],[849,3],[849,3],[849,4],[849,5],[849,4],[849,5],[849,4],[881,0],[881,2],[891,2],[882,0],[882,4],[892,2],[892,3],[880,4],[888,4],[888,5],[896,1],[896,1],[855,5],[863,2],[863,3],[863,4],[863,5],[863,5],[863,2],[863,5],[899,4],[899,4],[900,4],[900,4],[901,3],[901,5],[902,3],[902,5],[840,4],[840,3],[840,3],[840,5],[840,6],[840,3],[850,3],[850,4],[850,5],[850,3],[850,2],[850,4],[850,5],[850,5],[850,5],[850,2],[850,3],[850,3],[830,3],[842,3],[842,3],[859,1],[859,1],[875,1],[875,1],[831,1],[831,1],[843,1],[843,1],[851,1],[851,1],[887,0],[887,2],[909,1],[909,1],[890,2],[890,2],[885,0],[885,1],[836,1],[836,1],[883,1],[883,1],[884,2],[884,1],[893,3],[878,1],[878,1],[856,1],[856,1],[903,1],[903,3],[905,1],[905,3],[905,5],[905,3],[905,3],[905,3],[905,5],[904,0],[904,1],[832,0],[832,1],[911,1],[911,2],[844,1],[844,2],[844,2],[844,3],[913,2],[913,2],[912,2],[858,3],[864,3],[914,1],[914,3],[915,1],[915,3],[915,5],[915,3],[916,3],[917,1],[917,1],[917,3],[917,3],[917,3],[854,0],[854,1],[865,2],[865,3],[815,4],[815,3],[815,4],[815,6],[822,1],[822,2],[822,3],[822,3],[822,3],[822,3],[822,4],[919,3],[920,3],[920,3],[816,4],[823,2],[823,3],[823,4],[823,4],[817,2],[824,2],[818,6],[825,2],[825,3],[825,4],[825,5],[825,6],[922,1],[922,1],[407,9],[422,2],[422,3],[422,4],[422,4],[422,5],[422,6],[422,10],[422,10],[422,10],[422,4],[422,9],[422,9],[422,9],[422,9],[422,9],[923,0],[923,1],[926,2],[928,2],[924,0],[924,1],[927,2],[929,2],[925,0],[925,1],[408,3],[408,3],[423,2],[423,3],[423,4],[423,3],[423,3],[409,2],[409,3],[424,2],[424,3],[424,3],[424,3],[410,5],[410,5],[425,2],[425,3],[425,3],[425,4],[425,6],[425,5],[425,5],[425,5],[425,3],[425,5],[425,4],[425,5],[425,6],[425,5],[411,1],[411,1],[411,1],[411,1],[411,1],[411,1],[411,1],[426,1],[426,1],[426,1],[426,1],[426,1],[426,1],[426,4],[934,3],[934,5],[811,3],[810,3],[810,3],[946,0],[946,1],[949,2],[950,2],[950,2],[950,3],[950,3],[948,1],[947,0],[947,1],[951,3],[951,2],[951,2],[827,3],[953,1],[953,3],[954,3],[935,7],[956,0],[956,2],[941,6],[941,6],[941,5],[955,11],[958,11],[958,11],[958,11],[958,11],[958,11],[958,11],[958,11],[958,11],[958,12],[958,11],[958,11],[959,2],[967,2],[967,2],[973,0],[973,1],[973,2],[973,2],[974,1],[974,2],[974,2],[974,2],[861,3],[861,5],[897,3],[897,5],[897,5],[976,1],[976,3],[978,1],[978,3],[978,3],[978,5],[978,2],[978,4],[978,4],[978,6],[886,3],[889,3],[889,3],[889,3],[981,0],[981,1],[984,1],[984,2],[983,1],[983,2],[983,2],[983,3],[985,1],[985,2],[985,2],[985,2],[985,2],[985,2],[985,1],[985,1],[986,1],[986,2],[980,1],[980,1],[980,1],[980,1],[980,1],[980,1],[980,1],[980,1],[980,1],[982,1],[982,1],[982,1],[982,1],[989,4],[993,3],[997,4],[997,4],[990,6],[994,3],[998,6],[998,4],[998,6],[998,5],[991,4],[995,3],[999,4],[1002,1],[1002,3],[1003,1],[1003,2],[1003,3],[1003,3],[1003,5],[1004,4],[1005,5],[1005,4],[1005,4],[1005,4],[1005,3],[1005,3],[992,4],[996,3],[1000,4],[1007,1],[1007,3],[1008,1],[1008,2],[1008,3],[1008,3],[1008,5],[1009,2],[1009,2],[1009,1],[1009,1],[1001,1],[1001,1],[977,1],[977,1],[977,3],[977,5],[979,1],[979,1],[979,3],[979,5],[979,5],[979,5],[979,3],[979,3],[979,4],[834,4],[845,1],[845,2],[845,3],[845,4],[845,4],[835,9],[846,2],[846,3],[846,4],[846,5],[846,5],[846,6],[846,7],[846,8],[846,10],[1014,0],[1014,1],[1014,1],[1010,2],[1011,1],[1011,2],[1011,2],[987,2],[988,2],[1012,2],[1013,2],[960,0],[960,1],[1015,3],[1015,5],[1015,6],[968,2],[968,3],[968,3],[968,2],[968,2],[968,3],[968,4],[968,5],[968,4],[968,5],[968,6],[961,0],[961,1],[1018,3],[969,2],[969,3],[1016,3],[1017,3],[1017,3],[1019,1],[1019,3],[1020,1],[1020,3],[1020,5],[1020,3],[1020,5],[1021,6],[1021,4],[1021,4],[1021,3],[1022,2],[1022,2],[1022,3],[1022,2],[1022,3],[1022,4],[1022,4],[1022,5],[1022,6],[1022,6],[1022,3],[1022,4],[1022,4],[1023,1],[1023,1],[962,0],[962,1],[852,7],[862,2],[862,4],[862,7],[862,5],[862,7],[862,7],[862,4],[1024,0],[1024,3],[1025,2],[1025,3],[1026,3],[1027,3],[1028,1],[1028,3],[1029,1],[1029,3],[1029,3],[1029,5],[1030,2],[1031,3],[1031,2],[1031,2],[963,0],[963,1],[1032,5],[1032,6],[970,2],[970,4],[853,3],[1033,1],[1033,3],[964,0],[964,1],[1034,1],[1034,4],[1034,4],[1034,4],[971,2],[971,1],[971,2],[971,3],[971,3],[971,5],[971,4],[1037,0],[1037,1],[1035,3],[1038,3],[876,1],[876,4],[876,1],[876,1],[876,1],[876,1],[876,1],[876,1],[876,1],[876,1],[876,1],[876,1],[876,1],[876,1],[1036,1],[1036,1],[1039,1],[1039,1],[1041,1],[1041,3],[1041,3],[1042,1],[1043,6],[1044,6],[1044,6],[1044,6],[1044,6],[1044,6],[879,4],[894,4],[894,4],[1045,0],[1045,4],[1045,7],[1050,2],[1050,3],[1050,6],[1046,0],[1046,5],[1051,2],[1051,3],[1051,4],[1047,0],[1047,5],[1052,2],[1052,3],[1052,4],[1048,0],[1048,4],[1053,2],[1053,3],[1049,0],[1049,4],[1054,2],[1054,3],[877,0],[877,1],[1056,3],[1056,3],[895,2],[895,3],[965,0],[965,1],[1057,2],[1058,0],[1058,2],[966,0],[966,3],[972,3],[972,3],[1059,0],[936,9],[942,4],[942,10],[942,3],[942,7],[942,8],[942,9],[942,9],[942,9],[938,1],[938,1],[938,1],[938,1],[943,1],[943,1],[943,1],[943,1],[1062,8],[1066,4],[1066,9],[1066,6],[1066,7],[1066,8],[1066,3],[1066,5],[1066,6],[1066,7],[1066,8],[1066,8],[1066,8],[1066,8],[1063,16],[1067,3],[1067,17],[1067,5],[1067,4],[1067,16],[1067,6],[1067,16],[1067,7],[1067,8],[1067,10],[1067,11],[1067,17],[1067,7],[1067,9],[1067,9],[1067,10],[1067,10],[1067,16],[1067,16],[1067,16],[1067,16],[1067,16],[1067,16],[1067,16],[1067,16],[1067,16],[1067,16],[1064,6],[1068,4],[1068,6],[1068,7],[1065,6],[1069,5],[1070,2],[1070,4],[1073,3],[1073,4],[1093,1],[1093,3],[1095,1],[1095,3],[1095,3],[1095,5],[1094,0],[1094,1],[1071,2],[1074,2],[1072,3],[1075,0],[1075,3],[1083,3],[1076,3],[1084,3],[1077,3],[1085,3],[1078,0],[1078,3],[1086,3],[1079,0],[1079,3],[1087,3],[1080,0],[1080,3],[1088,3],[1081,0],[1081,3],[1089,3],[1082,0],[1082,2],[1090,2],[1096,1],[1097,1],[1091,0],[1091,2],[1092,2],[1098,1],[1098,3],[1099,2],[1100,1],[1100,1],[1100,1],[921,1],[921,1],[1060,0],[1060,1],[1102,3],[1061,3],[1103,2],[1103,4],[1104,3],[1104,5],[1104,5],[1104,7],[937,3],[1105,1],[1105,1],[1105,1],[939,16],[1106,1],[1112,1],[944,4],[944,5],[944,6],[944,6],[944,7],[944,8],[944,9],[944,16],[944,16],[944,16],[944,16],[944,16],[944,16],[944,16],[944,17],[1108,1],[1114,1],[1109,0],[1109,3],[1115,2],[1115,3],[1110,0],[1110,2],[1111,0],[1111,3],[1116,2],[1116,3],[1116,3],[1107,3],[1113,3],[1117,1],[1117,3],[1118,1],[1118,3],[1118,3],[1118,5],[940,6],[945,5],[945,6],[945,6],[945,6],[1119,2],[1119,3],[1120,3],[1121,1],[1121,3],[1122,1],[1122,3],[1122,3],[1122,5],[1123,2],[1124,2],[1124,2],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[14,1],[22,1],[22,1],[22,1],[22,1],[22,1],[22,2],[22,2],[22,2],[22,2],[22,1],[22,1],[22,1],[22,1],[22,1],[412,1],[412,1],[412,1],[412,1],[412,1],[412,1],[412,1],[412,1],[412,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,2],[1144,5],[1153,3],[1153,3],[1153,4],[1153,5],[1153,5],[1153,6],[1145,1],[1145,1],[1154,1],[1154,1],[1161,5],[1161,6],[1163,4],[1163,5],[1163,6],[1163,3],[1163,6],[1163,5],[1163,3],[1163,7],[1163,4],[1163,6],[1163,5],[1163,6],[1162,4],[1162,5],[1164,4],[1164,5],[1164,3],[1164,4],[1164,4],[1164,5],[1164,4],[1146,3],[1147,3],[1147,5],[1155,3],[1155,3],[1155,4],[1155,5],[1155,3],[1155,4],[1155,4],[1155,5],[1155,5],[1155,5],[1148,5],[1156,3],[1156,4],[1156,5],[1156,5],[1156,6],[1165,0],[1165,1],[1165,1],[1149,6],[1157,4],[1157,3],[1157,5],[1157,6],[1157,6],[1150,5],[1158,3],[1158,5],[1158,4],[1151,4],[1159,4],[1159,5],[1159,3],[1159,4],[1159,4],[1152,5],[1160,2],[1160,5],[1160,4],[1160,5],[1160,6],[1160,5],[1160,6],[1160,5],[1125,4],[1132,2],[1132,3],[1132,5],[1132,4],[1132,4],[1126,5],[1133,3],[1133,2],[1133,4],[1133,6],[1133,3],[1133,5],[1133,5],[1133,5],[1167,0],[1167,1],[1168,1],[413,3],[428,2],[1169,1],[1169,3],[414,6],[414,5],[414,6],[414,6],[414,7],[414,8],[429,2],[429,3],[429,3],[429,4],[429,5],[429,5],[429,7],[429,6],[429,3],[429,4],[429,4],[429,6],[429,5],[429,5],[429,5],[429,7],[429,6],[429,2],[429,4],[429,5],[429,2],[429,3],[429,4],[429,4],[429,5],[429,6],[429,8],[429,7],[429,9],[429,8],[1171,0],[1171,2],[1179,2],[1179,2],[1185,2],[1185,2],[1185,1],[1186,2],[1186,2],[1186,2],[1186,1],[1177,2],[1177,2],[1177,2],[1177,2],[1184,2],[1184,2],[1184,2],[1170,1],[1170,3],[1178,1],[1178,3],[1178,3],[1178,5],[1178,3],[1178,3],[1178,5],[1187,2],[1188,2],[1189,1],[1189,1],[1189,1],[1189,1],[1189,1],[1189,1],[1189,1],[1189,1],[1189,1],[1189,1],[1189,1],[1176,1],[1176,1],[1176,1],[1176,1],[1176,1],[1176,1],[1176,2],[1183,2],[1172,1],[1172,3],[1180,3],[1180,3],[1180,5],[828,2],[828,2],[828,2],[829,2],[829,2],[829,2],[1174,1],[1174,3],[1173,0],[1173,3],[1173,3],[1181,2],[1181,3],[1181,3],[1175,0],[1175,3],[1182,2],[1182,3],[415,5],[415,8],[415,4],[415,5],[415,7],[415,8],[415,5],[415,6],[415,6],[415,7],[430,2],[430,2],[430,3],[430,4],[430,5],[430,5],[430,3],[430,4],[430,5],[430,5],[430,6],[430,7],[430,8],[430,8],[430,3],[430,4],[430,4],[430,4],[430,5],[430,5],[430,4],[430,5],[430,6],[430,7],[430,7],[430,7],[430,8],[430,8],[430,3],[430,4],[430,2],[430,4],[430,5],[430,2],[430,3],[430,4],[430,4],[430,5],[430,6],[1194,1],[1194,2],[1196,2],[1127,1],[1127,1],[1127,1],[1127,2],[1127,2],[1127,1],[1137,2],[1137,2],[1137,3],[1134,1],[1134,2],[1134,2],[1134,2],[1134,2],[1134,1],[1134,2],[1134,3],[1134,2],[1134,3],[1134,3],[1199,6],[1199,7],[1199,5],[1199,6],[1202,2],[1202,4],[1202,6],[1202,6],[1202,6],[1202,4],[1202,7],[1202,7],[1202,7],[1202,5],[1202,5],[1202,5],[1202,4],[1202,6],[1202,6],[1202,6],[1200,1],[1200,2],[1203,1],[1203,2],[1203,2],[1203,3],[1210,3],[1211,1],[1211,3],[1211,2],[1211,3],[1211,3],[1197,7],[1197,7],[1197,6],[1135,2],[1135,4],[1135,4],[1135,5],[1135,6],[1212,1],[1212,3],[1215,3],[1214,0],[1214,1],[1206,0],[1206,3],[1208,2],[1208,3],[1208,3],[1201,4],[1204,5],[1204,4],[1204,4],[1205,0],[1205,1],[1138,1],[1136,1],[1216,4],[1216,3],[1217,1],[1217,3],[1217,4],[1217,4],[1217,4],[1217,3],[1217,3],[1218,1],[1218,1],[1221,1],[1221,1],[1223,5],[1225,2],[1225,4],[1225,6],[1225,5],[1225,5],[1224,6],[1226,2],[1226,4],[1226,7],[1226,6],[1226,6],[1226,6],[1229,1],[1229,1],[1228,0],[1228,1],[1219,0],[1219,1],[1219,1],[1220,1],[1220,3],[1222,1],[1222,3],[1222,5],[1222,3],[1231,3],[1232,3],[1232,3],[1198,4],[1139,1],[1139,2],[1139,3],[1139,3],[1139,4],[1139,4],[1233,9],[1235,2],[1235,3],[1235,3],[1235,4],[1235,5],[1235,6],[1235,7],[1235,7],[1235,8],[1235,9],[1237,3],[1237,1],[1238,3],[1238,3],[1238,1],[1234,1],[1234,2],[1234,3],[1236,1],[1236,2],[1236,2],[1236,3],[1236,3],[1239,6],[1240,3],[1240,5],[1240,4],[1240,6],[1240,6],[1241,0],[1241,2],[1243,2],[1242,3],[1242,1],[1242,3],[1244,2],[1244,3],[1244,2],[1128,10],[1140,2],[1140,4],[1140,6],[1140,7],[1140,8],[1140,9],[1140,10],[1140,11],[1140,10],[1140,10],[1251,0],[1251,1],[1251,1],[1249,0],[1249,1],[1247,1],[1247,1],[1248,1],[1248,1],[1250,1],[1250,1],[1129,6],[1141,3],[1141,3],[1141,2],[1141,6],[1141,6],[1141,7],[1141,7],[1141,6],[1141,7],[1254,0],[1254,1],[1255,4],[1255,3],[1256,2],[1256,3],[1256,4],[1256,4],[1256,2],[1256,3],[1256,3],[1130,7],[1130,12],[1142,2],[1142,3],[1142,3],[1142,5],[1142,4],[1142,7],[1142,8],[1142,9],[1142,7],[1142,12],[1142,8],[1142,13],[1142,7],[1142,12],[1142,12],[807,1],[807,3],[808,1],[808,1],[808,2],[808,1],[808,1],[808,1],[808,1],[416,3],[416,3],[416,3],[431,3],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[1277,1],[1277,1],[432,2],[432,3],[432,4],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[1257,4],[1279,3],[1279,4],[1279,4],[1258,4],[1258,6],[1280,3],[1280,4],[1280,4],[1280,5],[1280,6],[1280,5],[1280,6],[1280,6],[1259,2],[1260,3],[1261,4],[1281,3],[1281,4],[1281,4],[1281,4],[1295,1],[1295,1],[1262,3],[1262,3],[1282,3],[1282,3],[1263,4],[1263,3],[1283,3],[1264,5],[1284,3],[1284,4],[1284,5],[1284,6],[1284,5],[1284,5],[1265,2],[1265,3],[1265,4],[1265,6],[1285,3],[1285,4],[1285,5],[1285,6],[1285,6],[1285,6],[1266,3],[1266,5],[1266,5],[1266,6],[1266,4],[1286,3],[1286,5],[1286,5],[1286,6],[1286,6],[1286,3],[1296,0],[1296,1],[1297,1],[1297,2],[1267,4],[1267,6],[1287,2],[1287,2],[1287,4],[1287,6],[1287,3],[1287,4],[1287,4],[1287,5],[1287,6],[1287,6],[1287,6],[1268,3],[1268,4],[1268,4],[1268,5],[1268,4],[1288,3],[1288,3],[1288,4],[1288,4],[1288,4],[1288,5],[1288,5],[1288,4],[1269,3],[1269,4],[1269,3],[1269,4],[1289,3],[1289,3],[1289,4],[1289,4],[1289,3],[1289,3],[1289,4],[1289,4],[1270,5],[1270,5],[1290,3],[1290,3],[1290,5],[1290,4],[1290,5],[1290,4],[1290,5],[1271,2],[1271,2],[1272,6],[1272,7],[1291,3],[1291,4],[1291,4],[1291,5],[1291,6],[1291,6],[1291,6],[1291,7],[1291,7],[1291,7],[1291,7],[1291,8],[1291,3],[1291,4],[1291,4],[1291,4],[1273,3],[1273,4],[1273,5],[1292,4],[1274,3],[1274,6],[1293,3],[1293,3],[1275,2],[1276,4],[1294,5],[1294,4],[1294,4],[1298,0],[1298,2],[1298,2],[1300,2],[1300,2],[1299,0],[1299,2],[1301,2],[1131,6],[1143,6],[1143,6],[1143,6],[1143,6],[1143,7],[1143,3],[1143,2],[1143,2],[1143,2],[1302,1],[1304,1],[1306,1],[1307,1],[1245,1],[1245,3],[1246,1],[1246,3],[1246,3],[1246,5],[1308,3],[1309,3],[1309,2],[1309,1],[1310,1],[1311,1],[1312,1],[1303,0],[1303,2],[1305,2],[1305,2],[1313,1],[1313,1],[419,2],[433,2]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 2: case 3: - - return parser.yy.result; - -break; -case 4: - - parser.prepareNewStatement(); - -break; -case 6: case 10: case 12: - - parser.addStatementLocation(_$[$0]); - -break; -case 11: case 13: - - parser.addStatementLocation(_$[$0-3]); - -break; -case 20: case 33: - - if (parser.isHive()) { - parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); - } else if (parser.isImpala()) { - parser.suggestDdlAndDmlKeywords(['EXPLAIN']); - } else { - parser.suggestDdlAndDmlKeywords(); - } - -break; -case 21: - - if (parser.isHive() || parser.isImpala()) { - parser.suggestKeywords(['INSERT', 'SELECT']); - } else { - parser.suggestKeywords(['SELECT']); - } - -break; -case 172: - - if (!$$[$0-1]) { - parser.suggestDdlAndDmlKeywords([{ value: 'AUTHORIZATION', weight: 2 }, { value: 'DEPENDENCY', weight: 2 }, { value: 'EXTENDED', weight: 2 }]); - } else { - parser.suggestDdlAndDmlKeywords(); - } - -break; -case 173: - - parser.suggestDdlAndDmlKeywords(); - -break; -case 545: - - parser.suggestSetOptions(); - if (parser.isHive()) { - parser.suggestKeywords(['ROLE']); - } - if (parser.isImpala()) { - parser.suggestKeywords(['ALL']); - } - -break; -case 613: case 616: case 721: case 762: case 856: case 1098: case 1281: case 1393: case 1453: case 2591: case 2593: case 3094: -this.$ = $$[$0-1]; -break; -case 614: case 617: case 763: -this.$ = ''; -break; -case 638: - - parser.suggestKeywords(['INDEX', 'INDEXES']); - -break; -case 639: - - parser.suggestKeywords(['FORMATTED']); - -break; -case 656: case 659: - - parser.yy.correlatedSubQuery = false; - -break; -case 657: case 661: - - parser.suggestKeywords(['EXISTS']); - -break; -case 660: - - parser.suggestKeywords(['NOT EXISTS']); - -break; -case 671: case 673: case 674: case 676: - - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - -break; -case 672: case 675: case 3121: - - parser.suggestKeywords(['VALUES']); - -break; -case 699: case 703: case 707: case 743: case 744: case 789: case 792: case 1000: case 1069: case 1843: case 1941: case 1960: case 2006: case 2008: case 2372: case 2631: case 3409: - - parser.suggestColumns(); - -break; -case 711: case 764: - - parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0] } ] }; - -break; -case 712: case 765: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; - -break; -case 713: - - // This is a special case for Impala expression like "SELECT | FROM db.table.col" - this.$ = { identifierChain: [ { name: $$[$0-3] }, { name: $$[$0-1] } ].concat($$[$0]) }; - -break; -case 714: case 1747: case 1913: case 2080: case 2086: case 2095: case 2280: case 2604: case 2628: case 2731: case 2736: case 2754: case 2777: case 2784: case 2841: case 2849: case 3128: case 3159: case 3162: case 3168: case 3395: case 3415: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 715: case 729: - - parser.suggestDatabases(); - this.$ = { identifierChain: [{ name: $$[$0-2] }] }; - -break; -case 716: - - // In Impala you can have statements like 'SELECT ... FROM testTable t, t.|' - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 717: - - // TODO: switch to suggestColumns, it's currently handled in sqlAutocompleter2.js - // Issue is that suggestColumns is deleted if no tables are defined and this is - // Impala only cases like "SELECT | FROM db.table.col" - parser.suggestTables({ identifierChain: [{ name: $$[$0-3] }, { name: $$[$0-1] }].concat($$[$0]) }); - -break; -case 718: case 898: -this.$ = [$$[$0]]; -break; -case 719: - - $$[$0-1].push($$[$0]); - -break; -case 720: case 723: -this.$ = []; -break; -case 722: case 858: case 1283: -this.$ = $$[$0-2]; -break; -case 724: -this.$ = { name: $$[$0] }; -break; -case 728: case 1798: case 2025: - - parser.suggestDatabases({ appendDot: true }); - -break; -case 732: case 2039: case 2076: case 2840: case 2848: case 3249: case 3309: case 3323: case 3381: case 3382: case 3420: - - parser.suggestDatabases(); - -break; -case 742: case 1005: case 1006: case 1012: case 1013: case 1389: case 1480: case 3079: case 3115: - - parser.valueExpressionSuggest(); - -break; -case 750: case 753: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['WITH REPLICATION ='] }; - } - -break; -case 755: case 3267: - - parser.suggestKeywords(['IN']); - -break; -case 759: - - parser.suggestKeywords(['REPLICATION =']); - -break; -case 760: case 1781: case 1938: case 2333: - - parser.suggestKeywords(['=']); - -break; -case 766: case 3372: - - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - -break; -case 767: - - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 769: -this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; -break; -case 772: - - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - -break; -case 773: case 1234: - - parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); - -break; -case 775: - - this.$ = [ $$[$0].identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 776: - - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $$[$0-2].push($$[$0].identifier); - parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); - -break; -case 777: case 785: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 778: case 786: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-2].concat([ $$[$0].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 781: - - parser.suggestColumns({ - identifierChain: $$[$0-2] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 782: - - parser.suggestColumns({ - identifierChain: $$[$0-4] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 783: -this.$ = [ $$[$0].identifier ]; -break; -case 784: - - $$[$0-2].push($$[$0].identifier); - -break; -case 787: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-4].concat([ $$[$0-2].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 788: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0-2].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 790: - - parser.suggestColumns({ identifierChain: $$[$0-2] }); - -break; -case 791: - - parser.suggestColumns({ identifierChain: $$[$0-4] }); - -break; -case 793: -this.$ = { identifier: { name: $$[$0] }, location: _$[$0] };; -break; -case 794: -this.$ = { identifier: { name: $$[$0-3], keySet: true }, location: _$[$0-3] }; -break; -case 795: -this.$ = { identifier: { name: $$[$0-2], keySet: true }, location: _$[$0-2] }; -break; -case 796: -this.$ = { identifier: { name: $$[$0-3] }, insideKey: true }; -break; -case 797: -this.$ = { identifier: { name: $$[$0-3] }};; -break; -case 830: - - parser.addTablePrimary($$[$0-2]); - parser.addColumnLocation(_$[$0-1], $$[$0-1]); - -break; -case 831: case 1749: case 2048: case 2070: case 2084: case 2098: case 2282: case 2730: case 2740: case 2741: case 2766: case 2772: case 2775: case 2780: case 3122: case 3131: case 3132: case 3161: case 3171: case 3266: case 3312: case 3313: case 3325: case 3327: - - parser.addTablePrimary($$[$0-1]); - -break; -case 832: case 848: case 2071: - - parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 835: case 1745: case 2083: case 2090: case 2091: case 3314: - - parser.addTablePrimary($$[$0-2]); - -break; -case 836: - - if (!$$[$0-4]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - -break; -case 837: - - if (!$$[$0-3]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - -break; -case 838: - - parser.addTablePrimary($$[$0-2]); - parser.suggestColumns(); - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 839: - - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 842: - - if (!$$[$0-1]) { - parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 843: case 845: - - if (!$$[$0-1]) { - parser.suggestKeywords(['EXTENDED']); - } - -break; -case 844: case 846: - - if (!$$[$0-2]) { - parser.suggestKeywords(['EXTENDED']); - } - -break; -case 847: case 1943: case 2026: case 2029: case 2078: case 2600: case 2729: case 2750: case 2760: case 2764: case 2838: case 2839: case 2845: case 3095: case 3164: case 3236: case 3252: case 3311: case 3324: case 3326: case 3369: case 3398: - - parser.addTablePrimary($$[$0]); - -break; -case 849: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 851: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - -break; -case 852: - - if (!$$[$0-1]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.suggestDatabases(); - -break; -case 853: - - if (!$$[$0-2]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 861: - - parser.addCommonTableExpressions($$[$0-3]); - -break; -case 862: case 863: case 901: - - parser.addCommonTableExpressions($$[$0-2]); - -break; -case 867: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); - this.$ = { selectList: $$[$0] }; - -break; -case 868: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } - -break; -case 881: - - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - -break; -case 882: - - parser.suggestKeywords(['ALL', 'DISTINCT']); - -break; -case 884: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); - if ($$[$0].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($$[$0]); - } - if ($$[$0].suggestFunctions) { - parser.suggestFunctions(); - } - if ($$[$0].suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($$[$0].suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($$[$0].suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($$[$0].suggestAggregateFunctions && (!$$[$0-2] || $$[$0-2] === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - -break; -case 885: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 886: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - -break; -case 887: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - parser.selectListNoTableSuggest($$[$0-1], $$[$0-3]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - -break; -case 888: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-3] || $$[$0-3] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-2] && !$$[$0-3]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$$[$0-2]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 889: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-2]); - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 890: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]), _$[$0-3]); - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 891: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - -break; -case 892: - - parser.selectListNoTableSuggest($$[$0-1], $$[$0-3]); - -break; -case 896: case 972: case 1003: case 1016: case 1020: case 1058: case 1062: case 1090: case 1116: case 1117: case 1198: case 1200: case 1268: case 1278: case 1285: case 1297: case 1478: case 1678: case 1679: case 1704: case 1705: case 1706: case 1989: case 2153: case 2170: case 3114: case 3414: -this.$ = $$[$0]; -break; -case 899: -this.$ = $$[$0-2].concat([$$[$0]]);; -break; -case 903: - - parser.addCommonTableExpressions($$[$0-4]); - -break; -case 904: - - parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); - $$[$0-1].alias = $$[$0-4]; - this.$ = $$[$0-1]; - -break; -case 905: case 1533: case 2393: case 2453: case 2530: case 2534: case 2607: - - parser.suggestKeywords(['AS']); - -break; -case 906: case 1396: case 2022: case 2467: case 2476: case 3096: - - parser.suggestKeywords(['SELECT']); - -break; -case 912: case 913: - - parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); - -break; -case 914: - - var keywords = []; - - parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); - - if ($$[$0-3]) { - if (!$$[$0-3].hasLateralViews && typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - if (parser.isImpala()) { - keywords.push({ value: 'USING', weight: 3 }); - } - } - if ($$[$0-3].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - } - if ($$[$0-3].tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); - } - if ($$[$0-3].tableReferenceList.suggestJoins) { - parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); - } - if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { - keyword.weight = 1.1; - } - }); - - if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($$[$0-3].tableReferenceList); - } - } - } - - if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - if (parser.isHive()) { - keywords = keywords.concat(['CROSS', 'INNER', 'LEFT SEMI']); - } else if (parser.isImpala()) { - keywords = keywords.concat(['ANTI', 'CROSS', 'INNER', 'LEFT ANTI', 'LEFT INNER', 'LEFT SEMI', 'OUTER', 'RIGHT ANTI', 'RIGHT INNER', 'RIGHT SEMI', 'SEMI']); - } else { - keywords.push('INNER'); - } - parser.suggestKeywords(keywords); - return; - } - - if ($$[$0-1].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].suggestFilters) { - parser.suggestFilters($$[$0-1].suggestFilters); - } - if ($$[$0-1].suggestGroupBys) { - parser.suggestGroupBys($$[$0-1].suggestGroupBys); - } - if ($$[$0-1].suggestOrderBys) { - parser.suggestOrderBys($$[$0-1].suggestOrderBys); - } - - if ($$[$0-1].empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - if (parser.isHive()) { - keywords = keywords.concat([ - { value: 'CROSS JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 } - ]); - } else if (parser.isImpala()) { - keywords = keywords.concat([ - { value: 'ANTI JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'LEFT ANTI JOIN', weight: 1 }, - { value: 'LEFT INNER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 }, - { value: 'OUTER JOIN', weight: 1 }, - { value: 'RIGHT ANTI JOIN', weight: 1 }, - { value: 'RIGHT INNER JOIN', weight: 1 }, - { value: 'RIGHT SEMI JOIN', weight: 1 }, - { value: 'SEMI JOIN', weight: 1 } - ]); - } else { - keywords.push({ value: 'INNER JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - -break; -case 915: - - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$$[$0-1]) { - parser.addClauseLocation('whereClause', _$[$0-2]); - parser.addClauseLocation('limitClause', _$[$0-2]); - return; - } - parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); - var keywords = []; - - if ($$[$0-1].suggestColRefKeywords) { - parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); - parser.addColRefIfExists($$[$0-1]); - } - - if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - -break; -case 919: - - if (parser.isHive()) { - this.$ = { tableReferenceList : $$[$0-1], suggestKeywords: ['LATERAL VIEW'] } - } else { - this.$ = { tableReferenceList : $$[$0-1] } - } - if (parser.isHive() && $$[$0]) { - parser.yy.lateralViews = $$[$0].lateralViews; - this.$.hasLateralViews = true; - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = this.$.suggestKeywords.concat($$[$0].suggestKeywords); - } - } - -break; -case 920: case 1290: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 921: - - if ($$[$0]) { - parser.yy.lateralViews = $$[$0].lateralViews; - } - -break; -case 923: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-7], $$[$0-6], $$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true, parser.isHive(), true, parser.isHive(), parser.isHive() && !$$[$0-3], true, parser.isImpala()]); - - if (keywords.length > 0) { - this.$ = { suggestKeywords: keywords, empty: !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - } else { - this.$ = {}; - } - - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6], $$[$0-7], _$[$0-7]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - - if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - -break; -case 924: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - -break; -case 925: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - -break; -case 928: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - -break; -case 932: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-6], $$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, parser.isHive(), true, parser.isHive(), parser.isHive() && !$$[$0-3], true, parser.isImpala()]); - if ($$[$0-8].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-8].suggestKeywords, 1)); - } - this.$ = parser.getValueExpressionKeywords($$[$0-8], keywords); - this.$.cursorAtEnd = !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if ($$[$0-8].columnReference) { - this.$.columnReference = $$[$0-8].columnReference; - } - if (!$$[$0-6]) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6], $$[$0-8], _$[$0-8]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 933: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, parser.isHive(), true, parser.isHive(), parser.isHive() && !$$[$0-3], true, parser.isImpala()]); - if ($$[$0-7].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-7].suggestKeywords, 8)); - } - if ($$[$0-7].valueExpression) { - this.$ = parser.getValueExpressionKeywords($$[$0-7].valueExpression, keywords); - if ($$[$0-7].valueExpression.columnReference) { - this.$.columnReference = $$[$0-7].valueExpression.columnReference; - } - } else { - this.$ = { suggestKeywords: keywords }; - } - this.$.cursorAtEnd = !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-7], _$[$0-7]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 934: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [parser.isHive(), true, parser.isHive(), parser.isHive() && !$$[$0-3], true, parser.isImpala()]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - if (!$$[$0-4] && !$$[$0-3]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-6], _$[$0-6]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 935: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, parser.isHive(), true, parser.isImpala()]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - if (!$$[$0-3]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 936: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [parser.isHive(), true, parser.isImpala()]); - if ($$[$0-4].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-4].suggestKeywords, 5)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 937: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, parser.isImpala()]); - if ($$[$0-3].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].suggestKeywords, 4)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = _$[$0-3]; - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 938: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'OFFSET', weight: 2 }], [parser.isImpala()]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6], $$[$0-7], _$[$0-7], $$[$0-8], _$[$0-8]); - this.$.limitClauseLocation = $$[$0-2] ? _$[$0-2] : undefined; - -break; -case 939: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-6], $$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true, parser.isHive(), true, parser.isHive(), true, parser.isImpala()]), - cursorAtEnd: !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] - }; - -break; -case 940: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [parser.isHive(), true, parser.isHive(), true, parser.isImpala()]), - cursorAtEnd: !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] - } - -break; -case 941: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, parser.isHive(), true, parser.isImpala()]), - cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] - } - -break; -case 942: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [parser.isHive(), true, parser.isImpala()]), - cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] - } - -break; -case 943: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, parser.isImpala()]), - cursorAtEnd: !$$[$0-1] && !$$[$0] - } - -break; -case 944: - - this.$ = { - suggestKeywords: parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'OFFSET', weight: 2 }], [parser.isImpala()]), - cursorAtEnd: !$$[$0] - } - -break; -case 973: - - if ($$[$0].suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 974: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 977: - - this.$ = { valueExpression: $$[$0] ? false : $$[$0-1] }; - if (!$$[$0] && parser.isHive()) { - this.$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; - } - -break; -case 978: case 1027: case 1053: case 1057: case 1060: - - parser.suggestSelectListAliases(); - -break; -case 979: - - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 980: - - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 987: - - if (parser.isHive()) { - parser.suggestKeywords(['CUBE', 'ROLLUP']); - } - -break; -case 989: - - parser.suggestKeywords(['SETS']); - -break; -case 1017: - - if ($$[$0].emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 1018: - - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 1022: - - this.$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 1023: case 1024: case 1025: -this.$ = { emptyOrderBy: false }; -break; -case 1026: -this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]); -break; -case 1029: - - this.$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 1030: - - this.$ = { suggestKeywords: ['ASC', 'DESC'] }; - -break; -case 1035: - - if (parser.isImpala()) { - this.$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; - } else { - this.$ = {}; - } - -break; -case 1038: - - parser.suggestKeywords(['FIRST', 'LAST']); - -break; -case 1042: -this.$ = { suggestKeywords: ['SORT BY'] }; -break; -case 1051: case 1055: case 1059: - - suggestKeywords: ['BY']; - -break; -case 1052: case 1056: - - parser.suggestColumns(); - parser.suggestSelectListAliases(); - -break; -case 1067: - - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - this.$ = $$[$0]; - -break; -case 1078: case 1083: - - parser.suggestFunctions({ types: ['BIGINT'] }); - -break; -case 1079: case 1084: - - delete parser.yy.result.suggestColumns; - -break; -case 1088: case 1089: - - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1091: - - // verifyType($$[$0], 'NUMBER'); - this.$ = $$[$0]; - $$[$0].types = ['NUMBER']; - -break; -case 1092: case 1093: case 1094: case 1095: case 1096: case 1103: case 1104: case 1105: case 1106: case 1107: case 1108: case 1114: case 1115: case 1136: case 1194: case 1195: case 1257: -this.$ = { types: [ 'BOOLEAN' ] }; -break; -case 1097: - - this.$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - -break; -case 1099: case 1100: case 1101: case 1102: - - parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1109: case 1110: - - // verifyType($$[$0-2], 'BOOLEAN'); - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1111: case 1112: case 1113: - - // verifyType($$[$0-2], 'NUMBER'); - // verifyType($$[$0], 'NUMBER'); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 1119: - - if (parser.isImpala()) { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'ILIKE', 'IREGEXP', 'LIKE', 'REGEXP', 'RLIKE']); - } else { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - } - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1120: case 1122: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 1121: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1123: - - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1124: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 1125: - - parser.suggestFunctions(); - parser.suggestColumns(); - this.$ = { types: [ 'T' ] }; - -break; -case 1126: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1127: - - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 1128: - - var keywords = ['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']; - if (parser.isImpala()) { - keywords = keywords.concat(['DISTINCT FROM', 'NOT DISTINCT FROM', 'NOT UNKNOWN', 'UNKNOWN']); - } - parser.suggestKeywords(keywords); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1129: - - var keywords = ['FALSE', 'NULL', 'TRUE']; - if (parser.isImpala()) { - keywords = keywords.concat(['DISTINCT FROM', 'UNKNOWN']); - } - parser.suggestKeywords(keywords); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1130: - - if (parser.isImpala()) { - parser.suggestKeywords(['FROM']); - } - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1131: case 1132: case 1133: - - parser.suggestKeywords(['NOT']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1134: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1135: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1137: - - this.$ = $$[$0-1]; - -break; -case 1138: - - parser.valueExpressionSuggest(); - this.$ = { types: ['T'], typeSet: true }; - -break; -case 1139: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1140: case 1141: case 1142: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1143: case 1144: case 1145: case 1146: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0].types); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1147: case 1149: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1148: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - -break; -case 1150: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; - -break; -case 1151: case 1152: case 1153: case 1154: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1155: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-3].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1156: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1157: case 1158: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; -break; -case 1159: case 1160: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; -break; -case 1161: - - if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-5].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; - -break; -case 1162: - - if ($$[$0-5].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 1163: - - if ($$[$0-5].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1164: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1165: case 1171: - - parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1166: - - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1167: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-4].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; - -break; -case 1168: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 1169: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1170: - - parser.valueExpressionSuggest($$[$0-4], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-4].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1172: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1173: case 1175: case 1177: case 1179: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - -break; -case 1174: case 1178: - - parser.addColRefIfExists($$[$0]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1176: case 1180: - - parser.addColRefIfExists($$[$0-2]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1181: case 1182: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 1183: case 1184: case 1185: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1186: case 1187: case 1188: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions(['NUMBER']); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 1189: case 1190: case 1191: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1192: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1193: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 1196: - - parser.valueExpressionSuggest(undefined, $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1197: - - parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1199: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1201: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1202: - - this.$ = $$[$0]; - this.$.suggestFilters = $$[$0-1].suggestFilters; - -break; -case 1203: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1204: case 1536: case 1541: case 1542: -this.$ = { types: [ 'T' ] }; -break; -case 1205: case 1207: - - $$[$0].position = 1; - -break; -case 1206: - - $$[$0].position = $$[$0-2].position + 1; - this.$ = $$[$0]; - -break; -case 1208: - - $$[$0-2].position += 1; - -break; -case 1209: - - $$[$0-2].position = 1; - -break; -case 1210: - - $$[$0-4].position += 1; - -break; -case 1211: - - parser.valueExpressionSuggest(); - $$[$0-2].position += 1; - -break; -case 1212: - - parser.valueExpressionSuggest(); - $$[$0-4].position += 1; - -break; -case 1213: - - parser.suggestValueExpressionKeywords($$[$0-3]); - -break; -case 1214: case 1215: - - parser.valueExpressionSuggest(); - this.$ = { cursorAtStart : true, position: 1 }; - -break; -case 1216: case 1217: - - parser.valueExpressionSuggest(); - this.$ = { position: 2 }; - -break; -case 1221: -this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; -break; -case 1222: - - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - if($$[$0-1].lastLoc.location){ - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].expression) { - this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } - } else { - this.$ = { function: fn, types: parser.findReturnTypes(fn) } - } - -break; -case 1223: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 1225: -this.$ = { types: [ 'NULL' ] }; -break; -case 1226: -this.$ = { types: [ 'TIMESTAMP' ] }; -break; -case 1228: - - if ($$[$0].suggestKeywords) { - this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; - } else { - this.$ = { types: ['COLREF'], columnReference: $$[$0] }; - } - -break; -case 1229: - - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); - } - this.$ = { types: parser.findReturnTypes(fn) }; - -break; -case 1230: case 1438: case 1439: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-1]) }; - -break; -case 1233: - - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; - this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } - -break; -case 1237: - - parser.suggestKeywords(['DAYS', 'HOURS', 'MICROSECONDS', 'MILLISECONDS', 'MINUTES', 'MONTHS', 'NANOSECONDS', 'SECONDS', 'WEEKS', 'YEARS']); - -break; -case 1242: - - parser.suggestValues($$[$0]); - -break; -case 1243: -this.$ = { types: [ 'NUMBER' ] }; -break; -case 1249: case 1251: -this.$ = $$[$0-1] + $$[$0]; -break; -case 1250: -this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; -break; -case 1255: case 1256: - - if (/\$\{[^}]*\}/.test($$[$0])) { - parser.addVariableLocation(_$[$0], $$[$0]); - this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } - } else { - this.$ = { types: [ 'STRING' ] } - } - -break; -case 1258: - - this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 1259: - - this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 1264: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); - } else { - this.$ = { valueExpression: $$[$0-1] } - } - -break; -case 1265: - - parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); - this.$ = { asterisk: true } - -break; -case 1266: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - } - -break; -case 1267: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); - this.$ = { suggestAggregateFunctions: true }; - -break; -case 1269: case 1635: -this.$ = [ $$[$0] ]; -break; -case 1270: - - $$[$0-2].push($$[$0]); - -break; -case 1272: case 1273: case 1709: - - this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 1275: - - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 1276: - - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 1277: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 1279: case 1280: case 1282: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - -break; -case 1293: - - this.$ = $$[$0]; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - this.$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - -break; -case 1300: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-3]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 1301: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-4]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 1302: -this.$ = { joinType: $$[$0-1] }; -break; -case 1303: -this.$ = { joinType: $$[$0-2] }; -break; -case 1307: - - if ($$[$0-3].suggestKeywords) { - parser.suggestKeywords($$[$0-3].suggestKeywords); - } - -break; -case 1308: case 1893: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - -break; -case 1311: - - if (!$$[$0-2] && parser.isImpala()) { - parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']); - } - if (!$$[$0-2] && parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $$[$0-3], - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 1316: -this.$ = 'JOIN'; -break; -case 1317: -this.$ = 'ANTI JOIN'; -break; -case 1318: -this.$ = 'CROSS JOIN'; -break; -case 1319: -this.$ = 'INNER JOIN'; -break; -case 1320: -this.$ = 'OUTER JOIN'; -break; -case 1321: -this.$ = 'SEMI JOIN'; -break; -case 1322: -this.$ = 'FULL JOIN'; -break; -case 1323: -this.$ = 'FULL OUTER JOIN'; -break; -case 1324: -this.$ = 'LEFT JOIN'; -break; -case 1325: -this.$ = 'LEFT ANTI JOIN'; -break; -case 1326: -this.$ = 'LEFT INNER JOIN'; -break; -case 1327: -this.$ = 'LEFT OUTER JOIN'; -break; -case 1328: -this.$ = 'LEFT SEMI JOIN'; -break; -case 1329: -this.$ = 'RIGHT JOIN'; -break; -case 1330: -this.$ = 'RIGHT ANTI JOIN'; -break; -case 1331: case 1332: -this.$ = 'RIGHT OUTER JOIN'; -break; -case 1333: -this.$ = 'RIGHT SEMI JOIN'; -break; -case 1334: case 1335: case 1336: case 1337: case 1338: case 1339: case 1341: case 1342: case 1343: case 1344: case 1346: case 1347: case 1348: case 1349: -this.$ = { suggestKeywords: ['JOIN'] }; -break; -case 1340: -this.$ = { suggestKeywords: ['OUTER'] }; -break; -case 1345: -this.$ = { suggestKeywords: parser.isImpala() ? ['ANTI', 'INNER', 'OUTER', 'SEMI'] : parser.isHive() ? ['OUTER', 'SEMI'] : ['OUTER'] }; -break; -case 1350: -this.$ = { suggestKeywords: parser.isImpala() ? ['ANTI', 'INNER', 'OUTER', 'SEMI'] : ['OUTER'] }; -break; -case 1351: - - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - -break; -case 1352: - - if (parser.isHive()) { - parser.suggestKeywords(['JOIN', 'OUTER JOIN', 'SEMI JOIN']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['ANTI JOIN', 'INNER JOIN', 'JOIN', 'OUTER JOIN', 'SEMI JOIN']); - } else { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - -break; -case 1353: - - if (parser.isImpala()) { - parser.suggestKeywords(['ANTI JOIN', 'INNER JOIN', 'JOIN', 'OUTER JOIN', 'SEMI JOIN']); - } else { - parser.suggestKeywords(['JOIN', 'OUTER JOIN']); - } - -break; -case 1354: -this.$ = { noJoinCondition: true, suggestKeywords: parser.isImpala() ? ['ON', 'USING'] : ['ON'] }; -break; -case 1355: -this.$ = { valueExpression: $$[$0] }; -break; -case 1356: case 2183: -this.$ = {}; -break; -case 1360: - - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - -break; -case 1361: - - this.$ = { - primary: $$[$0-3] - } - if ($$[$0-3].identifierChain) { - if ($$[$0-1]) { - $$[$0-3].alias = $$[$0-1].alias - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-3].identifierChain); - } - parser.addTablePrimary($$[$0-3]); - } - var keywords = []; - if ($$[$0] && $$[$0].suggestKeywords) { - keywords = $$[$0].suggestKeywords; - } else { - // Right-to-left for cursor after TablePrimary - keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1], $$[$0-2]], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [parser.isImpala(), true, parser.isHive()]); - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 1362: - - this.$ = { - primary: $$[$0-2] - }; - - if ($$[$0-1]) { - if(this.$.primary){ - this.$.primary.alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - } - - var keywords = []; - if ($$[$0] && $$[$0].suggestKeywords) { - keywords = $$[$0].suggestKeywords; - } else { - keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1]], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }], [parser.isImpala(), true]); - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 1363: - - if ($$[$0-1]) { - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-3].identifierChain); - } - -break; -case 1364: case 1365: - - if ($$[$0-1]) { - $$[$0-3].alias = $$[$0-1].alias; - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-3].identifierChain); - } - parser.addTablePrimary($$[$0-3]); - -break; -case 1366: - - if ($$[$0-1]) { - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias); - } - -break; -case 1377: - - parser.suggestKeywords(['BUCKET']); - -break; -case 1378: - - parser.suggestKeywords(['OUT OF']); - -break; -case 1379: - - parser.suggestKeywords(['OF']); - -break; -case 1380: - - if (!$$[$0-2]) { - parser.suggestKeywords(['ON']); - } - -break; -case 1382: - - if ($$[$0-2].indexOf('.') === -1 ) { - parser.suggestKeywords(['PERCENT', 'ROWS']); - } else { - parser.suggestKeywords(['PERCENT']); - } - -break; -case 1384: -this.$ = { suggestKeywords: ['REPEATABLE()'] }; -break; -case 1386: - - parser.suggestKeywords(['SYSTEM()']); - -break; -case 1391: - - parser.pushQueryState(); - -break; -case 1392: - - parser.popQueryState(); - -break; -case 1394: - - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - this.$ = $$[$0-2]; - -break; -case 1397: - - var subQuery = parser.getSubQuery($$[$0]); - if(subQuery){ - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - } - parser.popQueryState(subQuery); - this.$ = subQuery; - -break; -case 1414: case 1415: -this.$ = { alias: $$[$0], location: _$[$0] }; -break; -case 1420: - - if ($$[$0-1] && $$[$0].lateralView) { - $$[$0-1].lateralViews.push($$[$0].lateralView); - this.$ = $$[$0-1]; - } else if ($$[$0].lateralView) { - this.$ = { lateralViews: [ $$[$0].lateralView ] }; - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords - } - -break; -case 1422: - - if (!$$[$0]) { - $$[$0-1].suggestKeywords = ['OVER']; - } - -break; -case 1431: - - parser.suggestKeywords(['OVER']); - -break; -case 1436: case 1437: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 1450: -this.$ = { expression: $$[$0-2] }; -break; -case 1451: - - parser.valueExpressionSuggest(); - this.$ = { position: 1 } - -break; -case 1452: - - parser.suggestValueExpressionKeywords($$[$0-1]); - -break; -case 1460: case 1548: case 1614: -this.$ = { types: parser.findReturnTypes($$[$0-2]) }; -break; -case 1461: -this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; -break; -case 1462: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-3], 1); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1463: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1464: - - parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1472: case 1473: - - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - -break; -case 1474: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$$[$0-2]) { - parser.suggestKeywords(['PARTITION BY']); - } - -break; -case 1475: - - if (!$$[$0-1]) { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - -break; -case 1479: case 1824: case 2302: case 2303: case 2306: case 2316: case 2350: case 2359: case 2377: case 2434: case 2435: case 2440: case 2445: case 2449: - - parser.suggestKeywords(['BY']); - -break; -case 1484: - - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - -break; -case 1485: - - var keywords = []; - if ($$[$0-2].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); - } - if (!$$[$0]) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - -break; -case 1491: - - parser.suggestKeywords(parser.isHive() ? ['BETWEEN', 'UNBOUNDED'] : ['BETWEEN']); - -break; -case 1492: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['AND']); - } - -break; -case 1495: - - if (!$$[$0-1] && parser.isHive()) { - parser.suggestKeywords(['PRECEDING']); - } - -break; -case 1497: - - lexer.popState(); - -break; -case 1498: - - lexer.begin('hdfs'); - -break; -case 1500: - - parser.suggestHdfs({ path: $$[$0-3] }); - -break; -case 1501: - - parser.suggestHdfs({ path: $$[$0-2] }); - -break; -case 1502: - - parser.suggestHdfs({ path: $$[$0-1] }); - -break; -case 1503: - - parser.suggestHdfs({ path: '' }); - -break; -case 1504: - - parser.suggestHdfs({ path: '' }); - -break; -case 1510: - - parser.suggestKeywords(['PRECEDING']); - -break; -case 1511: case 1521: - - parser.suggestKeywords(['ROW']); - -break; -case 1520: - - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - -break; -case 1522: - - parser.suggestKeywords(['FOLLOWING']); - -break; -case 1528: - - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 1529: - - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 1535: case 1540: -this.$ = { types: [ $$[$0-1].toUpperCase() ] }; -break; -case 1537: - - parser.valueExpressionSuggest(); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 1538: case 1539: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ] }; - -break; -case 1543: - - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 1544: - - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ 'T' ] }; - -break; -case 1545: case 1546: - - parser.suggestKeywords(parser.getTypeKeywords()); - this.$ = { types: [ 'T' ] }; - -break; -case 1547: case 1569: -this.$ = { types: parser.findReturnTypes($$[$0-3]) }; -break; -case 1549: case 1570: case 1613: -this.$ = { types: parser.findReturnTypes($$[$0-4]) }; -break; -case 1550: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - if (parser.isImpala()) { - keywords.push('ALL'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1551: case 1572: case 1616: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1552: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - if (parser.isImpala()) { - keywords.push('ALL'); - } - } - parser.suggestKeywords(keywords); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1553: case 1557: -this.$ = { types: ['INT'] }; -break; -case 1554: - - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - this.$ = { types: ['INT'] } - -break; -case 1555: case 1559: - - parser.suggestKeywords(['FROM']); - this.$ = { types: ['INT'] } - -break; -case 1556: - - parser.valueExpressionSuggest(); - this.$ = { types: ['INT'] } - -break; -case 1558: - - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - this.$ = { types: ['INT'] } - -break; -case 1571: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else if (parser.isImpala()) { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1573: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else if (parser.isImpala()) { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1599: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1600: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1601: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1602: - - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1603: - - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1604: - - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1605: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1606: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1607: - - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1608: - - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1609: - - if ($$[$0-3].types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($$[$0-3], ['FROM']); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1610: - - if ($$[$0-2].types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($$[$0-2], ['FROM']); - } else { - parser.suggestValueExpressionKeywords($$[$0-2]); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1615: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - if (parser.isImpala()) { - keywords.push('ALL'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1617: - - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1618: -this.$ = { lateralView: { udtf: $$[$0-2], tableAlias: $$[$0-1], columnAliases: $$[$0] }}; -break; -case 1619: - - if ($$[$0-1].function.toLowerCase() === 'explode') { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; - } else if ($$[$0-1].function.toLowerCase() === 'posexplode') { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; - } else { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: [] }, suggestKeywords: ['AS'] }; - } - -break; -case 1620: -this.$ = { lateralView: { udtf: $$[$0-1], columnAliases: $$[$0] }}; -break; -case 1621: case 1622: case 1623: case 1624: -this.$ = { }; -break; -case 1631: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); - } else { - parser.suggestKeywords(['explode', 'posexplode']); - } - -break; -case 1632: - - parser.suggestKeywords(['VIEW']); - -break; -case 1636: -this.$ = [ $$[$0-2], $$[$0] ]; -break; -case 1640: -this.$ = { inValueEdit: true }; -break; -case 1641: -this.$ = { inValueEdit: true, cursorAtStart: true }; -break; -case 1642: case 1643: case 1644: case 1645: case 1646: -this.$ = { suggestKeywords: ['NOT'] }; -break; -case 1652: case 1653: case 1654: case 1655: case 1656: - - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - this.$ = { types: ['BOOLEAN'] } - -break; -case 1657: case 1659: -this.$ = parser.findCaseType($$[$0-1]); -break; -case 1658: case 1661: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1660: - - parser.suggestValueExpressionKeywords($$[$0-1], ['END']); - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1662: -this.$ = parser.findCaseType($$[$0-2]); -break; -case 1663: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1664: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-2]); - -break; -case 1665: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - this.$.suggestFilters = $$[$0-1].suggestFilters - -break; -case 1666: - - parser.valueExpressionSuggest(); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1667: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1668: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = $$[$0-1]; - -break; -case 1669: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ] }; - -break; -case 1672: -this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; -break; -case 1673: - - $$[$0-1].caseTypes.push($$[$0]); - this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; - -break; -case 1677: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - -break; -case 1680: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; -break; -case 1681: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1682: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 1683: case 1684: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; -break; -case 1685: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1686: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [$$[$0]] }; - -break; -case 1687: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1688: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1689: case 1691: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 1690: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 1692: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; - -break; -case 1693: - - parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1694: - - parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1695: case 1696: case 1697: case 1698: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1707: case 1708: - - this.$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 1716: case 2139: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 1718: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 1735: - - if (parser.isHive()) { - parser.suggestKeywords(['DATABASE', 'INDEX', 'SCHEMA', 'TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['TABLE', 'VIEW']); - } - -break; -case 1736: case 1738: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - -break; -case 1737: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - -break; -case 1739: - - if (parser.isHive()) { - parser.suggestDatabases(); - } - -break; -case 1740: - - parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); - if (parser.isHive()) { - parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); - } - -break; -case 1741: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - if (parser.isHive()) { - parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); - } - -break; -case 1742: case 2036: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - -break; -case 1743: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - -break; -case 1744: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - -break; -case 1746: case 1829: case 2378: case 2753: case 3078: case 3288: case 3304: case 3306: - - parser.suggestKeywords(['ON']); - -break; -case 1750: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PARTITION', 'REBUILD']); - } else { - parser.suggestKeywords(['REBUILD']); - } - -break; -case 1771: - - if (!$$[$0-1] && parser.isImpala()) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 4 }, { value: 'COLUMNS', weight: 3 }, { value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } else if (!$$[$0-1] && parser.isHive()) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); - } else if (parser.isImpala()) { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } else if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1772: case 1793: case 2063: - - parser.suggestKeywords(['COLUMNS']); - -break; -case 1777: - - if (parser.isHive()) { - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['LOCATION', 'PARTITION']); - } else if ($$[$0-2] && $$[$0-2].suggestKeywords) { - var keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); - keywords.push({ value: 'PARTITION', weight: 1 }); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords(['PARTITION']); - } - } else if (parser.isImpala()) { - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['LOCATION', 'CACHED IN', 'UNCACHED']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['CACHED IN', 'UNCACHED']); - } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - } - -break; -case 1779: case 1812: case 1820: case 1832: case 1910: case 1936: case 3360: - - parser.suggestKeywords(['PARTITION']); - -break; -case 1780: case 1937: - - parser.suggestKeywords(['VALUE']); - -break; -case 1784: - - parser.suggestKeywords(['FOREIGN KEY', 'PRIMARY KEY']); - -break; -case 1791: - - if (parser.isHive()) { - parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', - 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', - 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', - 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', - 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['ADD COLUMNS', 'ADD PARTITION', 'ADD RANGE PARTITION', 'ALTER', 'ALTER COLUMN', 'CHANGE', - 'DROP COLUMN', 'DROP PARTITION', 'DROP RANGE PARTITION', 'PARTITION', 'RECOVER PARTITIONS', 'RENAME TO', - 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', - 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - } - -break; -case 1792: - - if (parser.isHive()) { - parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', - 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', - 'SET SERDE', 'SET SERDEPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['SET CACHED IN', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', - 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - } - -break; -case 1794: - - if (parser.isHive()) { - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['CACHED IN', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES','TBLPROPERTIES', 'UNCACHED']); - } - -break; -case 1795: - - if (parser.isHive()) { - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); - } - -break; -case 1797: case 2024: case 2811: case 2827: - - parser.suggestKeywords(['TO']); - -break; -case 1799: case 1821: case 2311: - - parser.suggestKeywords(['PARTITIONS']); - -break; -case 1816: - - if (parser.isHive()) { - parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); - } - -break; -case 1817: case 2013: - - parser.suggestKeywords(['AS DIRECTORIES']); - -break; -case 1818: case 2014: - - parser.suggestKeywords(['DIRECTORIES']); - -break; -case 1819: - - parser.suggestKeywords(['TO PARTITION']); - -break; -case 1822: case 2491: case 2510: - - parser.suggestKeywords(['LOCATION']); - -break; -case 1825: case 2807: case 2812: case 2816: case 2883: case 2884: case 2885: case 2918: case 2926: case 2929: case 2932: case 2937: case 2940: - - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - -break; -case 1830: - - if (!$$[$0-1]) { - parser.suggestKeywords(['STORED AS DIRECTORIES']); - } - -break; -case 1834: case 1841: case 1875: case 1878: case 1880: - - parser.addColumnLocation($$[$0-3].location, [ $$[$0-3].identifier ]); - -break; -case 1835: - - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - -break; -case 1836: case 1844: case 1845: - - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - -break; -case 1837: - - if (parser.isImpala()) { - if (!$$[$0-1]) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - } - -break; -case 1838: - - if (parser.isImpala()) { - parser.suggestKeywords(['DROP DEFAULT', 'SET BLOCK_SIZE', 'SET COMMENT', 'SET COMPRESSION', 'SET DEFAULT', - 'SET ENCODING']); - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - } - -break; -case 1839: - - if (parser.isImpala()) { - parser.suggestKeywords(['DEFAULT']); - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - } - -break; -case 1840: - - if (parser.isImpala()) { - parser.suggestKeywords(['BLOCK_SIZE', 'COMMENT', 'COMPRESSION', 'DEFAULT', 'ENCODING']); - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - } - -break; -case 1842: case 2093: case 2735: case 3237: case 3361: - - parser.suggestKeywords(['STATS']); - -break; -case 1862: - - parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); - -break; -case 1877: - - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - -break; -case 1879: - - if (parser.isHive() && !$$[$0-2] && !$$[$0-1]) { - if ($$[$0-3].suggestKeywords) { - var keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - } - } else if (parser.isHive() && $$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - parser.addColumnLocation($$[$0-4].location, [ $$[$0-4].identifier ]); - -break; -case 1881: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); - } - -break; -case 1884: - - parser.suggestKeywords(['NO_DROP', 'OFFLINE']); - -break; -case 1886: case 2398: - - parser.suggestFileFormats(); - -break; -case 1889: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH REPLICATION =']); - } - -break; -case 1891: - - if (parser.isImpala()) { - parser.suggestKeywords(['FORMAT']); - } - -break; -case 1892: case 3024: - - parser.suggestKeywords(['DELIMITED']); - -break; -case 1895: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH SERDEPROPERTIES']); - } - -break; -case 1899: - - parser.suggestKeywords(['WAIT']); - -break; -case 1902: - - parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); - -break; -case 1903: - - parser.suggestKeywords(['TBLPROPERTIES']); - -break; -case 1906: - - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - -break; -case 1911: - - parser.suggestKeywords(['WITH TABLE']); - -break; -case 1912: case 2031: case 2045: case 2603: case 2627: case 2767: case 3158: case 3167: case 3292: - - parser.suggestKeywords(['TABLE']); - -break; -case 1930: - - parser.addColumnLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 1931: - - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); - } else if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } else if (parser.isImpala() && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'COLUMN', weight: 1 }, { value: 'PARTITION', weight: 1 }, { value: 'RANGE PARTITION', weight: 1 }, { value: 'IF EXISTS', weight: 2 }]); - parser.suggestColumns(); - } else if (parser.isImpala()) { - parser.suggestKeywords(['PARTITION', 'RANGE PARTITION']); - } - -break; -case 1933: - - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 1944: case 2047: case 2744: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - -break; -case 1945: case 2032: case 2046: - - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1970: - - if (!$$[$0-1]) { - parser.suggestKeywords(['CASCADE']); - } - -break; -case 1978: case 1979: case 1980: - - if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1996: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['LOCATION'] }; - } - -break; -case 2020: - - if (parser.isHive()) { - parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['AS', 'RENAME TO']); - } else { - parser.suggestKeywords(['AS']); - } - -break; -case 2021: - - if (parser.isHive()) { - parser.suggestKeywords(['TBLPROPERTIES']); - } - -break; -case 2027: case 2033: case 2765: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 2028: - - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 2030: - - parser.suggestKeywords(['REPAIR TABLE']); - -break; -case 2035: case 2502: case 2713: - - parser.suggestKeywords(['FUNCTION']); - -break; -case 2037: - - parser.suggestKeywords(['ON DATABASE']); - -break; -case 2038: - - parser.suggestKeywords(['DATABASE']); - -break; -case 2040: - - parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); - parser.suggestKeywords(['IS']); - -break; -case 2041: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.suggestKeywords(['NULL']); - -break; -case 2044: - - parser.addTablePrimary($$[$0-6]); - -break; -case 2049: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); - } else { - parser.suggestKeywords(['COMPUTE STATISTICS']); - } - -break; -case 2050: - - parser.addTablePrimary($$[$0-3]); - parser.suggestKeywords(['STATISTICS']); - -break; -case 2051: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - -break; -case 2052: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - -break; -case 2053: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'NOSCAN', weight: 1 }])); - -break; -case 2054: - - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($$[$0-1]); - -break; -case 2055: - - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($$[$0-6]); - -break; -case 2067: case 2079: - - parser.suggestKeywords(['METADATA']); - -break; -case 2072: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - parser.suggestKeywords(['FUNCTIONS']); - -break; -case 2074: case 3130: case 3270: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 2082: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['METADATA']); - -break; -case 2085: - - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - -break; -case 2088: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - -break; -case 2089: - - parser.addTablePrimary($$[$0-3]); - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLESAMPLE']); - } else if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - -break; -case 2092: case 2734: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['INCREMENTAL']); - -break; -case 2094: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['STATS']); - -break; -case 2097: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 2112: - - if ($$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } else if (parser.isHive()) { - if ($$[$0-2]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); - } else { - parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'VIEW']); - } - } else if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - -break; -case 2115: - - var keywords = []; - if (!$$[$0] && parser.isHive()) { - keywords.push('WITH DBPROPERTIES'); - } - if (!$$[$0-1] && !$$[$0]) { - keywords.push('LOCATION'); - } - if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 2130: - - parser.suggestKeywords(['DBPROPERTIES']); - -break; -case 2152: - - var keywords = []; - if (!$$[$0-10] && !$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'LIKE', weight: 1 }); - if (parser.isImpala()) { - keywords.push({ value: 'LIKE PARQUET', weight: 1 }); - } - } else { - if (!$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'COMMENT', weight: 11 }); - } - if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'PARTITIONED BY', weight: 10 }); - if (parser.isImpala()) { - keywords.push({ value: 'PARTITION BY', weight: 10 }); - } - } - if (parser.isImpala() && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'SORT BY', weight: 9 }); - } - if (parser.isHive() && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'CLUSTERED BY', weight: 8 }); - } - if (parser.isHive() && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'SKEWED BY', weight: 7 }); - } else if (parser.isHive() && $$[$0-5] && $$[$0-5].suggestKeywords && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0-1]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 7)); // Get the last optional from SKEWED BY - } - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'ROW FORMAT', weight: 6 }); - keywords.push({ value: 'STORED AS', weight: 6 }); - if (parser.isHive()) { - keywords.push({ value: 'STORED BY', weight: 6 }); - } - } else if ($$[$0-4] && $$[$0-4].suggestKeywords && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-4].suggestKeywords, 6)); - } - if ((($$[$0-4] && $$[$0-4].storedBy) || parser.isImpala()) && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 5 }); - } - if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'LOCATION', weight: 4 }); - } - if (!$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'TBLPROPERTIES', weight: 3 }); - } - if (parser.isImpala() && !$$[$0]) { - keywords.push({ value: 'CACHED IN', weight: 2 }, { value: 'UNCACHED', weight: 2 }); - } - if (parser.isImpala() && $$[$0] && $$[$0].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0].suggestKeywords, 2)); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 2162: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (parser.isImpala()) { - parser.suggestKeywords(['PARQUET']); - } - -break; -case 2168: - - if (parser.isImpala()) { - parser.suggestKeywords(['PRIMARY KEY']); - } else if (parser.isHive()) { - parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); - } - -break; -case 2175: case 2177: case 2370: - - parser.checkForKeywords($$[$0-1]); - -break; -case 2176: case 2178: - - parser.checkForKeywords($$[$0-3]); - -break; -case 2179: - - this.$ = $$[$0-2]; - var keywords = []; - if (parser.isImpala()) { - if (!$$[$0]['primary']) { - keywords.push('PRIMARY KEY'); - } - if (!$$[$0]['encoding']) { - keywords.push('ENCODING'); - } - if (!$$[$0]['compression']) { - keywords.push('COMPRESSION'); - } - if (!$$[$0]['default']) { - keywords.push('DEFAULT'); - } - if (!$$[$0]['block_size']) { - keywords.push('BLOCK_SIZE'); - } - if (!$$[$0]['null']) { - keywords.push('NOT NULL'); - keywords.push('NULL'); - } - } - if (!$$[$0]['comment']) { - keywords.push('COMMENT'); - if (parser.isHive() && $$[$0-1].toLowerCase() === 'double') { - keywords.push({ value: 'PRECISION', weight: 2 }); - } - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 2180: case 2216: case 2222: case 2223: case 2236: case 2239: case 2251: case 2253: case 2653: - - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - -break; -case 2185: - - this.$ = {}; - this.$[$$[$0]] = true; - -break; -case 2186: - - $$[$0-1][$$[$0]] = true; - -break; -case 2191: -this.$ = 'primary'; -break; -case 2192: -this.$ = 'encoding'; -break; -case 2193: -this.$ = 'compression'; -break; -case 2194: -this.$ = 'default'; -break; -case 2195: -this.$ = 'block_size'; -break; -case 2196: case 2197: -this.$ = 'null'; -break; -case 2198: -this.$ = 'comment'; -break; -case 2200: - - if (parser.isImpala()) { - parser.suggestKeywords(['NULL']); - } - -break; -case 2221: case 2537: case 2548: case 2571: - - parser.suggestKeywords(parser.getTypeKeywords()); - -break; -case 2235: case 2238: - - parser.suggestKeywords(['COMMENT']); - -break; -case 2263: - - parser.suggestKeywords(['CONSTRAINT']); - -break; -case 2264: case 2267: - - parser.suggestKeywords(['FOREIGN KEY']); - -break; -case 2269: - - parser.suggestKeywords(['PRIMARY KEY']); - -break; -case 2273: - - parser.suggestKeywords(['DISABLE NOVALIDATE']); - -break; -case 2274: - - parser.suggestKeywords(['NOVALIDATE']); - -break; -case 2276: case 3165: case 3172: case 3179: - - parser.addTablePrimary($$[$0-4]); - -break; -case 2277: case 2294: case 2296: - - parser.suggestKeywords(['KEY']); - -break; -case 2279: - - parser.suggestKeywords(['REFERENCES']); - -break; -case 2283: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['DISABLE NOVALIDATE']); - -break; -case 2284: - - parser.addTablePrimary($$[$0-3]); - parser.suggestKeywords(['NOVALIDATE']); - -break; -case 2285: - - parser.addTablePrimary($$[$0-5]); - if (!$$[$0-1]) { - parser.suggestKeywords(['NORELY', 'RELY']); - } - -break; -case 2307: - - parser.suggestKeywords(['HASH', 'RANGE']); - -break; -case 2319: case 2324: case 2325: - - if (parser.isImpala()) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 2332: - - if (parser.isImpala()) { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - -break; -case 2334: case 2641: case 3074: - - parser.suggestFunctions(); - -break; -case 2335: - - if ($$[$0].endsWithLessThanOrEqual && parser.isImpala()) { - parser.suggestKeywords(['VALUES']); - } - -break; -case 2336: case 2339: case 2342: - - if (parser.isImpala()) { - parser.suggestKeywords(['<', '<=']); - } - -break; -case 2337: - - if (parser.isImpala()) { - parser.suggestKeywords(['VALUES']); - } - -break; -case 2340: case 2343: - - if (parser.isImpala()) { - parser.suggestFunctions(); - } - -break; -case 2353: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); - } else { - parser.suggestKeywords(['INTO']); - } - -break; -case 2354: - - parser.suggestKeywords(['BUCKETS']); - -break; -case 2375: -this.$ = { suggestKeywords: ['STORED AS DIRECTORIES'] }; -break; -case 2385: - - this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]) - -break; -case 2386: case 2387: - - this.$ = { storedBy: true } - -break; -case 2388: - - if (parser.isHive()) { - parser.suggestKeywords(['AS', 'BY']); - } else { - parser.suggestKeywords(['AS']); - } - -break; -case 2390: - - parser.suggestKeywords(['FORMAT']); - -break; -case 2391: - - if (parser.isHive()) { - parser.suggestKeywords(['DELIMITED', 'SERDE']); - } else { - parser.suggestKeywords(['DELIMITED']); - } - -break; -case 2395: -this.$ = { suggestKeywords: ['STORED AS'] }; -break; -case 2421: - - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; - } else if ($$[$0-4] && $$[$0-4].suggestKeywords && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-4].suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; - } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; - } - -break; -case 2427: - - if (!$$[$0-2] && !$$[$0-1]) { - this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 2 }, { value: 'LINES TERMINATED BY', weight: 1 }] }; - } else if ($$[$0-2] && $$[$0-2].suggestKeywords && !$$[$0-1]) { - this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2).concat(['LINES TERMINATED BY']) }; - } else if (!$$[$0-1]) { - this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 1 }] }; - } - -break; -case 2431: -this.$ = { suggestKeywords: ['ESCAPED BY'] }; -break; -case 2433: case 2439: case 2444: case 2448: - - parser.suggestKeywords(['TERMINATED BY']); - -break; -case 2438: - - parser.suggestKeywords(['ITEMS TERMINATED BY']); - -break; -case 2443: - - parser.suggestKeywords(['KEYS TERMINATED BY']); - -break; -case 2452: - - parser.suggestKeywords(['DEFINED AS']); - -break; -case 2458: case 2459: - - parser.suggestKeywords(['SERDEPROPERTIES']); - -break; -case 2469: - - parser.commitLocations(); - -break; -case 2471: case 2488: case 2504: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 2472: - - if (!$$[$0-7]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 2475: - - var keywords = [{value: 'AS', weight: 1 }]; - if (!$$[$0-1]) { - if (parser.isHive()) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - if (!$$[$0-2]) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - } - parser.suggestKeywords(keywords); - -break; -case 2489: - - if (!$$[$0-6]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 2490: case 2509: - - parser.suggestKeywords(['RETURNS']); - -break; -case 2492: - - parser.suggestKeywords(['SYMBOL']); - -break; -case 2503: - - if (!$$[$0-13]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 2511: - - if (!$$[$0-1]) { - parser.suggestKeywords([{value: 'INIT_FN', weight: 2 }, {value: 'UPDATE_FN', weight: 1 }]); - } else { - parser.suggestKeywords([{value: 'UPDATE_FN', weight: 1 }]); - } - -break; -case 2512: - - parser.suggestKeywords(['MERGE_FN']); - -break; -case 2513: - - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'PREPARE_FN', weight: 5 }, {value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'INTERMEDIATE', weight: 1 }]); - } - -break; -case 2532: - - if (!$$[$0-1]) { - parser.suggestKeywords(['USING']); - } else { - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - } - -break; -case 2538: - - parser.suggestKeywords(['...']); - -break; -case 2573: - - parser.suggestFunctions(); - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - -break; -case 2576: - - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - -break; -case 2588: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COMMENT']); - } - -break; -case 2592: case 2594: -this.$ = $$[$0-3]; -break; -case 2602: - - parser.suggestKeywords(['ON TABLE']); - -break; -case 2608: case 2618: - - parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); - -break; -case 2616: - - if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if ($$[$0-4] && $$[$0-4].suggestKeywords && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-4].suggestKeywords, 4).concat([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); - } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); - } - -break; -case 2621: - - parser.suggestKeywords(['DEFERRED REBUILD']); - -break; -case 2622: - - parser.suggestKeywords(['REBUILD']); - -break; -case 2667: case 2669: - - parser.addCommonTableExpressions($$[$0-1]); - -break; -case 2693: - - if (parser.isHive()) { - parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'FUNCTION', 'INCREMENTAL STATS', 'ROLE', 'SCHEMA', 'STATS', 'TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - -break; -case 2697: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - -break; -case 2698: - - if (parser.isHive() || parser.isImpala()) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - -break; -case 2700: case 2709: case 2714: - - if (!$$[$0-3]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2707: case 2708: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 2711: - - parser.suggestKeywords(['AGGREGATE']); - -break; -case 2721: case 2726: case 2758: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2722: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2733: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['INCREMENTAL']); - -break; -case 2739: case 3330: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['PARTITION']); - -break; -case 2743: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 2746: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 2751: - - parser.suggestKeywords(['IF EXISTS']); - -break; -case 2757: - - parser.suggestKeywords(['FUNCTION', 'MACRO']); - -break; -case 2761: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 2762: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2768: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (parser.isImpala() && !$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2771: - - parser.addTablePrimary($$[$0-2]); - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 2773: - - parser.addTablePrimary($$[$0-2]); - if (parser.isImpala() && !$$[$0-3]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2776: case 2931: case 2936: case 2939: case 2943: case 2951: - - parser.suggestKeywords(['FROM']); - -break; -case 2778: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - parser.suggestKeywords(['WHERE']); - } - -break; -case 2782: - - parser.suggestKeywords(['FROM']); - if (parser.isImpala() && !$$[$0-1]) { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - -break; -case 2785: - - var keywords = [{ value: 'FULL JOIN', weight: 1 }, { value: 'FULL OUTER JOIN', weight: 1 }, { value: 'JOIN', weight: 1 }, { value: 'LEFT JOIN', weight: 1 }, { value: 'LEFT OUTER JOIN', weight: 1 }, { value: 'RIGHT JOIN', weight: 1 }, { value: 'RIGHT OUTER JOIN', weight: 1 }, { value: 'INNER JOIN', weight: 1 }, { value: 'LEFT ANTI JOIN', weight: 1 }, { value: 'LEFT SEMI JOIN', weight: 1 }, { value: 'RIGHT ANTI JOIN', weight: 1 }, { value: 'RIGHT SEMI JOIN', weight: 1 }]; - if (!$$[$0]) { - keywords.push({ value: 'WHERE', weight: 3 }); - } - if ($$[$0-2].suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); - } - if ($$[$0-2].suggestJoins) { - parser.suggestJoins($$[$0-2].suggestJoins); - } - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2)); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 2794: - - parser.suggestKeywords(['TRANSACTIONS']); - -break; -case 2803: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - -break; -case 2806: - - if (!$$[$0-1]) { - parser.suggestKeywords(['ON', 'TO']); - } else { - parser.suggestKeywords(['TO']); - } - -break; -case 2809: case 2829: case 2831: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - -break; -case 2814: case 2818: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH ADMIN OPTION']); - } - -break; -case 2820: case 2944: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); - -break; -case 2821: - - parser.suggestKeywords(['TO GROUP']); - -break; -case 2822: case 2946: case 3343: case 3344: - - parser.suggestKeywords(['GROUP']); - -break; -case 2824: case 2948: - - if ($$[$0-1].isCreate) { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); - } else { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - } - -break; -case 2825: - - if ($$[$0-2].isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - -break; -case 2828: case 2935: case 2952: case 3293: - - parser.suggestKeywords(['ROLE']); - -break; -case 2835: - - parser.suggestKeywords(['DATABASE', 'TABLE']); - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 2851: - - if ($$[$0].toUpperCase() === 'ALL') { - this.$ = { singleAll: true }; - } - -break; -case 2857: case 2858: case 2859: case 2922: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - -break; -case 2875: -this.$ = { isCreate: true }; -break; -case 2897: - - parser.suggestKeywords(['GRANT OPTION']); - -break; -case 2898: case 2899: case 2903: case 2955: - - parser.suggestKeywords(['OPTION']); - -break; -case 2902: - - parser.suggestKeywords(['ADMIN OPTION']); - -break; -case 2914: - - parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - -break; -case 2917: - - if (!$$[$0-1]) { - if ($$[$0-2].singleAll) { - parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); - } else { - parser.suggestKeywords(['FROM', 'ON']); - } - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 2920: - - parser.suggestKeywords(['OPTION FOR']); - -break; -case 2921: case 2934: - - parser.suggestKeywords(['FOR']); - -break; -case 2925: - - if (!$$[$0-1]) { - parser.suggestKeywords(['FROM', 'ON']); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 2928: - - if ($$[$0-1].toUpperCase() === 'ADMIN') { - parser.suggestKeywords(['FROM', 'OPTION FOR']); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 2945: - - parser.suggestKeywords(['FROM GROUP']); - -break; -case 2949: - - if ($$[$0-2].isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - -break; -case 2966: - - var keywords = []; - if ($$[$0-1].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); - } else { - keywords = ['SELECT']; - } - if ($$[$0-1].addValues) { - keywords.push({ weight: 1.1, value: 'VALUES' }); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 2969: - - if (!$$[$0].keepTables) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - -break; -case 2973: - - parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); - -break; -case 2974: - - if ($$[$0-1].cursorAtEnd) { - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = parser.yy.result.suggestKeywords || []; - if ($$[$0].suggestKeywords) { - keywords = keywords.concat($$[$0].suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - -break; -case 2975: - - if ($$[$0].cursorAtStart) { - parser.checkForSelectListKeywords($$[$0-1].tableExpression); - } - -break; -case 2976: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] } - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['IF NOT EXISTS'] } - } - -break; -case 2977: - - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['STORED AS'] }; - } - -break; -case 2978: - - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['STORED AS'] }; - } - -break; -case 2979: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'], addValues: true }; - } else if (!$$[$0]) { - this.$ = { addValues: true }; - } - -break; -case 2980: - - parser.suggestKeywords(['OVERWRITE', 'INTO']); - -break; -case 2981: - - if (!$$[$0-1]) { - parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - this.$ = { keepTables: true } - -break; -case 2982: case 2993: - - this.$ = { keepTables: true } - -break; -case 2983: case 2994: case 2995: case 3058: case 3059: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - -break; -case 2984: case 3010: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - -break; -case 2985: - - parser.suggestKeywords(['DIRECTORY']); - -break; -case 2992: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - this.$ = { keepTables: true } - -break; -case 3005: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); - } else { - parser.suggestKeywords(['SELECT']); - } - -break; -case 3006: - - if ($$[$0-1].cursorAtEnd) { - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = parser.yy.result.suggestKeywords || []; - if ($$[$0].suggestKeywords) { - keywords = keywords.concat($$[$0].suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - -break; -case 3008: case 3009: - - $$[$0-3].owner = 'insert'; - parser.addTablePrimary($$[$0-3]); - -break; -case 3011: case 3048: case 3084: - - parser.suggestKeywords(['INTO']); - -break; -case 3012: case 3049: case 3055: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 3014: - - $$[$0-1].owner = 'insert'; - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['VALUES']); - -break; -case 3023: - - parser.suggestKeywords(['FORMAT DELIMITED']); - -break; -case 3026: -this.$ = { selectList: $$[$0] }; -break; -case 3027: - - this.$ = $$[$0-1]; - this.$.cursorAtEnd = true; - -break; -case 3028: - - parser.selectListNoTableSuggest($$[$0], $$[$0-2]); - -break; -case 3029: - - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns(); - -break; -case 3037: - - var keywords = $$[$0-2].suggestKeywords && !$$[$0-1] ? parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2) : []; - if (!$$[$0-1]) { - keywords = keywords.concat(['[NOSHUFFLE]', '[SHUFFLE]', 'SELECT', 'VALUES']) - } else { - keywords = keywords.concat(['SELECT']) - } - parser.suggestKeywords(keywords); - -break; -case 3047: - - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - -break; -case 3050: - - if (!$$[$0-3]) { - parser.suggestKeywords(['TABLE']); - } - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - -break; -case 3052: - - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'upsert'; - } - -break; -case 3053: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] }; - } - -break; -case 3054: - - parser.suggestKeywords(['INTO', 'OVERWRITE']); - -break; -case 3056: - - if (!$$[$0-4]) { - parser.suggestKeywords(['TABLE']); - } - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - -break; -case 3081: - - parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'WHEN', weight: 2 }]); - -break; -case 3083: - - $$[$0-6].alias = $$[$0-4]; - parser.addTablePrimary($$[$0-6]); - if ($$[$0-2].subQuery) { - parser.addTablePrimary({ subQueryAlias: $$[$0] }); - } else { - $$[$0-2].alias = $$[$0]; - } - -break; -case 3085: - - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - -break; -case 3087: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['AS T USING']); - -break; -case 3088: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['T USING']); - -break; -case 3089: - - $$[$0-3].alias = $$[$0-1]; - parser.addTablePrimary($$[$0-3]); - parser.suggestKeywords(['USING']); - -break; -case 3090: - - $$[$0-4].alias = $$[$0-2]; - parser.addTablePrimary($$[$0-4]); - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - -break; -case 3091: - - $$[$0-4].alias = $$[$0-2]; - parser.addTablePrimary($$[$0-4]); - -break; -case 3092: - - $$[$0-5].alias = $$[$0-3]; - parser.addTablePrimary($$[$0-5]); - parser.suggestKeywords(['AS S ON']); - -break; -case 3093: - - $$[$0-6].alias = $$[$0-4]; - parser.addTablePrimary($$[$0-6]); - parser.suggestKeywords(['S ON']); - -break; -case 3102: - - if ($$[$0].suggestThenKeywords) { - parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); - } - -break; -case 3103: case 3105: - - if (!$$[$0-1].notPresent) { - parser.suggestKeywords(['WHEN']); - } - -break; -case 3104: - - if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { - var keywords = []; - if (!$$[$0-1].isDelete) { - keywords.push('DELETE'); - } - if (!$$[$0-1].isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$$[$0-1].isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - -break; -case 3106: - - if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { - var keywords = []; - if (!$$[$0-2].isDelete && !$$[$0-1].isDelete) { - keywords.push('DELETE'); - } - if (!$$[$0-2].isInsert && !$$[$0-1].isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$$[$0-2].isUpdate && !$$[$0-1].isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - -break; -case 3107: -this.$ = { notPresent: !!$$[$0-4], isDelete: $$[$0].isDelete, isInsert: $$[$0].isInsert, isUpdate: $$[$0].isUpdate }; -break; -case 3108: - - if (!$$[$0-1]) { - parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); - } else { - parser.suggestKeywords(['MATCHED']); - } - -break; -case 3109: - - if (!$$[$0-1]) { - parser.suggestKeywords(['AND', 'THEN']); - } else { - parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'THEN', weight: 2 }]); - } - -break; -case 3111: -this.$ = { suggestThenKeywords: true }; -break; -case 3116: -this.$ = { isUpdate: true }; -break; -case 3117: -this.$ = { isDelete: true }; -break; -case 3118: -this.$ = { isInsert: true }; -break; -case 3119: - - parser.suggestKeywords(['SET']); - -break; -case 3123: - - if (parser.isHive()) { - parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['DATA INPATH']); - } - -break; -case 3124: - - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); - } else { - parser.suggestKeywords(['INPATH']); - } - -break; -case 3126: - - if (!$$[$0-1]) { - parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); - } else { - parser.suggestKeywords(['INTO TABLE']); - } - -break; -case 3127: - - parser.suggestKeywords([ 'TABLE' ]); - -break; -case 3145: - - if (!$$[$0]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); - } else if (!$$[$0].hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - -break; -case 3146: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat(['FROM'])); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 3150: - - if (!$$[$0-1]) { - parser.suggestKeywords(['LOCATION']); - } - -break; -case 3151: - - if (!$$[$0-4]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); - } else if (!$$[$0-4].hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - -break; -case 3153: - - if ($$[$0-5].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 2).concat(['FROM'])); - } - -break; -case 3156: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0]) { - this.$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; - } else { - this.$ = { hasExternal: true } - } - -break; -case 3157: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] }; - } - -break; -case 3166: case 3180: case 3181: - - parser.addTablePrimary($$[$0-9]); - -break; -case 3170: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); - } else { - parser.suggestKeywords([ 'TO' ]); - } - -break; -case 3173: - - parser.addTablePrimary($$[$0-5]); - parser.suggestKeywords(['FOR replication()']); - -break; -case 3174: - - parser.addTablePrimary($$[$0-6]); - parser.suggestKeywords(['replication()']); - -break; -case 3177: - - parser.addTablePrimary($$[$0-5]); - if (!$$[$0-4]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 3178: - - parser.addTablePrimary($$[$0-10]); - if (!$$[$0-9]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 3194: - - parser.suggestKeywords(['ALL', 'NONE']); - -break; -case 3217: - - if (parser.isHive()) { - parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); - } else { - parser.suggestKeywords(['COLUMNS', 'DATABASES', 'TABLES']); - } - -break; -case 3218: - - // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT - if ($$[$0].identifierChain && $$[$0].identifierChain.length === 1 && $$[$0].identifierChain[0].name.toLowerCase() === 'roles') { - parser.suggestKeywords(['CURRENT']); - parser.yy.locations.pop(); - } else { - parser.addTablePrimary($$[$0]); - if (parser.isImpala()) { - parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); - } - } - -break; -case 3219: - - if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'DATABASES', 'FUNCTIONS', 'SCHEMAS', 'TABLES']); - } else if (parser.isHive()) { - parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); - } - -break; -case 3238: case 3268: case 3328: case 3332: case 3334: case 3362: - - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 3242: case 3243: case 3247: case 3248: case 3307: case 3308: - - parser.suggestKeywords(['FROM', 'IN']); - -break; -case 3244: case 3245: case 3246: case 3291: case 3305: - - parser.suggestTables(); - -break; -case 3253: - - if (parser.isImpala()) { - parser.suggestKeywords(['TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['TABLE']); - } - -break; -case 3254: - - if ($$[$0-1].isView && parser.isImpala()) { - parser.suggestTables({ onlyViews: true }); - } else { - parser.suggestTables(); - } - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 3255: - - if (parser.yy.result.suggestTables && $$[$0-1].isView) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 3256: - - parser.addTablePrimary($$[$0]); - if (parser.isImpala()) { - parser.suggestKeywords(['TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['TABLE']); - } - -break; -case 3258: -this.$ = { isView: true }; -break; -case 3261: case 3262: - - parser.suggestKeywords([ 'ROLES' ]); - -break; -case 3265: case 3359: - - parser.suggestKeywords(['LIKE']); - -break; -case 3272: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['IN']); - -break; -case 3277: case 3280: - - parser.suggestKeywords(['FUNCTIONS']); - -break; -case 3278: case 3281: - - parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); - -break; -case 3279: case 3368: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - -break; -case 3282: - - if (!$$[$0-2]) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else { - parser.suggestKeywords(['LIKE']); - } - -break; -case 3290: - - parser.suggestKeywords(['ALL', 'TABLE']); - parser.suggestTables(); - -break; -case 3310: - - parser.suggestTables({identifierChain: [{name: $$[$0]}]}); - -break; -case 3316: - - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestKeywords(['DATABASE', 'SCHEMA']); - -break; -case 3318: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['EXTENDED', 'PARTITION']); - -break; -case 3321: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['EXTENDED']); - -break; -case 3338: case 3339: case 3340: - - parser.suggestKeywords(['GRANT']); - -break; -case 3341: case 3342: - - parser.suggestKeywords(['ROLE', 'USER']); - -break; -case 3349: case 3358: - - parser.suggestKeywords(['EXTENDED']); - -break; -case 3352: - - if ($$[$0-1]) { - parser.suggestKeywords(['LIKE']); - } else { - parser.suggestKeywords(['FROM', 'IN', 'LIKE']); - } - -break; -case 3354: - - if (parser.isHive()) { - parser.suggestKeywords(['EXTENDED']); - } - -break; -case 3355: - - parser.suggestKeywords(['LIKE']); - -break; -case 3356: - - parser.suggestKeywords(['PARTITION']); - -break; -case 3363: - - parser.addTablePrimary($$[$0]); - -break; -case 3370: - - parser.addTablePrimary($$[$0-3]); - -break; -case 3375: - - if (!$$[$0-1] && !$$[$0-2]) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['LIKE']); - } - -break; -case 3379: case 3380: - - parser.addDatabaseLocation(_$[$0], [ { name: $$[$0] } ]); - -break; -case 3391: - - if (parser.isImpala() && !$$[$0-1] && !$$[$0-2]) { - parser.suggestKeywords([{ value: 'FROM', weight: 2 }, { value: 'WHERE', weight: 1 }]); - } else if (parser.isImpala() && !$$[$0-1] && $$[$0-2]) { - var keywords = [{ value: 'FULL JOIN', weight: 2 }, { value: 'FULL OUTER JOIN', weight: 2 }, { value: 'JOIN', weight: 2 }, { value: 'LEFT JOIN', weight: 2 }, { value: 'LEFT OUTER JOIN', weight: 2 }, { value: 'RIGHT JOIN', weight: 2 }, { value: 'RIGHT OUTER JOIN', weight: 2 }, { value: 'INNER JOIN', weight: 2 }, { value: 'LEFT ANTI JOIN', weight: 2 }, { value: 'LEFT SEMI JOIN', weight: 2 }, { value: 'RIGHT ANTI JOIN', weight: 2 }, { value: 'RIGHT SEMI JOIN', weight: 2 }, { value: 'WHERE', weight: 1 }]; - if ($$[$0-2].suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); - } - if ($$[$0-2].suggestJoins) { - parser.suggestJoins($$[$0-2].suggestJoins); - } - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 3)); - } - parser.suggestKeywords(keywords); - } else if (!$$[$0-1]) { - parser.suggestKeywords([ 'WHERE' ]); - } - -break; -case 3392: - - parser.suggestKeywords([ 'SET' ]); - -break; -case 3408: - - parser.suggestKeywords([ '=' ]); - -break; -case 3419: - - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $$[$0]; - } - -break; -} -}, -table: [o($V0,$V1,{7:1,4:2}),{1:[3]},o($V2,$V3,{5:3,8:4,9:5,11:7,12:8,13:9,14:10,15:11,16:12,17:353,18:354,20:355,21:356,22:357,23:358,405:360,406:361,407:362,408:363,409:364,410:365,411:366,412:367,413:368,414:369,415:370,416:371,417:372,418:373,419:374,1125:375,1126:376,1127:377,1128:378,1129:379,1130:380,1131:381,572:382,420:387,421:388,422:389,423:390,424:391,425:392,426:393,427:394,428:395,429:396,430:397,431:398,432:399,433:400,1132:401,1133:402,1134:403,1135:404,1136:405,576:406,1139:407,1140:408,1141:409,1142:410,1143:411,574:412,564:413,565:414,812:415,813:416,814:417,815:418,816:419,817:420,818:421,934:426,935:427,936:428,937:429,938:430,939:431,940:432,1144:433,1145:434,1146:435,1147:436,1148:437,1149:438,1150:439,1151:440,1152:441,1257:445,1258:446,1259:447,1260:448,1261:449,1262:450,1263:451,1264:452,1265:453,1266:454,1267:455,1268:456,1269:457,1270:458,1271:459,1272:460,1273:461,1274:462,1275:463,1276:464,1313:465,1137:467,1197:468,1138:469,1198:470,1247:471,566:476,567:477,819:478,820:479,821:480,822:481,823:482,824:483,825:484,809:486,941:487,942:488,943:489,944:490,945:491,437:492,1153:493,1154:494,1155:495,1156:496,1157:497,1158:498,1159:499,1160:500,1277:502,1279:503,1280:504,1281:505,1282:506,1283:507,1284:508,1285:509,1286:510,1287:511,1288:512,1289:513,1290:514,1291:515,1292:516,1293:517,1294:518,1202:519,1199:520,597:521,599:522,1217:524,1235:525,1233:526,568:527,830:529,919:530,1062:534,1063:535,1064:536,1065:537,1161:538,1162:539,1216:544,842:547,920:548,1066:549,1067:550,1068:551,1069:552,1163:556,1164:557,1221:560,1218:561,1225:565,1226:566,1223:567,1224:568,2:$V4,19:$V5,24:$V6,26:$V7,28:$V8,30:$V9,32:$Va,33:$Vb,34:$Vc,37:$Vd,38:$Ve,39:$Vf,40:$Vg,42:$Vh,43:$Vi,45:$Vj,46:$Vk,47:$Vl,48:$Vm,49:$Vn,50:$Vo,51:$Vp,52:$Vq,54:$Vr,56:$Vs,58:$Vt,59:$Vu,60:$Vv,61:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,85:$VQ,86:$VR,87:$VS,88:$VT,89:$VU,90:$VV,91:$VW,92:$VX,93:$VY,95:$VZ,96:$V_,97:$V$,98:$V01,99:$V11,100:$V21,101:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,113:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1,121:$Vj1,122:$Vk1,123:$Vl1,124:$Vm1,125:$Vn1,126:$Vo1,128:$Vp1,130:$Vq1,131:$Vr1,132:$Vs1,133:$Vt1,134:$Vu1,135:$Vv1,136:$Vw1,137:$Vx1,138:$Vy1,139:$Vz1,140:$VA1,141:$VB1,142:$VC1,143:$VD1,144:$VE1,145:$VF1,146:$VG1,147:$VH1,148:$VI1,149:$VJ1,150:$VK1,156:$VL1,157:$VM1,158:$VN1,160:$VO1,161:$VP1,163:$VQ1,164:$VR1,165:$VS1,166:$VT1,167:$VU1,168:$VV1,169:$VW1,170:$VX1,171:$VY1,172:$VZ1,173:$V_1,174:$V$1,175:$V02,176:$V12,177:$V22,178:$V32,179:$V42,180:$V52,181:$V62,182:$V72,183:$V82,184:$V92,185:$Va2,186:$Vb2,187:$Vc2,188:$Vd2,189:$Ve2,190:$Vf2,191:$Vg2,192:$Vh2,193:$Vi2,194:$Vj2,195:$Vk2,196:$Vl2,197:$Vm2,198:$Vn2,199:$Vo2,200:$Vp2,201:$Vq2,202:$Vr2,203:$Vs2,204:$Vt2,205:$Vu2,206:$Vv2,207:$Vw2,208:$Vx2,209:$Vy2,210:$Vz2,211:$VA2,212:$VB2,213:$VC2,214:$VD2,215:$VE2,216:$VF2,217:$VG2,218:$VH2,219:$VI2,220:$VJ2,221:$VK2,222:$VL2,223:$VM2,224:$VN2,225:$VO2,226:$VP2,227:$VQ2,228:$VR2,229:$VS2,230:$VT2,231:$VU2,232:$VV2,233:$VW2,234:$VX2,235:$VY2,236:$VZ2,237:$V_2,238:$V$2,239:$V03,240:$V13,241:$V23,242:$V33,243:$V43,244:$V53,245:$V63,246:$V73,247:$V83,248:$V93,249:$Va3,250:$Vb3,251:$Vc3,252:$Vd3,253:$Ve3,254:$Vf3,255:$Vg3,256:$Vh3,257:$Vi3,258:$Vj3,259:$Vk3,260:$Vl3,261:$Vm3,262:$Vn3,263:$Vo3,264:$Vp3,265:$Vq3,266:$Vr3,267:$Vs3,268:$Vt3,269:$Vu3,270:$Vv3,271:$Vw3,272:$Vx3,273:$Vy3,274:$Vz3,275:$VA3,276:$VB3,277:$VC3,278:$VD3,279:$VE3,280:$VF3,281:$VG3,282:$VH3,283:$VI3,284:$VJ3,285:$VK3,286:$VL3,287:$VM3,288:$VN3,289:$VO3,290:$VP3,291:$VQ3,292:$VR3,293:$VS3,294:$VT3,295:$VU3,296:$VV3,297:$VW3,298:$VX3,299:$VY3,300:$VZ3,301:$V_3,302:$V$3,303:$V04,304:$V14,305:$V24,306:$V34,307:$V44,308:$V54,309:$V64,310:$V74,311:$V84,312:$V94,313:$Va4,314:$Vb4,315:$Vc4,316:$Vd4,317:$Ve4,318:$Vf4,319:$Vg4,320:$Vh4,321:$Vi4,322:$Vj4,323:$Vk4,324:$Vl4,325:$Vm4,326:$Vn4,327:$Vo4,328:$Vp4,329:$Vq4,330:$Vr4,331:$Vs4,332:$Vt4,333:$Vu4,334:$Vv4,335:$Vw4,336:$Vx4,337:$Vy4,338:$Vz4,339:$VA4,340:$VB4,341:$VC4,342:$VD4,343:$VE4,344:$VF4,345:$VG4,346:$VH4,347:$VI4,348:$VJ4,349:$VK4,350:$VL4,351:$VM4,352:$VN4,353:$VO4,354:$VP4,355:$VQ4,356:$VR4,357:$VS4,358:$VT4,359:$VU4,360:$VV4,361:$VW4,362:$VX4,363:$VY4,364:$VZ4,365:$V_4,366:$V$4,367:$V05,368:$V15,369:$V25,370:$V35,371:$V45,372:$V55,373:$V65,374:$V75,375:$V85,376:$V95,377:$Va5,378:$Vb5,379:$Vc5,380:$Vd5,381:$Ve5,382:$Vf5,383:$Vg5,384:$Vh5,385:$Vi5,386:$Vj5,387:$Vk5,388:$Vl5,389:$Vm5,390:$Vn5,391:$Vo5,392:$Vp5,393:$Vq5,394:$Vr5,395:$Vs5,396:$Vt5,397:$Vu5,398:$Vv5,399:$Vw5,400:$Vx5,401:$Vy5,402:$Vz5,403:$VA5,404:$VB5,438:$VC5,439:$VD5,440:$VE5,441:$VF5,452:$VG5,569:$VH5,570:$VI5,571:$VJ5,577:$VK5,763:$VL5,826:$VM5,868:$VN5,930:$VO5,931:$VP5,933:$VQ5,1166:$VR5,1190:$VS5,1191:$VT5,1192:$VU5,1193:$VV5,1195:$VW5,1213:$VX5,1227:$VY5,1252:$VZ5,1253:$V_5,1278:$V$5,1314:$V06}),{6:[1,571],10:[1,572]},{6:[1,573]},o($V2,[2,6]),o($V2,[2,8]),{2:[1,574]},{6:[2,10],10:[1,575]},o($V2,[2,14]),o($V2,[2,15]),o($V2,[2,16]),{13:576,14:577,15:578,18:582,21:579,22:580,23:581,26:$V7,30:$V9,59:$Vu,74:$VH,79:$VM,80:$VN,97:$V$,113:$Vb1,131:$Vr1,145:[1,585],182:[1,584],218:[1,586],307:$V16,339:[1,583],352:$V26,405:360,406:361,407:362,408:363,409:364,410:365,411:366,412:367,413:368,414:369,415:370,416:371,417:372,418:373,419:374,420:387,421:388,422:389,423:390,424:391,425:392,426:393,427:394,428:395,429:396,430:397,431:398,432:399,433:400,437:492,438:$VC5,439:$VD5,440:$VE5,452:$VG5,564:413,565:414,566:476,567:477,568:527,569:$VH5,570:$VI5,571:$VJ5,572:382,574:412,576:406,577:$VK5,597:521,599:522,763:$VL5,809:486,812:415,813:416,814:417,815:418,816:419,817:420,818:421,819:478,820:479,821:480,822:481,823:482,824:483,825:484,826:$VM5,830:529,842:547,868:$VN5,919:530,920:548,930:$VO5,931:$VP5,933:$VQ5,934:426,935:427,936:428,937:429,938:430,939:431,940:432,941:487,942:488,943:489,944:490,945:491,1062:534,1063:535,1064:536,1065:537,1066:549,1067:550,1068:551,1069:552,1125:375,1126:376,1127:377,1128:378,1129:379,1130:380,1131:381,1132:401,1133:402,1134:403,1135:404,1136:405,1137:467,1138:469,1139:407,1140:408,1141:409,1142:410,1143:411,1144:433,1145:434,1146:435,1147:436,1148:437,1149:438,1150:439,1151:440,1152:441,1153:493,1154:494,1155:495,1156:496,1157:497,1158:498,1159:499,1160:500,1161:538,1162:539,1163:556,1164:557,1166:$VR5,1190:$VS5,1191:$VT5,1192:$VU5,1193:$VV5,1195:$VW5,1197:468,1198:470,1199:520,1202:519,1213:$VX5,1216:544,1217:524,1218:561,1221:560,1223:567,1224:568,1225:565,1226:566,1227:$VY5,1233:526,1235:525,1247:471,1252:$VZ5,1253:$V_5,1257:445,1258:446,1259:447,1260:448,1261:449,1262:450,1263:451,1264:452,1265:453,1266:454,1267:455,1268:456,1269:457,1270:458,1271:459,1272:460,1273:461,1274:462,1275:463,1276:464,1277:502,1278:$V$5,1279:503,1280:504,1281:505,1282:506,1283:507,1284:508,1285:509,1286:510,1287:511,1288:512,1289:513,1290:514,1291:515,1292:516,1293:517,1294:518,1313:465,1314:$V06},{2:[2,178]},{2:[2,179]},{2:[2,180]},{2:[2,181]},{2:[2,182]},{2:[2,183]},{2:[2,184]},{2:[2,185]},{2:[2,186]},{2:[2,187]},{2:[2,188]},{2:[2,189]},{2:[2,190]},{2:[2,191]},{2:[2,192]},{2:[2,193]},{2:[2,194]},{2:[2,195]},{2:[2,196]},{2:[2,197]},{2:[2,198]},{2:[2,199]},{2:[2,200]},{2:[2,201]},{2:[2,202]},{2:[2,203]},{2:[2,204]},{2:[2,205]},{2:[2,206]},{2:[2,207]},{2:[2,208]},{2:[2,209]},{2:[2,210]},{2:[2,211]},{2:[2,212]},{2:$V36,19:$V46,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vl7,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,402:$Vg8,439:$Vh8,523:595,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:589,1174:590,1178:593,1187:594,1188:596,1189:597,1190:$Vm8,1191:$Vn8},{2:[2,214]},{2:[2,215]},{2:[2,216]},{2:[2,217]},{2:[2,218]},{2:[2,219]},{2:[2,220]},{2:[2,221]},{2:[2,222]},{2:[2,223]},{2:[2,224]},{2:[2,225]},{2:[2,226]},{2:[2,227]},{2:[2,228]},{2:[2,229]},{2:[2,230]},{2:[2,231]},{2:[2,232]},{2:[2,233]},{2:[2,234]},{2:[2,235]},{2:[2,236]},{2:[2,237]},{2:[2,238]},{2:[2,239]},{2:[2,240]},{2:[2,241]},{2:[2,242]},{2:[2,243]},{2:[2,244]},{2:[2,245]},{2:[2,246]},{2:[2,247]},{2:[2,248]},{2:[2,249]},{2:[2,250]},{2:[2,251]},{2:[2,252]},{2:[2,253]},{2:[2,254]},{2:[2,255]},{2:[2,256]},{2:[2,257]},{2:[2,258]},{2:[2,259]},{2:[2,260]},{2:[2,261]},{2:[2,262]},{2:[2,263]},{2:[2,264]},{2:[2,265]},{2:[2,266]},{2:[2,267]},{2:[2,268]},{2:[2,269]},{2:[2,270]},{2:[2,271]},{2:[2,272]},{2:[2,273]},{2:[2,274]},{2:[2,275]},{2:[2,276]},{2:[2,277]},{2:[2,278]},{2:[2,279]},{2:[2,280]},{2:[2,281]},{2:[2,282]},{2:[2,283]},{2:[2,284]},{2:[2,285]},{2:[2,286]},{2:[2,287]},{2:[2,288]},{2:[2,289]},{2:[2,290]},{2:[2,291]},{2:[2,292]},{2:[2,293]},{2:[2,294]},{2:[2,295]},{2:[2,296]},{2:[2,297]},{2:[2,298]},{2:[2,299]},{2:[2,300]},{2:[2,301]},{2:[2,302]},{2:[2,303]},{2:[2,304]},{2:[2,305]},{2:[2,306]},{2:[2,307]},{2:[2,308]},o($Vo8,$Vp8,{159:598,25:613,1167:746,1168:747,701:748,702:749,703:750,704:751,705:752,706:753,707:754,708:755,717:756,720:757,721:758,724:759,522:760,666:761,525:762,672:763,523:764,509:766,2:$Vq8,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$Vs8,402:$Vt8}),{2:[2,310]},{2:[2,311]},{2:[2,312]},{2:[2,313]},{2:[2,314]},{2:[2,315]},{2:[2,316]},{2:[2,317]},{2:[2,318]},{2:[2,319]},{2:[2,320]},{2:[2,321]},{2:[2,322]},{2:[2,323]},{2:[2,324]},{2:[2,325]},{2:[2,326]},{2:[2,327]},{2:[2,328]},{2:[2,329]},{2:[2,330]},{2:[2,331]},{2:[2,332]},{2:[2,333]},{2:[2,334]},{2:[2,335]},{2:[2,336]},{2:[2,337]},{2:[2,338]},{2:[2,339]},{2:[2,340]},{2:[2,341]},{2:[2,342]},{2:[2,343]},{2:[2,344]},{2:[2,345]},{2:[2,346]},{2:[2,347]},{2:[2,348]},{2:[2,349]},{2:[2,350]},{2:[2,351]},{2:[2,352]},{2:[2,353]},{2:[2,354]},{2:[2,355]},{2:[2,356]},{2:[2,357]},{2:[2,358]},{2:[2,359]},{2:[2,360]},{2:[2,361]},{2:[2,362]},{2:[2,363]},{2:$Vu8,19:$Vv8,147:$Vw8,284:$Vx8,440:$Vy8,577:$Vz8,826:$VA8,868:$VB8,930:$VC8,1176:770,1183:772,1192:$VD8},{2:[2,365]},{2:[2,366]},{2:[2,367]},{2:[2,368]},{2:[2,369]},{2:[2,370]},{2:[2,371]},{2:[2,372]},{2:[2,373]},{2:[2,374]},{2:[2,375]},{2:[2,376]},{2:[2,377]},{2:[2,378]},{2:[2,379]},{2:[2,380]},{2:[2,381]},{2:[2,382]},{2:[2,383]},{2:[2,384]},{2:[2,385]},{2:[2,386]},{2:[2,387]},{2:[2,388]},{2:$VE8},{2:[2,390]},{2:[2,391]},{2:[2,392]},{2:[2,393]},{2:[2,394]},{2:[2,395]},{2:[2,396]},{2:[2,397]},{2:[2,398]},{2:$VF8},{2:[2,400]},{2:[2,401]},{2:[2,402]},{2:[2,403]},{2:[2,404]},{2:[2,405]},{2:[2,406]},{2:$VG8,19:$VH8,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$Vs8,402:$Vt8,509:766,522:760,523:764,525:762,604:780,606:782,666:761,672:763,701:783,702:784,703:750,704:751,705:752,706:753,707:754,708:755,717:756,720:757,721:758,724:759},{2:[2,408]},{2:[2,409]},{2:[2,410]},{2:[2,411]},{2:[2,412]},{2:[2,413]},{2:[2,414]},{2:[2,415]},{2:[2,416]},{2:[2,417]},{2:[2,418]},{2:[2,419]},{2:[2,420]},{2:[2,421]},{2:[2,422]},{2:[2,423]},{2:[2,424]},{2:[2,425]},{2:[2,426]},{2:[2,427]},{2:[2,428]},{2:[2,429]},{2:[2,430]},{2:[2,431]},{2:[2,432]},{2:[2,433]},{2:[2,434]},{2:[2,435]},{2:[2,436]},{2:[2,437]},{2:[2,438]},{2:[2,439]},{2:$VI8,19:$VJ8,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$VK8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:789,160:$Va8,161:$Vb8,284:$VL8,807:787},{2:[2,441]},{2:[2,442]},{2:[2,443]},{2:[2,444]},{2:[2,445]},{2:[2,446]},{2:[2,447]},{2:[2,448]},{2:[2,449]},{2:[2,450]},{2:[2,451]},{2:[2,452]},{2:[2,453]},{2:$VM8,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:794,591:790,592:791,593:792,594:793},{2:[2,455]},{2:[2,456]},{2:[2,457]},{2:[2,458]},{2:[2,459]},{2:[2,460]},{2:[2,461]},{2:[2,462]},{2:[2,463]},{2:[2,464]},{2:[2,465]},{2:[2,466]},{2:[2,467]},{2:[2,468]},{2:[2,469]},{2:[2,470]},{2:[2,471]},{2:[2,472]},{2:[2,473]},{2:[2,474]},{2:[2,475]},{2:[2,476]},{2:[2,477]},{2:[2,478]},{2:[2,479]},{2:[2,480]},{2:[2,481]},{2:[2,482]},{2:[2,483]},{2:[2,484]},{2:[2,485]},{2:[2,486]},{2:[2,487]},{2:[2,488]},{2:[2,489]},{2:[2,490]},{2:[2,491]},{2:[2,492]},{2:[2,493]},{2:[2,494]},{2:[2,495]},{2:[2,496]},{2:[2,497]},{2:[2,498]},{2:[2,499]},{2:[2,500]},{2:[2,501]},{2:[2,502]},{2:[2,503]},{2:[2,504]},{2:[2,505]},{2:[2,506]},{2:[2,507]},{2:[2,508]},{2:[2,509]},{2:[2,510]},{2:[2,511]},{2:[2,512]},{2:[2,513]},{2:[2,514]},{2:[2,515]},{2:[2,516]},{2:[2,517]},o($V2,[2,20],{2:[1,795]}),{19:[1,796],307:$V16,398:$VN8,572:797,574:801,577:$VK5,597:521,599:522,1134:799,1136:800,1137:802,1138:803,1190:$VO8,1192:$VU5,1199:520,1202:519,1216:544,1217:524,1218:561,1221:560,1223:567,1224:568,1225:565,1226:566,1227:$VY5},o($V2,[2,22],{405:360,406:361,407:362,408:363,409:364,410:365,411:366,412:367,413:368,414:369,415:370,416:371,417:372,418:373,419:374,1125:375,1126:376,1127:377,1128:378,1129:379,1130:380,1131:381,564:413,565:414,812:415,813:416,814:417,815:418,816:419,817:420,818:421,934:426,935:427,936:428,937:429,938:430,939:431,940:432,1144:433,1145:434,1146:435,1147:436,1148:437,1149:438,1150:439,1151:440,1152:441,1257:445,1258:446,1259:447,1260:448,1261:449,1262:450,1263:451,1264:452,1265:453,1266:454,1267:455,1268:456,1269:457,1270:458,1271:459,1272:460,1273:461,1274:462,1275:463,1276:464,1137:467,1197:468,1138:469,1198:470,1062:534,1063:535,1064:536,1065:537,1161:538,1162:539,1216:544,1223:567,1224:568,13:805,14:806,15:807,572:808,18:809,1313:820,1247:823,568:829,830:832,919:833,437:837,1277:840,1199:841,597:842,1233:845,1218:847,26:$VP8,30:$VQ8,59:$VR8,74:$VH,79:$VS8,80:$VT8,97:$VU8,113:$Vb1,131:$Vr1,145:$VV8,182:$VW8,218:$VX8,307:$VY8,339:$VZ8,352:$V_8,438:$VC5,439:$VD5,440:$VE5,452:$V$8,569:$V09,570:$VI5,571:$VJ5,577:$V19,763:$V29,826:$V39,868:$V49,930:$V59,931:$V69,933:$V79,1166:$V89,1190:$V99,1191:$Va9,1192:$Vb9,1193:$Vc9,1195:$Vd9,1213:$Ve9,1227:$Vf9,1252:$VZ5,1253:$Vg9,1278:$V$5,1314:$V06}),o($V2,[2,23]),o($V2,[2,24]),o($V2,[2,25]),o($V2,[2,26]),o($V2,[2,518]),o($V2,[2,519]),o($V2,[2,520]),o($V2,[2,521]),o($V2,[2,522]),o($V2,[2,523]),o($V2,[2,524]),o($V2,[2,525]),o($V2,[2,526]),o($V2,[2,527]),o($V2,[2,528]),o($V2,[2,529]),o($V2,[2,530]),o($V2,[2,531]),o($V2,[2,532]),o($V2,[2,2655]),o($V2,[2,2656]),o($V2,[2,2657]),o($V2,[2,2658]),o($V2,[2,2659]),o($V2,[2,2660]),o($V2,[2,2661]),o($Vh9,$Vi9,{573:851,575:852,584:853,585:854,586:855,587:856,347:$Vj9}),o($Vk9,$Vl9,{162:858,51:$Vm9,164:$Vn9,165:$Vo9}),o($Vp9,$Vq9,{19:[1,862]}),o([2,6,10,94,170,176,184,188,194,206,231,242,266,287,294,300,307,308,309,310,313,317,318,320,325,326,328,333,338,347,351,387,389,394,399,445,571,577,656,663,1190],$Vr9),o([2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,168,170,176,183,184,188,194,206,207,209,231,233,236,239,242,246,266,281,283,285,286,287,288,292,294,300,301,302,303,304,307,308,309,310,311,312,313,317,318,319,320,321,322,323,325,326,328,332,333,334,338,343,346,347,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,402,403,404,445,571,577,656,663,668,762,763,794,1190],[2,558]),o($V2,[2,533]),o($V2,[2,534]),o($V2,[2,535]),o($V2,[2,536]),o($V2,[2,537]),o($V2,[2,538]),o($V2,[2,539]),o($V2,[2,540]),o($V2,[2,541]),o($V2,[2,542]),o($V2,[2,543]),o($V2,[2,544]),o($V2,[2,546]),o($V2,[2,547]),o($V2,[2,2662]),o($V2,[2,2663]),o($V2,[2,2664]),o($V2,[2,2665]),o($V2,[2,2666]),o($V2,$Vs9,{1216:544,1223:567,1224:568,1199:841,597:842,1218:847,1137:863,1138:864,572:866,307:$VY8,398:$Vt9,577:$V19,1190:$Vu9,1192:$Vb9,1227:$Vf9}),o($V2,[2,2671]),o($V2,[2,2672]),o($V2,[2,2673]),o($V2,[2,2674]),o($V2,[2,2675]),o($Vv9,$Vi9,{586:855,573:868,584:869,347:$Vw9}),o($V2,[2,826]),o($V2,[2,827]),o($V2,[2,1721]),o($V2,[2,1722]),o($V2,[2,1723]),o($V2,[2,1724]),o($V2,[2,1725]),o($V2,[2,1726]),o($V2,[2,1727]),{19:[1,872],193:[1,871]},{19:[1,875],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,230:[1,874],402:$Vt8,509:766,522:873,523:764,525:876},{19:[1,878],932:[1,877]},{19:[1,881],234:[1,880],259:[1,879]},o($V2,[2,2099]),o($V2,[2,2100]),o($V2,[2,2101]),o($V2,[2,2102]),o($V2,[2,2103]),o($V2,[2,2104]),o($V2,[2,2105]),o($V2,[2,2676]),o($V2,[2,2677]),o($V2,[2,2678]),o($V2,[2,2679]),o($V2,[2,2680]),o($V2,[2,2681]),o($V2,[2,2682]),o($V2,[2,2683]),o($V2,[2,2684]),{19:[1,883],128:$Vx9},{19:[1,890],25:613,26:$V56,27:$V66,28:[1,888],29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:[1,887],107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,166:[1,889],182:[1,885],186:$Vd8,192:$Ve8,196:$Vf8,402:$Vg8,439:$Vh8,523:595,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:884,1174:886,1178:891,1187:594,1188:596,1189:597,1190:$Vm8,1191:$Vn8},{19:[1,894],147:[1,892],284:$Vx8,440:$Vy8,577:$Vz8,826:$VA8,868:$VB8,930:$VC8,1176:893,1183:895,1192:$VD8},o($V2,[2,3195]),o($V2,[2,3196]),o($V2,[2,3197]),o($V2,[2,3198]),o($V2,[2,3199]),o($V2,[2,3200]),o($V2,[2,3201]),o($V2,[2,3202]),o($V2,[2,3203]),o($V2,[2,3204]),o($V2,[2,3205]),o($V2,[2,3206]),o($V2,[2,3207]),o($V2,[2,3208]),o($V2,[2,3209]),o($V2,[2,3210]),o($V2,[2,3211]),o($V2,[2,3212]),o($V2,[2,3213]),o($V2,[2,3214]),{19:[1,897],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:896,160:$Va8,161:$Vb8},{19:[1,899],307:[1,898]},o($V2,[2,2956]),o($V2,[2,2957]),o($V2,[2,2958]),o($V2,[2,2961]),{19:[1,901],45:$Vy9,216:$Vz9,1248:900},{19:[1,905],178:[1,908],193:[1,909],307:$VA9,1254:904,1255:906,1256:907},{19:[1,911],193:[1,910]},{19:[1,914],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:922,523:921,549:919,550:920,551:917,552:918,1302:912,1304:913,1306:915,1307:916},o([2,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,260,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,402,403,404,441,762,763,794,806],$VB9,{578:923,166:$VC9,284:$VD9,298:$VE9}),o($V2,[2,828]),o($V2,[2,829]),o($V2,[2,1728]),o($V2,[2,1729]),o($V2,[2,1730]),o($V2,[2,1731]),o($V2,[2,1732]),o($V2,[2,1733]),o($V2,[2,1734]),{19:[1,927],133:$VF9,193:$VG9,196:[1,929],201:$VH9,262:$VI9,296:$VJ9,337:$VK9,342:$VL9,447:930,448:928,921:931,1101:$VM9},o($V2,[2,2106]),o($V2,[2,2107]),o($V2,[2,2108]),o($V2,[2,2109]),o($V2,[2,2110]),o($V2,[2,2111]),o($VN9,$VO9,{490:940,448:941,921:942,1105:943,106:$VP9,122:[1,945],133:$VF9,147:$VQ9,157:$VR9,181:[1,948],196:[1,944],201:$VH9,210:[1,947],229:[1,946],296:$VJ9,337:$VK9,1101:$VM9}),o($V2,[2,2685]),o($V2,[2,2686]),o($V2,[2,2687]),o($V2,[2,2688]),o($V2,[2,2689]),o($V2,[2,2690]),o($V2,[2,2691]),o($V2,[2,2692]),{19:[1,952],106:$VP9,122:[1,959],133:$VF9,147:$VQ9,157:$VR9,181:[1,963],193:$VG9,196:[1,958],201:$VH9,210:[1,962],229:[1,961],234:[1,956],259:[1,955],262:$VI9,296:$VJ9,337:$VK9,342:$VL9,447:957,448:953,921:960,1101:$VM9,1105:954},{19:[1,964],39:[1,966],42:$VS9,46:$VT9,65:$VU9,76:[1,980],91:[1,981],106:[1,984],107:$VV9,108:$VW9,120:$VX9,121:[1,990],128:$VY9,143:$VZ9,144:[1,971],145:[1,978],147:[1,985],148:$V_9,171:$V$9,174:[1,970],182:[1,977],193:[1,988],195:[1,1001],196:$V0a,197:$V1a,205:[1,992],210:$V2a,215:[1,965],217:$V3a,224:[1,974],230:$V4a,247:[1,982],250:[1,983],256:$V5a,262:[1,995],263:$V6a,434:993,439:$V7a,440:$V8a,450:1002,453:969,454:972,464:989,476:976,481:979,482:994},o($V2,[2,3220]),o($V2,[2,3221]),o($V2,[2,3222]),o($V2,[2,3223]),o($V2,[2,3224]),o($V2,[2,3225]),o($V2,[2,3226]),o($V2,[2,3227]),o($V2,[2,3228]),o($V2,[2,3229]),o($V2,[2,3230]),o($V2,[2,3231]),o($V2,[2,3232]),o($V2,[2,3233]),o($V2,[2,3234]),o($V2,[2,3235]),o($V2,[2,2965],{572:808,15:1009,18:1010,352:$V_8,577:$V19}),{15:1013,18:1014,19:[1,1011],23:1012,352:$V26,572:382,574:412,576:1015,577:$VK5},{19:[1,1017],577:$V9a,1190:$VO8,1199:1025,1200:1020,1201:1019,1202:1024,1203:1016,1204:1018,1210:1023,1211:1021},o($V2,[2,2970],{1210:1023,1200:1026,1201:1027,1199:1029,577:$Vaa,1190:$Vu9}),{19:[1,1030],315:[1,1031]},o($V2,[2,3033]),o($V2,[2,3077]),{19:[1,1032],324:[1,1033]},o($Vba,$Vca,{478:1034,448:1035,165:$Vda,181:[1,1036],195:$Vea,201:$VH9,296:$VJ9,337:$VK9}),o($Vba,$Vfa,{480:1039,221:$Vga,228:$Vha,296:[1,1040]}),{19:[1,1056],27:$Via,31:$Vja,36:$Vka,37:$Vla,41:$Vma,44:$Vna,53:$Voa,55:$Vpa,57:[1,1083],102:[1,1065],103:$Vqa,104:$Vra,114:[1,1063],127:[1,1066],129:$Vsa,146:[1,1050],188:$Vta,322:[1,1068],328:$Vua,339:[1,1057],446:1076,497:1049,762:$Vva,826:[1,1069],831:1043,836:1044,838:1045,839:1046,840:1047,841:1048,843:1051,847:1052,848:1053,849:1054,850:1055,851:1086,852:1062,855:1064,856:1067,859:1075,862:1079,863:1080,868:[1,1070],880:1071,883:1074,888:1081,906:$Vwa,908:$Vxa,910:$Vya},{19:[1,1096],167:$Vza,286:$VAa,339:[1,1093],436:1094,910:[1,1095]},{19:[1,1100],100:[1,1099]},{19:[1,1102],181:$VBa},{19:[1,1104],324:[1,1103]},o($V2,[2,2479]),o($V2,[2,2480]),o($V2,[2,2481]),o($V2,[2,2482]),o($V2,[2,2701]),o($V2,[2,2702]),{19:[1,1106],193:$VG9,262:$VI9,342:$VL9,447:1105},o($VCa,[2,3417]),o($VCa,[2,3418]),{19:$VDa,87:[1,1108],315:[1,1107],1207:$VEa},o($V2,[2,3032]),o($VFa,[2,3138]),o($VFa,[2,3139]),o($V2,[2,1763],{852:1062,855:1064,880:1071,446:1076,831:1111,836:1112,838:1113,839:1114,840:1115,841:1116,497:1117,856:1121,883:1127,859:1128,851:1131,843:1132,27:$Via,31:$Vja,36:$Vka,37:$VGa,41:$VHa,44:$Vna,53:$Voa,55:$Vpa,57:$VIa,102:$VJa,103:$Vqa,104:$Vra,114:$VKa,127:$VLa,129:$Vsa,188:$Vta,322:$VMa,328:$Vua,339:$VNa,762:$Vva,826:$VOa,868:$VPa,906:$Vwa,908:$Vxa,910:$Vya}),o($V2,[2,2019]),o($V2,[2,2483]),o($V2,[2,2484]),o($V2,[2,2485]),o($V2,[2,2486]),o($VQa,[2,554]),o($VQa,[2,555]),o($VQa,[2,556]),o($V2,[2,2703]),o($V2,[2,2704]),o($VRa,[2,3215]),o($VRa,[2,3216]),o($V2,[2,3036],{1219:1133,267:$VSa,273:$VTa,348:[1,1134],577:$VUa}),o($VVa,$VUa,{1219:1137,267:$VSa,273:$VTa,348:[1,1138]}),{19:[1,1139],315:[1,1140]},o($VWa,[2,854]),o($VWa,[2,855]),o($VXa,[2,3045]),o($VXa,[2,3046]),o($VYa,[2,3043]),o($VYa,[2,3044]),{19:[1,1141],315:[1,1142]},{19:[1,1143],315:$VZa,1229:1144,1230:$V_a},{1:[2,2]},o($V0,$V1,{4:1147}),{1:[2,3]},o($V2,[2,9]),o($V$a,$V1,{4:1148}),o($V2,[2,17]),o($V2,[2,18]),o($V2,[2,19]),o($V2,[2,27]),o($V2,[2,28]),o($V2,[2,29]),{307:$V16,398:$VN8,572:797,574:801,577:$VK5,597:521,599:522,1134:799,1136:800,1137:802,1138:803,1190:$VO8,1192:$VU5,1199:520,1202:519,1216:544,1217:524,1218:561,1221:560,1223:567,1224:568,1225:565,1226:566,1227:$VY5},{19:$VJ8,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$VK8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:789,160:$Va8,161:$Vb8,284:$VL8,807:787},{19:$V46,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vl7,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,402:$Vg8,439:$Vh8,523:595,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:589,1174:590,1178:593,1187:594,1188:596,1189:597,1190:$Vm8,1191:$Vn8},{19:$Vv8,147:$Vw8,284:$Vx8,440:$Vy8,577:$Vz8,826:$VA8,868:$VB8,930:$VC8,1176:770,1183:772,1192:$VD8},o($Vo8,$Vp8,{159:598,25:613,1167:746,1168:747,701:748,702:749,703:750,704:751,705:752,706:753,707:754,708:755,717:756,720:757,721:758,724:759,522:760,666:761,525:762,672:763,523:764,509:766,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$Vs8,402:$Vt8}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:794,591:790,592:791,593:792,594:793},{19:$VH8,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$Vs8,402:$Vt8,509:766,522:760,523:764,525:762,604:780,606:782,666:761,672:763,701:783,702:784,703:750,704:751,705:752,706:753,707:754,708:755,717:756,720:757,721:758,724:759},o($V0b,$V1b,{1171:1149,1179:1150,324:$V2b,394:$V3b}),{19:[1,1154],394:$V4b,837:[1,1153]},o([19,394,837],$V5b,{523:595,159:598,25:613,1174:1156,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,2803],{394:$V6b}),o($V2,$V1b,{1171:1158,324:$V7b}),o($V8b,[2,2851]),o($V9b,[2,2892]),o($Vab,[2,2853],{394:[1,1160]}),o([19,307,324,394,837],$Vbb,{512:1161,515:1162,513:1163,398:$Vcb}),o($Vdb,[2,761]),{402:$Veb,469:$Vfb},o($Vgb,[2,2862]),o($Vgb,[2,2863]),o($Vgb,[2,2864]),o($Vgb,[2,2865]),o($Vgb,[2,2866]),o($Vgb,[2,2867]),o($Vgb,[2,2868]),o($Vgb,[2,2869]),o($Vgb,[2,2870]),o($Vgb,[2,2871]),o($Vgb,$Vhb),o($Vib,[2,167]),o($Vib,[2,168]),o($Vib,[2,169]),o($Vib,[2,34]),o($Vib,[2,35]),o($Vib,$Vjb),o($Vib,[2,37]),o($Vib,[2,38]),o($Vib,[2,39]),o($Vib,[2,40]),o($Vib,[2,41]),o($Vib,[2,42]),o($Vib,[2,43]),o($Vib,[2,44]),o($Vib,[2,45]),o($Vib,[2,46]),o($Vib,[2,47]),o($Vib,[2,48]),o($Vib,[2,49]),o($Vib,[2,50]),o($Vib,[2,51]),o($Vib,[2,52]),o($Vib,[2,53]),o($Vib,[2,54]),o($Vib,[2,55]),o($Vib,[2,56]),o($Vib,[2,57]),o($Vib,[2,58]),o($Vib,[2,59]),o($Vib,[2,60]),o($Vib,[2,61]),o($Vib,[2,62]),o($Vib,[2,63]),o($Vib,[2,64]),o($Vib,[2,65]),o($Vib,[2,66]),o($Vib,[2,67]),o($Vib,[2,68]),o($Vib,[2,69]),o($Vib,[2,70]),o($Vib,[2,71]),o($Vib,[2,72]),o($Vib,[2,73]),o($Vib,[2,74]),o($Vib,[2,75]),o($Vib,[2,76]),o($Vib,[2,77]),o($Vib,[2,78]),o($Vib,[2,79]),o($Vib,[2,80]),o($Vib,[2,81]),o($Vib,[2,82]),o($Vib,[2,83]),o($Vib,[2,84]),o($Vib,[2,85]),o($Vib,[2,86]),o($Vib,[2,87]),o($Vib,[2,88]),o($Vib,[2,89]),o($Vib,[2,90]),o($Vib,[2,91]),o($Vib,[2,92]),o($Vib,[2,93]),o($Vib,[2,94]),o($Vib,[2,95]),o($Vib,[2,96]),o($Vib,[2,97]),o($Vib,[2,98]),o($Vib,[2,99]),o($Vib,[2,100]),o($Vib,[2,101]),o($Vib,[2,102]),o($Vib,[2,103]),o($Vib,[2,104]),o($Vib,[2,105]),o($Vib,[2,106]),o($Vib,[2,107]),o($Vib,[2,108]),o($Vib,[2,109]),o($Vib,[2,110]),o($Vib,[2,111]),o($Vib,[2,112]),o($Vib,[2,113]),o($Vib,[2,115]),o($Vib,[2,116]),o($Vib,[2,117]),o($Vib,[2,118]),o($Vib,[2,119]),o($Vib,[2,120]),o($Vib,[2,121]),o($Vib,[2,122]),o($Vib,[2,123]),o($Vib,[2,124]),o($Vib,[2,125]),o($Vib,[2,126]),o($Vib,[2,127]),o($Vib,[2,128]),o($Vib,[2,129]),o($Vib,[2,130]),o($Vib,[2,131]),o($Vib,[2,132]),o($Vib,[2,133]),o($Vib,[2,134]),o($Vib,[2,135]),o($Vib,[2,136]),o($Vib,[2,137]),o($Vib,[2,138]),o($Vib,[2,139]),o($Vib,[2,140]),o($Vib,[2,141]),o($Vib,[2,142]),o($Vib,[2,143]),o($Vib,[2,144]),o($Vib,[2,145]),o($Vib,[2,146]),o($Vib,[2,147]),o($Vib,[2,148]),o($Vib,[2,149]),o($Vib,[2,150]),o($Vib,[2,151]),o($Vib,[2,152]),o($Vib,[2,153]),o($Vib,[2,154]),o($Vib,$Vkb),o($Vib,[2,156]),o($Vib,[2,157]),o($Vib,[2,158]),o($Vib,[2,159]),o($Vib,[2,160]),o($Vib,[2,161]),o($Vib,[2,162]),o($Vib,[2,163]),o($Vib,[2,164]),o($Vib,[2,165]),o($Vib,[2,166]),{19:[1,1168],307:[1,1167]},o($V2,[2,2783],{307:[1,1169]}),o($Vo8,[2,2791]),o($Vlb,[2,2792]),o($Vmb,[2,1291]),o($Vnb,[2,1292]),o($Vob,$Vpb,{602:1170,709:1171,710:1172,713:1173,714:1183,266:$Vqb,294:$Vrb,308:$Vsb,313:$Vtb,317:$Vub,318:$Vvb,326:$Vwb,333:$Vxb,338:$Vyb}),o($Vmb,[2,1294]),o($Vnb,[2,1295],{602:1184,710:1185,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),o($Vnb,[2,1296]),o([6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,206,231,242,264,265,266,286,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,402,445,577,656,663,957,1190],$VHb,{718:1194,722:1195,203:[1,1196]}),o($VIb,$VJb,{159:598,25:613,698:1197,700:1198,523:1199,436:1200,509:1201,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,286:$VAa,402:$Vt8}),o($VKb,$VHb,{718:1202,203:$VLb}),o($VMb,$VJb,{159:598,25:613,523:1199,698:1204,436:1205,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,286:$VAa,402:$Vg8}),o([2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,203,206,231,242,264,265,266,286,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,402,445,577,656,663,957,1190],[2,1368]),o($VNb,[2,1370]),o([2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,203,206,231,242,264,265,266,286,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,402,445,577,656,663,1190],[2,1369]),o($VKb,[2,1371]),o($VOb,$VPb,{442:1206,207:$VQb,281:$VRb,395:$VSb}),o($VTb,$VUb,{666:761,595:1210,720:1211,596:1212,17:1213,728:1214,19:$V5,398:$VVb,441:$VF5}),o($VWb,[2,714],{442:1216,207:$VQb,281:$VRb,395:$VSb}),{402:$Veb,469:$Vfb,471:[1,1217]},o($Vib,$V5b),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1218},{19:[1,1220],324:[1,1219]},o($V2,[2,2820]),o($V2,[2,2823]),o($VXb,[2,2873]),o($VXb,[2,2874]),o($VXb,[2,2875]),o($VXb,[2,2876]),o($VXb,[2,2877]),o($VXb,[2,2878]),o($VXb,$Vbb,{513:1163,512:1221,515:1222,398:$Vcb}),o($VYb,$VZb,{605:1223,607:1224,394:[1,1225]}),o($V_b,[2,920]),o($V$b,$VZb,{605:1226}),o($V0c,[2,1284]),o($V$b,[2,1286],{394:[1,1227]}),o($V2,[2,545]),o($V1c,$V5b,{25:613,159:1228,19:[1,1231],26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,166:$V2c,198:$V3c}),{207:$VQb,281:$VRb,387:[1,1232],395:$VSb,442:1233},o($V2,[2,1712]),o($V1c,[2,3182]),o([19,307,398,577,1190,1192,1227],$V4c,{394:[1,1234]}),o($V5c,[2,897]),o($V6c,[2,898]),o($V5c,[2,900],{394:[1,1235]}),{19:[1,1237],167:$Vza,286:$VAa,436:1236},o($V2,[2,33]),o($V2,[2,21]),o($Vh9,$Vi9,{584:853,585:854,586:855,587:856,573:1238,575:1239,347:$Vj9}),{15:1240,18:1014,23:1241,352:$V26,572:382,574:412,576:1015,577:$VK5},o($V2,[2,2667]),o($V2,[2,2669]),o($Vv9,$Vi9,{586:855,584:869,573:1242,347:$Vw9}),o($V2,[2,2959]),o($V2,[2,2960]),{19:$VDa,87:[1,1243],315:[1,1244],1207:$VEa},o($V2,[2,30]),o($V2,[2,31]),o($V2,[2,32]),o($V7c,$Vi9,{573:851,586:855,584:869,347:$Vw9}),{307:$VY8,398:$V8c,572:1245,577:$V19,597:842,1137:802,1138:803,1190:$Vu9,1192:$Vb9,1199:841,1216:544,1218:847,1223:567,1224:568,1227:$Vf9},{193:[1,1247]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,230:[1,1249],402:$Vg8,522:1248,523:1250},{932:[1,1251]},{234:[1,1253],259:[1,1252]},{128:$Vx9},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$V9c,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,402:$Vg8,439:$Vh8,523:595,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:1254,1174:1255,1187:594,1189:1257,1190:$Vm8,1191:$Vn8},{147:$Vac,284:$Vx8,440:$Vy8,577:$Vbc,826:$VA8,868:$VB8,930:$VC8,1176:1259,1192:$VD8},{25:613,26:$V56,27:$V66,28:[1,1265],29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:[1,1264],107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,166:[1,1266],182:[1,1262],186:$Vd8,192:$Ve8,196:$Vf8,402:$Vg8,439:$Vh8,523:595,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:1261,1174:1263,1187:594,1189:1257,1190:$Vm8,1191:$Vn8},{147:[1,1267],284:$Vx8,440:$Vy8,577:$Vbc,826:$VA8,868:$VB8,930:$VC8,1176:1268,1192:$VD8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vcc,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:789,160:$Va8,161:$Vb8,284:$VL8,807:787},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:896,160:$Va8,161:$Vb8},{307:[1,1270]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,307:$Vp8,398:$VVb,402:$Vg8,522:760,523:1250,666:761,701:748,703:750,705:1272,706:753,717:1273,720:1274,1167:1271},{45:$Vy9,216:$Vz9,1248:1275},{178:$Vdc,193:$Vec,307:$VA9,1254:1276,1255:1277},{193:[1,1280]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:919,551:917,1302:1281,1306:915},o([2,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,260,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,402,403,404,762,763,794,806],$VB9,{578:1283,166:$VC9,284:$VD9,298:$VE9}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1285,591:1284,593:792},o($Vfc,$Vca,{478:1286,448:1287,165:$Vda,181:[1,1288],195:$Vea,201:$VH9,296:$VJ9,337:$VK9}),o($Vfc,$Vfa,{480:1289,221:$Vga,228:$Vha,296:[1,1290]}),{133:$VF9,193:$VG9,196:[1,1292],201:$VH9,262:$VI9,296:$VJ9,337:$VK9,342:$VL9,447:1293,448:1291,921:1294,1101:$VM9},{27:$Via,31:$Vja,36:$Vka,37:$VGa,41:$VHa,44:$Vna,53:$Voa,55:$Vpa,57:$VIa,102:$VJa,103:$Vqa,104:$Vra,114:$VKa,127:$VLa,129:$Vsa,146:[1,1298],188:$Vta,322:$VMa,328:$Vua,339:$VNa,446:1076,497:1297,762:$Vva,826:$VOa,831:1295,836:1296,838:1045,839:1046,840:1047,841:1048,843:1132,851:1131,852:1062,855:1064,856:1121,859:1128,868:$VPa,880:1071,883:1127,906:$Vwa,908:$Vxa,910:$Vya},{167:$Vza,286:$VAa,339:[1,1299],436:1300,910:[1,1301]},{100:[1,1302]},{181:$VBa},{324:[1,1303]},o($Vgc,$VO9,{1105:943,448:1304,490:1305,921:1306,106:$VP9,122:[1,1308],133:$VF9,147:$VQ9,157:$VR9,181:[1,1311],196:[1,1307],201:$VH9,210:[1,1310],229:[1,1309],296:$VJ9,337:$VK9,1101:$VM9}),{106:$VP9,122:[1,1317],133:$VF9,147:$VQ9,157:$VR9,181:[1,1321],193:$VG9,196:[1,1316],201:$VH9,210:[1,1320],229:[1,1319],234:[1,1314],259:[1,1313],262:$VI9,296:$VJ9,337:$VK9,342:$VL9,447:1315,448:1312,921:1318,1101:$VM9,1105:954},{193:$VG9,262:$VI9,342:$VL9,447:1322},{39:[1,1324],42:$VS9,46:$VT9,65:$VU9,76:[1,1334],91:[1,1335],106:[1,1338],107:$VV9,108:$VW9,120:$VX9,121:[1,1342],128:$VY9,143:$VZ9,144:[1,1327],145:[1,1332],147:[1,1339],148:$V_9,171:$V$9,174:[1,1326],182:[1,1331],193:[1,1340],195:[1,1345],196:$V0a,197:$V1a,205:[1,1343],210:$V2a,215:[1,1323],217:$V3a,224:[1,1329],230:$V4a,247:[1,1336],250:[1,1337],256:$V5a,263:$V6a,434:1344,439:$V7a,440:$V8a,450:1002,453:1325,454:1328,464:1341,476:1330,481:1333},{15:1013,18:1010,352:$V_8,572:808,577:$V19},{577:$Vaa,1190:$Vu9,1199:1029,1200:1346,1201:1347,1210:1023},{87:[1,1349],315:[1,1348],1207:$Vhc},{315:[1,1351]},{324:[1,1352]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8,522:760,523:1250,604:1353,666:761,701:783,703:750,705:1272,706:753,717:1273,720:1274},{267:$VSa,273:$VTa,348:[1,1355],577:$VUa,1219:1354},{315:[1,1356]},{315:[1,1357]},{315:$VZa,1229:1358,1230:$V_a},o($V7c,[2,856]),o($Vv9,[2,860]),o($Vh9,$Vic,{586:1359,587:1360,347:$Vj9}),o($Vv9,[2,873]),o($Vjc,[2,874]),o($Vv9,[2,876],{586:855,584:1361,347:$Vw9}),o([19,166,284,298,577],$V1,{4:1362}),o($Vp9,$Vkc,{19:[1,1363]}),o($Vk9,[2,175]),o($Vk9,[2,176]),o($Vk9,[2,177]),o($Vlc,[2,173]),o($V2,[2,2668]),o($V2,[2,2670]),{15:1364,18:1010,352:$V_8,572:808,577:$V19},o($Vv9,$Vi9,{586:855,584:869,573:1365,347:$Vw9}),{87:[1,1366],315:[1,1367],1207:$Vhc},o($Vv9,[2,859]),o($V7c,$Vic,{586:1359,347:$Vw9}),o([166,284,298,577],$V1,{4:1368}),{19:[1,1370],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1369,523:764,525:1371},o($V2,[2,2045],{159:598,25:613,523:1250,522:1372,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($Vmc,$Vnc,{496:1373,498:1374,497:1375,499:1376,446:1377,188:$Vta,328:$Vua}),{19:[1,1379],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,484:1378,523:1380},o($V2,[2,2072]),o($V2,$Vnc,{446:1076,497:1375,496:1381,188:$Vta,328:$Vua}),o($V2,$Voc,{159:598,25:613,523:764,509:766,522:1382,525:1384,19:[1,1383],26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vt8}),o($V2,[2,2079],{159:598,25:613,523:1250,522:1385,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{19:[1,1387],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1386,523:764,525:1388},{19:[1,1390],259:[1,1389]},o($V2,[2,2085],{159:598,25:613,523:1250,522:1391,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,259:[1,1392],402:$Vg8}),{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,395:$VSb,442:1398,661:1394,694:1395,695:1396,1169:1393},o($V2,[2,2794]),o($Vo8,$V1b,{1171:1400,1179:1401,324:$V2b,394:$V3b}),{19:[1,1403],158:[1,1402]},{19:[1,1405],307:[1,1404],394:$V4b},o($Vrc,$V5b,{523:595,159:598,25:613,1174:1406,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($Vrc,$Vjb,{158:[1,1407]}),o([19,307,324,394,398],$Vhb,{1194:1408,1196:1409,93:$Vsc,182:[1,1411]}),o($V2,[2,2914],{394:$V6b}),o($V2,[2,2915]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1412},{19:[1,1414],324:[1,1413]},o($V2,[2,2944]),o($V2,[2,2947]),o($V2,[2,3419]),o($V2,[2,3420]),{19:[1,1416],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1415,523:764,525:1417},o($V2,[2,2776]),o($Vtc,$Vuc,{1249:1418,185:$Vvc}),o($V2,[2,3123]),o($Vwc,[2,3140]),o($Vwc,[2,3141]),{307:$Vxc,788:1420},o($Vlb,$VA9,{1255:1277,1254:1421,178:$Vdc,193:$Vec}),{19:[1,1422],307:$Vyc},o($V2,[2,3147],{788:1423,307:$Vxc}),{19:[1,1425],193:[1,1424]},{19:[1,1427],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1426,523:764,525:1428},{19:[1,1430],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1429,523:764,525:1431},o($V2,[2,3167]),o($V2,[2,3394],{19:[1,1433],339:[1,1432]}),o($V2,[2,3393],{339:[1,1434]}),o($V2,[2,3395]),o($Vzc,[2,3396]),o($VAc,[2,3397]),o($Vzc,[2,3398]),o($VAc,[2,3399]),o($Vzc,[2,768],{159:598,25:613,523:1435,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($VAc,[2,770],{159:598,25:613,523:1436,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($VBc,$VCc,{442:1437,207:$VQb,281:$VRb,395:$VSb}),o($VDc,[2,766]),o($VEc,$VFc,{579:1438,260:$VGc}),o($VHc,[2,909]),o($VHc,[2,910]),o($VHc,[2,911]),o($V2,[2,1735]),{19:[1,1441],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1440},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1442},{19:[1,1445],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1443,523:764,525:1444},{19:[1,1448],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1446,523:764,525:1447},o($VIc,[2,572]),o($VIc,[2,573]),o($VIc,[2,574]),o($VJc,[2,569]),o($VJc,[2,570]),o($VJc,[2,571]),o($VJc,[2,2583]),o($VJc,[2,2584]),o($VKc,$VLc,{479:1449,178:$VMc,222:$VNc}),o([6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161],$VOc,{493:1452,494:1453,311:$VPc}),o($Vba,$VOc,{493:1455,494:1456,311:$VPc}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:1457,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1458},o($VN9,$VQc,{181:[1,1460],187:[1,1459]}),o($Vba,$VOc,{493:1461,494:1462,311:$VPc}),{19:[1,1464],229:[1,1463]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:1465},o($VRc,[2,2596]),o($VRc,[2,2597]),o($VRc,[2,2598]),o($V2,[2,2693],{229:[1,1468],259:[1,1467]}),o($VSc,$VTc,{491:1469,492:1470,311:$VUc}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:1472,160:$Va8,161:$Vb8},{19:[1,1474],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1473,523:764,525:1475},{19:[1,1477],259:[1,1476]},o($Vba,$VTc,{491:1478,492:1479,311:$VUc}),o($Vba,$VTc,{491:1480,492:1481,311:$VUc}),{19:[1,1483],181:[1,1484],187:[1,1482]},o($Vba,$VTc,{491:1485,492:1486,311:$VUc}),o($Vba,$VTc,{491:1487,492:1488,311:$VUc}),{19:[1,1490],229:[1,1489]},o($Vba,$VTc,{491:1491,492:1492,311:$VUc}),o($V2,[2,3217],{159:598,25:613,523:1282,549:1493,450:1496,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,196:$V0a,197:$V1a,230:[1,1495],319:[1,1494],402:$Vg8}),{19:[1,1498],259:[1,1497]},{19:[1,1500],307:$VVc,312:$VWc,443:1499},o($V2,[2,3250]),{19:[1,1505],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:1504,160:$Va8,161:$Vb8,507:1503},{19:[1,1507],193:$VG9,262:$VI9,342:$VL9,447:1508,1101:$VXc,1295:1506},{19:[1,1511],107:$VYc},{19:[1,1513],148:$VZc},{19:[1,1515],319:$V_c},o($V$c,[2,585],{468:1516,403:$V0d}),{19:[1,1519],312:[1,1518]},o($V2,[2,3273],{472:1520,404:$V1d}),{230:[1,1522]},o($Vab,$V2d,{25:613,1296:1523,1297:1524,159:1525,19:[1,1526],26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8}),{19:[1,1528],147:$V3d},o($V2,[2,3300],{19:[1,1530],324:[1,1529]}),{19:[1,1533],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,201:$VH9,296:$VJ9,337:$VK9,402:$Vt8,448:1532,509:922,523:921,549:1531,550:1534},{19:[1,1536],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:922,523:921,549:1535,550:1537},{19:[1,1539],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:922,523:921,549:1538,550:1540},{247:[1,1541]},{19:[1,1543],182:[1,1542]},{19:[1,1545],145:[1,1544]},o($V2,[2,3345]),o($V2,[2,3346]),{19:[1,1547],165:[1,1546]},o($V4d,$V5d,{495:1548,312:$V6d}),{19:[1,1552],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:922,523:921,549:1550,550:1551},o($V2,[2,3373]),o($V7d,$V8d,{1298:1553,1300:1554,307:[1,1556],312:[1,1555]}),{19:[1,1557],230:$V9d},o($V2,[2,3301],{324:[1,1558]}),{19:[1,1559],259:[1,1560]},o($Vad,[2,581]),o($Vad,[2,582]),o($V$c,[2,583]),o($V$c,[2,584]),o($V$c,[2,586]),{19:[1,1562],196:$V0a,197:$V1a,450:1561},o($Vbd,[2,637]),o($Vcd,[2,605]),o($Vcd,[2,606]),o($Vdd,[2,548]),o($Vdd,[2,549]),o($Vbd,[2,577]),o($Vbd,[2,578]),o($V2,[2,2967]),{398:$V8c,572:1245,577:$V19},o($V2,[2,2966]),o($V2,[2,2968]),o($V2,[2,2962]),{398:$VN8,572:797,574:801,577:$VK5},o($Vv9,$Vs9,{572:866,398:$Vt9,577:$V19}),o($V2,[2,2969]),o($V2,[2,2973]),o($Ved,$Vfd,{598:1563,608:1564,624:1565,351:$Vgd}),o($Ved,$Vfd,{601:1567,598:1568,616:1569,608:1570,624:1571,351:$Vhd}),o($V2,$Vid,{1202:1024,1199:1025,1211:1573,1210:1574,1190:$VO8}),o($V2,[2,2998],{1210:1023,1199:1029,1200:1575,1190:$Vu9}),o([19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,260,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,402,403,404,441,762,763,794],$VB9,{578:1576,166:$VC9,284:$VD9,298:$VE9}),o($Vjd,[2,2996]),o($Vjd,[2,3003],{1201:1577,577:$Vaa}),{19:[1,1578],577:$V9a,1201:1580,1204:1579},o($V2,[2,2971],{1199:1029,1210:1574,1190:$Vu9}),o($Ved,$Vfd,{608:1564,624:1565,598:1581,351:$Vgd}),o([26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,260,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,402,403,404,762,763,794],$VB9,{578:1582,166:$VC9,284:$VD9,298:$VE9}),{577:$Vaa,1201:1583},o($V2,[2,3011]),o($Vba,$Vkd,{1214:1584,342:$Vld}),o($V2,[2,3078]),{19:[1,1586],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:1588,534:1587,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{19:[1,1682],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1680,523:764,525:1681},o($Vba,$V6e,{477:1683,165:$V7e}),o($VCa,$V6e,{477:1685,165:$V7e}),o($Vba,[2,628]),o($Vba,[2,629]),{19:[1,1687],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1686,523:764,525:1688},o($Vba,$Vfa,{480:1689,221:$Vga,228:$Vha}),o($Vba,[2,634]),o($Vba,[2,635]),o([19,188,250,328],$VOc,{493:1690,494:1692,39:$V8e,898:$V8e,172:[1,1691],311:$VPc}),{19:[1,1694],837:[1,1693]},o($V2,[2,1757]),o($V2,[2,1758]),o($V2,[2,1759]),o($V2,[2,1760]),{19:[1,1696],27:$Via,36:$Vka,41:$Vma,44:$Vna,53:$Voa,55:$Vpa,103:[1,1700],104:$Vra,339:[1,1698],762:$Vva,831:1702,841:1695,843:1132,849:1699,851:1697,859:1701,880:1071,883:1074,888:1081,906:$Vwa,908:$Vxa},{19:[1,1704],247:$V9e},o([39,898],$Vae,{19:[1,1705]}),o($V2,[2,1787]),o($V2,[2,1788]),o($V2,[2,1789]),o($V2,[2,1790]),o($V2,[2,1791]),{19:[1,1706],62:$Vbe,75:$Vce,88:[1,1708],110:$Vde,111:$Vee,114:[1,1718],121:$Vfe,212:$Vge,215:[1,1709],244:$Vhe,272:$Vie,275:$Vje,335:$Vke,460:1723,465:1712,536:1711,538:1719,541:1715,543:$Vle,545:1720,857:[1,1707],875:1710,878:1714,907:$Vme},o($Vne,[2,1950]),o($Vne,[2,1951]),o($V0b,[2,1964]),o($V0b,[2,1965]),o($V2,[2,1800]),{19:[1,1732],291:[1,1731]},o($V2,[2,1802]),{19:[1,1734],91:$Voe},o($V2,$Vnc,{497:1375,499:1376,446:1377,496:1735,498:1737,19:[1,1736],188:$Vta,328:$Vua}),{19:[1,1739],188:$Vta,328:$Vua,446:1377,497:1738,499:1740},{19:[1,1743],114:$Vpe,117:[1,1744],202:$Vqe},o($Vba,$Vre,{866:1745,215:$Vse}),o([19,188,250,328,441],$VTc,{159:598,25:613,491:1747,492:1750,519:1751,523:1752,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,172:[1,1748],215:[1,1749],311:$VUc,402:$Vg8}),o($V2,[2,1871]),o($V2,[2,1872]),{403:$V0d,404:$V1d,468:1754,472:1755,474:1753},{19:[1,1757],83:[1,1759],84:$Vte,884:1756,893:1758},o($Vba,$Vue,{885:1761,860:$Vve}),{398:[1,1763]},o($Vwe,[2,1952]),o($Vwe,[2,1953]),o($V2,[2,1814]),o($V2,[2,1815]),o($V2,[2,1876]),{19:[1,1765],291:[1,1764]},{19:[1,1767],328:[1,1769],899:1766,900:1768},o($Vxe,[2,1973]),o($Vxe,[2,1974]),{39:$Vye,896:1770,898:$Vze},o($VAe,[2,1966]),o($VAe,[2,1967]),o($VBe,[2,1946]),o($VBe,[2,1947]),o($VCe,[2,567]),o($VCe,[2,568]),{19:[1,1774],121:$VDe},{15:1775,18:1014,19:[1,1776],23:1777,352:$V26,572:382,574:412,576:1015,577:$VK5},{19:[1,1779],837:[1,1778]},o($V2,[2,2020]),o($VEe,[2,552]),o($VEe,[2,553]),{19:[1,1781],193:[1,1780]},o($V2,[2,2030]),o($V2,[2,2034]),o($V2,[2,2035]),{19:[1,1783],296:[1,1782]},o($V2,[2,2037]),o($Vba,$VTc,{491:1784,492:1785,311:$VUc}),o($V2,[2,2767]),o($Vba,$VFe,{1205:1786,193:$VGe}),o($Vba,$VFe,{1205:1788,185:$VHe,193:$VGe}),o($VIe,[2,2980]),{384:$VJe,537:1791,539:1790},o([188,328],$VOc,{493:1793,39:$V8e,898:$V8e,311:$VKe}),{837:[1,1795]},o($V2,[2,1766]),o($V2,[2,1767]),o($V2,[2,1768]),o($V2,[2,1769]),{27:$Via,36:$Vka,41:$VHa,44:$Vna,53:$Voa,55:$Vpa,103:$VLe,104:$Vra,339:$VMe,762:$Vva,831:1702,841:1796,843:1132,851:1131,859:1798,880:1071,883:1127,906:$Vwa,908:$Vxa},{291:[1,1800]},{91:$Voe},o($V2,$Vnc,{446:1076,497:1375,496:1735,188:$Vta,328:$Vua}),{188:$Vta,328:$Vua,446:1076,497:1738},{114:$Vpe,202:$Vqe},{62:$Vbe,75:$Vce,88:[1,1802],110:$VNe,111:$Vee,121:$Vfe,212:$VOe,215:[1,1803],244:$Vhe,272:$Vie,275:$Vje,335:$VPe,460:1808,465:1712,536:1711,541:1806,543:$Vle,857:[1,1801],875:1804,878:1714,907:$Vme},o($Vfc,$Vre,{866:1810,215:$Vse}),o($VQe,$VTc,{491:1811,172:[1,1812],215:[1,1813],311:$VRe}),{403:$V0d,404:$V1d,468:1754,472:1755,474:1815},{83:[1,1816],84:$Vte,884:1756},o($Vfc,$Vue,{885:1817,860:$Vve}),{291:[1,1818]},{328:[1,1820],899:1819},{39:$Vye,896:1821,898:$Vze},o($Vwe,$Vae),{572:1822,577:$V19},{398:$VSe,1220:1823,1231:1824},o($VVa,[2,3065]),o($VVa,[2,3066]),{19:[1,1826],572:1828,574:1827,577:$VK5},{398:$VTe,1220:1830,1222:1829,1231:1824,1232:1831},o($V2,[2,3084]),{19:[1,1833],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:1835,523:764,525:1834},o($VXa,[2,3048]),o($Vba,$VUe,{1228:1836,262:$VVe}),o($VXa,[2,3054]),o($Vba,$VUe,{1228:1838,262:$VVe}),o($VWe,[2,3060]),o($VWe,[2,3061]),o($V2,$V3,{9:5,11:7,13:9,14:10,15:11,16:12,17:353,18:354,20:355,21:356,22:357,23:358,405:360,406:361,407:362,408:363,409:364,410:365,411:366,412:367,413:368,414:369,415:370,416:371,417:372,418:373,419:374,1125:375,1126:376,1127:377,1128:378,1129:379,1130:380,1131:381,572:382,420:387,421:388,422:389,423:390,424:391,425:392,426:393,427:394,428:395,429:396,430:397,431:398,432:399,433:400,1132:401,1133:402,1134:403,1135:404,1136:405,576:406,1139:407,1140:408,1141:409,1142:410,1143:411,574:412,564:413,565:414,812:415,813:416,814:417,815:418,816:419,817:420,818:421,934:426,935:427,936:428,937:429,938:430,939:431,940:432,1144:433,1145:434,1146:435,1147:436,1148:437,1149:438,1150:439,1151:440,1152:441,1257:445,1258:446,1259:447,1260:448,1261:449,1262:450,1263:451,1264:452,1265:453,1266:454,1267:455,1268:456,1269:457,1270:458,1271:459,1272:460,1273:461,1274:462,1275:463,1276:464,1313:465,1137:467,1197:468,1138:469,1198:470,1247:471,566:476,567:477,819:478,820:479,821:480,822:481,823:482,824:483,825:484,809:486,941:487,942:488,943:489,944:490,945:491,437:492,1153:493,1154:494,1155:495,1156:496,1157:497,1158:498,1159:499,1160:500,1277:502,1279:503,1280:504,1281:505,1282:506,1283:507,1284:508,1285:509,1286:510,1287:511,1288:512,1289:513,1290:514,1291:515,1292:516,1293:517,1294:518,1202:519,1199:520,597:521,599:522,1217:524,1235:525,1233:526,568:527,830:529,919:530,1062:534,1063:535,1064:536,1065:537,1161:538,1162:539,1216:544,842:547,920:548,1066:549,1067:550,1068:551,1069:552,1163:556,1164:557,1221:560,1218:561,1225:565,1226:566,1223:567,1224:568,5:1839,12:1840,2:$V4,19:$V5,24:$V6,26:$V7,28:$V8,30:$V9,32:$Va,33:$Vb,34:$Vc,37:$Vd,38:$Ve,39:$Vf,40:$Vg,42:$Vh,43:$Vi,45:$Vj,46:$Vk,47:$Vl,48:$Vm,49:$Vn,50:$Vo,51:$Vp,52:$Vq,54:$Vr,56:$Vs,58:$Vt,59:$Vu,60:$Vv,61:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VM,80:$VN,81:$VO,82:$VP,85:$VQ,86:$VR,87:$VS,88:$VT,89:$VU,90:$VV,91:$VW,92:$VX,93:$VY,95:$VZ,96:$V_,97:$V$,98:$V01,99:$V11,100:$V21,101:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,113:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1,121:$Vj1,122:$Vk1,123:$Vl1,124:$Vm1,125:$Vn1,126:$Vo1,128:$Vp1,130:$Vq1,131:$Vr1,132:$Vs1,133:$Vt1,134:$Vu1,135:$Vv1,136:$Vw1,137:$Vx1,138:$Vy1,139:$Vz1,140:$VA1,141:$VB1,142:$VC1,143:$VD1,144:$VE1,145:$VF1,146:$VG1,147:$VH1,148:$VI1,149:$VJ1,150:$VK1,156:$VL1,157:$VM1,158:$VN1,160:$VO1,161:$VP1,163:$VQ1,164:$VR1,165:$VS1,166:$VT1,167:$VU1,168:$VV1,169:$VW1,170:$VX1,171:$VY1,172:$VZ1,173:$V_1,174:$V$1,175:$V02,176:$V12,177:$V22,178:$V32,179:$V42,180:$V52,181:$V62,182:$V72,183:$V82,184:$V92,185:$Va2,186:$Vb2,187:$Vc2,188:$Vd2,189:$Ve2,190:$Vf2,191:$Vg2,192:$Vh2,193:$Vi2,194:$Vj2,195:$Vk2,196:$Vl2,197:$Vm2,198:$Vn2,199:$Vo2,200:$Vp2,201:$Vq2,202:$Vr2,203:$Vs2,204:$Vt2,205:$Vu2,206:$Vv2,207:$Vw2,208:$Vx2,209:$Vy2,210:$Vz2,211:$VA2,212:$VB2,213:$VC2,214:$VD2,215:$VE2,216:$VF2,217:$VG2,218:$VH2,219:$VI2,220:$VJ2,221:$VK2,222:$VL2,223:$VM2,224:$VN2,225:$VO2,226:$VP2,227:$VQ2,228:$VR2,229:$VS2,230:$VT2,231:$VU2,232:$VV2,233:$VW2,234:$VX2,235:$VY2,236:$VZ2,237:$V_2,238:$V$2,239:$V03,240:$V13,241:$V23,242:$V33,243:$V43,244:$V53,245:$V63,246:$V73,247:$V83,248:$V93,249:$Va3,250:$Vb3,251:$Vc3,252:$Vd3,253:$Ve3,254:$Vf3,255:$Vg3,256:$Vh3,257:$Vi3,258:$Vj3,259:$Vk3,260:$Vl3,261:$Vm3,262:$Vn3,263:$Vo3,264:$Vp3,265:$Vq3,266:$Vr3,267:$Vs3,268:$Vt3,269:$Vu3,270:$Vv3,271:$Vw3,272:$Vx3,273:$Vy3,274:$Vz3,275:$VA3,276:$VB3,277:$VC3,278:$VD3,279:$VE3,280:$VF3,281:$VG3,282:$VH3,283:$VI3,284:$VJ3,285:$VK3,286:$VL3,287:$VM3,288:$VN3,289:$VO3,290:$VP3,291:$VQ3,292:$VR3,293:$VS3,294:$VT3,295:$VU3,296:$VV3,297:$VW3,298:$VX3,299:$VY3,300:$VZ3,301:$V_3,302:$V$3,303:$V04,304:$V14,305:$V24,306:$V34,307:$V44,308:$V54,309:$V64,310:$V74,311:$V84,312:$V94,313:$Va4,314:$Vb4,315:$Vc4,316:$Vd4,317:$Ve4,318:$Vf4,319:$Vg4,320:$Vh4,321:$Vi4,322:$Vj4,323:$Vk4,324:$Vl4,325:$Vm4,326:$Vn4,327:$Vo4,328:$Vp4,329:$Vq4,330:$Vr4,331:$Vs4,332:$Vt4,333:$Vu4,334:$Vv4,335:$Vw4,336:$Vx4,337:$Vy4,338:$Vz4,339:$VA4,340:$VB4,341:$VC4,342:$VD4,343:$VE4,344:$VF4,345:$VG4,346:$VH4,347:$VI4,348:$VJ4,349:$VK4,350:$VL4,351:$VM4,352:$VN4,353:$VO4,354:$VP4,355:$VQ4,356:$VR4,357:$VS4,358:$VT4,359:$VU4,360:$VV4,361:$VW4,362:$VX4,363:$VY4,364:$VZ4,365:$V_4,366:$V$4,367:$V05,368:$V15,369:$V25,370:$V35,371:$V45,372:$V55,373:$V65,374:$V75,375:$V85,376:$V95,377:$Va5,378:$Vb5,379:$Vc5,380:$Vd5,381:$Ve5,382:$Vf5,383:$Vg5,384:$Vh5,385:$Vi5,386:$Vj5,387:$Vk5,388:$Vl5,389:$Vm5,390:$Vn5,391:$Vo5,392:$Vp5,393:$Vq5,394:$Vr5,395:$Vs5,396:$Vt5,397:$Vu5,398:$Vv5,399:$Vw5,400:$Vx5,401:$Vy5,402:$Vz5,403:$VA5,404:$VB5,438:$VC5,439:$VD5,440:$VE5,441:$VF5,452:$VG5,569:$VH5,570:$VI5,571:$VJ5,577:$VK5,763:$VL5,826:$VM5,868:$VN5,930:$VO5,931:$VP5,933:$VQ5,1166:$VR5,1190:$VS5,1191:$VT5,1192:$VU5,1193:$VV5,1195:$VW5,1213:$VX5,1227:$VY5,1252:$VZ5,1253:$V_5,1278:$V$5,1314:$V06}),o($V2,$V3,{9:5,11:7,13:9,14:10,15:11,405:360,406:361,407:362,408:363,409:364,410:365,411:366,412:367,413:368,414:369,415:370,416:371,417:372,418:373,419:374,1125:375,1126:376,1127:377,1128:378,1129:379,1130:380,1131:381,564:413,565:414,812:415,813:416,814:417,815:418,816:419,817:420,818:421,934:426,935:427,936:428,937:429,938:430,939:431,940:432,1144:433,1145:434,1146:435,1147:436,1148:437,1149:438,1150:439,1151:440,1152:441,1257:445,1258:446,1259:447,1260:448,1261:449,1262:450,1263:451,1264:452,1265:453,1266:454,1267:455,1268:456,1269:457,1270:458,1271:459,1272:460,1273:461,1274:462,1275:463,1276:464,1137:467,1197:468,1138:469,1198:470,1062:534,1063:535,1064:536,1065:537,1161:538,1162:539,1216:544,1223:567,1224:568,572:808,18:809,1313:820,1247:823,568:829,830:832,919:833,437:837,1277:840,1199:841,597:842,1233:845,1218:847,5:1841,16:1842,2:$V4,26:$VP8,28:$V8,30:$VQ8,32:$Va,33:$Vb,34:$Vc,37:$Vd,38:$Ve,39:$Vf,40:$Vg,42:$Vh,43:$Vi,45:$Vj,46:$Vk,47:$Vl,48:$Vm,49:$Vn,50:$Vo,51:$Vp,52:$Vq,54:$Vr,56:$Vs,58:$VXe,59:$VR8,60:$Vv,61:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VS8,80:$VT8,81:$VO,82:$VP,85:$VQ,86:$VR,87:$VS,88:$VT,89:$VU,90:$VV,91:$VW,92:$VX,93:$VY,95:$VZ,96:$V_,97:$VU8,98:$V01,99:$V11,100:$V21,101:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,113:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1,121:$Vj1,122:$Vk1,123:$Vl1,124:$Vm1,125:$Vn1,126:$Vo1,128:$Vp1,130:$Vq1,131:$Vr1,132:$Vs1,133:$Vt1,134:$Vu1,135:$Vv1,136:$Vw1,137:$Vx1,138:$Vy1,139:$Vz1,140:$VA1,141:$VB1,142:$VC1,143:$VD1,144:$VE1,145:$VYe,146:$VG1,147:$VH1,148:$VI1,149:$VJ1,150:$VK1,156:$VL1,157:$VM1,158:$VN1,160:$VO1,161:$VP1,163:$VZe,164:$VR1,165:$VS1,166:$VT1,167:$VU1,168:$VV1,169:$VW1,170:$VX1,171:$VY1,172:$VZ1,173:$V_1,174:$V$1,175:$V02,176:$V12,177:$V22,178:$V32,179:$V42,180:$V52,181:$V62,182:$V_e,183:$V82,184:$V92,185:$Va2,186:$Vb2,187:$Vc2,188:$Vd2,189:$Ve2,190:$Vf2,191:$Vg2,192:$Vh2,193:$Vi2,194:$Vj2,195:$Vk2,196:$Vl2,197:$Vm2,198:$Vn2,199:$Vo2,200:$Vp2,201:$Vq2,202:$Vr2,203:$Vs2,204:$Vt2,205:$Vu2,206:$Vv2,207:$Vw2,208:$Vx2,209:$Vy2,210:$Vz2,211:$VA2,212:$VB2,213:$VC2,214:$VD2,215:$VE2,216:$VF2,217:$VG2,218:$V$e,219:$VI2,220:$VJ2,221:$VK2,222:$VL2,223:$VM2,224:$VN2,225:$VO2,226:$VP2,227:$VQ2,228:$VR2,229:$VS2,230:$VT2,231:$VU2,232:$VV2,233:$VW2,234:$VX2,235:$VY2,236:$VZ2,237:$V_2,238:$V$2,239:$V03,240:$V13,241:$V23,242:$V33,243:$V43,244:$V53,245:$V63,246:$V73,247:$V83,248:$V93,249:$Va3,250:$Vb3,251:$Vc3,252:$Vd3,253:$Ve3,254:$Vf3,255:$Vg3,256:$Vh3,257:$Vi3,258:$Vj3,259:$Vk3,260:$Vl3,261:$Vm3,262:$Vn3,263:$Vo3,264:$Vp3,265:$Vq3,266:$Vr3,267:$Vs3,268:$Vt3,269:$Vu3,270:$Vv3,271:$Vw3,272:$Vx3,273:$Vy3,274:$Vz3,275:$VA3,276:$VB3,277:$VC3,278:$VD3,279:$VE3,280:$VF3,281:$VG3,282:$VH3,283:$VI3,284:$VJ3,285:$VK3,286:$VL3,287:$VM3,288:$VN3,289:$VO3,290:$VP3,291:$VQ3,292:$VR3,293:$VS3,294:$VT3,295:$VU3,296:$VV3,297:$VW3,298:$VX3,299:$VY3,300:$VZ3,301:$V_3,302:$V$3,303:$V04,304:$V14,305:$V24,306:$V34,307:$V0f,308:$V54,309:$V64,310:$V74,311:$V84,312:$V94,313:$Va4,314:$Vb4,315:$Vc4,316:$Vd4,317:$Ve4,318:$Vf4,319:$Vg4,320:$Vh4,321:$Vi4,322:$Vj4,323:$Vk4,324:$Vl4,325:$Vm4,326:$Vn4,327:$Vo4,328:$Vp4,329:$Vq4,330:$Vr4,331:$Vs4,332:$Vt4,333:$Vu4,334:$Vv4,335:$Vw4,336:$Vx4,337:$Vy4,338:$Vz4,339:$V1f,340:$VB4,341:$VC4,342:$VD4,343:$VE4,344:$VF4,345:$VG4,346:$VH4,347:$VI4,348:$VJ4,349:$VK4,350:$VL4,351:$VM4,352:$V2f,353:$VO4,354:$VP4,355:$VQ4,356:$VR4,357:$VS4,358:$VT4,359:$VU4,360:$VV4,361:$VW4,362:$VX4,363:$VY4,364:$VZ4,365:$V_4,366:$V$4,367:$V05,368:$V15,369:$V25,370:$V35,371:$V45,372:$V55,373:$V65,374:$V75,375:$V85,376:$V95,377:$Va5,378:$Vb5,379:$Vc5,380:$Vd5,381:$Ve5,382:$Vf5,383:$Vg5,384:$Vh5,385:$Vi5,386:$Vj5,387:$Vk5,388:$Vl5,389:$Vm5,390:$Vn5,391:$Vo5,392:$Vp5,393:$Vq5,394:$Vr5,395:$Vs5,396:$Vt5,397:$Vu5,398:$Vv5,399:$Vw5,400:$Vx5,401:$Vy5,402:$Vz5,403:$VA5,404:$VB5,438:$VC5,439:$VD5,440:$VE5,452:$V$8,569:$V09,570:$VI5,571:$VJ5,577:$V19,763:$V29,826:$V39,868:$V49,930:$V59,931:$V69,933:$V79,1166:$V89,1190:$V99,1191:$Va9,1192:$Vb9,1193:$Vc9,1195:$Vd9,1213:$Ve9,1227:$Vf9,1252:$VZ5,1253:$Vg9,1278:$V$5,1314:$V06}),{19:[1,1852],837:[1,1851]},o($V2,[2,2805]),{19:[1,1855],166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,439:$Vh8,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1187:1853,1188:1854,1189:597,1190:$Vm8,1191:$Vn8},{19:[1,1857],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,193:[1,1860],296:[1,1859],402:$Vt8,509:766,522:1861,523:764,525:1862,1185:1856,1186:1858},{19:[1,1864],106:$V3f,132:$V4f,309:$V5f,828:1866,1172:1863,1180:1865},o($V2,[2,2811]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1870},{394:$V4b,837:[1,1871]},{166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,439:$Vh8,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:1872,1187:594,1189:1257,1190:$Vm8,1191:$Vn8},o($V2,[2,2804]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,193:[1,1874],296:[1,1873],402:$Vg8,522:1861,523:1250,1185:1856},{166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,439:$Vh8,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:1875,1187:594,1189:1257,1190:$Vm8,1191:$Vn8},o($V8b,[2,2860]),o([6,10,324,394],[2,2861]),o([6,10,19,188,264,267,273,307,324,328,348,352,394,577,837,1190],[2,695]),{17:1877,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,516:1878,517:1876,518:1880,519:1879,523:1646},{402:[1,1881]},o($Vdb,[2,763]),{19:[1,1883],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$Vs8,402:$Vt8,509:766,522:760,523:764,525:762,666:761,672:763,701:1882,702:1884,703:750,704:751,705:752,706:753,707:754,708:755,717:756,720:757,721:758,724:759},o($V2,[2,2782]),o($V2,[2,2786],{159:598,25:613,703:750,706:753,522:760,666:761,523:1250,705:1272,717:1273,720:1274,701:1885,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8}),o($Vob,$V6f,{714:1183,710:1886,713:1887,266:$Vqb,294:$Vrb,308:$Vsb,313:$Vtb,317:$Vub,318:$Vvb,326:$Vwb,333:$Vxb,338:$Vyb}),o($Vnb,[2,1298]),o($V7f,$V8f,{711:1888,273:$V9f,279:$Vaf}),o($Vnb,[2,1312],{710:1185,602:1891,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),o($Vbf,[2,1316]),{19:[1,1893],317:$Vcf},{19:[1,1895],317:$Vdf},{19:[1,1897],317:$Vef},{19:[1,1899],317:$Vff},{19:[1,1901],317:$Vgf},{19:[1,1904],317:$Vhf,326:[1,1903]},{19:[1,1910],266:[1,1906],313:[1,1907],317:$Vif,326:[1,1908],338:[1,1909]},{19:[1,1916],266:[1,1912],313:[1,1913],317:$Vjf,326:[1,1914],338:[1,1915]},o([2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,170,176,184,206,231,242,266,294,307,308,309,310,313,317,318,320,325,326,333,338,347,351,394,398,399,402,445,577,656,663,1190],$V8f,{711:1917,273:$V9f,279:$Vaf}),o($Vnb,[2,1299],{710:1918,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),o($Vkf,$V8f,{711:1919,273:$V9f,279:$Vaf}),{317:$Vcf},{317:$Vdf},{317:$Vef},{317:$Vff},{317:$Vgf},{317:$Vhf,326:[1,1920]},{266:[1,1921],313:[1,1922],317:$Vif,326:[1,1923],338:[1,1924]},{266:[1,1925],313:[1,1926],317:$Vjf,326:[1,1927],338:[1,1928]},o($VIb,$VJb,{159:598,25:613,523:1199,436:1205,698:1929,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,286:$VAa,402:$Vg8}),o($VMb,$VJb,{159:598,25:613,523:1199,436:1205,698:1930,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,286:$VAa,402:$Vg8}),{398:[1,1931]},o($Vlf,$Vmf,{719:1932,264:$Vnf}),o($Vof,$Vmf,{719:1934,264:$Vnf}),o($Vpf,[2,1414]),{19:[1,1937],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:1936,523:1935},o($VMb,[2,1416]),o($VMb,$VJb,{159:598,25:613,523:1199,436:1205,698:1938,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,286:$VAa,402:$Vg8}),{398:[1,1939]},o($Vof,$Vmf,{719:1940,264:$Vnf}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1935},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,441:$Vqf,509:1944,511:1942,523:1941},o($Vrf,[2,559]),o($Vrf,[2,560]),o($Vrf,[2,561]),{399:[1,1945]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,167:$Vza,286:$VAa,399:$VJb,402:$Vg8,436:1205,523:1199,698:1946},{2:$Vsf,399:$Vtf,502:1947},{2:$Vsf,399:$Vtf,502:1950},{15:1965,18:1014,23:1966,352:$V26,572:382,574:412,576:1015,577:$VK5,730:1951,731:1952,732:1953,733:1954,734:1955,735:1956,736:1957,737:1958,738:1959,739:1960,740:1961,741:1962,742:1963,743:1964},o($VTb,$VUb,{666:761,595:1210,720:1211,728:1967,398:$VVb}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1968},o([2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,165,167,170,176,183,184,188,194,203,206,207,209,212,231,233,239,242,244,246,258,264,265,266,267,269,273,274,275,281,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,319,320,322,324,325,326,328,330,332,333,334,335,338,339,343,347,348,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,403,445,452,543,571,577,656,663,668,762,826,837,868,906,908,910,975,1190],[2,691]),{19:[1,1970],837:[1,1969]},{19:[1,1972],149:$Vuf,150:$Vvf,262:$Vwf,296:$Vxf,1177:1971,1184:1973},o($V2,[2,2824]),o($VXb,[2,2879]),o($V2,[2,2880]),o([6,10,19,170,176,206,231,242,309,310,320,325,347,351,399,445,577,656,663,957,1190],$Vyf,{744:1978,745:1979,184:[1,1980]}),o($V_b,[2,922]),{17:1983,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$Vs8,402:$Vt8,441:$VF5,509:766,522:760,523:764,525:762,666:761,672:763,701:1981,702:1982,703:750,704:751,705:752,706:753,707:754,708:755,717:756,720:757,721:758,724:759},o($V_b,[2,921],{744:1978,184:$Vzf}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8,522:760,523:1250,666:761,701:1985,703:750,705:1272,706:753,717:1273,720:1274},o($V2,[2,3191]),o($V2,[2,3192]),o($V2,[2,3193]),o($V2,[2,3194]),{2:[1,1986],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:1988,160:$Va8,161:$Vb8,207:$VQb,281:$VRb,304:$VAf,323:$VBf,346:$VCf,382:$Vpc,383:$Vqc,391:$VDf,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1754,472:1755,474:1990,547:1989,661:1994,689:$VEf,694:1395,695:1396,808:1987},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:1997,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:794,593:1998,594:1999},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1285,591:2000,593:792},{398:[1,2001]},o($VFf,[2,905]),o($V7c,[2,857]),o($Vv9,[2,863]),{399:[1,2002]},{399:[1,2003]},o($Vv9,[2,862]),o($Vba,$VFe,{1205:2004,185:$VHe,193:$VGe}),o($Vba,$VFe,{1205:2005,193:$VGe}),o($V7c,$Vi9,{586:855,584:869,573:1238,347:$Vw9}),{15:1240,18:1010,352:$V_8,572:808,577:$V19},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2006,523:1250},o($V2,$Vnc,{446:1076,497:1375,496:2007,188:$Vta,328:$Vua}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,484:1378,523:1380},o($VGf,$VPb,{442:2008,207:$VQb,281:$VRb,395:$VSb}),o($V2,$Voc,{159:598,25:613,523:1250,522:1382,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2009,523:1250},{259:[1,2010]},{324:$V7b,394:$VHf,837:$V1b,1171:2011},{394:$V4b,837:[1,2013]},o([394,837],$V5b,{523:595,159:598,25:613,1174:2014,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o([6,10,307,324,394,837],$Vbb,{512:1161,513:1163,398:$VIf}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2016},{324:[1,2017]},{324:$Vbb,398:$VIf,512:1221,513:1163},{307:$V1b,324:$V7b,394:$VHf,1171:2018},{158:[1,2019]},{307:[1,2020],394:$V4b},o($VJf,$V5b,{523:595,159:598,25:613,1174:2021,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($VJf,$Vjb,{158:[1,2022]}),o([307,324,394,398],$Vhb,{1194:2023,93:$Vsc,182:[1,2024]}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2025},{324:[1,2026]},o($V1c,$V5b,{25:613,159:1228,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,166:$V2c,198:$V3c}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2027,523:1250},{307:[1,2028]},o($VKf,$Vpb,{710:1185,602:2029,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),o([2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,206,231,242,264,265,266,286,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,402,445,577,656,663,957,1190],$VHb,{718:2030,203:$VLb}),o($VLf,$VJb,{159:598,25:613,698:1197,523:1199,436:1205,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,286:$VAa,402:$Vg8}),o([66,238],$Vuc,{1249:2031,185:$Vvc}),{307:$Vxc,788:2032},o($Vlb,$Vyc),{193:[1,2033]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2034,523:1250},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2035,523:1250},{339:[1,2036]},o([6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,165,188,328,339,398,402],$VCc,{442:2037,207:$VQb,281:$VRb,395:$VSb}),o([2,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,402,403,404,762,763,794,806],$VFc,{579:2038,260:$VGc}),o([307,398,577,1190,1192,1227],$V4c,{394:$VMf}),{167:$Vza,286:$VAa,436:2040},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2041,523:1250},o($Vfc,$V6e,{477:2042,165:$V7e}),o($VRc,$V6e,{477:2043,165:$V7e}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:1686,523:1250},o($Vfc,$Vfa,{480:2044,221:$Vga,228:$Vha}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2045},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2046},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:1443,523:1250},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:1446,523:1250},o($VQe,$VOc,{493:2047,39:$V8e,898:$V8e,172:[1,2048],311:$VKe}),{837:[1,2049]},{27:$Via,36:$Vka,41:$VHa,44:$Vna,53:$Voa,55:$Vpa,103:$VLe,104:$Vra,339:$VMe,762:$Vva,831:1702,841:1695,843:1132,851:1131,859:1798,880:1071,883:1127,906:$Vwa,908:$Vxa},{247:$V9e},{121:$VDe},{15:1775,18:1010,352:$V_8,572:808,577:$V19},{837:[1,2050]},{193:[1,2051]},{296:[1,2052]},o([6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161],$VOc,{493:2053,311:$VKe}),o([193,262,342],$VLc,{479:2054,178:$VMc,222:$VNc}),o($Vfc,$VOc,{493:2055,311:$VKe}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2056},o($Vgc,$VQc,{181:[1,2058],187:[1,2057]}),o($Vfc,$VOc,{493:2059,311:$VKe}),{229:[1,2060]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:2061},o($Vfc,$VTc,{491:2062,311:$VRe}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:1473,523:1250},{259:[1,2063]},o($Vfc,$VTc,{491:2064,311:$VRe}),o($Vfc,$VTc,{491:2065,311:$VRe}),{181:[1,2067],187:[1,2066]},o($Vfc,$VTc,{491:2068,311:$VRe}),o($Vfc,$VTc,{491:2069,311:$VRe}),{229:[1,2070]},o($Vfc,$VTc,{491:2071,311:$VRe}),o($Vfc,$VTc,{491:2072,311:$VRe}),{259:[1,2073]},{307:$VVc,312:$VWc,443:2074},{193:$VG9,262:$VI9,342:$VL9,447:1508,1101:$VXc,1295:2075},{107:$VYc},{148:$VZc},{319:$V_c},{312:[1,2076]},{230:[1,2077]},o($Vab,$V2d,{25:613,1296:2078,159:2079,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8}),{147:$V3d},{324:[1,2080]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,201:$VH9,296:$VJ9,337:$VK9,402:$Vg8,448:2082,523:1282,549:2081},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:2083},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:1538},{247:[1,2084]},{182:[1,2085]},{145:[1,2086]},{165:[1,2087]},o([6,10,319,403],$V5d,{495:2088,312:$V6d}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:1550},o($VNf,$V8d,{1298:2089,307:[1,2091],312:[1,2090]}),{230:$V9d},{196:$V0a,197:$V1a,450:1561},o($V2,$Vid,{1199:1029,1210:1574,1190:$Vu9}),o($Ved,$Vfd,{608:1564,624:1565,598:1568,351:$Vgd}),o($Vfc,$VFe,{1205:2092,193:$VGe}),o($Vfc,$VFe,{1205:2093,185:$VOf,193:$VGe}),{384:$VPf,537:2095},o($Vfc,$Vkd,{1214:2097,342:$Vld}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2098,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2g,$VZb,{605:2120,394:$V3g}),{572:2122,577:$V19},{398:$VSe,1220:2123,1231:1824},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2124,523:1250},o($Vfc,$VUe,{1228:2125,262:$VVe}),o($Vfc,$VUe,{1228:2126,262:$VVe}),o($Vjc,[2,875]),o($Vv9,[2,877],{586:855,584:2127,347:$Vw9}),o($Vv9,[2,878],{586:1359,347:$Vw9}),{19:[1,2129],166:$VC9,284:$VD9,298:$VE9,577:$VB9,578:2128},o($Vlc,[2,172]),{399:[1,2130]},o($Vv9,[2,866]),o($Vfc,$VFe,{1205:2131,185:$VOf,193:$VGe}),o($Vfc,$VFe,{1205:2132,193:$VGe}),{166:$VC9,284:$VD9,298:$VE9,577:$VB9,578:2133},o([19,43],$Vnc,{497:1375,499:1376,446:1377,496:2134,498:2135,188:$Vta,328:$Vua}),o($V2,[2,2046]),o($V4g,$Vnc,{446:1076,497:1375,496:2136,188:$Vta,328:$Vua}),o($V4g,$Vnc,{446:1076,497:1375,496:2137,188:$Vta,328:$Vua}),o($V2,$V5g,{19:[1,2138]}),o($V2,[2,2075]),o([6,10,19,43,96,267,273,307,311,348,352,398,577,837,1190],[2,666]),o([6,10,43,267,273,311,348,352,398,577,1190],[2,667]),{398:[1,2139]},o($V2,[2,2071]),o($V2,[2,2076]),o($V4d,[2,731]),o($V2,[2,2073]),o($V2,[2,2078]),o($V2,[2,2080]),o($V2,[2,2081]),o($V2,[2,2082]),o([6,10,19,264],$Vbb,{513:1163,512:2140,515:2141,398:$Vcb}),o($V2,[2,2086]),o($V2,[2,2087]),{19:[1,2143],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2142,523:764,525:2144},o($V2,[2,2093],{159:598,25:613,523:1250,522:2145,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,$Vnc,{446:1076,497:1375,496:2146,188:$Vta,328:$Vua}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2147,523:1250},o($V2,[2,2793],{394:[1,2148]}),o($V6g,[2,2795]),o($V7g,[2,1246]),o($V7g,[2,1247]),o($V7g,$V8g,{442:2149,207:$VQb,281:$VRb,395:$VSb}),{382:$V9g,383:[1,2151]},{382:[1,2152]},{19:[1,2154],307:[1,2153]},o($V2,[2,2916]),{19:[1,2156],179:[1,2155]},o($V2,[2,2920]),{19:[1,2158],106:$V3f,132:$V4f,309:$V5f,828:1866,1172:2157,1180:2159},o($V2,[2,2928]),{19:[1,2161],307:[1,2160],394:$V4b},{19:[1,2163],179:[1,2162]},{19:[1,2165],307:$Vag},o($V2,[2,2942]),o($Vo8,[2,2953]),{19:[1,2167],158:$Vbg},{19:[1,2169],307:[1,2168]},{19:[1,2171],149:$Vuf,150:$Vvf,262:$Vwf,296:$Vxf,1177:2170,1184:2172},o($V2,[2,2948]),o($V2,$Vfd,{624:1565,608:2173,616:2175,19:[1,2174],351:$Vhd}),o($V2,[2,2777]),o($V2,$Vfd,{624:1565,608:2176,351:$Vgd}),{19:[1,2178],66:$Vcg,238:$Vdg,1250:2177},o($Vtc,[2,3137]),{307:[1,2181]},o($V2,[2,3145],{788:2182,307:$Vxc}),o($V2,[2,3146],{788:2183,307:$Vxc}),{307:[1,2184]},{19:[1,2186],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2185,523:764,525:2187},o($Vlb,[2,3158]),o($Vo8,$Vnc,{497:1375,446:1377,496:2188,499:2189,188:$Vta,328:$Vua}),o($Vlb,[2,3162]),o($Vlb,$Vnc,{446:1076,497:1375,496:2190,188:$Vta,328:$Vua}),o($V0b,$Vnc,{497:1375,446:1377,496:2191,499:2192,188:$Vta,328:$Vua}),o($V2,[2,3168]),o($V2,[2,3169],{446:1076,497:1375,496:2193,188:$Vta,328:$Vua,837:$Vnc}),{19:$Veg,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:2200,554:2201,1245:2194,1246:2195,1308:2196,1309:2197,1310:2198},o($V2,[2,3392]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:2200,554:2201,1245:2202,1308:2196,1310:2203},o($Vzc,[2,769]),o($VAc,[2,771]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,441:$Vqf,509:1944,511:2205,523:2204},{2:$Vfg,17:2219,19:[1,2209],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,392:$Vgg,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2214,534:2218,554:1610,556:1609,580:2206,582:2207,588:2208,590:2210,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,697:2211,699:2213,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649,805:2212,806:$Vhg},o($VEc,[2,895]),{19:[1,2221],339:[1,2220]},o($V2,[2,1739]),{19:[1,2223],324:[1,2222]},o([19,27,31,36,37,41,44,53,55,57,102,103,104,114,127,129,146,188,322,328,339,762,826,868,906,908,910],[2,1943]),o($Vig,[2,1944]),o($Vig,[2,1945]),o([19,167,286,339,910],[2,2026]),o($V2,[2,2027]),o($V2,[2,2028]),{19:[1,2224],193:$VG9,262:$VI9,342:$VL9,447:2225},o($VKc,[2,631]),o($VKc,[2,632]),o($V2,$Vjg,{25:613,159:2226,19:[1,2227],26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8}),o($V2,[2,1717],{25:613,159:2228,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8}),{19:[1,2230],322:[1,2229]},{19:[1,2232],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:2235,523:2234,529:2231,530:2233},o($V2,[2,2473]),o($V2,[2,2595]),{19:[1,2237],324:[1,2236]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:2238,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:2239,160:$Va8,161:$Vb8},{19:[1,2241],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:2240},o($V2,[2,2493],{159:598,25:613,523:1466,529:2242,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($Vba,$VOc,{493:2243,494:2244,311:$VPc}),o($V2,[2,2502]),{19:[1,2246],167:[1,2245]},o($Vkg,$Vlg,{442:2247,207:$VQb,281:$VRb,395:$VSb}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2248,523:1250},o($Vfc,$VTc,{491:2249,311:$VRe}),o($V2,[2,2695],{159:598,25:613,523:2250,19:[1,2251],26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,2696],{159:598,25:613,523:2252,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{19:[1,2254],303:$Vmg},o($V2,[2,2728]),o($V2,[2,2729]),o($V2,[2,2731]),o($V2,[2,2732]),{19:[1,2256],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2255,523:764,525:2257},o($V2,[2,2735]),{19:[1,2259],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2258,523:764,525:2260},o($V2,[2,2742],{159:598,25:613,523:1250,522:2261,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{19:[1,2263],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2262},o($V2,[2,2752]),o($VCa,$VTc,{491:2264,492:2265,311:$VUc}),o($V2,[2,2757]),o($VCa,$VTc,{491:2266,492:2267,311:$VUc}),{19:[1,2269],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2268,523:764,525:2270},o($V2,[2,2763],{159:598,25:613,523:1250,522:2271,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{19:[1,2273],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:2235,523:2234,529:2272,530:2274},o($V2,[2,2710]),o($Vba,$VTc,{491:2275,492:2276,311:$VUc}),o($V2,[2,2713]),{19:[1,2278],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:2235,523:2234,529:2277,530:2279},o($V2,[2,2723],{159:598,25:613,523:1466,529:2280,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,3218]),{403:$V0d,468:2281},o($VNf,$V5d,{495:2282,312:$V6d}),o($Vab,[2,639]),{19:[1,2284],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:922,523:921,549:2283,550:2285},o($V2,[2,3237]),{19:[1,2287],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2286},o($V2,[2,3242],{159:598,25:613,523:2288,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($VSc,[2,562]),o($VSc,[2,563]),o($V2,[2,3251],{207:[1,2289]}),o($Vng,[2,681]),o($Vng,[2,682]),{19:[1,2291],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:922,523:921,549:2290,550:2292},o($V2,[2,3253],{159:598,25:613,523:1282,549:2293,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($Vba,[2,3257]),o($Vba,[2,3258]),o($V2,[2,3259]),o($V2,[2,3261]),o($V2,[2,3260]),o($V2,[2,3262]),{403:$V0d,468:2294},o($V2,[2,3265]),o($V2,[2,3264]),{403:$Vog,469:$Vpg},{19:[1,2298],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:922,523:921,549:2297,550:2299},o($V2,[2,3267],{159:598,25:613,523:1282,549:2300,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,3274]),{404:$Vqg,469:$Vrg},o($V7d,$V5d,{495:2303,312:$V6d}),o($V2,$Vsg,{324:[1,2304]}),o($V2,[2,3288],{324:[1,2305]}),o($Vab,$Vtg,{19:[1,2306]}),o($Vab,[2,3296]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2307},o($V2,[2,3293]),{19:[1,2309],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2308},o($V2,[2,3304],{159:598,25:613,523:2310,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,$Vug,{446:1076,497:2312,19:[1,2313],165:$Vvg,188:$Vta,328:$Vua}),{19:[1,2315],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2314},o($V2,[2,3316]),o($V2,[2,3317],{446:1076,497:2317,165:[1,2316],188:$Vta,328:$Vua}),o($V2,$Vwg,{446:1076,497:2318,19:[1,2319],188:$Vta,328:$Vua}),o($V2,[2,3328]),o($V2,[2,3329],{446:1076,497:2320,188:$Vta,328:$Vua}),o($V2,[2,3326]),o($V2,[2,3332]),o($V2,[2,3333]),{19:[1,2322],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:922,523:921,549:2321,550:2323},{19:[1,2325],106:$Vxg,132:$Vyg,467:2324},o($V2,[2,3338],{467:2328,106:$Vxg,132:$Vyg}),{19:[1,2330],231:$Vzg},o($V2,[2,3339]),o($V7d,$VAg,{483:2331,485:2332,449:2333,307:$VBg,312:$VCg}),o($V2,[2,3349],{483:2336,449:2337,307:$VBg,312:$VCg,319:$VAg}),o($V2,$VDg,{468:2338,19:[1,2340],319:$VEg,403:$V0d}),{19:$VFg,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,484:2341,486:2342,509:2345,510:2343,523:1380},o($V2,[2,3369],{398:[1,2346]}),o($V2,[2,3371]),o($V2,[2,3372]),o($Vmc,$VGg,{1299:2347,1301:2348,319:[1,2349]}),o($V2,$VGg,{1299:2350,319:$VHg}),{19:[1,2353],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2352},{19:[1,2355],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2354},o($V2,[2,3277],{495:2356,312:$V6d,319:$V5d}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2357},o($V2,[2,3361]),{19:[1,2358],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:922,523:921,549:2359,550:2360},o($Vbd,[2,636]),o($Vab,[2,638]),o($V2,[2,2974]),o($VIg,$VJg,{609:2361,625:2362,444:2363,231:$VKg,309:$VLg,445:$VMg}),o($VNg,$VOg),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2368,554:2108,631:2367,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2,[2,2975]),o($V2,[2,2964]),o($VPg,$VJg,{625:2362,444:2363,609:2369,231:$VKg,309:$VLg,445:$VMg}),o($VQg,$VJg,{617:2370,609:2371,625:2372,444:2373,231:$VKg,309:$VLg,445:$VMg}),o([6,10,170,176,206,231,242,309,310,320,325,347,399,445,656,663,957,1190],$VOg,{2:[1,2375],19:[1,2374]}),{19:[1,2377],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2379,534:2378,554:1610,556:1609,631:2367,632:2376,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($V2,[2,2999],{1210:1023,1199:1029,1200:2380,1190:$Vu9}),o($Vjd,[2,2997]),o($V2,[2,3000],{1199:1029,1210:1574,1190:$Vu9}),o([19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,402,403,404,441,762,763,794],$VFc,{579:2381,260:$VGc}),o($VRg,$Vfd,{608:1564,624:1565,598:2382,351:$Vgd}),o($Vjd,[2,3005]),o($VRg,$Vfd,{608:1564,624:1565,598:2383,351:$Vgd}),o($VRg,$Vfd,{616:1569,608:1570,624:1571,601:2384,598:2385,351:$Vhd}),o($V2,[2,2972]),o([26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,402,403,404,762,763,794],$VFc,{579:2386,260:$VGc}),o($VRg,$Vfd,{608:1564,624:1565,598:2385,351:$Vgd}),{19:[1,2387],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2389,523:764,525:2388},o($Vba,[2,3020]),o($V2,[2,3079],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($V2,[2,3080],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),{19:[1,2418],233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,350:$Vph,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,669:2435,674:2434,1234:2420,1236:2419,1239:2437,1240:2436},o($Vzh,[2,1118]),{19:[1,2445],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2446,534:2444,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:2448,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2449,534:2447,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{19:$VBh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:[1,2452],442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2453,534:2451,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{19:$VBh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:[1,2456],442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2457,534:2455,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{398:$Vs8,666:2459,672:2458},{19:[1,2461],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2462,534:2460,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{19:[1,2464],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,301:$VCh,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,350:$VDh,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2465,534:2466,554:1610,556:1609,661:1642,664:1597,670:2467,671:1589,675:2463,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649,801:2469,802:2468,803:2472,804:2471},o($VEh,[2,1087]),o($Vzh,[2,1227]),o($Vzh,[2,1228]),o($VEh,$VFh,{686:2474,680:2475,398:$VGh}),{398:$VGh,680:2478,686:2477},o($Vzh,[2,1231]),o($Vzh,[2,1232]),o($VHh,[2,1220]),o($VHh,[2,1224]),o($VHh,[2,1225]),o($VHh,[2,1226]),o($Vzh,[2,1242]),o($Vzh,[2,1235]),o([2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,398,399,402,445,571,577,583,656,663,668,957,1190],$VIh,{442:2479,207:$VQb,281:$VRb,395:$VSb}),{398:[2,1440]},{398:[2,1441]},{398:[2,1442]},{398:[2,1443]},{398:[2,1444]},{398:[2,1445]},o($Vzh,[2,1427]),o($VEh,$VJh,{754:2480,747:2481,756:2482,749:2483,327:$VKh}),o($Vzh,[2,1429],{749:2485,327:$VLh}),{19:[1,2487],327:$VKh,749:2489,756:2488},o($Vzh,[2,1433]),o($Vzh,[2,1434]),o($Vzh,[2,1435]),{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,391:$VDf,395:$VSb,442:1398,547:2490,661:1994,689:$VEf,694:1395,695:1396},o($VHh,[2,1241]),o($VHh,[2,1424]),o($VHh,[2,1425]),o($VHh,[2,1426]),o($Vzh,[2,1245]),o($Vzh,[2,777],{442:2491,207:$VQb,281:$VRb,395:$VSb}),o($VMh,[2,775]),o($Vzh,[2,1457]),o($Vzh,[2,1458]),o($Vzh,[2,1459]),o($VNh,[2,1454]),o($VNh,[2,1455]),o($VNh,[2,1456]),{398:[1,2492]},{398:[1,2493]},{398:[1,2494]},{398:[1,2495]},o($VHh,[2,1243]),o($VHh,[2,1244]),o($Vzh,[2,1258]),o($Vzh,[2,1259]),o([2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,188,194,206,207,209,231,233,239,242,246,250,266,281,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,325,326,328,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,445,571,577,583,656,663,668,957,1190],$VOh,{458:2496,208:$VPh,282:$VQh}),{398:[1,2499]},{398:[1,2500]},{398:[1,2501]},o($VHh,[2,1255]),o($VHh,[2,1256]),o($VHh,[2,1257]),{403:$Vog,469:$Vpg,471:[1,2502]},{404:$Vqg,469:$Vrg,471:[1,2503]},{398:[2,1574]},{398:[2,1575]},{398:[2,1576]},{398:[2,1577]},{398:[2,1578]},{398:[2,1579]},{398:[2,1580]},{398:[2,1581]},{398:[2,1582]},{398:[2,1583]},{398:[2,1584]},{398:[2,1585]},{398:[2,1586]},{398:[2,1587]},{398:[2,1588]},{398:[2,1589]},{398:[2,1590]},{398:[2,1591]},{398:[2,1592]},{398:[2,1593]},{398:[2,1594]},{398:[2,1595]},{398:[2,1596]},o($VHh,[2,1260]),o($VHh,[2,1261]),o($V2,$Vnc,{159:598,25:613,497:1375,499:1376,446:1377,523:1646,557:2504,496:2505,558:2506,498:2508,518:2509,519:2510,559:2511,509:2512,19:[1,2507],26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,188:$Vta,328:$Vua,402:$Vt8,441:$VRh}),o($V2,$Vnc,{446:1076,497:1375,496:2514,188:$Vta,328:$Vua}),o($V2,[2,842],{159:598,25:613,523:1250,522:2515,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{19:[1,2518],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,484:2516,486:2517,509:2345,510:2343,523:1380},o($Vba,[2,626]),{19:[1,2520],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:2519,160:$Va8,161:$Vb8},o($V2,[2,847]),o($V2,[2,849],{159:598,25:613,523:1250,522:2521,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,850]),{19:[1,2523],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,484:2522,523:1380},{19:[1,2526],188:$Vta,250:[1,2525],328:$Vua,446:1377,497:2524,499:2527},{19:[1,2529],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2528},o($V2,[2,1773]),{19:[1,2531],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:2530},o($V2,[2,1797]),o($V2,[2,1761]),o($V2,[2,1792]),{19:[1,2532],39:$Vye,896:1770,898:$Vze},{19:[1,2533],62:$Vbe,75:$Vce,110:$Vde,111:$Vee,121:$Vfe,212:$Vge,244:$Vhe,272:$Vie,275:$Vje,335:$Vke,460:1723,465:1712,536:1711,538:1719,541:1715,543:$Vle,545:1720,875:1710,878:1714,907:$Vme},o($V2,[2,1796]),{19:[1,2535],837:[1,2534]},o($Vba,$Vue,{885:1761,860:$VSh}),o($Vwe,$V8e),o($V2,[2,1762]),o($V2,[2,1799]),o($V2,[2,1772]),o($V2,[2,1795]),{398:[1,2539],858:2537,864:2538},{19:[1,2541],106:$VTh,132:$VUh,309:$VVh,828:2540,829:2542},{19:[1,2547],259:[1,2546]},{19:[1,2549],32:$VWh,67:$VXh,85:$VYh,89:$VZh,95:$V_h,109:$V$h,124:$V0i,211:$V1i,240:$V2i,268:$V3i,270:$V4i,271:$V5i,277:$V6i,876:2548,1040:$V7i},o($V2,[2,1864]),{398:$V8i,827:2564},{403:$V0d,404:$V1d,468:1754,472:1755,474:2566},{398:$V8i,827:2567},o($Vmc,$V9i,{542:2568,548:2569,546:2570,352:$Vai}),{19:[1,2573],227:[1,2572]},o($V2,[2,1870]),{19:[1,2574]},o($V2,[2,1887]),o($V2,[2,1888]),o($Vbi,[2,1948]),o($Vbi,[2,1949]),{384:$VJe,537:2575,539:2576},{398:[2,607]},{398:[2,608]},{398:[2,1971]},{398:[2,1972]},{19:[1,2578],312:$Vci},{384:[2,597]},{384:[2,598]},{398:$Vcb,513:2579,515:2580},o($V2,[2,1824]),o($V2,[2,1803]),o($V2,[2,1821]),o($V2,[2,1804]),o($V2,[2,1832]),o($V2,[2,1833]),o($V2,[2,1805]),o($V2,[2,1812]),o($V2,[2,1813]),o($V2,[2,1806]),o($V2,[2,1807]),o($V2,[2,1816]),{19:[1,2581],167:[1,2582]},{19:[1,2584],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2583,523:2116},o($Vba,[2,1852]),{17:2591,19:[1,2587],188:$Vta,250:[1,2586],328:$Vua,441:$VF5,446:1377,497:2589,499:2590,903:2585,905:2588},{19:[1,2593],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2592},{19:[1,2595],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2594,519:2596,523:1646},o($V2,[2,1935]),o($V2,[2,1940]),{208:$VPh,282:$VQh,458:2597},o($Vdi,$Vei,{881:2598,891:2599,385:[1,2600]}),o($Vfi,[2,619]),o($Vfi,[2,620]),o($V2,[2,1874]),o($V2,[2,1884]),o($V2,[2,1885]),o($Vmc,$Vgi,{487:2601,35:$Vhi}),o($V2,[2,1969]),{19:[1,2604],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2603,523:2116},o($Vba,$Vii),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,500:2605,518:2607,523:2116,531:2606},{398:$Vcb,513:2608,515:2609},o($Vji,[2,2350]),{19:[1,2611],352:[1,2610]},o($V2,[2,1910]),o($V2,[2,1915],{352:[1,2612]}),{398:[1,2613]},{398:$Vki,861:2614,897:2615},{398:[2,1907]},{398:[2,1908]},{398:$V8i,827:2617},o($V2,[2,2021]),o($V2,[2,2016]),o($V2,[2,2022]),o($V2,[2,2023]),{19:[1,2619],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2618},o($V2,[2,2024]),{19:[1,2621],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2620,523:764,525:2622},o($V2,[2,2031]),{19:[1,2624],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2623},o($V2,[2,2038]),{19:[1,2626],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2625,523:764,525:2627},o($V2,$Vnc,{159:598,25:613,446:1076,523:1250,497:1375,496:2628,522:2629,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,188:$Vta,328:$Vua,402:$Vg8}),{19:$Vli,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2630,523:764,525:2632},o($Vba,[2,3031]),{19:$Vmi,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2633,523:764,525:2635},{19:[1,2636],52:[1,2637]},o($Vni,$Voi,{1206:2638,335:$Vpi}),o($Vqi,$Voi,{1208:2640,1206:2641,335:$Vri}),{441:[1,2644],789:[1,2643]},{188:$Vta,328:$Vua,446:1076,497:2645},{322:[1,2646]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:2647},o($V2,[2,1770]),{837:[1,2648]},o($Vfc,$Vue,{885:1817,860:$VSh}),{62:$Vbe,75:$Vce,110:$VNe,111:$Vee,121:$Vfe,212:$VOe,244:$Vhe,272:$Vie,275:$Vje,335:$VPe,460:1808,465:1712,536:1711,541:1806,543:$Vle,875:1804,878:1714,907:$Vme},{398:$VIf,513:2649},{398:[1,2650],858:2537},{106:$V3f,132:$V4f,309:$V5f,828:2540},{259:[1,2651]},{32:$VWh,67:$VXh,85:$VYh,89:$VZh,95:$V_h,109:$V$h,124:$V0i,211:$V1i,240:$V2i,268:$V3i,270:$V4i,271:$V5i,277:$V6i,876:2548,1040:$V7i},{403:$V0d,404:$V1d,468:1754,472:1755,474:2652},o($V2,$V9i,{546:2570,542:2653,352:$Vsi}),{227:[1,2655]},{384:$VPf,537:2575},{312:$Vci},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2656,523:2116},{188:$Vta,250:[1,2658],328:$Vua,446:1076,497:2589,903:2657},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2592},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2594,523:2116},{303:$Vmg},o($Vti,$Vei,{881:2659,385:[1,2660]}),o($V2,$Vgi,{487:2661,35:$Vhi}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2662,523:2116},{398:$VIf,513:2663},{352:[1,2664]},{398:[1,2665]},{398:$Vui,861:2666},o($V2,$Vi9,{586:855,584:869,573:2668,347:$Vw9}),o($V2,[2,3041],{394:$Vvi}),o($V6g,[2,3067]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:2670,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2,[2,3037]),o($V2,$Vi9,{586:855,584:869,573:2672,347:$Vw9}),o($V2,$Vi9,{584:853,585:854,586:855,587:856,575:2673,573:2674,347:$Vj9}),o($V2,[2,3042]),o($V2,$Vwi,{394:[1,2675]}),o($V2,[2,3069],{394:[1,2676]}),{17:2677,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,394:$Vxi,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2682,534:2680,554:1610,556:1609,661:1642,664:1597,667:2679,671:1589,677:2678,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($V2,[2,3085]),o($V2,[2,3086]),{19:[1,2683],167:[1,2684]},{19:[1,2685],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2687,523:764,525:2686},o($Vba,[2,3063]),{19:[1,2688],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2690,523:764,525:2689},o($V2,[2,7]),{6:[2,12],10:[1,2692]},{6:[2,11],10:$Vyi},{13:576,14:577,15:578,18:809,26:$VP8,30:$VQ8,59:$VR8,74:$VH,79:$VS8,80:$VT8,97:$VU8,113:$Vb1,131:$Vr1,145:$VV8,182:$VW8,218:$VX8,307:$VY8,339:$VZ8,352:$V_8,405:360,406:361,407:362,408:363,409:364,410:365,411:366,412:367,413:368,414:369,415:370,416:371,417:372,418:373,419:374,437:837,438:$VC5,439:$VD5,440:$VE5,452:$V$8,564:413,565:414,568:829,569:$V09,570:$VI5,571:$VJ5,572:808,577:$V19,597:842,763:$V29,812:415,813:416,814:417,815:418,816:419,817:420,818:421,826:$V39,830:832,868:$V49,919:833,930:$V59,931:$V69,933:$V79,934:426,935:427,936:428,937:429,938:430,939:431,940:432,1062:534,1063:535,1064:536,1065:537,1125:375,1126:376,1127:377,1128:378,1129:379,1130:380,1131:381,1137:467,1138:469,1144:433,1145:434,1146:435,1147:436,1148:437,1149:438,1150:439,1151:440,1152:441,1161:538,1162:539,1166:$V89,1190:$V99,1191:$Va9,1192:$Vb9,1193:$Vc9,1195:$Vd9,1197:468,1198:470,1199:841,1213:$Ve9,1216:544,1218:847,1223:567,1224:568,1227:$Vf9,1233:845,1247:823,1252:$VZ5,1253:$Vg9,1257:445,1258:446,1259:447,1260:448,1261:449,1262:450,1263:451,1264:452,1265:453,1266:454,1267:455,1268:456,1269:457,1270:458,1271:459,1272:460,1273:461,1274:462,1275:463,1276:464,1277:840,1278:$V$5,1313:820,1314:$V06},{2:$V36,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$V9c,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,402:$Vg8,439:$Vh8,523:595,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:1254,1174:1255,1187:594,1189:1257,1190:$Vm8,1191:$Vn8},{2:$Vq8,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,307:$Vp8,398:$VVb,402:$Vg8,522:760,523:1250,666:761,701:748,703:750,705:1272,706:753,717:1273,720:1274,1167:1271},{2:$Vu8,147:$Vac,284:$Vx8,440:$Vy8,577:$Vbc,826:$VA8,868:$VB8,930:$VC8,1176:1259,1192:$VD8},{2:$VG8,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8,522:760,523:1250,604:1353,666:761,701:783,703:750,705:1272,706:753,717:1273,720:1274},{2:$VI8,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vcc,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:789,160:$Va8,161:$Vb8,284:$VL8,807:787},{2:$VM8,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1285,591:1284,593:792},o($Vp9,$Vl9,{162:2693,51:$Vm9,164:$Vn9,165:$Vo9}),o($Vp9,$Vq9),{19:[1,2695],106:$V3f,132:$V4f,309:$V5f,828:1866,1172:2694,1180:2696},o($V2,[2,2806]),o($V8b,[2,2852]),o($Vab,[2,2854],{394:[1,2697]}),o($Vab,[2,2858],{394:[1,2698]}),o($Vzi,[2,2834]),o($V2,[2,2835]),o($V2,[2,2836]),{19:[1,2700],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2699},{19:[1,2702],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2701,523:764,525:2703},o($Vzi,[2,2839]),o($V2,[2,2843]),o($Vmc,$VAi,{1175:2704,1182:2705,352:$VBi,394:$VCi}),o($V2,[2,2812],{394:$VDi}),o($V2,[2,2813]),o($VEi,[2,2881]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2709},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2710},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2711},o($V9b,[2,2893]),{19:[1,2713],106:$V3f,132:$V4f,309:$V5f,828:1866,1172:2712,1180:2714},o($Vab,[2,2857],{394:$VHf}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2699},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2701,523:1250},o($Vab,[2,2855],{394:$VHf}),{2:$Vsf,399:$Vtf,502:2715},{2:$Vsf,399:$Vtf,502:2716},{394:$VFi,399:$VGi},o($VHi,[2,702],{394:[1,2719]}),o($VIi,[2,700]),o($Vdb,[2,762]),o($V2,$Vfd,{624:1565,608:2720,616:2722,19:[1,2721],351:$Vhd}),o($V2,[2,2784]),o($V2,$Vfd,{624:1565,608:2723,351:$Vgd}),o($V2,$Vfd,{624:1565,608:2724,351:$Vgd}),o($V7f,$V8f,{711:2725,273:$V9f,279:$Vaf}),o($Vnb,[2,1314],{710:1185,602:2726,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),{19:$VJi,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$Vs8,402:$Vt8,509:766,522:760,523:764,525:762,666:761,672:763,705:2727,707:2728,717:756,720:757,721:758,724:759},o($VKi,[2,1305]),o($VKi,[2,1306]),o($Vnb,[2,1313],{710:1918,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),o($Vbf,[2,1317]),o($VLi,[2,1334]),o($Vbf,[2,1318]),o($VLi,[2,1335]),o($Vbf,[2,1319]),o($VLi,[2,1336]),o($Vbf,[2,1320]),o($VLi,[2,1337]),o($Vbf,[2,1321]),o($VLi,[2,1338]),o($Vbf,[2,1322]),{19:[1,2731],317:$VMi},{2:[1,2733],317:[1,2732]},o($Vbf,[2,1324]),{19:[1,2735],317:$VNi},{19:[1,2737],317:$VOi},{19:[1,2739],317:$VPi},{19:[1,2741],317:$VQi},{2:[1,2743],317:[1,2742]},o($Vbf,[2,1329]),{19:[1,2745],317:$VRi},{19:[1,2747],317:$VSi},{19:[1,2749],317:$VTi},{19:[1,2751],317:$VUi},{2:[1,2753],317:[1,2752]},o($VVi,[2,1308],{159:598,25:613,522:760,666:761,523:1250,717:1273,720:1274,705:2754,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8}),o($Vkf,$V8f,{711:2755,273:$V9f,279:$Vaf}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8,522:760,523:1250,666:761,705:2756,717:1273,720:1274},{317:$VMi},{317:$VNi},{317:$VOi},{317:$VPi},{317:$VQi},{317:$VRi},{317:$VSi},{317:$VTi},{317:$VUi},o([6,10,19,170,176,184,206,231,242,265,266,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,445,577,656,663,957,1190],$Vmf,{719:2757,723:2758,264:$VWi}),o($Vof,$Vmf,{719:2760,264:$Vnf}),{17:2764,19:$V5,33:[1,2761],160:$VXi,207:$VQb,281:$VRb,382:$VYi,395:$VSb,441:$VF5,442:2766,694:2762},o($Vlf,[2,1362]),{727:$VZi},o($Vof,[2,1367]),o($Vpf,[2,1415]),o($VMb,[2,1417]),o($VMb,[2,1418]),o($Vof,$Vmf,{719:2768,264:$Vnf}),{33:[1,2769],160:$VXi,207:$VQb,281:$VRb,382:$VYi,395:$VSb,442:2766,694:2770},o($Vof,[2,1366]),o($VOb,$V_i,{524:2771,526:2772,527:2773,528:2774,281:$V$i}),o($VWb,[2,716]),o($V0j,[2,689]),o($V0j,[2,690]),o($V1j,[2,1393]),{399:[1,2776]},o($V2j,[2,1395]),o($V3j,[2,692]),o($V3j,[2,693]),o($V2j,[2,1396]),o($VF8,[2,1397]),o($VF8,[2,1392],{729:2777}),o($VF8,[2,1399]),o($VF8,[2,1400]),o($VF8,[2,1401]),o($VF8,[2,1402]),o($VF8,[2,1403]),o($VF8,[2,1404]),o($VF8,[2,1405]),o($VF8,[2,1406]),o($VF8,[2,1407]),o($VF8,[2,1408]),o($VF8,[2,1409]),o($VF8,[2,1410]),o($VF8,[2,1411]),o($VF8,[2,1412]),{15:1965,18:1010,352:$V_8,572:808,577:$V19,730:1951,732:1953,734:1955,736:1957,738:1959,740:1961,742:1963},o($VWb,[2,715]),{19:[1,2779],231:$V4j},o($V2,[2,2821]),{19:[1,2781],837:[1,2780]},o($V2,[2,2825]),o($V2,[2,2826]),{19:[1,2783],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2782},{19:[1,2785],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2784,523:764,525:2786},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2787},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2788},o($V5j,[2,1420]),o($V$b,$VZb,{605:2789}),{2:$V6j,19:[1,2792],133:[1,2790]},o($V0c,[2,1285]),o($V$b,[2,1288],{394:[1,2793]}),o($V$b,[2,1290]),{2:$V6j,133:[1,2794]},o($V$b,[2,1287]),o($V2,[2,1710]),o($V2,[2,1711]),o($V2,[2,3184]),o($V2,[2,3185],{25:613,159:2795,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8}),o($V2,[2,3187]),o($V2,[2,3188]),o($V2,[2,3189]),o($V2,[2,3190]),o($V7j,[2,1238]),{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,395:$VSb,442:1398,661:2796,694:1395,695:1396},{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,395:$VSb,442:1398,661:2797,694:1395,695:1396},o($V1c,[2,3183]),o($V6c,[2,899]),o($V5c,[2,901],{394:[1,2798]}),o($V5c,[2,902],{394:$VMf}),o($VTb,$VUb,{728:1214,595:2799,17:2800,596:2801,19:$V5,441:$VF5}),o($V7c,$Vi9,{586:855,584:869,573:2802,347:$Vw9}),o($Vv9,[2,861]),{19:$Vmi,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2803,523:764,525:2635},{19:$Vli,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:2804,523:764,525:2632},{43:$Vnc,188:$Vta,328:$Vua,446:1076,496:2805,497:1375},o($V2,$V5g),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2806},o([6,10,264],$Vbb,{513:1163,512:2807,398:$VIf}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2808,523:1250},{837:[1,2809]},{166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,439:$Vh8,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1187:1853,1189:1257,1190:$Vm8,1191:$Vn8},{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:2810},{394:$V4b,837:[1,2811]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,516:2812,518:1880,523:2116},{837:[1,2813]},{149:$Vuf,150:$Vvf,262:$V8j,296:$V9j,1177:2814},{307:[1,2817]},{179:[1,2818]},{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:2819},{307:[1,2820],394:$V4b},{179:[1,2821]},{307:$Vag},{158:$Vbg},{307:[1,2822]},{149:$Vuf,150:$Vvf,262:$V8j,296:$V9j,1177:2823},o($V2,$Vfd,{624:1565,608:2173,351:$Vgd}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8,522:760,523:1250,666:761,701:2824,703:750,705:1272,706:753,717:1273,720:1274},o($VKf,$V6f,{710:1918,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),o($VLf,$VJb,{159:598,25:613,523:1199,436:1205,698:2825,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,286:$VAa,402:$Vg8}),{66:$Vcg,238:$Vdg,1250:2826},{307:[1,2827]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2828,523:1250},o($Vlb,$Vnc,{446:1076,497:1375,496:2188,188:$Vta,328:$Vua}),{188:$Vta,328:$Vua,446:1076,496:2829,497:1375,837:$Vnc},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:2200,554:2201,1245:2830,1308:2196,1310:2203},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2204},{2:$Vfg,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,580:2831,582:2832,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:2211,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119,805:2833,806:$Vhg},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1285,593:1998},{398:[1,2835]},o($V2,$Vnc,{159:598,25:613,446:1076,497:1375,523:2116,496:2505,518:2509,557:2836,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,188:$Vta,328:$Vua,402:$Vg8}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,484:2516,523:1380},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:2519,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,484:2522,523:1380},{339:[1,2837]},{324:[1,2838]},{188:$Vta,250:[1,2840],328:$Vua,446:1076,497:2839},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2841},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:2530},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2618},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2620,523:1250},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2842},o($V2,$Vjg,{25:613,159:2843,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8}),{193:$VG9,262:$VI9,342:$VL9,447:2844},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:2845},{324:[1,2846]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:2847,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:2848,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:2849},o($Vfc,$VOc,{493:2850,311:$VKe}),{167:[1,2851]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2852},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2853,523:1250},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2854,523:1250},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2855},o($VRc,$VTc,{491:2856,311:$VRe}),o($VRc,$VTc,{491:2857,311:$VRe}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2268,523:1250},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:2858},o($Vfc,$VTc,{491:2859,311:$VRe}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:2277},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2860,523:1250},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:2283},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2861},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:2290},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:2862},o($VNf,$V5d,{495:2863,312:$V6d}),o($V2,$Vsg,{324:[1,2864]}),o($Vab,$Vtg),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2865},o($V2,$Vug,{446:1076,497:2866,165:$Vvg,188:$Vta,328:$Vua}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2314},o($V2,$Vwg,{446:1076,497:2318,188:$Vta,328:$Vua}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:2321},{106:$Vxg,132:$Vyg,467:2324},{231:$Vzg},{307:$VBg,312:$VCg,319:$VAg,449:2337,483:2867},o($V2,$VDg,{468:2338,319:$VEg,403:$V0d}),o($V2,$VGg,{1299:2868,319:$VHg}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2352},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2354},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2869,523:1250},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2870,523:1250},{52:[1,2871]},o($Vaj,$Voi,{1206:2872,335:$Vpi}),{789:[1,2873]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2874,523:1250},{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,350:$Vfj,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,669:2435,1234:2420,1239:2888},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2890,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2891,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2892,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2893,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{398:$VVb,666:2459},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2894,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,350:$Vpj,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2895,554:2108,661:1642,664:1597,670:2467,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119,801:2896,803:2472},o($VHh,$VFh,{680:2475,398:$Vqj}),{398:$Vqj,680:2478},o($Vrj,$VIh,{442:2899,207:$VQb,281:$VRb,395:$VSb}),o($VHh,$VJh,{747:2481,749:2483,327:$VLh}),{327:$VLh,749:2489},{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,391:$VDf,395:$VSb,442:1398,547:2900,661:1994,689:$VEf,694:1395,695:1396},{398:[1,2901]},{398:[1,2902]},{398:[1,2903]},{398:[1,2904]},o($Vsj,$VOh,{458:2905,208:$VPh,282:$VQh}),{398:[1,2906]},{398:[1,2907]},{398:[1,2908]},o([2,6,10,170,176,206,231,242,309,310,320,325,347,351,399,445,577,656,663,957,1190],$Vyf,{744:1978,184:$Vzf}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8,522:760,523:1250,666:761,701:1981,703:750,705:1272,706:753,717:1273,720:1274},o($V2,$Vi9,{586:855,584:869,573:2674,347:$Vw9}),o($V2,$Vwi,{394:$Vvi}),{167:[1,2909]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2910,523:1250},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2911,523:1250},o($Vv9,[2,879],{586:1359,347:$Vw9}),{572:2912,574:2913,577:$VK5},o($Vtj,[2,881],{572:2914,577:$V19}),o($Vv9,[2,865]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2915,523:1250},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2916,523:1250},{572:2912,577:$V19},{19:[1,2918],43:[1,2917]},o($V2,[2,2048],{43:[1,2919]}),o($V2,[2,2047],{43:[1,2920]}),o($V2,[2,2054],{43:[1,2921]}),o($V2,[2,2074]),{17:2927,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,441:$VF5,500:2922,501:2923,509:2926,518:2925,523:2116,531:2606,532:2924},o($Vmc,$Vmf,{719:2928,723:2929,264:$VWi}),o($V2,$Vmf,{719:2930,264:$Vnf}),o($V2,$Vnc,{497:1375,446:1377,496:2931,499:2933,19:[1,2932],188:$Vta,328:$Vua}),o($V2,[2,2095]),o($V2,$Vnc,{446:1076,497:1375,496:2934,188:$Vta,328:$Vua}),o($V2,$Vnc,{446:1076,497:1375,496:2935,188:$Vta,328:$Vua}),o($V2,[2,2088]),o($V2,$Vnc,{446:1076,497:1375,496:2936,188:$Vta,328:$Vua}),{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,395:$VSb,442:1398,661:2937,694:1395,695:1396},o($V7g,$Vuj,{382:$Vvj,383:[1,2939]}),o($V7g,[2,1251]),{382:[1,2940]},o($V7g,[2,1252]),{19:[1,2942],106:$V3f,132:$V4f,309:$V5f,828:1866,1172:2941,1180:2943},o($V2,[2,2917]),{19:[1,2945],166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,439:$Vh8,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:2944,1178:2946,1187:594,1188:596,1189:597,1190:$Vm8,1191:$Vn8},o($V2,[2,2921]),o($V2,$Vwj,{394:$VCi}),o($V2,[2,2929],{394:$VDi}),o($V2,[2,2930]),{19:[1,2948],106:$V3f,132:$V4f,309:$V5f,828:1866,1172:2947,1180:2949},o($V2,[2,2931]),{19:[1,2952],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:[1,2951],107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:595,1174:2950},o($V2,[2,2934]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:595,1174:2953},o($V2,[2,2943]),o($Vo8,[2,2954]),o($V2,[2,2955]),{19:[1,2955],231:$Vxj},o($V2,[2,2945]),{19:[1,2957],307:[1,2956]},o($V2,[2,2949]),o($V2,[2,2950]),o($V2,[2,2775]),o($V2,$Vfd,{624:1565,608:2958,351:$Vgd}),o($V2,[2,2780]),o($V2,[2,2779]),{384:$VJe,537:2959,539:2960},o($V2,[2,3124]),{384:[2,3142]},{384:[2,3143]},{384:$VJe,537:2961,539:2962},{307:[1,2963]},{307:[1,2964]},{384:$VPf,537:2965},o($Vo8,$Vnc,{497:1375,446:1377,496:2966,499:2967,188:$Vta,328:$Vua}),o($Vlb,[2,3159]),o($Vlb,$Vnc,{446:1076,497:1375,496:2968,188:$Vta,328:$Vua}),o($Vyj,[2,3157]),o($Vlb,[2,3164]),o($Vlb,[2,3163]),{19:[1,2970],788:2969,837:$Vxc},o($V2,[2,3171],{788:2971,837:$Vxc}),{788:2972,837:$Vxc},o($Vzj,$VAj,{1303:2973,1305:2974,307:[1,2976],394:$VBj}),o($VCj,$VAj,{1303:2977,307:$VDj}),o($VEj,[2,3400]),o($VFj,[2,3402],{394:[1,2979]}),{19:[1,2981],387:[1,2980]},o($VGj,[2,3409]),o([19,387],[2,3410]),o($VHj,$VIj,{442:2982,207:$VQb,281:$VRb,395:$VSb}),o($VCj,$VAj,{1303:2983,307:$VDj,394:$VJj}),{387:[1,2985]},o($VBc,[2,765]),o($VDc,[2,767]),o([6,10,347,399,957],$VKj,{581:2986,589:2988,597:2991,599:2992,19:[1,2989],307:$V16,394:[1,2990],583:$VLj}),{307:$V16,581:2993,589:2994,597:2991,599:2992},o($Vtj,[2,884],{581:2995,597:2996,307:$VY8}),o($Vtj,[2,885],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,697:2211,669:2398,533:2834,597:2996,581:2997,580:2998,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vr9,286:$Vr9,168:$Vmd,207:$VQb,233:$VSg,236:$VQf,239:$VTg,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,307:$VY8,311:$Vsd,319:$VUg,321:$Vtd,322:$VMj,323:$Vvd,332:$VWg,334:$VXg,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,391:$VZf,392:$VNj,393:$V3h,394:$VOj,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{307:$VY8,581:3002,597:2996},o($VPj,[2,1269]),{307:$VQj,394:[1,3003]},o($VRj,[2,1271],{394:[1,3004]}),o([6,10,19,170,176,206,231,242,307,309,310,320,325,347,351,394,399,445,583,656,663,957,1190],$VJb,{159:598,25:613,523:1199,436:1200,509:1201,674:2434,669:2435,698:3005,700:3006,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,233:$Vgh,239:$Vhh,286:$VAa,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,402:$Vt8}),o($VPj,$VSj),o($VJf,[2,1713]),{394:[1,3007]},o($VTj,$VJb,{159:598,25:613,523:1199,436:1205,669:2417,698:3008,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,233:$VSg,239:$VTg,286:$VAa,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,402:$Vg8}),{167:$Vza,286:$VAa,436:3009},{19:[1,3013],47:$VUj,75:$Vce,88:[1,3012],244:$Vhe,460:1723,536:3011,538:3014},o($V2,[2,1740]),{19:[1,3016],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:3015,523:764,525:3017},o($V2,[2,1746]),o($V2,[2,2112]),o($Vba,$VOc,{493:3018,494:3019,311:$VPc}),o([6,10,19,75,244,952],$VVj,{811:3020,810:3021,946:3022,948:3023,949:3024,950:3025,451:3026,40:$VWj,452:$VXj}),o($V2,[2,1716],{25:613,159:3029,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8}),o($V2,[2,1719]),{19:[1,3031],303:$VYj},o($VZj,[2,660]),o($V_j,$V$j,{1060:3032,1061:3033,1102:3034,398:[1,3035]}),o($V2,[2,2471],{159:598,25:613,523:1466,529:3036,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V0k,$V$j,{1102:3034,1060:3037,398:$V1k}),o($Vkg,$Vlg,{442:3039,207:$VQb,281:$VRb,395:$VSb}),o($V2k,[2,728],{442:3040,207:$VQb,281:$VRb,395:$VSb}),{19:[1,3042],193:[1,3041]},o($V2,[2,2602]),{398:[1,3045],1119:3043,1120:3044},{19:[1,3047],167:$V3k},{398:$V4k,1070:3048,1073:3049},o($V2,[2,2488],{159:598,25:613,523:1466,529:3051,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{398:$V5k,1070:3052},{19:[1,3055],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:3054},o($V2,[2,2505],{159:598,25:613,523:1466,529:3056,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{403:$V0d,468:3057},o($V2,[2,2530]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3058},o($V2,[2,2733],{446:1076,497:3059,188:$Vta,328:$Vua}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:3060},o($V2,$V6k,{488:3061,19:[1,3062],35:$V7k,105:$V8k,213:$V9k,254:$Vak}),o($V2,[2,2697],{159:598,25:613,523:3067,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,$V6k,{488:3068,35:$V7k,105:$V8k,213:$V9k,254:$Vak}),o([6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,188,250,328,402,441],[2,656]),o([6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,188,328,402],[2,657]),{19:[1,3070],188:$Vta,328:$Vua,446:1377,497:3069,499:3071},o($V2,[2,2736]),o($V2,[2,2737],{446:1076,497:3072,188:$Vta,328:$Vua}),o($Vmc,$Vbk,{1165:3073,94:$Vck,330:$Vdk}),o($V2,[2,2743]),o($V2,$Vbk,{1165:3076,94:$Vck,330:$Vdk}),o($V2,$Vbk,{1165:3077,94:$Vck,330:$Vdk}),{19:[1,3079],324:[1,3078]},o($V2,[2,2751]),{19:[1,3081],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3080,160:$Va8,161:$Vb8},o($V2,[2,2759]),{19:[1,3083],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3082,160:$Va8,161:$Vb8},o($V2,[2,2727]),o($V2,[2,2760]),o($V2,[2,2761],{159:598,25:613,523:1250,522:3084,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,2765]),o($V2,[2,2764]),{398:$V4k,1070:3085,1073:3086},o($V2,[2,2707],{159:598,25:613,523:1466,529:3087,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{398:$V5k,1070:3088},{19:[1,3090],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:2235,523:2234,529:3089,530:3091},o($V2,[2,2715]),o($V2,[2,2719]),o($V2,[2,2721],{159:598,25:613,523:1466,529:3092,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,2725]),o($V2,[2,2724]),o($V2,[2,3219]),o($V2,[2,3278],{319:[1,3093]}),o($V2,[2,3236]),o($V2,[2,3238]),o($V2,[2,3239]),o($V2,$Vek,{443:3094,19:[1,3095],307:$VVc,312:$VWc}),o($V2,[2,3244],{443:3096,307:$VVc,312:$VWc}),o($V2,[2,3243]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3097,160:$Va8,161:$Vb8,441:[1,3098]},o($V2,[2,3252]),o($V2,[2,3254]),o($V2,[2,3255]),o($V2,[2,3256]),o($V2,[2,3263]),{403:$Vfk},o($Vgk,[2,614]),o($Vmc,$Vnc,{497:1375,499:1376,446:1377,496:3100,498:3101,188:$Vta,328:$Vua}),o($V2,[2,3268]),o($V2,$Vnc,{446:1076,497:1375,496:3102,188:$Vta,328:$Vua}),o($V2,$Vnc,{446:1076,497:1375,496:3103,188:$Vta,328:$Vua}),{404:$Vhk},o($Vik,[2,617]),o($V2,$Vjk,{19:[1,3106],319:$Vkk}),{19:[1,3110],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,166:$Vlk,193:$VG9,262:$VI9,342:$VL9,402:$Vg8,447:3109,523:3108},{166:[1,3111]},o($Vab,[2,3297]),o($V2,[2,3287]),o($V2,$Vmk,{443:3112,19:[1,3113],307:$VVc,312:$VWc}),o($V2,[2,3305],{443:3114,307:$VVc,312:$VWc}),o($V2,[2,3306]),o($V2,[2,3312]),o($V2,$Vnk,{19:[1,3116],165:$Vok}),o($V2,[2,3318]),o($V2,[2,3315]),o($V2,[2,3323]),o($V2,[2,3319]),o($V2,[2,3320],{165:[1,3117]}),o($V2,[2,3325]),o($V2,[2,3330]),o($V2,[2,3331]),o($V2,[2,3327]),o($V2,[2,3334]),o($V2,[2,3335]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3118,160:$Va8,161:$Vb8},o($V2,[2,3341],{25:613,159:3119,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8}),o($VRc,[2,611]),o($VRc,[2,612]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3120,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3121,160:$Va8,161:$Vb8},o($V2,[2,3343],{25:613,159:3122,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8}),o($V2,[2,3350],{19:[1,3124],319:[1,3123]}),o($V2,[2,3351],{319:[1,3125]}),{19:$VFg,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,484:3126,486:3127,509:2345,510:2343,523:1380},o($Vba,[2,575]),o($Vba,[2,576]),{319:[1,3128]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,484:3126,523:1380},o($V2,[2,3366]),{403:$V0d,468:3129},o($V2,[2,3368]),o($V4d,[2,663]),o($V4d,[2,664]),o($V4d,[2,732]),o([2,6,10,19,167,170,176,184,206,231,242,309,310,319,320,325,347,351,399,403,445,577,656,663,1190],$Vpk),o([2,6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,246,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,319,320,322,325,326,332,333,334,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,403,445,571,577,656,663,668,1190],[2,688]),{403:$V0d,404:$V1d,468:1754,472:1755,474:3130},o($V2,$Vqk,{19:[1,3131]}),o($V2,[2,3377]),{19:[1,3133],403:$V0d,468:3132},o($V2,[2,3376]),{403:$V0d,468:3132},o($V7d,[2,3379]),o($VNf,[2,3381]),o($V7d,[2,3380]),o($VNf,[2,3382]),{319:[1,3134]},o($V2,[2,3302],{443:3135,307:$VVc,312:$VWc}),o($V2,[2,3362]),o($V2,[2,3363]),o($V2,[2,3364]),o($Vrk,$Vsk,{610:3136,626:3137,310:$Vtk}),o($VIg,$Vuk),{291:[1,3139]},o($Vvk,[2,564]),o($Vvk,[2,565]),o($Vvk,[2,566]),o($VNg,[2,972]),o([2,6,10,170,176,206,231,242,266,294,308,309,310,313,317,318,320,325,326,333,338,347,399,445,656,663,957,1190],$Vwk,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($Vxk,$Vsk,{626:3137,610:3140,310:$Vtk}),o($Vxk,$Vsk,{626:3137,610:3141,310:$Vtk}),o($Vyk,$Vsk,{618:3142,610:3143,626:3144,310:$Vzk}),o($VQg,$Vuk,{2:[1,3147],19:[1,3146]}),{19:[1,3149],291:[1,3148]},o($VPg,$VJg,{625:2362,444:2363,609:3150,231:$VKg,309:$VLg,445:$VMg}),o([170,176,206,242,310,320,325,656,663],$VJg,{625:2362,444:2373,617:3152,609:3153,19:[1,3151],231:$VKg,309:$VLg,445:$VMg}),o($VAk,[2,973]),o($VAk,[2,974],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($VAk,[2,1086],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o([2,6,10,19,170,176,206,231,242,309,310,320,325,347,399,445,656,663,957,1190],$Vwk,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($V2,[2,3001],{1199:1029,1210:1574,1190:$Vu9}),{17:2219,19:[1,3156],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,392:$Vgg,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2214,534:2218,554:1610,556:1609,580:3154,588:3155,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,697:2211,699:2213,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vjd,[2,3004]),o($Vjd,[2,3006]),o($Vjd,[2,3007]),o($Vjd,[2,3002]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,580:3157,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:2211,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2,[2,3012]),o($V2,[2,3013],{348:[1,3158]}),{19:[1,3159],348:$VBk},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3161,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3162,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3163,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3164,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3165,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3166,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3167,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3168,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vzh,[2,1196]),{233:$VSg,239:$VTg,319:$VUg,332:$VWg,334:$VXg,669:3169},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3170,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3171,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3172,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3173,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3174,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3175,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3176,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3177,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3178,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{233:$VSg,239:$VTg,288:[1,3180],312:[1,3179],319:$VUg,332:$VWg,334:$VXg,669:3181},{398:[1,3182]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3183,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3184,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3185,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3186,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3187,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3188,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vzh,[2,1192]),o($V2,[2,3081]),o($V2,[2,3082]),o($V2,[2,3076]),{19:[1,3189],233:$Vgh,239:$Vhh,288:[1,3191],312:[1,3190],319:$Vlh,332:$Vnh,334:$Voh,669:3193,674:3192},o($VCk,$VDk,{665:3196,19:[1,3194],322:[1,3195]}),{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3197,509:3201,518:1631,519:1630,523:1646,533:3199,534:3198,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3202,509:3201,518:1631,519:1630,523:1646,533:3204,534:3203,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3205,509:3201,518:1631,519:1630,523:1646,533:3207,534:3206,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3208,509:3201,518:1631,519:1630,523:1646,533:3210,534:3209,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{398:[1,3212],673:3211},{19:[1,3215],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3214,534:3213,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3216,509:3201,518:1631,519:1630,523:1646,533:3218,534:3217,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3219,509:3201,518:1631,519:1630,523:1646,533:3221,534:3220,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3222,509:3201,518:1631,519:1630,523:1646,533:3224,534:3223,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3225,509:3201,518:1631,519:1630,523:1646,533:3227,534:3226,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3228,509:3201,518:1631,519:1630,523:1646,533:3230,534:3229,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vzh,[2,1194]),o($VEh,[2,1114]),o($V2,[2,3102]),o($V2,$VEk,{1240:3232,1239:3233,19:[1,3231],350:$Vph}),{19:$VFk,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,509:2345,510:3235,518:1631,519:1630,523:1646,533:3236,534:3234,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{19:$VFk,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,509:2345,510:3239,518:1631,519:1630,523:1646,533:3240,534:3238,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{19:$VFk,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,509:2345,510:3242,518:1631,519:1630,523:1646,533:3243,534:3241,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{19:$VFk,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,509:2345,510:3245,518:1631,519:1630,523:1646,533:3246,534:3244,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{19:$VFk,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,509:2345,510:3248,518:1631,519:1630,523:1646,533:3249,534:3247,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o([19,77],$VDk,{665:3250,322:$VGk}),o($VHk,[2,1120],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VIk,[2,1121],{669:2398,233:$VSg,239:$VTg,319:$VUg,332:$VWg,334:$VXg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($VJk,$VKk,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($VHk,[2,1122],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($Vzh,[2,1123]),o($VJk,$VLk,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o([2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,168,170,176,183,184,194,206,207,209,231,236,242,246,266,281,283,285,286,287,288,292,294,300,301,302,303,304,307,308,309,310,311,312,313,317,318,320,321,322,323,325,326,333,338,343,346,347,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,402,403,404,445,571,577,656,663,668,762,763,794,1190],$Vr9,{669:2398,233:$VSg,239:$VTg,319:$VUg,332:$VWg,334:$VXg}),o($VHk,[2,1124],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($Vzh,[2,1125]),o($VJk,$VMk,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),{233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h,669:2398},o($VNk,[2,1126],{669:2417}),o($Vzh,[2,1127]),o($VOk,$VPk,{674:2434,669:2435}),o($Vzh,[2,1136]),o($VEh,[2,1097]),{2:$Vsf,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,399:$Vtf,502:3252,669:2417},{2:$Vsf,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h,399:$Vtf,502:3253,669:2398},{233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,399:$VQk,669:2435,674:2434},o($Vzh,[2,1198]),{2:$VRk,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,233:$VSg,236:$VQf,239:$VTg,281:$VRb,285:$Vod,292:$VRf,301:$VSk,302:$VTk,303:$VSf,304:$Vrd,311:$Vsd,319:$VUg,321:$Vtd,322:$VMj,323:$Vvd,332:$VWg,334:$VXg,343:$VUk,346:$Vwd,350:$Vpj,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,391:$VZf,392:$V2h,393:$V3h,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3258,554:2108,661:1642,664:1597,669:2398,670:3256,676:3255,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119,801:2896,803:2472},{19:[1,3263],233:$Vgh,239:$Vhh,288:$Vih,301:$VCh,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,350:$VDh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,669:2435,670:3264,674:2434,675:3262,801:2469,802:2468,803:2472,804:2471},{2:$VRk,233:$VSg,239:$VTg,288:$V4h,302:$VTk,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,350:$Vpj,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,669:2417,670:3265,676:3266,801:2896,803:2472},o($VEh,[2,1116]),{2:$VRk,301:[1,3268],302:$VTk,676:3267},{19:[1,3270],301:[1,3269],302:$VVk,350:$VDh,803:3273,804:3272},{19:[1,3274]},o($VWk,[2,1674],{803:2472,801:3275,350:$Vpj}),o($VXk,[2,1672]),{19:[1,3279],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,343:[1,3278],346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3277,534:3276,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vzh,[2,1229]),o($VHh,[2,1222]),{17:3280,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,394:$Vxi,395:$VSb,396:$V_d,397:$V$d,398:$V0e,399:$VYk,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2682,534:2680,554:1610,556:1609,661:1642,664:1597,667:3281,671:1589,677:3282,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vzh,[2,1230]),o($VHh,[2,1223]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,392:$VZk,402:$Vt8,441:$Vqf,509:1944,511:3286,518:3287,519:3285,523:1646},o($Vzh,[2,1428]),o($VHh,[2,1422]),o($Vzh,[2,1467]),o($VHh,[2,1466]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$V_k,402:$Vg8,523:3289,771:3290,772:3288},o($Vzh,[2,1430]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$V$k,402:$Vg8,523:3289,771:3290},o($Vzh,[2,1431]),o($Vzh,[2,1432]),o($VHh,[2,1423]),{19:[1,3293],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3294,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,554:3295},{17:3296,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,394:$Vxi,395:$VSb,396:$V_d,397:$V$d,398:$V0e,399:$V0l,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2682,534:2680,554:1610,556:1609,661:1642,664:1597,667:3297,671:1589,677:3298,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3300,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,167:$Vza,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,286:$VAa,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,399:$V1l,402:$Vg8,403:$V1e,404:$V2e,436:3303,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3302,534:3301,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3305,19:$V5,135:$V2l,136:$V3l,137:$V4l,138:$V5l,139:$V6l,140:$V7l,141:$V8l,142:$V9l,369:$Val,441:$VF5,795:3306},{17:3316,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,307:$Vbl,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,394:$Vcl,395:$VSb,396:$V_d,397:$V$d,398:$V0e,399:$Vdl,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3318,534:3317,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649,797:3319},{17:3323,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,209:$Vel,236:$Vnd,281:$VRb,283:$Vfl,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,461:3326,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3325,534:3324,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vgl,[2,593]),o($Vgl,[2,594]),o([19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,394,395,396,397,398,402,403,404,441,762,763,794],$VB9,{578:3329,166:$VC9,284:$VD9,298:$VE9,392:$Vhl,399:$Vil}),o([19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,395,396,397,398,402,403,404,441,762,763,794],$VB9,{578:3332,166:$VC9,284:$VD9,298:$VE9,399:$Vjl}),o([19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,394,395,396,397,398,399,402,403,404,441,762,763,794],$VB9,{578:3334,166:$VC9,284:$VD9,298:$VE9}),o([2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,214,225,231,233,235,239,242,244,245,246,248,257,266,274,275,278,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,319,320,322,325,326,332,333,334,335,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,571,577,656,663,668,1190],[2,615]),o([2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,233,239,242,244,246,266,274,275,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,319,320,322,325,326,332,333,334,335,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,571,577,656,663,668,1190],[2,618]),o($V2,$Vnc,{497:1375,499:1376,446:1377,496:3335,498:3337,442:3338,19:[1,3336],188:$Vta,207:$VQb,281:$VRb,328:$Vua,395:$VSb}),o($V2,[2,831]),o($V2,$Vnc,{446:1076,497:1375,496:3339,188:$Vta,328:$Vua}),o($V2,$Vnc,{446:1076,497:1375,496:3340,188:$Vta,328:$Vua}),o($V2,[2,841]),o($Vkl,[2,783]),o($Vll,[2,785],{442:3341,207:$VQb,281:$VRb,395:$VSb}),o($Vll,[2,789],{442:3342,207:$VQb,281:$VRb,395:$VSb}),o($Vml,[2,798]),o($Vml,[2,799]),o($V2,[2,834]),o($V2,$Vnc,{159:598,25:613,446:1076,497:1375,523:2116,518:2509,557:3343,496:3344,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,188:$Vta,328:$Vua,402:$Vg8}),o($V2,[2,832]),o($V2,[2,843]),o($V2,$Vpk,{159:598,25:613,523:1380,484:3345,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,833]),o($V2,[2,845],{25:613,159:3346,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8}),o($V2,[2,851]),o($V2,[2,848]),o($V2,[2,852],{159:598,25:613,523:1380,484:3347,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($Vnl,$Vol,{460:1723,535:3348,538:3349,536:3350,75:$Vce,244:$Vhe}),{19:[1,3353],328:[1,3351],833:[1,3352]},o($V2,[2,1771]),o([6,10,188,212,328],$Vol,{460:1808,536:3350,535:3354,75:$Vce,244:$Vhe}),{19:[1,3357],180:$Vpl,189:$Vql,834:3355,835:3356,845:3358,846:3359,1012:3360,1013:3362},o($V2,[2,1783]),o($V2,[2,1756]),o($V2,[2,1798]),o($V2,[2,1793]),o($V2,[2,1794]),{19:[1,3365],188:$Vta,328:$Vua,446:1076,497:3364},o($V2,[2,1819]),o($Vba,$Vii,{861:3366,398:$Vui}),o($V2,[2,1808]),o($V2,[2,1823]),{17:3372,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,518:1631,519:1630,523:1646,553:3371,554:3375,555:3373,556:3376,914:3367,915:3368,916:3369,917:3370,918:$Vrl},o($V2,[2,1809]),o($V2,[2,1825]),o($V2,[2,1826]),{19:[1,3377],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2709},{19:[1,3378],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2710},{19:[1,3379],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2711},{19:[1,3381],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3380,523:2116},o($V2,[2,1842]),o($V2,[2,1863]),o($V2,[2,1886]),o($Vsl,[2,2399]),{403:$V0d,404:$V1d,468:1754,472:1755,474:3382},o($Vsl,[2,2401]),o($Vsl,[2,2402]),o($Vsl,[2,2403]),o($Vsl,[2,2404]),o($Vsl,[2,2405]),o($Vsl,[2,2406]),o($Vsl,[2,2407]),o($Vsl,[2,2408]),o($Vsl,[2,2409]),o($Vsl,[2,2410]),o($Vsl,[2,2411]),o($Vsl,[2,2412]),o($V2,[2,1865]),{403:$V0d,404:$V1d,468:1754,472:1755,474:3385,953:3383,954:3384},o($Vmc,$Vtl,{877:3386,895:3387,1056:3388,352:$Vul}),o($V2,[2,1867]),o($V2,$Vvl,{19:[1,3390]}),o($V2,[2,1890]),o($Vwl,[2,757]),{19:[1,3391],253:[1,3392]},{19:[1,3394],219:$Vxl,879:3393,894:3395},o($V2,[2,1891]),o($V2,[2,1822]),o([2,6,10,19,40,121,167,188,212,237,261,275,278,286,328,452,543,952,957],[2,747]),o([2,6,10,40,121,167,188,212,237,261,275,278,286,328,452,543,952],[2,748]),{403:$V0d,404:$V1d,468:1754,472:1755,474:3397},o($Vyl,[2,755]),{19:[1,3399],324:[1,3398]},o($V2,[2,1827],{324:[1,3400]}),o($V2,[2,1817]),{19:[1,3401]},{19:[1,3404],339:[1,3402],868:[1,3403]},o($V2,[2,1837]),o($Vmc,$Vzl,{904:3405,94:$VAl,394:[1,3406]}),o($V2,$VBl,{19:[1,3410],328:[1,3408],833:[1,3409]}),o($V2,[2,1931],{394:$Vr9}),o($V2,$Vzl,{904:3411,94:$VAl}),o($VCl,[2,1975]),o($VDl,[2,1977],{394:[1,3412]}),{394:[1,3413]},o($V2,[2,1926]),o($V2,[2,1934]),o($V2,[2,1930]),o($V2,[2,1941]),o($V2,[2,1942]),{17:3323,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3414,534:3324,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vmc,$VEl,{882:3415,892:3416,352:[1,3417]}),o($V2,$VEl,{882:3418,352:$VFl}),{19:[1,3421],134:$VGl},o($V2,$VHl,{19:[1,3422]}),o($Vmc,[2,644]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3425,523:2116,886:3423,889:3424},o($V2,[2,1877]),{394:$VIl,399:$VJl},o($VKl,[2,733]),o($VKl,$VLl,{387:[1,3428]}),o($VMl,$VNl,{1024:3429,1025:3430,115:[1,3431]}),o($VOl,$VNl,{1024:3432,115:$VPl}),{19:[1,3435],193:[1,3434]},o($V2,[2,1911]),{193:[1,3436]},{17:2927,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:[1,3441],402:$Vt8,441:$VF5,500:3438,501:3440,509:2926,518:2925,523:2116,531:2606,532:2924,901:3437,902:3439},o($Vmc,$VQl,{489:3442,35:$VRl,105:$VSl}),o($V2,$VQl,{489:3445,35:$VRl,105:$VSl}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3425,523:2116,886:3448,889:3449,976:3446,978:3447},o($V2,[2,2015]),o($V2,[2,2017],{281:[1,3450]}),o($V2,[2,2025]),o($V2,[2,2029]),o($V2,[2,2032]),o($V2,[2,2033]),{19:[1,3452],316:[1,3451]},o($V2,[2,2039]),o($Vmc,$Vnc,{497:1375,499:1376,446:1377,496:3453,498:3454,188:$Vta,328:$Vua}),o($V2,$Vnc,{159:598,25:613,446:1076,523:1250,497:1375,496:3455,522:3456,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,188:$Vta,328:$Vua,402:$Vg8}),o($V2,$Vnc,{446:1076,497:1375,496:3457,188:$Vta,328:$Vua}),o($V2,[2,2769]),o($V2,$Vnc,{446:1076,497:1375,496:3458,188:$Vta,328:$Vua}),o([19,348,352,398,577],$Vnc,{497:1375,499:1376,446:1377,496:3459,498:3460,188:$Vta,328:$Vua}),o($VIe,[2,2992]),o($VTl,$Vnc,{446:1076,497:1375,496:3461,188:$Vta,328:$Vua}),o([19,311,348,352,577],$Vnc,{497:1375,499:1376,446:1377,496:3462,498:3463,188:$Vta,328:$Vua}),o($VIe,[2,2981]),o($VTl,$Vnc,{446:1076,497:1375,496:3464,188:$Vta,328:$Vua}),o($VIe,[2,2985]),{384:$VJe,537:3466,539:3465},o($VIe,$VUl,{1037:3467,1035:3468,463:3469,117:$VVl,274:$VWl}),{64:[1,3472]},o($VIe,$VUl,{1035:3468,463:3469,1037:3473,117:$VVl,274:$VWl}),o($VXl,$VUl,{1035:3468,463:3469,1037:3475,117:$VVl,274:$VWl,1209:[1,3474]}),{19:[1,3476],64:[1,3477]},{441:[1,3478],790:$VYl},o($VZl,[2,1504],{790:[1,3480]}),o($V_l,$Vol,{460:1808,536:3350,535:3481,75:$Vce,244:$Vhe}),{303:$VYj},o($V2,[2,1765]),{188:$Vta,328:$Vua,446:1076,497:3364},{324:[1,3482]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:3371,554:2201,914:3483,916:3369},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3484,523:2116},o($V2,$Vtl,{1056:3388,877:3485,352:$V$l}),o($V2,$Vvl),{253:[1,3487]},{219:$V0m,879:3488},{339:[1,3490],868:[1,3491]},o($V2,$Vzl,{904:3492,94:$VAl,394:$V1m}),o($V2,$VBl,{328:[1,3494],833:[1,3495]}),o($V2,$VEl,{882:3496,352:$VFl}),{134:$VGl},o($V2,$VHl),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3498,523:2116,886:3497},{115:$VPl,315:$VNl,1024:3499},{193:[1,3500]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:[1,3503],402:$Vg8,500:3502,518:2607,523:2116,531:2606,901:3501},o($V2,$VQl,{489:3504,35:$VRl,105:$VSl}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3498,523:2116,886:3506,976:3505},o($V2,[2,3038]),{398:$VSe,1231:3507},{394:$V2m,399:$V3m},o($V4m,$V5m,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($V2,[2,3039]),o($V2,[2,3040]),o($V2,[2,3034]),{398:$VTe,1231:3507,1232:3510},{398:$VSe,1220:3511,1231:1824},{2:$Vsf,394:$V6m,399:$Vtf,502:3512},{2:$Vsf,399:$Vtf,502:3514},{19:$V7m,394:$V8m,399:$V3m},o($V9m,[2,1207],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,394:[1,3517]}),{17:3518,19:$V5,441:$VF5},o($Vam,$V5m,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($V2,[2,3087]),{19:[1,3519],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3520,160:$Va8,161:$Vb8},o($VXa,[2,3049],{159:598,25:613,523:1250,522:3521,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($VXa,$Vbb,{513:1163,512:3522,398:$VIf}),o($VYa,$Vbb,{513:1163,514:3523,512:3524,515:3525,398:$Vcb}),o($VXa,[2,3055],{159:598,25:613,523:1250,522:3526,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($Vbm,$Vbb,{513:1163,512:3527,398:$VIf}),o([19,188,267,273,328,348,577],$Vbb,{513:1163,515:3525,514:3528,512:3529,398:$Vcb}),o($V$a,$V1,{4:3530}),o($V$a,$V1,{4:3531}),o($Vp9,$Vkc),o($Vmc,$Vcm,{1173:3532,1181:3533,352:$Vdm,394:$VCi}),o($V2,[2,2807],{394:$VDi}),o($V2,[2,2808]),{166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,439:$Vh8,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:3535,1187:594,1189:1257,1190:$Vm8,1191:$Vn8},{166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,439:$Vh8,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:3536,1187:594,1189:1257,1190:$Vm8,1191:$Vn8},o($Vzi,[2,2837]),o($V2,[2,2840]),o($Vzi,[2,2838]),o($V2,[2,2841]),o($V2,[2,2842]),o($V2,$Vem,{19:[1,3537]}),o($V2,[2,2815]),{19:[1,3539],106:$V3f,132:$V4f,309:$V5f,828:3538},{19:[1,3541],28:[1,3540]},{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:3542},o($VEi,[2,2886]),o($VEi,[2,2887]),o($VEi,[2,2888]),o($Vmc,$VAi,{1175:3543,1182:3544,352:$VBi,394:$VCi}),o($V2,[2,2816],{394:$VDi}),o($V2,[2,2817]),o($Vfm,[2,698]),o($Vfm,[2,699]),o([2,6,10,19,37,53,75,114,115,117,121,167,188,190,212,244,247,264,267,273,274,275,286,307,315,324,328,335,348,352,394,398,399,543,577,837,957,1190],[2,697]),{17:3545,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,518:3547,519:3546,523:1646},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,516:3548,518:1880,523:2116},o($V2,[2,2781]),o($V2,$Vfd,{624:1565,608:3549,351:$Vgd}),o($V2,[2,2789]),o($V2,[2,2788]),o($V2,[2,2787]),{19:$VJi,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$Vs8,402:$Vt8,509:766,522:760,523:764,525:762,666:761,672:763,705:3550,707:2728,717:756,720:757,721:758,724:759},o($Vnb,[2,1315],{710:1918,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),o($Vgm,$Vhm,{712:3551,715:3552,265:$Vim,324:$Vjm}),o($VVi,$Vhm,{712:3555,265:$Vim,324:$Vkm}),o($VVi,$Vhm,{712:3557,265:$Vim,324:$Vkm}),o($Vbf,[2,1323]),o($VLi,[2,1339]),o($VLi,[2,1340]),o($VLi,[2,1351]),o($Vbf,[2,1325]),o($VLi,[2,1341]),o($Vbf,[2,1326]),o($VLi,[2,1342]),o($Vbf,[2,1327]),o($VLi,[2,1343]),o($Vbf,[2,1328]),o($VLi,[2,1344]),o($VLi,[2,1345]),o($VLi,[2,1352]),o($Vbf,[2,1330]),o($VLi,[2,1346]),o($Vbf,[2,1331]),o($VLi,[2,1347]),o($Vbf,[2,1332]),o($VLi,[2,1348]),o($Vbf,[2,1333]),o($VLi,[2,1349]),o($VLi,[2,1350]),o($VLi,[2,1353]),o($VVi,$Vhm,{712:3558,265:$Vim,324:$Vkm}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8,522:760,523:1250,666:761,705:3559,717:1273,720:1274},o($Vlm,$Vhm,{712:3551,265:$Vim,324:$Vkm}),o($Vlf,[2,1361]),o($Vof,[2,1365]),{19:[1,3560],727:$VZi},o($Vof,[2,1364]),{382:[1,3561]},{19:[1,3564],92:$Vmm,336:$Vnm},{399:[1,3565]},{2:$Vsf,399:$Vtf,502:3566},o($Vom,$V8g,{442:3567,207:$VQb,281:$VRb,395:$VSb}),{382:$V9g},{398:[1,3568]},o($Vof,[2,1363]),{382:[1,3569]},{92:$Vmm,336:$Vnm},o($VOb,$Vpm,{527:3570,528:3571,281:$V$i}),o($VWb,[2,717]),o($Vqm,[2,718]),o($VWb,[2,720],{527:2773,524:3572,281:$Vrm}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,441:$Vqf,509:1944,511:3575,523:3574},o($V1j,[2,1394]),o($VF8,[2,1398]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3576},o($V2,[2,2822]),{19:[1,3579],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:[1,3578],148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3577},o($V2,[2,2827]),o($Vsm,[2,2844]),o($V2,[2,2848]),o($Vsm,[2,2845]),o($V2,[2,2849]),o($V2,[2,2850]),o($Vsm,[2,2846]),o($Vsm,[2,2847]),o($V_b,[2,1421],{744:1978,184:$Vzf}),o($Vtm,$Vum,{798:3580,326:$Vvm}),o($V5j,[2,1624]),o($V$b,[2,1632]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8,522:760,523:1250,604:3582,666:761,701:783,703:750,705:1272,706:753,717:1273,720:1274},o([2,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,285,311,321,762,763],$Vum,{798:3583,326:$Vvm}),o($V2,[2,3186]),o($V7j,[2,1239]),o($V7j,[2,1240]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1285,591:3584,593:792},{399:[1,3585]},{2:$Vsf,399:$Vtf,502:3586},{2:$Vsf,399:$Vtf,502:3587},o($V7c,[2,858]),o([19,311,352,577],$Vnc,{497:1375,499:1376,446:1377,498:3463,496:3588,188:$Vta,328:$Vua}),o([19,352,398,577],$Vnc,{497:1375,499:1376,446:1377,498:3460,496:3589,188:$Vta,328:$Vua}),{43:[1,3590]},o($VGf,$V_i,{527:2773,524:3591,281:$Vrm}),o($V2,$Vmf,{719:3592,264:$Vnf}),o($V2,$Vnc,{446:1076,497:1375,496:2931,188:$Vta,328:$Vua}),{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:3593},o($V2,$VAi,{1175:3594,352:$Vwm,394:$Vxm}),{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:3597},{394:$Vym,399:$VGi},{231:$V4j},{837:[1,3599]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:2782},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:2784,523:1250},{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:3600},{166:$Vc8,186:$Vd8,192:$Ve8,196:$Vf8,439:$Vh8,577:$Vi8,826:$Vj8,868:$Vk8,1166:$Vl8,1170:3601,1187:594,1189:1257,1190:$Vm8,1191:$Vn8},o($V2,$Vwj,{394:$Vxm}),{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:3602},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:[1,3604],107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:595,1174:3603},{231:$Vxj},{307:[1,3605]},o($V2,$Vfd,{624:1565,608:2720,351:$Vgd}),o([2,6,10,170,176,184,206,231,242,265,266,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,445,577,656,663,957,1190],$Vmf,{719:2757,264:$Vnf}),{384:$VPf,537:3606},{384:$VPf,537:3607},o($Vlb,$Vnc,{446:1076,497:1375,496:2966,188:$Vta,328:$Vua}),{788:3608,837:$Vxc},o($VCj,$VAj,{1303:3609,307:$VDj,394:$VJj}),o($Vjc,$VKj,{581:2986,597:2996,307:$VY8,394:[1,3610],583:$VLj}),{307:$VY8,581:2993,597:2996},{307:$VQj,394:[1,3611]},o([2,6,10,170,176,206,231,242,307,309,310,320,325,347,351,394,399,445,583,656,663,957,1190],$VJb,{159:598,25:613,523:1199,436:1205,669:2435,698:3005,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,233:$VSg,239:$VTg,286:$VAa,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,402:$Vg8}),o($VTb,$VUb,{728:1967,595:2799}),o($V2,$Vnc,{446:1076,497:1375,496:3335,442:3612,188:$Vta,207:$VQb,281:$VRb,328:$Vua,395:$VSb}),{47:$VUj,75:$Vce,88:[1,3613],244:$Vhe,460:1808,536:3011},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:3614,523:1250},o($V_l,$Vol,{460:1808,536:3350,535:3615,75:$Vce,244:$Vhe}),{328:[1,3616],833:[1,3617]},{180:$Vzm,189:$VAm,834:3355,835:3356,1012:3618},{316:[1,3621]},o([6,10,75,244,952],$VVj,{949:3024,811:3622,946:3623,451:3624,40:$VWj,452:$VXj}),o($Vfc,$VOc,{493:3625,311:$VKe}),o($V0k,$V$j,{1102:3034,1060:3626,398:$V1k}),{193:[1,3627]},{398:[1,3629],1119:3628},{167:$V3k},{398:$V5k,1070:3630},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:3631},{403:$V0d,468:3632},o($V2,$V6k,{488:3061,35:$V7k,105:$V8k,213:$V9k,254:$Vak}),{188:$Vta,328:$Vua,446:1076,497:3069},o($V2,$Vbk,{1165:3633,94:$Vck,330:$Vdk}),{324:[1,3634]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3080,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3082,160:$Va8,161:$Vb8},{398:$V5k,1070:3085},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:3635},o($V2,$Vnc,{446:1076,497:1375,496:3636,188:$Vta,328:$Vua}),o($V2,$Vek,{443:3637,307:$VVc,312:$VWc}),o($V2,$Vnc,{446:1076,497:1375,496:3638,188:$Vta,328:$Vua}),o($V2,$Vjk,{319:$Vkk}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,166:$Vlk,193:$VG9,262:$VI9,342:$VL9,402:$Vg8,447:3639,523:3108},o($V2,$Vmk,{443:3640,307:$VVc,312:$VWc}),o($V2,$Vnk,{165:$Vok}),{319:[1,3641]},o($V2,$Vqk),o([348,352,398,577],$Vnc,{446:1076,497:1375,496:3642,188:$Vta,328:$Vua}),o([311,348,352,577],$Vnc,{446:1076,497:1375,496:3643,188:$Vta,328:$Vua}),{384:$VPf,537:3644},o($VTb,$VUl,{1035:3468,463:3469,1037:3475,117:$VVl,274:$VWl}),{790:$VYl},{348:$VBk},o($VCk,$VDk,{665:3645,322:$VGk}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3646,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3647,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3648,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3649,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{233:$VSg,239:$VTg,288:[1,3651],312:[1,3650],319:$VUg,332:$VWg,334:$VXg,669:3193},{398:[1,3652]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3653,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3654,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3655,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3656,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3657,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3658,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2,$VEk,{1239:3659,350:$Vfj}),{77:$VDk,322:$VGk,665:3660},o($VJk,$VKk,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VJk,$VLk,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VJk,$VMk,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VOk,$VPk,{669:2435}),{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,399:$VQk,669:2435},{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,350:$Vpj,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,669:2435,670:3264,801:2896,803:2472},{301:[1,3661],302:$VVk,350:$Vpj,803:3273},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3662,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,399:$VYk,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:3663,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,392:$VZk,402:$Vg8,518:3287,523:2116},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3294,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,399:$V0l,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:3664,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,399:$V1l,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3665,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{135:$V2l,136:$V3l,137:$V4l,138:$V5l,139:$V6l,140:$V7l,141:$V8l,142:$V9l,369:$Val,795:3666},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,399:$Vdl,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3667,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,209:$Vel,236:$VQf,281:$VRb,283:$Vfl,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,461:3326,468:1650,472:1651,504:1604,518:1631,523:2116,533:3668,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VBm,$VB9,{578:3669,166:$VC9,284:$VD9,298:$VE9,392:$Vhl,399:$Vil}),o($VBm,$VB9,{578:3670,166:$VC9,284:$VD9,298:$VE9,399:$Vjl}),o([26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,395,396,397,398,399,402,403,404,762,763,794],$VB9,{578:3671,166:$VC9,284:$VD9,298:$VE9}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3672,160:$Va8,161:$Vb8},o($VCm,$Vbb,{513:1163,512:3524,398:$VIf}),o([188,267,273,328,348,577],$Vbb,{513:1163,512:3673,398:$VIf}),o($Vjc,[2,880]),o($Vtj,[2,883]),o($Vtj,[2,882]),o([311,352,577],$Vnc,{446:1076,497:1375,496:3674,188:$Vta,328:$Vua}),o([352,398,577],$Vnc,{446:1076,497:1375,496:3675,188:$Vta,328:$Vua}),{19:[1,3677],116:[1,3676]},o($V2,[2,2049]),{116:[1,3678]},{116:[1,3679]},{116:[1,3680]},{394:$VDm,399:$VJl},{2:$Vsf,399:$Vtf,502:3682},o($VF8,[2,735],{394:[1,3683]}),o($VEm,$VLl,{387:[1,3684]}),{387:[1,3685]},o($VFm,[2,744]),o($V2,$VGm,{19:[1,3686]}),o($V2,[2,2091]),o($V2,[2,2090]),o($V2,[2,2084]),o($V2,$Vnc,{446:1076,497:1375,496:3687,188:$Vta,328:$Vua}),o($V2,[2,2098]),o($V2,[2,2096]),o($V2,[2,2094]),o($V2,[2,2092]),o($V6g,[2,2796]),o($V7g,[2,1250]),{382:[1,3688]},o($V7g,[2,1253]),o($V2,$VHm,{394:$VCi}),o($V2,[2,2918],{394:$VDi}),o($V2,[2,2919]),o($Vo8,$V1b,{1171:3689,1179:3690,324:$V2b,394:$V3b}),o($V2,[2,2922],{394:$V6b}),o($V2,[2,2923]),o($V2,$VIm,{394:$VCi}),o($V2,[2,2932],{394:$VDi}),o($V2,[2,2933]),{19:[1,3692],307:[1,3691],394:$V4b},o($Vrc,$V5b,{523:595,159:598,25:613,1174:3693,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,2935]),o($V2,[2,2910],{394:$V4b}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3694},o($V2,[2,2946]),{19:[1,3697],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$VJm,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3695},o($V2,[2,2951]),o($V2,[2,2778]),o($VMl,$VKm,{1251:3698,87:$VLm,1230:$VMm}),o([6,10,315],$VKm,{1251:3701,87:$VLm,1230:$VMm}),o($Vmc,$Vol,{460:1723,536:3350,535:3702,538:3703,75:$Vce,244:$Vhe}),o($V2,$Vol,{460:1808,536:3350,535:3704,75:$Vce,244:$Vhe}),{384:$VPf,537:3705},{384:$VPf,537:3706},o($V2,$Vol,{460:1808,536:3350,535:3707,75:$Vce,244:$Vhe}),o($Vyj,[2,3156]),o($Vlb,[2,3161]),o($Vlb,[2,3160]),{837:[1,3708]},o($V2,[2,3170],{788:3709,837:$Vxc}),{837:[1,3710]},{837:[1,3711]},o($Vmc,$Vfd,{624:1565,608:3712,616:3713,351:$Vhd}),o($V2,$Vfd,{624:1565,608:3714,351:$Vgd}),{19:$Veg,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:2200,554:2201,1308:3715,1309:3716,1310:2198},{19:[1,3718],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$Vs8,402:$Vt8,509:766,522:760,523:764,525:762,666:761,672:763,701:3717,702:3719,703:750,704:751,705:752,706:753,707:754,708:755,717:756,720:757,721:758,724:759},o($V2,$Vfd,{624:1565,608:3720,351:$Vgd}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:$VVb,402:$Vg8,522:760,523:1250,666:761,701:3717,703:750,705:1272,706:753,717:1273,720:1274},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:2200,554:2201,1245:3721,1308:2196,1310:2203},{19:$VBh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3724,534:3725,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649,1311:3722,1312:3723},o($VGj,[2,3408]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,392:$VNm,402:$Vg8,518:3287,523:2116},o($V2,$Vfd,{624:1565,608:3727,351:$Vgd}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:2200,554:2201,1308:3715,1310:2203},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3728,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119,1311:3722},o($Vjc,[2,868]),o($Vjc,[2,870]),o($Vtj,[2,886]),o($Vtj,[2,891],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,697:2211,533:2834,597:2996,581:3729,580:3731,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,307:$VY8,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,394:[1,3730],395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{2:$Vfg,17:3734,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,392:$Vgg,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2214,534:2218,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,697:3732,699:3735,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649,805:3733,806:$Vhg},o([6,10,170,176,206,231,242,309,310,320,325,347,399,445,656,663,957],$Vfd,{616:1569,608:1570,624:1571,598:3736,601:3738,19:[1,3737],351:$Vhd}),o([2,6,10,170,176,206,231,242,309,310,320,325,347,399,445,656,663],$Vfd,{608:1564,624:1565,598:3739,351:$Vgd}),o($Vjc,[2,869]),o($Vtj,[2,893]),o($Vtj,[2,887]),o([2,6,10,170,176,206,231,242,309,310,320,325,347,399,445,656,663,957],$Vfd,{608:1564,624:1565,598:3736,351:$Vgd}),o($Vtj,[2,888]),o($VRj,[2,1272],{394:$VOm}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,580:3741,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:2211,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VTj,$VSj,{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:3167,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,233:$VSg,236:$VQf,239:$VTg,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,319:$VUg,321:$Vtd,322:$VTf,323:$Vvd,332:$VWg,334:$VXg,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2890,554:2108,661:1642,664:1597,669:3169,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vtj,[2,892]),{17:3744,19:$VPm,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,392:$Vgg,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2214,534:2218,554:1610,556:1609,580:3742,588:3743,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,697:2211,699:2213,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,580:3746,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:2211,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VPj,[2,1264]),o($VTj,[2,1268]),{2:$VQm},o($VTj,[2,1266]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3748},{398:$V8i,827:3749},o($V2,[2,1737]),{19:[1,3751],106:$VTh,132:$VUh,309:$VVh,828:3750,829:3752},o($V2,[2,1741]),o($V2,[2,1742]),o([19,96],$Vnc,{497:1375,499:1376,446:1377,496:3753,498:3754,188:$Vta,328:$Vua}),o($V2,[2,1747]),o($V2,[2,1748]),{19:[1,3757],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:2235,523:2234,529:3760,530:3761,955:3755,958:3756,959:3758,967:3759},o($V2,[2,2140]),o($V2,$VRm,{19:[1,3762]}),{2:[1,3763]},o([6,10,19,952],$Vol,{460:1723,536:3350,535:3764,538:3765,75:$Vce,244:$Vhe}),o($VSm,$Vol,{460:1808,536:3350,535:3766,75:$Vce,244:$Vhe}),o([2,6,10,19,37,75,90,114,117,121,167,212,244,258,269,274,275,286,328,335,389,394,399,543,952,957],[2,2119]),o($VTm,[2,2125]),{403:[1,3768],404:[1,3769],468:1754,472:1755,474:3767},o($VUm,[2,579]),o($VUm,[2,580]),o($V2,[2,1718]),o([6,10,19,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,188,250,328,352,402,577,1190],[2,659]),o($VZj,[2,661]),o([19,121,167,286],$VVj,{949:3024,451:3624,946:3770,40:$VWj,452:$VXj}),o([6,10,121],$VVj,{949:3024,451:3624,946:3771,40:$VWj,452:$VXj}),o($V_j,[2,2586]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:3774,554:2201,1103:3773,1104:3772},o($V0k,$V$j,{1102:3034,1060:3775,398:$V1k}),o($VVm,$VVj,{949:3024,451:3624,946:3776,40:$VWj,452:$VXj}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:3778,554:2201,1103:3777},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,441:$Vqf,509:1944,511:3779,523:3058},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3780},{19:[1,3782],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:3784,523:764,525:3785,1106:3781,1112:3783},o($V2,[2,2603]),{19:[1,3787],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3786,534:3788,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($V2,[2,2639],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:3789,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3795,160:$Va8,161:$Vb8,399:$VWm,1121:3791,1122:3792,1123:3793,1124:3794},{403:$V0d,468:3796},o($V2,[2,2534]),{19:[1,3798],255:$VXm,1071:3797,1074:3799},o($V2,[2,2494],{1071:3801,255:$VYm}),{17:3807,19:$V5,54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,399:$Vgn,441:$VF5,561:3806,1093:3804,1095:3805},{398:$V5k,1070:3827},{255:$VYm,1071:3828},{54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,399:$Vgn,561:3806,1093:3829},{398:$V4k,1070:3830,1073:3831},o($V2,[2,2504],{159:598,25:613,523:1466,529:3832,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{398:$V5k,1070:3833},o($Vmc,$Vhn,{1091:3834,1092:3835,204:[1,3836]}),o($Vkg,[2,727]),o($V2,[2,2734]),{398:$V5k,1070:3837},o($V2,[2,2694]),o($V2,[2,2698]),o($V2,[2,646]),o($V2,[2,647]),o($V2,[2,648]),o($V2,[2,649]),o($V2,$V6k,{488:3838,35:$V7k,105:$V8k,213:$V9k,254:$Vak}),o($V2,[2,2699]),o($V2,[2,2730]),o($V2,[2,2739]),o($V2,[2,2740]),o($V2,[2,2738]),o($V2,$Vin,{19:[1,3839]}),o($Vmc,[2,2748]),o($Vmc,[2,2749]),o($V2,[2,2744]),o($V2,[2,2745]),{19:[1,3841],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:3840,523:764,525:3842},o($V2,[2,2753]),o($V2,[2,2756]),o($V2,[2,2758]),o($V2,[2,2720]),o($V2,[2,2726]),o($V2,[2,2762]),o($V2,[2,2705]),o($V2,[2,2712]),{398:$V5k,1070:3843},o($V2,[2,2717]),{398:$V4k,1070:3844,1073:3845},o($V2,[2,2708],{159:598,25:613,523:1466,529:3846,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{398:$V5k,1070:3847},o($V2,[2,2722]),{403:$V0d,404:$V1d,468:1754,472:1755,474:3848},{19:[1,3850],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3849},o($V2,[2,3247],{159:598,25:613,523:3851,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,3245],{159:598,25:613,523:3852,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($Vng,[2,683]),o($Vng,[2,684]),o($Vgk,[2,613]),o($V2,$Vjn,{19:[1,3853]}),o($V2,[2,3271]),o($V2,[2,3269]),o($V2,[2,3272]),o($Vik,[2,616]),{403:$V0d,404:$V1d,468:1754,472:1755,474:3854},o($V2,[2,3279],{468:1754,472:1755,474:3855,403:$V0d,404:$V1d}),o($V2,[2,3284]),o($V2,[2,3285]),{19:[1,3857],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3856},o($V2,[2,3290],{159:598,25:613,523:3858,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,3289]),{19:[1,3860],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3859},o($V2,[2,3307],{159:598,25:613,523:3861,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3862},o($V2,[2,3314]),o($V2,[2,3321]),o($V2,[2,3322]),o($V2,[2,3336]),o($V2,[2,3342]),o($V2,[2,3340]),o($V2,[2,3337]),o($V2,[2,3344]),{403:$V0d,468:3863},o($V2,[2,3352],{468:3864,403:$V0d}),{403:$V0d,468:3865},o($V7d,[2,641]),o($VNf,[2,642]),{403:$V0d,468:3866},o($V2,[2,3367]),{399:[1,3867]},o($V2,[2,3375]),o($Vmc,[2,3384]),o($V2,[2,3385]),{403:$V0d,404:$V1d,468:1754,472:1755,474:3868},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3869},o($Vkn,$Vln,{611:3870,627:3871,206:$Vmn}),o($Vrk,$Vnn),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3873,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3875,554:2108,633:3874,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Von,$Vln,{627:3871,611:3876,206:$Vmn}),o($Von,$Vln,{627:3871,611:3877,206:$Vmn}),o($Von,$Vln,{627:3871,611:3878,206:$Vmn}),o($Vpn,$Vln,{619:3879,611:3880,627:3881,206:$Vqn}),o($Vyk,$Vnn,{2:[1,3884],19:[1,3883]}),{19:[1,3885],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3887,534:3886,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vxk,$Vsk,{626:3137,610:3888,310:$Vtk}),o($Vrn,$Vsk,{626:3137,618:3889,610:3890,310:$Vzk}),{19:[1,3892],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3895,534:3894,554:1610,556:1609,633:3893,635:3891,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VPg,[2,980]),o($Vxk,$Vsk,{626:3137,610:3896,310:$Vtk}),o($VPg,$VJg,{625:2362,444:2363,609:3897,231:$VKg,309:$VLg,445:$VMg}),o($Vxk,$Vsk,{626:3137,610:3898,310:$Vtk}),o($Vrn,$Vsk,{626:3137,618:3899,610:3900,310:$Vzk}),o($Vsn,$Vtn,{19:[1,3901],394:$Vun}),o($Vsn,[2,3028]),o($Vsn,[2,3029],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,697:2211,669:2398,533:2834,580:2998,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vr9,286:$Vr9,168:$Vmd,207:$VQb,233:$VSg,236:$VQf,239:$VTg,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,319:$VUg,321:$Vtd,322:$VMj,323:$Vvd,332:$VWg,334:$VXg,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,391:$VZf,392:$VNj,393:$V3h,394:$VOj,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($Vsn,$Vtn,{394:$VOm}),{398:$Vvn,1212:3903,1215:3904},o($V2,[2,3014]),{398:$Vvn,1212:3906,1215:3904},o($VNk,[2,1139],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VNk,[2,1140],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VNk,[2,1141],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VNk,[2,1142],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VNk,[2,1173],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VNk,[2,1177],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VNk,[2,1181],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VNk,[2,1182],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($Vzh,[2,1197]),o($VOk,$Vwn,{669:2435}),o($VOk,$Vxn,{669:2435}),o($VOk,$Vyn,{669:2435}),o($VOk,$Vzn,{669:2435}),o($VOk,$VAn,{669:2435}),o($VBn,[2,1143],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,391:$Vmj,392:$Vnj,393:$Voj}),o($VBn,[2,1144],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,391:$Vmj,392:$Vnj,393:$Voj}),o($VBn,[2,1145],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,391:$Vmj,392:$Vnj,393:$Voj}),o($VBn,[2,1146],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,391:$Vmj,392:$Vnj,393:$Voj}),{398:[1,3907]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3908,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vzh,[2,1193]),o($VTb,$VUb,{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,728:1967,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:2671,667:3909,595:3910,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,668:[1,3911],669:2435},o($VCn,[2,1174],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VCn,[2,1178],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VNk,[2,1183],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VNk,[2,1184],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VNk,[2,1185],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($Vzh,[2,1119]),{398:[1,3913],673:3912},{19:[1,3916],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3915,534:3914,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vzh,[2,1195]),o($VEh,[2,1115]),o($Vzh,[2,1128],{304:[1,3918],323:[1,3917],346:[1,3919]}),o($VCk,$VDn,{19:[1,3920]}),{151:$VEn,298:[1,3921],304:$VFn,323:$VGn,346:$VHn},o($Vzh,[2,1147]),o($VBn,[2,1151],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg,391:$Vdh,392:$Veh,393:$Vfh}),o($VIn,$VJn,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Vzh,[2,685]),o($Vzh,[2,686]),o($Vzh,[2,1148]),o($VBn,[2,1152],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg,391:$Vdh,392:$Veh,393:$Vfh}),o($VIn,$VKn,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Vzh,[2,1149]),o($VBn,[2,1153],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg,391:$Vdh,392:$Veh,393:$Vfh}),o($VIn,$VLn,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Vzh,[2,1150]),o($VBn,[2,1154],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg,391:$Vdh,392:$Veh,393:$Vfh}),o($VIn,$VMn,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Vzh,[2,1156]),o($VTb,$VUb,{159:598,25:613,728:1214,694:1395,695:1396,442:1398,671:1589,664:1597,684:1598,685:1599,679:1600,681:1601,687:1602,688:1603,504:1604,682:1605,683:1607,691:1608,556:1609,554:1610,753:1617,746:1618,755:1619,748:1620,757:1621,758:1622,759:1623,690:1625,750:1626,751:1627,752:1628,693:1629,519:1630,518:1631,768:1632,769:1633,770:1634,765:1635,766:1636,767:1637,661:1642,692:1643,470:1644,473:1645,523:1646,796:1649,468:1650,472:1651,696:1652,534:2680,533:2682,595:3926,667:3927,596:3928,677:3929,17:3930,19:$VAh,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,394:$Vxi,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,762:$V3e,763:$V4e,794:$V5e}),{233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,668:[1,3931],669:2417},{19:[1,3933],233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,668:[1,3932],669:2435,674:2434},o($VNn,[2,1172],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($Vzh,[2,1175]),o($VCn,[2,1176],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VOn,$VPn,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Vzh,[2,1179]),o($VCn,[2,1180],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VOn,$VQn,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Vzh,[2,1186]),o($VNk,[2,1189],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg}),o($VOk,$VRn,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh}),o($Vzh,[2,1187]),o($VNk,[2,1190],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg}),o($VOk,$VSn,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh}),o($Vzh,[2,1188]),o($VNk,[2,1191],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg}),o($VOk,$VTn,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh}),o($V2,[2,3103]),o($V2,[2,3104]),o($V2,$VUn,{1240:3935,1239:3936,19:[1,3934],350:$Vph}),o($VNk,[2,1647],{669:2417}),o($Vzh,[2,1652]),o($VOk,$Vwn,{674:2434,669:2435}),o([2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,183,184,194,206,209,231,242,246,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,317,318,320,322,325,326,333,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,656,663,668,1190],$Vpk,{669:2398,233:$VSg,239:$VTg,319:$VUg,332:$VWg,334:$VXg}),o($VNk,[2,1648],{669:2417}),o($Vzh,[2,1653]),o($VOk,$Vxn,{674:2434,669:2435}),o($VNk,[2,1649],{669:2417}),o($Vzh,[2,1654]),o($VOk,$Vyn,{674:2434,669:2435}),o($VNk,[2,1650],{669:2417}),o($Vzh,[2,1655]),o($VOk,$Vzn,{674:2434,669:2435}),o($VNk,[2,1651],{669:2417}),o($Vzh,[2,1656]),o($VOk,$VAn,{674:2434,669:2435}),{19:[1,3937],77:[1,3938]},o([19,77,151,298,304,323,346],$VDn),o($Vzh,[2,1137]),o($Vzh,[2,1138]),o($VEh,[2,1098]),o($Vzh,[2,1199]),o($Vzh,[2,1204]),{2:$VRk,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,302:$VTk,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3939,554:2108,661:1642,664:1597,676:3940,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,343:$VVn,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,669:2435},o($VWn,[2,1687],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:3942,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($Vzh,[2,1670]),o($Vzh,[2,1671]),o($Vzh,[2,1200]),{2:$VRk,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,301:$VSk,302:$VTk,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,343:$VUk,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3258,554:2108,661:1642,664:1597,676:3943,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VEh,[2,1117]),o($Vzh,[2,1202]),o($Vzh,[2,1203]),o($Vzh,[2,1659]),{2:$VRk,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,302:$VTk,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3944,554:2108,661:1642,664:1597,676:3945,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{19:[1,3948],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3946,534:3947,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{2:$VRk,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,302:$VTk,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,343:$VUk,346:$Vwd,350:$Vpj,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3949,554:2108,661:1642,664:1597,676:3950,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119,801:3951,803:2472},o($VEh,[2,1657]),o($VWk,[2,1675],{803:2472,801:3952,350:$Vpj}),o($VXk,[2,1673]),{2:$VRk,302:$VTk,676:3953},o($VWk,[2,1678],{803:3273,350:$Vpj}),o($VWn,[2,1680],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,343:[1,3954],385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),{19:[1,3956],233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,343:[1,3955],385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,669:2435,674:2434},{19:[1,3958],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3414,534:3957,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VWn,[2,1689],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,669:2398,533:3959,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,233:$VSg,236:$VQf,239:$VTg,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,319:$VUg,321:$Vtd,322:$VMj,323:$Vvd,332:$VWg,334:$VXg,343:[1,3960],346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,391:$VZf,392:$V2h,393:$V3h,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{2:$Vsf,394:$V6m,399:$Vtf,502:3961},{19:[1,3962],394:$V8m,399:$VXn},{2:$Vsf,399:$Vtf,502:3964},o($VHh,$VYn,{764:3965,458:3966,208:$VPh,282:$VQh}),o($Vrj,[2,1234]),o($Vzh,[2,778],{442:3967,207:$VQb,281:$VRb,395:$VSb}),o($Vzh,[2,781],{442:3968,207:$VQb,281:$VRb,395:$VSb}),o($VMh,[2,776]),o($Vzh,[2,1470]),o($VHh,[2,1468]),o($VHh,[2,1469]),o($VZn,$V_n,{775:3969,773:3970,17:3971,446:3972,777:3973,19:$V5,188:$Vta,328:$Vua,441:$VF5}),o($VZn,$V_n,{777:3973,773:3974,446:3975,188:$Vta,328:$Vua}),o($Vzh,[2,1237]),o($VHh,[2,1236]),o($Vzh,[2,780],{442:3976,207:$VQb,281:$VRb,395:$VSb}),{2:$Vsf,394:$V6m,399:$Vtf,502:3977},{19:[1,3978],394:$V8m,399:$V$n},{2:$Vsf,399:$Vtf,502:3980},o($V0o,[2,1460]),{2:$Vsf,167:$Vza,286:$VAa,399:$Vtf,436:3981,502:3982},{2:$Vsf,167:$Vza,233:$VSg,239:$VTg,286:$VAa,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,399:$Vtf,436:3983,502:3984,669:2417},{19:[1,3985],167:$Vza,233:$Vgh,239:$Vhh,286:$VAa,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,436:3986,669:2435,674:2434},{19:[1,3987]},o($VHh,[2,1536]),{2:$Vsf,307:[1,3989],399:$Vtf,502:3988},{19:[1,3990],307:[1,3991]},o($Vo8,[2,1560]),o($Vo8,[2,1561]),o($Vo8,[2,1562]),o($Vo8,[2,1563]),o($Vo8,[2,1564]),o($Vo8,[2,1565]),o($Vo8,[2,1566]),o($Vo8,[2,1567]),o($Vo8,[2,1568]),{2:$Vsf,307:$Vbl,394:$Vcl,399:$Vtf,502:3993,797:3992},{2:$Vsf,233:$VSg,239:$VTg,288:$V4h,307:$Vbl,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,394:$Vcl,399:$Vtf,502:3995,669:2417,797:3994},{19:[1,3997],233:$Vgh,239:$Vhh,288:$Vih,307:$Vbl,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,394:$Vcl,669:2435,674:2434,797:3996},{17:3998,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3414,534:3999,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VHh,[2,1598]),o($V1o,[2,1611]),o($V1o,[2,1612]),{2:$V2o,209:$Vel,283:$Vfl,461:4001,560:4000},{2:$V2o,209:$Vel,233:$VSg,239:$VTg,283:$Vfl,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,461:4001,560:4003,669:2417},{209:$Vel,233:$Vgh,239:$Vhh,283:$Vfl,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,461:4004,669:2435,674:2434},o($Vsj,[2,795]),o($Vsj,[2,599]),o($Vsj,[2,600]),{17:4005,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,394:$Vxi,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2682,534:2680,554:1610,556:1609,661:1642,664:1597,667:4006,671:1589,677:4007,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{399:[1,4008]},o($VNh,[2,1548]),{17:4009,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:4010,534:4011,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VNh,[2,1614]),{17:4012,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,394:$Vxi,395:$VSb,396:$V_d,397:$V$d,398:$V0e,399:$V3o,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2682,534:2680,554:1610,556:1609,661:1642,664:1597,667:4013,671:1589,677:4014,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($V2,[2,830]),o($V2,$Vnc,{446:1076,497:1375,496:4016,188:$Vta,328:$Vua}),o($V2,[2,840]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,441:$VRh,509:2512,518:4017,519:4018,523:1646,559:4019},o($V2,[2,835]),o($V2,[2,838]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2509,523:2116,557:4020},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2509,523:2116,557:4021},o($V2,$Vnc,{446:1076,497:1375,442:3612,496:4022,188:$Vta,207:$VQb,281:$VRb,328:$Vua,395:$VSb}),o($V2,[2,837]),o($V2,[2,844]),o($V2,[2,846]),o($V2,[2,853]),o($V4o,$V5o,{446:1377,832:4023,844:4024,911:4025,913:4026,912:4027,497:4028,499:4029,188:$Vta,328:$Vua}),o($V6o,$V5o,{446:1076,912:4027,832:4030,911:4031,497:4032,188:$Vta,328:$Vua}),o([2,6,10,19,40,121,167,188,212,275,286,328,452,543,952,957],[2,746]),{19:[1,4034],207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,503:4033,504:4036,506:4035,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},{19:[1,4038],387:$V7o},o($V2,[2,1779]),o([6,10,212],$V5o,{446:1076,912:4027,911:4031,497:4032,832:4039,188:$Vta,328:$Vua}),o($V2,[2,1754]),o($V2,[2,1755]),o($V2,[2,1784]),o($V2,[2,1785]),o($V2,[2,1786]),{398:$Vcb,513:4040,515:4041},{19:$V8o,71:[1,4042]},o($VKl,[2,2271]),{19:[1,4045],71:$V9o},o($V2,[2,1810]),o($V2,[2,1820]),o($V2,$VQl,{489:4046,35:$VRl,105:$VSl}),{394:[1,4048],399:$Vao},{2:$Vsf,399:$Vtf,502:4049},o($VFm,[2,1999]),o($VF8,[2,2001],{394:[1,4050]}),{387:[1,4051]},o($VFm,[2,2006],{387:[1,4052]}),o($VFm,[2,2007],{387:[1,4053]}),{387:[1,4054]},o([387,394,399],$VIj,{442:4055,207:$VQb,281:$VRb,395:$VSb}),o([2,387,394,399],[2,774]),o($V2,[2,2889]),o($V2,[2,2890]),o($V2,[2,2891]),{19:[1,4057],398:[1,4059],869:4056,870:4058},o($V2,[2,1843]),{86:[1,4060]},{394:[1,4062],399:[1,4061]},o($VEm,[2,2132]),{387:[1,4063]},o($V2,$Vbo,{19:[1,4064]}),o($V2,[2,1896]),o($Vco,[2,2455]),{19:[1,4065],111:$Vdo,272:$Veo},o($V2,[2,1889]),o($Vyl,[2,759]),{19:[1,4068],387:$Vfo},o($V2,$Vgo,{19:[1,4070]}),o($V2,[2,1892]),o($V2,[2,1894]),o([6,10,19,40,73,75,117,121,167,212,243,244,274,275,286,352,452,543,957],$Vho,{1045:4071,1050:4072,456:4073,60:$Vio,223:$Vjo}),o([6,10,19,167,286,352,957],[2,754]),{398:$Vko,853:4076},o($V2,[2,1829]),{398:$Vko,853:4078},o($V2,[2,1818]),{19:[1,4080],152:$Vlo,153:$Vmo,154:$Vno,155:$Voo,452:$Vpo,867:4079},{19:[1,4087],154:$Vqo},o($V2,[2,1838]),o($V2,$Vro,{19:[1,4088]}),{17:4090,19:$V5,188:$Vta,328:$Vua,441:$VF5,446:1377,497:4089,499:4091},o($Vmc,[2,1985]),{19:[1,4093],207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,503:4092,504:4036,506:4094,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},{19:[1,4096],387:$Vso},o($V2,[2,1936]),o($V2,[2,1932]),{188:$Vta,328:$Vua,446:1076,497:2589,903:4097},{188:$Vta,328:$Vua,446:1076,497:2589,903:4098},{233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,669:2435,674:2434},o($V2,$Vto,{19:[1,4099]}),o($V2,[2,1883]),{19:[1,4101],87:[1,4100]},o($V2,[2,1882]),{87:[1,4102]},o($Vdi,[2,1898]),o($Vti,[2,1899]),o($V2,[2,1970]),o($Vuo,$Vvo,{887:4103,890:4104,909:4105,29:$Vwo,63:$Vxo}),o($Vyo,$Vvo,{887:4108,909:4109,29:$Vwo,63:$Vxo}),{19:[1,4111],54:$VZm,118:$V_m,119:$Vzo,125:$V$m,126:$V0n,130:$VAo,168:$V1n,175:$V2n,251:$V3n,285:$VBo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VCo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4113,980:4110,982:4112,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,997:4122,998:4123,999:4124,1000:4125},o([6,10,19,27,36,41,43,44,53,55,75,94,96,103,104,165,188,212,244,267,273,307,311,328,339,348,352,394,398,543,577,762,837,906,908,1190],[2,668]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2607,523:2116,531:4130},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4131,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{19:[1,4133],315:[1,4132]},o($Vji,[2,2356],{315:[1,4134]}),{19:[1,4136],291:[1,4135]},o($Vji,[2,2351],{315:[1,4137]}),{291:[1,4138]},{19:[1,4140],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:922,523:921,549:4139,550:4141},o($V2,[2,1912]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:4142},{394:[1,4144],399:$VDo},{394:$VDm,399:$VEo},{2:$Vsf,399:$Vtf,502:4146},{2:$Vsf,399:$Vtf,502:4147},{17:2927,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,441:$VF5,500:4148,501:4149,509:2926,518:2925,523:2116,531:2606,532:2924},o($V2,$VFo,{19:[1,4150]}),o($Vmc,[2,651]),o($Vmc,[2,652]),o($V2,[2,1905]),{394:[1,4152],399:$VGo},{2:$Vsf,399:$Vtf,502:4153},o($VEm,$VHo,{19:[1,4154]}),o($VF8,[2,2171],{394:[1,4155]}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:4156},{19:[1,4158],323:$VIo,403:$V0d,404:$V1d,468:1754,472:1755,474:4159,922:4157},o($V2,[2,2040]),o($V2,$VJo,{19:[1,4161]}),o($V2,[2,2772]),o($V2,[2,2768]),o($V2,$Vnc,{446:1076,497:1375,496:4162,188:$Vta,328:$Vua}),o($V2,[2,2770]),o($V2,[2,2774]),o($VXl,$Vbb,{513:1163,515:3525,514:4164,512:4165,348:$VKo,398:$Vcb}),o($VIe,$Vbb,{513:1163,512:4166,398:$VIf}),o($VIe,$Vbb,{513:1163,512:4167,398:$VIf}),o($VXl,$VOc,{494:4169,493:4170,311:$VPc,348:$VLo}),o($VIe,$VOc,{493:4171,311:$VKe}),o($VIe,$Vbb,{513:1163,512:4172,398:$VIf}),o($Vni,$Voi,{1206:4173,335:$Vpi}),o($Vqi,$Voi,{1208:4174,1206:4175,335:$Vri}),o($VIe,[2,2989]),o($Vsl,[2,2396]),{167:$Vza,286:$VAa,436:4176},o($VMo,$VNo),o($VMo,[2,604]),{50:$VOo,1043:4177},o($VIe,[2,2990]),o($VIe,[2,2991]),o($VXl,[2,2978]),o($Vni,[2,3023]),{19:[1,4179],50:$VPo,1043:4177,1044:4180},o($VZl,[2,1502],{789:[1,4182],790:[1,4183]}),o([2,6,10,19,37,40,75,87,90,114,117,121,167,179,188,212,237,244,258,261,269,274,275,278,286,315,328,335,352,452,543,577,952,957,1209,1230],[2,1499]),o($VZl,[2,1503]),o($V6o,$V5o,{446:1076,912:4027,911:4031,497:4032,832:4184,188:$Vta,328:$Vua}),{398:$Vko,853:4185},{394:$VQo,399:$Vao},{398:[1,4187],869:4056},o($V2,$Vbo),{111:$Vdo,272:$Veo},{387:$Vfo},o($V2,$Vgo),o([6,10,40,73,75,117,121,167,212,243,244,274,275,286,352,452,543,957],$Vho,{1045:4188,456:4189,60:$Vio,223:$Vjo}),{152:$Vlo,153:$Vmo,154:$Vno,155:$Voo,452:$Vpo,867:4190},{154:$Vqo},o($V2,$Vro),{188:$Vta,328:$Vua,446:1076,497:4089},{207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,503:4092,504:4191,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},{387:$Vso},o($V2,$Vto),o($Vyo,$Vvo,{909:4109,887:4192,29:$Vwo,63:$Vxo}),{54:$VZm,118:$V_m,119:$VRo,125:$V$m,126:$V0n,130:$VSo,168:$V1n,175:$V2n,251:$V3n,285:$VTo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VUo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4113,980:4193,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121},{315:[1,4198]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1282,549:4139},{394:[1,4199],399:$VDo},{394:$VIl,399:$VEo},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,500:4200,518:2607,523:2116,531:2606},o($V2,$VFo),{394:[1,4201],399:$VGo},o($VFm,$VHo),o($V6g,[2,3068]),o($V6g,[2,3073]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4202,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2,[2,3070],{394:[1,4203]}),o($V2,[2,3072],{394:$Vvi}),o($V6g,[2,3074]),o($V9m,[2,1215],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:2671,667:4204,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($V6g,[2,3075]),{17:4206,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:4207,534:4205,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{394:$VVo},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:4209,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V9m,[2,1216],{394:[1,4210]}),o($V2,[2,3088]),{19:[1,4211],204:[1,4212]},o($VXa,$Vbb,{513:1163,512:4213,398:$VIf}),o($VXa,[2,3051]),o($VXa,[2,3052]),o($VYa,[2,3047]),o([6,10,188,267,273,328,348,352,577,1190],[2,696]),o($Vbm,$Vbb,{513:1163,512:4214,398:$VIf}),o($VXa,$Vnc,{446:1076,497:1375,496:4215,188:$Vta,328:$Vua}),o($VXa,$Vnc,{446:1076,497:1375,496:4216,188:$Vta,328:$Vua}),o($VYa,$Vnc,{497:1375,499:1376,446:1377,498:4217,496:4218,188:$Vta,328:$Vua}),o($V2,$V3,{9:5,11:7,13:9,14:10,15:11,405:360,406:361,407:362,408:363,409:364,410:365,411:366,412:367,413:368,414:369,415:370,416:371,417:372,418:373,419:374,1125:375,1126:376,1127:377,1128:378,1129:379,1130:380,1131:381,564:413,565:414,812:415,813:416,814:417,815:418,816:419,817:420,818:421,934:426,935:427,936:428,937:429,938:430,939:431,940:432,1144:433,1145:434,1146:435,1147:436,1148:437,1149:438,1150:439,1151:440,1152:441,1257:445,1258:446,1259:447,1260:448,1261:449,1262:450,1263:451,1264:452,1265:453,1266:454,1267:455,1268:456,1269:457,1270:458,1271:459,1272:460,1273:461,1274:462,1275:463,1276:464,1137:467,1197:468,1138:469,1198:470,1062:534,1063:535,1064:536,1065:537,1161:538,1162:539,1216:544,1223:567,1224:568,572:808,18:809,1313:820,1247:823,568:829,830:832,919:833,437:837,1277:840,1199:841,597:842,1233:845,1218:847,5:1839,16:1842,2:$V4,26:$VP8,28:$V8,30:$VQ8,32:$Va,33:$Vb,34:$Vc,37:$Vd,38:$Ve,39:$Vf,40:$Vg,42:$Vh,43:$Vi,45:$Vj,46:$Vk,47:$Vl,48:$Vm,49:$Vn,50:$Vo,51:$Vp,52:$Vq,54:$Vr,56:$Vs,58:$VXe,59:$VR8,60:$Vv,61:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VS8,80:$VT8,81:$VO,82:$VP,85:$VQ,86:$VR,87:$VS,88:$VT,89:$VU,90:$VV,91:$VW,92:$VX,93:$VY,95:$VZ,96:$V_,97:$VU8,98:$V01,99:$V11,100:$V21,101:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,113:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1,121:$Vj1,122:$Vk1,123:$Vl1,124:$Vm1,125:$Vn1,126:$Vo1,128:$Vp1,130:$Vq1,131:$Vr1,132:$Vs1,133:$Vt1,134:$Vu1,135:$Vv1,136:$Vw1,137:$Vx1,138:$Vy1,139:$Vz1,140:$VA1,141:$VB1,142:$VC1,143:$VD1,144:$VE1,145:$VYe,146:$VG1,147:$VH1,148:$VI1,149:$VJ1,150:$VK1,156:$VL1,157:$VM1,158:$VN1,160:$VO1,161:$VP1,163:$VZe,164:$VR1,165:$VS1,166:$VT1,167:$VU1,168:$VV1,169:$VW1,170:$VX1,171:$VY1,172:$VZ1,173:$V_1,174:$V$1,175:$V02,176:$V12,177:$V22,178:$V32,179:$V42,180:$V52,181:$V62,182:$V_e,183:$V82,184:$V92,185:$Va2,186:$Vb2,187:$Vc2,188:$Vd2,189:$Ve2,190:$Vf2,191:$Vg2,192:$Vh2,193:$Vi2,194:$Vj2,195:$Vk2,196:$Vl2,197:$Vm2,198:$Vn2,199:$Vo2,200:$Vp2,201:$Vq2,202:$Vr2,203:$Vs2,204:$Vt2,205:$Vu2,206:$Vv2,207:$Vw2,208:$Vx2,209:$Vy2,210:$Vz2,211:$VA2,212:$VB2,213:$VC2,214:$VD2,215:$VE2,216:$VF2,217:$VG2,218:$V$e,219:$VI2,220:$VJ2,221:$VK2,222:$VL2,223:$VM2,224:$VN2,225:$VO2,226:$VP2,227:$VQ2,228:$VR2,229:$VS2,230:$VT2,231:$VU2,232:$VV2,233:$VW2,234:$VX2,235:$VY2,236:$VZ2,237:$V_2,238:$V$2,239:$V03,240:$V13,241:$V23,242:$V33,243:$V43,244:$V53,245:$V63,246:$V73,247:$V83,248:$V93,249:$Va3,250:$Vb3,251:$Vc3,252:$Vd3,253:$Ve3,254:$Vf3,255:$Vg3,256:$Vh3,257:$Vi3,258:$Vj3,259:$Vk3,260:$Vl3,261:$Vm3,262:$Vn3,263:$Vo3,264:$Vp3,265:$Vq3,266:$Vr3,267:$Vs3,268:$Vt3,269:$Vu3,270:$Vv3,271:$Vw3,272:$Vx3,273:$Vy3,274:$Vz3,275:$VA3,276:$VB3,277:$VC3,278:$VD3,279:$VE3,280:$VF3,281:$VG3,282:$VH3,283:$VI3,284:$VJ3,285:$VK3,286:$VL3,287:$VM3,288:$VN3,289:$VO3,290:$VP3,291:$VQ3,292:$VR3,293:$VS3,294:$VT3,295:$VU3,296:$VV3,297:$VW3,298:$VX3,299:$VY3,300:$VZ3,301:$V_3,302:$V$3,303:$V04,304:$V14,305:$V24,306:$V34,307:$V0f,308:$V54,309:$V64,310:$V74,311:$V84,312:$V94,313:$Va4,314:$Vb4,315:$Vc4,316:$Vd4,317:$Ve4,318:$Vf4,319:$Vg4,320:$Vh4,321:$Vi4,322:$Vj4,323:$Vk4,324:$Vl4,325:$Vm4,326:$Vn4,327:$Vo4,328:$Vp4,329:$Vq4,330:$Vr4,331:$Vs4,332:$Vt4,333:$Vu4,334:$Vv4,335:$Vw4,336:$Vx4,337:$Vy4,338:$Vz4,339:$V1f,340:$VB4,341:$VC4,342:$VD4,343:$VE4,344:$VF4,345:$VG4,346:$VH4,347:$VI4,348:$VJ4,349:$VK4,350:$VL4,351:$VM4,352:$V2f,353:$VO4,354:$VP4,355:$VQ4,356:$VR4,357:$VS4,358:$VT4,359:$VU4,360:$VV4,361:$VW4,362:$VX4,363:$VY4,364:$VZ4,365:$V_4,366:$V$4,367:$V05,368:$V15,369:$V25,370:$V35,371:$V45,372:$V55,373:$V65,374:$V75,375:$V85,376:$V95,377:$Va5,378:$Vb5,379:$Vc5,380:$Vd5,381:$Ve5,382:$Vf5,383:$Vg5,384:$Vh5,385:$Vi5,386:$Vj5,387:$Vk5,388:$Vl5,389:$Vm5,390:$Vn5,391:$Vo5,392:$Vp5,393:$Vq5,394:$Vr5,395:$Vs5,396:$Vt5,397:$Vu5,398:$Vv5,399:$Vw5,400:$Vx5,401:$Vy5,402:$Vz5,403:$VA5,404:$VB5,438:$VC5,439:$VD5,440:$VE5,452:$V$8,569:$V09,570:$VI5,571:$VJ5,577:$V19,763:$V29,826:$V39,868:$V49,930:$V59,931:$V69,933:$V79,1166:$V89,1190:$V99,1191:$Va9,1192:$Vb9,1193:$Vc9,1195:$Vd9,1213:$Ve9,1227:$Vf9,1252:$VZ5,1253:$Vg9,1278:$V$5,1314:$V06}),o($V2,$V3,{9:5,11:7,13:9,14:10,15:11,405:360,406:361,407:362,408:363,409:364,410:365,411:366,412:367,413:368,414:369,415:370,416:371,417:372,418:373,419:374,1125:375,1126:376,1127:377,1128:378,1129:379,1130:380,1131:381,564:413,565:414,812:415,813:416,814:417,815:418,816:419,817:420,818:421,934:426,935:427,936:428,937:429,938:430,939:431,940:432,1144:433,1145:434,1146:435,1147:436,1148:437,1149:438,1150:439,1151:440,1152:441,1257:445,1258:446,1259:447,1260:448,1261:449,1262:450,1263:451,1264:452,1265:453,1266:454,1267:455,1268:456,1269:457,1270:458,1271:459,1272:460,1273:461,1274:462,1275:463,1276:464,1137:467,1197:468,1138:469,1198:470,1062:534,1063:535,1064:536,1065:537,1161:538,1162:539,1216:544,1223:567,1224:568,572:808,18:809,1313:820,1247:823,568:829,830:832,919:833,437:837,1277:840,1199:841,597:842,1233:845,1218:847,16:1842,5:4219,2:$V4,26:$VP8,28:$V8,30:$VQ8,32:$Va,33:$Vb,34:$Vc,37:$Vd,38:$Ve,39:$Vf,40:$Vg,42:$Vh,43:$Vi,45:$Vj,46:$Vk,47:$Vl,48:$Vm,49:$Vn,50:$Vo,51:$Vp,52:$Vq,54:$Vr,56:$Vs,58:$VXe,59:$VR8,60:$Vv,61:$Vw,64:$Vx,65:$Vy,66:$Vz,67:$VA,68:$VB,69:$VC,70:$VD,71:$VE,72:$VF,73:$VG,74:$VH,75:$VI,76:$VJ,77:$VK,78:$VL,79:$VS8,80:$VT8,81:$VO,82:$VP,85:$VQ,86:$VR,87:$VS,88:$VT,89:$VU,90:$VV,91:$VW,92:$VX,93:$VY,95:$VZ,96:$V_,97:$VU8,98:$V01,99:$V11,100:$V21,101:$V31,106:$V41,107:$V51,108:$V61,109:$V71,110:$V81,111:$V91,112:$Va1,113:$Vb1,114:$Vc1,115:$Vd1,116:$Ve1,117:$Vf1,118:$Vg1,119:$Vh1,120:$Vi1,121:$Vj1,122:$Vk1,123:$Vl1,124:$Vm1,125:$Vn1,126:$Vo1,128:$Vp1,130:$Vq1,131:$Vr1,132:$Vs1,133:$Vt1,134:$Vu1,135:$Vv1,136:$Vw1,137:$Vx1,138:$Vy1,139:$Vz1,140:$VA1,141:$VB1,142:$VC1,143:$VD1,144:$VE1,145:$VYe,146:$VG1,147:$VH1,148:$VI1,149:$VJ1,150:$VK1,156:$VL1,157:$VM1,158:$VN1,160:$VO1,161:$VP1,163:$VZe,164:$VR1,165:$VS1,166:$VT1,167:$VU1,168:$VV1,169:$VW1,170:$VX1,171:$VY1,172:$VZ1,173:$V_1,174:$V$1,175:$V02,176:$V12,177:$V22,178:$V32,179:$V42,180:$V52,181:$V62,182:$V_e,183:$V82,184:$V92,185:$Va2,186:$Vb2,187:$Vc2,188:$Vd2,189:$Ve2,190:$Vf2,191:$Vg2,192:$Vh2,193:$Vi2,194:$Vj2,195:$Vk2,196:$Vl2,197:$Vm2,198:$Vn2,199:$Vo2,200:$Vp2,201:$Vq2,202:$Vr2,203:$Vs2,204:$Vt2,205:$Vu2,206:$Vv2,207:$Vw2,208:$Vx2,209:$Vy2,210:$Vz2,211:$VA2,212:$VB2,213:$VC2,214:$VD2,215:$VE2,216:$VF2,217:$VG2,218:$V$e,219:$VI2,220:$VJ2,221:$VK2,222:$VL2,223:$VM2,224:$VN2,225:$VO2,226:$VP2,227:$VQ2,228:$VR2,229:$VS2,230:$VT2,231:$VU2,232:$VV2,233:$VW2,234:$VX2,235:$VY2,236:$VZ2,237:$V_2,238:$V$2,239:$V03,240:$V13,241:$V23,242:$V33,243:$V43,244:$V53,245:$V63,246:$V73,247:$V83,248:$V93,249:$Va3,250:$Vb3,251:$Vc3,252:$Vd3,253:$Ve3,254:$Vf3,255:$Vg3,256:$Vh3,257:$Vi3,258:$Vj3,259:$Vk3,260:$Vl3,261:$Vm3,262:$Vn3,263:$Vo3,264:$Vp3,265:$Vq3,266:$Vr3,267:$Vs3,268:$Vt3,269:$Vu3,270:$Vv3,271:$Vw3,272:$Vx3,273:$Vy3,274:$Vz3,275:$VA3,276:$VB3,277:$VC3,278:$VD3,279:$VE3,280:$VF3,281:$VG3,282:$VH3,283:$VI3,284:$VJ3,285:$VK3,286:$VL3,287:$VM3,288:$VN3,289:$VO3,290:$VP3,291:$VQ3,292:$VR3,293:$VS3,294:$VT3,295:$VU3,296:$VV3,297:$VW3,298:$VX3,299:$VY3,300:$VZ3,301:$V_3,302:$V$3,303:$V04,304:$V14,305:$V24,306:$V34,307:$V0f,308:$V54,309:$V64,310:$V74,311:$V84,312:$V94,313:$Va4,314:$Vb4,315:$Vc4,316:$Vd4,317:$Ve4,318:$Vf4,319:$Vg4,320:$Vh4,321:$Vi4,322:$Vj4,323:$Vk4,324:$Vl4,325:$Vm4,326:$Vn4,327:$Vo4,328:$Vp4,329:$Vq4,330:$Vr4,331:$Vs4,332:$Vt4,333:$Vu4,334:$Vv4,335:$Vw4,336:$Vx4,337:$Vy4,338:$Vz4,339:$V1f,340:$VB4,341:$VC4,342:$VD4,343:$VE4,344:$VF4,345:$VG4,346:$VH4,347:$VI4,348:$VJ4,349:$VK4,350:$VL4,351:$VM4,352:$V2f,353:$VO4,354:$VP4,355:$VQ4,356:$VR4,357:$VS4,358:$VT4,359:$VU4,360:$VV4,361:$VW4,362:$VX4,363:$VY4,364:$VZ4,365:$V_4,366:$V$4,367:$V05,368:$V15,369:$V25,370:$V35,371:$V45,372:$V55,373:$V65,374:$V75,375:$V85,376:$V95,377:$Va5,378:$Vb5,379:$Vc5,380:$Vd5,381:$Ve5,382:$Vf5,383:$Vg5,384:$Vh5,385:$Vi5,386:$Vj5,387:$Vk5,388:$Vl5,389:$Vm5,390:$Vn5,391:$Vo5,392:$Vp5,393:$Vq5,394:$Vr5,395:$Vs5,396:$Vt5,397:$Vu5,398:$Vv5,399:$Vw5,400:$Vx5,401:$Vy5,402:$Vz5,403:$VA5,404:$VB5,438:$VC5,439:$VD5,440:$VE5,452:$V$8,569:$V09,570:$VI5,571:$VJ5,577:$V19,763:$V29,826:$V39,868:$V49,930:$V59,931:$V69,933:$V79,1166:$V89,1190:$V99,1191:$Va9,1192:$Vb9,1193:$Vc9,1195:$Vd9,1213:$Ve9,1227:$Vf9,1252:$VZ5,1253:$Vg9,1278:$V$5,1314:$V06}),o($V2,$VWo,{19:[1,4220]}),o($V2,[2,2810]),{19:[1,4223],145:[1,4222],182:[1,4221]},o($Vab,[2,2856],{394:$VHf}),o($Vab,[2,2859],{394:$VHf}),o($V2,[2,2814]),o($VEi,[2,2882]),o($V2,[2,2883],{394:[1,4224]}),{19:[1,4226],158:$VXo},o($V2,[2,2902]),o($V2,[2,2884],{394:$Vxm}),o($V2,$VYo,{19:[1,4227]}),o($V2,[2,2819]),o($VHi,[2,703],{394:[1,4228]}),o($VHi,[2,704],{394:[1,4229]}),o($VIi,[2,701]),o($VHi,[2,705],{394:$Vym}),o($V2,[2,2785]),o($Vgm,$Vhm,{715:3552,712:4230,265:$Vim,324:$Vjm}),o($VZo,[2,1300]),o($VVi,[2,1310]),{19:[1,4233],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:4231,534:4232,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{398:[1,4234]},o($VVi,[2,1309]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4235,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VVi,[2,1311]),o($VVi,[2,1307]),o($Vlm,$Vhm,{712:4230,265:$Vim,324:$Vkm}),o($Vof,[2,1386]),{19:[1,4237],200:[1,4236]},{399:[1,4238]},{399:[1,4239]},{2:$Vsf,399:$Vtf,502:4240},o($VNb,[2,1376]),o($VKb,[2,1377]),o($Vom,$Vuj,{382:$Vvj}),{382:[1,4241]},{200:[1,4242]},o($Vqm,[2,719]),o($VWb,[2,721],{527:2773,524:4243,281:$Vrm}),o($VWb,[2,723],{527:3570,281:$Vrm}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3574},o($Vqm,[2,724]),o([2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,167,170,176,184,188,203,206,212,231,242,244,258,264,265,266,267,269,273,274,275,281,286,294,307,308,309,310,313,317,318,320,322,324,325,326,328,330,333,335,338,339,347,348,351,352,394,398,399,402,445,452,543,577,656,663,762,826,837,868,906,908,910,1190],[2,725]),o($V2,[2,2800]),o($Vmc,$Vcm,{1173:4244,1181:4245,352:$Vdm}),o($Vdi,$Vkb,{159:598,25:613,523:4246,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,2828]),{2:$V_o,19:[1,4250],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:4251,160:$Va8,161:$Vb8,168:$Vmd,285:$Vod,311:$Vsd,321:$Vtd,681:4252,760:4247,761:4249,762:$V3e,763:$V4e},o($Vtm,[2,1634]),o($V$b,[2,1289],{394:$V3g}),{2:$V_o,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:4254,160:$Va8,161:$Vb8,168:$Vmd,285:$Vod,311:$Vsd,321:$Vtd,681:4255,760:4253,762:$V3e,763:$V4e},o($V5c,[2,903],{394:$VMf}),o($V6c,[2,904]),o($VFf,[2,906]),o($VFf,[2,907]),o($VXl,$VOc,{494:4169,493:4170,311:$VPc}),o($VXl,$Vbb,{513:1163,515:3525,514:4164,512:4165,398:$Vcb}),{116:[1,4256]},o($VGf,$Vpm,{527:3570,281:$Vrm}),o($V2,$VGm),o($V2,$Vcm,{1173:4257,352:$V$o,394:$Vxm}),o($V2,$Vem),{106:$V3f,132:$V4f,309:$V5f,828:3538},{28:[1,4259]},o($V2,$VAi,{1175:4260,352:$Vwm,394:$Vxm}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3547,523:2116},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:[1,4262],148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:4261},o($V2,$VHm,{394:$Vxm}),{307:$V1b,324:$V7b,394:$VHf,1171:4263},o($V2,$VIm,{394:$Vxm}),{307:[1,4264],394:$V4b},o($VJf,$V5b,{523:595,159:598,25:613,1174:4265,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$VJm,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3695},{87:$VLm,315:$VKm,1230:$VMm,1251:4266},o($V2,$Vol,{460:1808,536:3350,535:4267,75:$Vce,244:$Vhe}),{837:[1,4268]},o($V2,$Vfd,{624:1565,608:4269,351:$Vgd}),{2:$Vfg,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:3732,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119,805:4270,806:$Vhg},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,580:4271,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:2211,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:4017,523:2116},{106:$V3f,132:$V4f,309:$V5f,828:3750},{96:$Vnc,188:$Vta,328:$Vua,446:1076,496:4272,497:1375},o($V6o,$V5o,{446:1076,912:4027,911:4031,497:4032,832:4273,188:$Vta,328:$Vua}),{207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,503:4033,504:4191,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},{387:$V7o},{398:$VIf,513:4274},{71:[1,4275]},{71:$V9o},{323:$VIo,403:$V0d,404:$V1d,468:1754,472:1755,474:4159,922:4157},o($V2,$VRm),o([6,10,952],$Vol,{460:1808,536:3350,535:3764,75:$Vce,244:$Vhe}),{403:$V0d,404:$V1d,468:1754,472:1755,474:3767},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:1466,529:4277,955:3755,959:4276},o($VVm,$VVj,{949:3024,451:3624,946:4278,40:$VWj,452:$VXj}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:3784,523:1250,1106:4279},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4280,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:4282,160:$Va8,161:$Vb8,399:$VWm,1121:4281,1123:3793},{255:$VYm,1071:4283},{398:$V5k,1070:4284},o($V2,$Vhn,{1091:4285,204:[1,4286]}),o($V2,$Vin),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:3840,523:1250},{398:$V5k,1070:3844},o($V2,$VJo),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3849},o($V2,$Vjn),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3856},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:3859},{403:$V0d,468:4287},o($VTb,$Vbb,{513:1163,512:4165,348:$VKo,398:$VIf}),o($VTb,$VOc,{493:4170,311:$VKe,348:$VLo}),o($Vaj,$Voi,{1206:4288,335:$Vpi}),{151:$VEn,298:[1,4289],304:$VFn,323:$VGn,346:$VHn},o($VIn,$VJn,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,391:$Vmj,392:$Vnj,393:$Voj}),o($VIn,$VKn,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,391:$Vmj,392:$Vnj,393:$Voj}),o($VIn,$VLn,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,391:$Vmj,392:$Vnj,393:$Voj}),o($VIn,$VMn,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,391:$Vmj,392:$Vnj,393:$Voj}),{398:[1,4290]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4291,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VTb,$VUb,{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,728:1967,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:2671,595:3926,667:4292,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,668:[1,4293],669:2435},o($VOn,$VPn,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VOn,$VQn,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VOk,$VRn,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VOk,$VSn,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($VOk,$VTn,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg}),o($V2,$VUn,{1239:3936,350:$Vfj}),{77:[1,4294]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4295,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,343:[1,4296],385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,669:2435},{394:$V2m,399:$VXn},{394:$V2m,399:$V$n},{167:$Vza,233:$VSg,239:$VTg,286:$VAa,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,436:4297,669:2435},{307:[1,4298]},{233:$VSg,239:$VTg,288:$Vbj,307:$Vbl,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,394:$Vcl,669:2435,797:4299},{209:$Vel,233:$VSg,239:$VTg,283:$Vfl,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,461:4004,669:2435},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:4300,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4301,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,399:$V3o,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:4302,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{204:[1,4303]},o($VCm,$Vnc,{446:1076,497:1375,496:4218,188:$Vta,328:$Vua}),o($VTb,$VOc,{493:4170,311:$VKe}),o($VTb,$Vbb,{513:1163,512:4165,398:$VIf}),o($V0p,$V1p,{923:4304,926:4306,928:4307,19:[1,4305],179:[1,4308]}),o($V2,[2,2050]),o($V0p,$V1p,{923:4309,926:4310,179:$V2p}),o($V0p,$V1p,{926:4310,923:4312,179:$V2p}),o($V0p,$V1p,{926:4310,923:4313,179:$V2p}),{17:2927,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,441:$VF5,509:2926,518:2925,523:2116,531:4130,532:4314},o([6,10,43,75,94,188,212,244,267,273,307,311,328,348,352,394,398,543,577,837,1190],[2,669]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,500:4315,518:2607,523:2116,531:2606},{17:4318,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:4316,534:4317,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4319,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2,[2,2089]),o($V2,[2,2097]),o($V7g,[2,1254]),{19:[1,4321],307:[1,4320]},o($V2,[2,2924]),{19:[1,4323],106:$V3f,132:$V4f,309:$V5f,828:1866,1172:4322,1180:4324},o($V2,[2,2936]),{19:[1,4326],307:[1,4325],394:$V4b},o($V2,[2,2911]),o($V2,[2,2912]),o($V2,$Vkb,{159:598,25:613,523:4327,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,2952]),{19:[1,4329],315:[1,4328]},o($V3p,[2,3134]),o($V3p,[2,3135]),o($V2,[2,3125],{315:[1,4330]}),o($V2,$V4p,{19:[1,4331]}),o($V2,[2,3149]),o($V2,[2,3148]),o($V2,$Vol,{460:1808,536:3350,535:4332,75:$Vce,244:$Vhe}),o($V2,$Vol,{460:1808,536:3350,535:4333,75:$Vce,244:$Vhe}),o($V2,[2,3152]),{384:$VJe,537:4334,539:4335},{837:[1,4336]},{384:$VPf,537:4337},{384:$VPf,537:4338},o($V2,$V5p,{19:[1,4339]}),o($V2,[2,3390]),o($V2,[2,3389]),o($VEj,[2,3401]),o($VFj,[2,3403],{394:[1,4340]}),o($Vzj,[2,3414]),o($VCj,[2,3415]),o($VCj,[2,3416]),o($V2,[2,3388]),o($VFj,[2,3404],{394:$VJj}),o($VEj,[2,3406]),o($VGj,[2,3407]),o($VEj,$V6p,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($VGj,[2,3412],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VHj,[2,773]),o($V2,[2,3387]),o([6,10,307,350,351,394],$V6p,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($Vtj,[2,889]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,307:$VY8,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,580:4342,581:4341,597:2996,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:2211,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VRj,[2,1275],{394:$VOm}),o($VPj,[2,1270]),{307:$V7p,394:[1,4343]},o($VRj,[2,1277],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,697:2211,533:2834,436:3009,580:4344,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,167:$Vza,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,286:$VAa,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,394:[1,4345],395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($VRj,[2,1278],{394:[1,4346]}),o($Vjc,[2,912]),o([2,6,10,170,176,206,231,242,266,294,308,309,310,313,317,318,320,325,326,333,338,347,399,445,656,663],$Vfd,{608:1564,624:1565,598:4347,351:$Vgd}),o($Vtj,$V8p,{600:4348,602:4349,603:4350,710:4351,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),o($Vtj,[2,913]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:3732,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VRj,[2,1273],{394:$VOm}),{19:$V9p,307:$Vap,394:[1,4352]},{307:[2,1704]},{167:$Vza,286:$VAa,307:[2,1707],436:3009},o([167,286,307],$Vr9,{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,697:2211,669:2398,533:2834,580:2998,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,233:$VSg,236:$VQf,239:$VTg,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,319:$VUg,321:$Vtd,322:$VMj,323:$Vvd,332:$VWg,334:$VXg,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,391:$VZf,392:$VNj,393:$V3h,394:$VOj,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($VRj,[2,1274],{394:$VOm}),o($VJf,[2,1714]),o($VTj,[2,1267]),o($V2,[2,1736]),o($V2,[2,1738]),o($V2,[2,1743]),o($V2,[2,1744]),{19:[1,4355],96:$Vbp},o($V2,[2,1749]),o($V2,[2,2136],{956:4356,957:[1,4357]}),o($V2,[2,2138]),o($V2,[2,2139]),o([6,10,19,37,75,90,114,117,121,167,212,244,258,269,274,275,286,328,335,543,957],$VVj,{949:3024,451:3624,946:4358,40:$VWj,452:$VXj}),o([6,10,37,75,90,114,117,121,167,212,244,258,269,274,275,286,328,335,543],$VVj,{949:3024,451:3624,946:4359,40:$VWj,452:$VXj}),o($Vcp,$Vdp,{973:4360,974:4361,861:4362,897:4365,319:[1,4364],398:$Vki,975:[1,4363]}),o($Vep,$Vdp,{861:4362,973:4366,319:$Vfp,398:$Vui,975:$Vgp}),o($V2,[2,1720]),o($V2,[2,1715]),o($Vmc,$Vhp,{947:4369,951:4370,952:$Vip}),{2:$Vhp,947:4372,951:4370,952:$Vip},{2:$Vhp,947:4373,951:4370,952:$Vip},o([2,6,10,19,29,35,37,40,63,75,90,105,114,117,121,152,153,154,155,167,212,244,249,258,269,274,275,286,322,323,328,335,389,394,399,452,543,952,957],[2,2120]),o($VTm,[2,2121],{403:$Vog,469:[1,4374]}),o($VTm,[2,2122],{404:$Vqg,469:[1,4375]}),o($VMo,$Vjp,{1058:4376,121:$Vkp}),o($V2,$Vjp,{1058:4378,121:$Vkp}),{2:$Vsf,399:$Vtf,502:4379},{394:[1,4381],399:$Vlp},o($Vmp,$VVj,{949:3024,451:3624,946:4382,40:$VWj,452:$VXj}),o($VVm,$VVj,{949:3024,451:3624,946:4383,40:$VWj,452:$VXj}),o($Vnp,$Vjp,{1058:4384,121:$Vkp}),{394:$Vop,399:$Vlp},o($VFm,$VVj,{949:3024,451:3624,946:4386,40:$VWj,452:$VXj}),o($V2k,[2,730]),o($V2k,[2,729]),{398:[1,4389],1107:4387,1113:4388},o($V2,[2,2604]),o($V2,[2,2605],{1107:4390,398:$Vpp}),{398:[2,2600]},o([6,10,398],[2,2601]),o($V2,$Vqp,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($V2,[2,2641],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($V2,[2,2642],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($V2,[2,2640],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($Vrp,[2,2643]),{394:[1,4393],399:$Vsp},{2:$Vsf,399:$Vtf,502:4394},o($VFm,[2,2646]),o($VF8,[2,2648],{394:[1,4395]}),{19:[1,4397],54:$VZm,118:$V_m,119:$Vzo,125:$V$m,126:$V0n,130:$VAo,168:$V1n,175:$V2n,251:$V3n,285:$VBo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VCo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4113,980:4396,982:4398,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,997:4122,998:4123,999:4124,1000:4125},o($V2,[2,2533]),{19:[1,4400],75:$Vce,244:$Vhe,460:1723,536:4399,538:4401},o($V2,[2,2490]),o($V2,[2,2495],{460:1808,536:4402,75:$Vce,244:$Vhe}),{19:[1,4404],54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4403},{75:$Vce,244:$Vhe,460:1808,536:4405},{54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4403},o($Vtp,[2,2535]),{19:[1,4407],280:$Vup,394:[1,4408],399:$Vvp,1094:4406},{2:$Vsf,399:$Vtf,502:4410},o($Vwp,[2,2539]),o($VF8,[2,2541],{394:[1,4411]}),o($Vxp,[2,802]),o($Vxp,[2,803]),o($Vxp,[2,804]),o($Vxp,[2,805]),o($Vxp,[2,806]),o($Vxp,[2,807]),o($Vxp,[2,808]),o($Vxp,[2,809]),o($Vxp,[2,810]),o($Vxp,[2,811]),o($Vxp,[2,812]),o($Vxp,[2,813]),o($Vxp,[2,823],{562:4412,398:[1,4413]}),o($Vxp,$Vyp,{563:4414,398:$Vzp}),o($Vxp,$Vyp,{563:4416,398:$Vzp}),o($Vxp,[2,817]),o($Vxp,[2,818]),o($Vxp,[2,819]),o($Vxp,[2,820]),{255:$VYm,1071:4417},{75:$Vce,244:$Vhe,460:1808,536:4418},{280:$Vup,394:$VAp,399:$Vvp,1094:4406},{19:[1,4421],255:$VXm,1071:4420,1074:4422},o($V2,[2,2507],{1071:4423,255:$VYm}),{398:$V5k,1070:4424},{255:$VYm,1071:4425},o($V2,$VBp,{19:[1,4426]}),o($V2,[2,2531]),{19:[1,4428],31:$VCp,61:$VDp,68:$VEp,1098:4427,1099:4429,1100:4430},o($V2,[2,2711]),o($V2,[2,2700]),o($V2,[2,2746]),o($V2,[2,2750]),o($V2,[2,2754]),o($V2,[2,2755]),o($V2,[2,2709]),o($V2,[2,2706]),o($V2,[2,2716]),{398:$V5k,1070:4434},o($V2,[2,2718]),o($V2,[2,3281]),o($V2,[2,3241]),o($V2,[2,3249]),o($V2,[2,3248]),o($V2,[2,3246]),o($V2,[2,3270]),o($V2,[2,3276]),o($V2,[2,3282]),o($V2,[2,3286]),o($V2,[2,3291]),o($V2,[2,3292]),o($V2,[2,3299]),o($V2,[2,3309]),o($V2,[2,3308]),o($V2,[2,3310]),o($V2,$VFp,{446:1076,497:4435,19:[1,4436],188:$Vta,328:$Vua}),o($V2,[2,3355],{446:1076,497:4437,188:$Vta,328:$Vua}),o($V2,[2,3353],{446:1076,497:4438,188:$Vta,328:$Vua}),o($V2,[2,3354],{446:1076,497:4439,188:$Vta,328:$Vua}),o($V2,[2,3370]),o($V2,[2,3280]),o($V2,[2,3303]),o($VGp,$VHp,{612:4440,628:4441,325:$VIp}),o($Vkn,$VJp),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:4443},o($Vrk,$VKp,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VIg,$VLp,{634:4444,637:4446,183:$VMp,352:$VNp,394:$VOp}),o($VPp,$VQp,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VRp,$VHp,{628:4441,612:4449,325:$VIp}),o($VRp,$VHp,{628:4441,612:4450,325:$VIp}),o($VRp,$VHp,{628:4441,612:4451,325:$VIp}),o($VRp,$VHp,{628:4441,612:4452,325:$VIp}),o($VSp,$VHp,{620:4453,612:4454,628:4455,325:$VTp}),o($Vpn,$VJp,{2:[1,4458],19:[1,4457]}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:4459},o($Von,$Vln,{627:3871,611:4460,206:$Vmn}),o($VUp,$Vln,{627:3871,619:4462,611:4463,19:[1,4461],206:$Vqn}),o($Vxk,[2,1528],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($Vxk,[2,1529],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o([2,6,10,19,170,176,206,242,320,325,347,399,656,663,957,1190],$VKp,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Von,$Vln,{627:3871,611:4464,206:$Vmn}),o($Von,$Vln,{627:3871,611:4465,206:$Vmn}),o($VUp,$Vln,{627:3871,619:4466,611:4467,206:$Vqn}),o($VPg,$VLp,{637:4446,634:4468,183:$VMp,352:$VNp}),o($VPg,$VLp,{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,669:2398,637:4446,634:4469,533:4470,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,183:$VMp,207:$VQb,233:$VSg,236:$VQf,239:$VTg,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,319:$VUg,321:$Vtd,322:$VMj,323:$Vvd,332:$VWg,334:$VXg,346:$Vwd,352:$VNp,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,391:$VZf,392:$V2h,393:$V3h,394:[1,4471],395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o([2,6,10,19,170,176,206,242,310,320,325,347,399,656,663,957,1190],$VLp,{634:4444,637:4446,636:4472,638:4474,183:[1,4476],352:[1,4475],394:[1,4473]}),o($VVp,[2,1004],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,394:[1,4477]}),o($VWp,$VQp,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Von,$Vln,{627:3871,611:4478,206:$Vmn}),o($Vxk,$Vsk,{626:3137,610:4479,310:$Vtk}),o($Von,$Vln,{627:3871,611:4480,206:$Vmn}),o($Von,$Vln,{627:3871,611:4481,206:$Vmn}),o($VUp,$Vln,{627:3871,619:4482,611:4483,206:$Vqn}),o($Vsn,[2,3027],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,697:2211,533:2834,580:3731,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,394:$VXp,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{17:3734,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,392:$Vgg,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2214,534:2218,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,697:3732,699:3735,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($V2,[2,3015]),o($VYp,[2,3016],{394:[1,4485]}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,304:$Vrd,311:$Vsd,321:$Vtd,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,395:$VSb,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,554:2108,661:1642,664:4487,678:4486,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2,[2,3010]),o($VTb,$VUb,{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,728:1967,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:2671,667:4488,595:4489,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,668:[1,4490],669:2435},{2:$Vsf,394:$V2m,399:$Vtf,502:4491},{2:$Vsf,399:$Vtf,502:4492},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4493,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vzh,[2,1155]),o($VTb,$VUb,{159:598,25:613,728:1214,694:1395,695:1396,442:1398,671:1589,664:1597,684:1598,685:1599,679:1600,681:1601,687:1602,688:1603,504:1604,682:1605,683:1607,691:1608,556:1609,554:1610,753:1617,746:1618,755:1619,748:1620,757:1621,758:1622,759:1623,690:1625,750:1626,751:1627,752:1628,693:1629,519:1630,518:1631,768:1632,769:1633,770:1634,765:1635,766:1636,767:1637,661:1642,692:1643,470:1644,473:1645,523:1646,796:1649,468:1650,472:1651,696:1652,534:2680,533:2682,596:3928,677:3929,17:3930,595:4494,667:4495,19:$VAh,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,394:$Vxi,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,762:$V3e,763:$V4e,794:$V5e}),{233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,668:[1,4496],669:2417},{19:[1,4498],233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,668:[1,4497],669:2435,674:2434},o($VIk,[2,1166],{669:2398,233:$VSg,239:$VTg,319:$VUg,332:$VWg,334:$VXg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($Vzh,[2,1131]),o($Vzh,[2,1132]),o($Vzh,[2,1133]),o($Vzh,[2,1129]),{19:[1,4499],307:[1,4500]},o($VEh,[2,1092]),o($VEh,[2,1093]),o($VEh,[2,1094]),o($VEh,[2,1095]),{399:[1,4501]},{19:$V7m,394:$V8m,399:$VZp},{2:$Vsf,399:$Vtf,502:4503},{2:$Vsf,399:$Vtf,502:4504},{2:$Vsf,394:$V6m,399:$Vtf,502:4505},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4506,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{19:[1,4508],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:4509,534:4507,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vzh,[2,1171]),o($V2,[2,3105]),o($V2,[2,3106]),o($V2,[2,3101]),o($V2,[2,3108]),o($V_p,$V$p,{1241:4510,1243:4511,385:[1,4512]}),{2:$VRk,233:$VSg,239:$VTg,288:$Vbj,302:$VTk,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,669:2435,676:4513},o($Vzh,[2,1669]),o($VWn,[2,1685],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:4514,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($VWn,[2,1688],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($Vzh,[2,1201]),{2:$VRk,233:$VSg,239:$VTg,288:$Vbj,302:$VTk,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,669:2435,676:4515},o($Vzh,[2,1662]),{19:[1,4516],233:$Vgh,239:$Vhh,288:$Vih,302:$V0q,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,669:2435,674:2434},{2:$VRk,233:$VSg,239:$VTg,288:$V4h,302:$VTk,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,669:2417,676:4518},{2:$VRk,233:$VSg,239:$VTg,302:$VTk,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h,669:2398,676:4519},{2:$VRk,233:$VSg,239:$VTg,288:$Vbj,302:$VTk,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,343:$VVn,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,669:2435,676:4520},o($Vzh,[2,1664]),o($VWk,[2,1677],{803:3273,350:$Vpj}),o($VWk,[2,1676],{803:3273,350:$Vpj}),o($Vzh,[2,1667]),o($VWn,[2,1681],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:4521,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{19:[1,4523],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:4524,534:4522,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VWn,[2,1693],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:4525,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($VWn,[2,1684],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VWn,[2,1698],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,669:2398,533:4526,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,233:$VSg,236:$VQf,239:$VTg,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,319:$VUg,321:$Vtd,322:$VMj,323:$Vvd,332:$VWg,334:$VXg,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,391:$VZf,392:$V2h,393:$V3h,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($VWn,[2,1690],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VWn,[2,1691],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:4527,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($Vzh,[2,1451]),{2:$Vsf,394:$VVo,399:$Vtf,502:4528},o($VHh,$VYn,{458:3966,764:4529,208:$VPh,282:$VQh}),o($Vzh,[2,1453]),o($VHh,[2,1449]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,209:$Vel,236:$VQf,281:$VRb,283:$Vfl,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,461:4531,468:1650,472:1651,504:1604,518:1631,523:2116,533:4530,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,554:4532},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,554:4533},o($VF8,$V1q,{774:4534,628:4535,325:$VIp}),{325:$VTp,399:$V1q,620:4538,628:4539,774:4537,776:4536},o($V9m,$V_n,{777:3973,446:3975,773:4540,188:$Vta,328:$Vua}),{19:[1,4542],291:[1,4541]},o($V9m,[2,1477]),{325:$VIp,399:$V1q,628:4535,774:4537},{291:[1,4543]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3287,523:2116},o($V2q,[2,1462]),{2:$Vsf,394:$VVo,399:$Vtf,502:4544},o($V0o,[2,1461]),o($V2q,[2,1464]),{2:$Vsf,54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,399:$Vtf,502:4546,561:4545},o($Vzh,[2,1539]),{2:$Vsf,54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,399:$Vtf,502:4548,561:4547},o($Vzh,[2,1542]),{2:$Vsf,54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,399:$Vtf,502:4550,561:4549},{19:[1,4551],54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4552},{2:$Vsf,399:$Vtf,502:4553},o($Vzh,[2,1554]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4554,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{2:$Vsf,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,399:$Vtf,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,502:4555,504:1604,518:1631,523:2116,533:4556,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{19:[1,4557],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:4559,534:4558,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{2:$Vsf,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,399:$Vtf,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,502:4561,504:1604,518:1631,523:2116,533:4560,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vzh,[2,1601]),{2:$Vsf,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,399:$Vtf,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,502:4563,504:1604,518:1631,523:2116,533:4562,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vzh,[2,1604]),{17:4564,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:4566,534:4565,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{2:$Vsf,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,399:$Vtf,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,502:4568,504:1604,518:1631,523:2116,533:4567,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{2:$Vsf,399:$Vtf,502:4569},{2:$Vsf,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,399:$Vtf,502:4570,669:2417},o($V3q,[2,796]),o($V3q,[2,800]),o($V3q,[2,801]),o($V3q,[2,797]),o($Vsj,[2,794]),{2:$Vsf,394:$V6m,399:$Vtf,502:4571},{19:[1,4572],394:$V8m,399:$V4q},{2:$Vsf,399:$Vtf,502:4574},o($VNh,[2,1547]),{2:$Vsf,399:$Vtf,502:4575},{19:[1,4576],233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,399:$V5q,669:2435,674:2434},{2:$Vsf,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,399:$Vtf,502:4578,669:2417},{2:$Vsf,394:$V6m,399:$Vtf,502:4579},{19:[1,4580],394:$V8m,399:$V6q},{2:$Vsf,399:$Vtf,502:4582},o($VNh,[2,1569]),o($V2,[2,839]),o($Vkl,[2,784]),o($Vll,[2,786],{442:4583,207:$VQb,281:$VRb,395:$VSb}),o($Vll,[2,790],{442:4584,207:$VQb,281:$VRb,395:$VSb}),o($Vll,[2,788],{442:3612,207:$VQb,281:$VRb,395:$VSb}),o($Vll,[2,792],{442:3612,207:$VQb,281:$VRb,395:$VSb}),o($V2,[2,836]),o($Vmc,$V7q,{540:4585,545:4586,541:4587,212:$Vge,543:$V8q}),o($V2,$V7q,{541:4587,540:4589,212:$VOe,543:$V8q}),o($V4o,$V9q,{446:1377,497:4028,499:4029,913:4590,912:4591,188:$Vta,328:$Vua}),o($V6o,[2,1990],{446:1076,912:4027,497:4032,911:4592,188:$Vta,328:$Vua}),o($Vnl,[2,1988]),o($Vnl,$Vol,{460:1723,536:3350,538:4593,535:4594,75:$Vce,244:$Vhe}),o($V_l,$Vol,{460:1808,536:3350,535:4595,75:$Vce,244:$Vhe}),o($V2,$V7q,{541:4587,540:4596,212:$VOe,543:$V8q}),o($V6o,$V9q,{446:1076,497:4032,912:4591,188:$Vta,328:$Vua}),o($V_l,$Vol,{460:1808,536:3350,535:4594,75:$Vce,244:$Vhe}),o($V2,[2,1752]),o($V2,[2,1780]),o($V2,[2,1782]),{19:[1,4598],387:$Vaq,388:$Vbq,389:$Vcq,390:$Vdq,505:4597},{207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:4603,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},o($V2,[2,1781]),o($V2,[2,752],{544:4604,541:4605,212:$VOe}),{19:[1,4607],53:[1,4606]},o($VKl,[2,2272],{53:[1,4608]}),{398:$Vcb,513:4609,515:4610},o($Vv9,[2,2277]),{398:[2,2295]},o($VKl,[2,2296]),o($V2,[2,1811]),o($V2,[2,1997]),{17:3372,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,518:1631,519:1630,523:1646,553:3371,554:3375,555:3373,556:3376,916:4611,917:4612,918:$Vrl},o($V2,[2,1998]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:3371,554:2201,914:4613,916:3369},{403:$V0d,404:$V1d,468:1754,472:1755,474:4614},{403:$V0d,404:$V1d,468:1754,472:1755,474:4615},{403:$V0d,404:$V1d,468:1754,472:1755,474:4616},{403:$V0d,404:$V1d,468:1754,472:1755,474:4617},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,392:$VNm,402:$Vt8,441:$Vqf,509:1944,511:3286,518:3287,519:3285,523:1646},o($V2,[2,1836]),o($V2,[2,1844]),o($V2,[2,1845]),{19:$Veq,403:$V0d,404:$V1d,468:1754,472:1755,474:4622,871:4618,872:4619,873:4620,874:4621},{403:$V0d,404:$V1d,468:1754,472:1755,474:4624},o([2,6,10,19,40,75,117,121,167,212,244,274,275,286,312,335,452,543,957],[2,2131]),{403:$V0d,404:$V1d,468:1754,472:1755,474:3385,954:4625},{207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:4626,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},o($V2,[2,1895]),o($Vco,[2,2458],{827:4627,398:$V8i}),{398:$V8i,827:4628},{398:$V8i,827:4629},o($Vyl,[2,760]),{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,391:$VDf,395:$VSb,442:1398,547:4630,661:1994,689:$VEf,694:1395,695:1396},o($V2,[2,1893]),o([6,10,19,40,75,117,121,167,212,244,274,275,286,352,452,543,957],$Vfq,{1048:4631,1053:4632,459:4633,73:$Vgq,243:$Vhq}),o([6,10,40,75,121,167,212,244,275,286,352,452,543],$Vfq,{1048:4636,459:4637,73:$Vgq,243:$Vhq}),{19:[1,4639],123:$Viq,276:$Vjq,466:4638},o($Vkq,[2,589]),o($Vkq,[2,590]),o($Vmc,$Vlq,{854:4642,865:4643,117:[1,4645],202:$Vmq}),{398:$Vnq,520:4647,1033:4646},o($V2,$Vlq,{854:4649,202:$Vmq}),{19:[1,4651],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:1988,160:$Va8,161:$Vb8,207:$VQb,281:$VRb,304:$VAf,323:$VBf,346:$VCf,382:$Vpc,383:$Vqc,391:$VDf,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1754,472:1755,474:1990,547:1989,661:1994,689:$VEf,694:1395,695:1396,808:4650},o($V2,[2,1840]),o($Voq,[2,1846]),o($Voq,[2,1847]),o($Voq,[2,1848]),o($Voq,[2,1849]),o($Voq,[2,1850]),o($V2,[2,1835]),o($V2,[2,1839]),o($V2,[2,1933]),o($VCl,[2,1976]),o($VDl,[2,1978],{394:[1,4652]}),o($VDl,[2,1981],{394:[1,4653]}),o($V2,[2,1928]),o($V2,[2,1937]),o($V2,[2,1939]),{207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:4654,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},o($V2,[2,1938]),o($VDl,[2,1982],{394:$V1m}),o($VDl,[2,1980],{394:$V1m}),o($V2,[2,1881]),{19:[1,4656],121:$Vpq},o($V2,[2,1902]),{121:$Vpq},o($Vmc,$VQl,{489:4657,35:$VRl,105:$VSl}),o($V2,$VQl,{489:4658,35:$VRl,105:$VSl}),{19:[1,4660],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:4659,519:4661,523:1646},o($Vba,[2,1958]),o($Vba,[2,1959]),o($V2,$VQl,{489:4662,35:$VRl,105:$VSl}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:4659,523:2116},o($Vqq,$Vrq,{451:3624,981:4663,983:4664,984:4665,986:4666,985:4667,988:4668,987:4670,949:4676,40:$VWj,152:$Vsq,153:$Vtq,154:$Vuq,155:$Vvq,249:$Vwq,322:$Vxq,323:$Vyq,452:$VXj}),o($Vzq,$Vrq,{451:3624,985:4667,987:4670,949:4676,981:4678,984:4679,40:$VWj,152:$Vsq,153:$Vtq,154:$Vuq,155:$Vvq,249:$VAq,322:$VBq,323:$Vyq,452:$VXj}),o($Vzq,$Vrq,{451:3624,985:4667,987:4670,949:4676,984:4679,981:4682,40:$VWj,152:$Vsq,153:$Vtq,154:$Vuq,155:$Vvq,249:$VAq,322:$VBq,323:$Vyq,452:$VXj}),o($VCq,[2,2201]),o($VCq,[2,2202]),o($VCq,[2,2203]),o($VCq,[2,2204]),o($VCq,[2,2205]),o($VCq,[2,2206]),o($VCq,[2,2207]),o($VCq,[2,2208]),o($VCq,[2,2209]),o($VDq,[2,2210]),o($VDq,[2,2211]),o($VDq,[2,2212]),o($VDq,[2,2213]),{388:[1,4683]},{388:[1,4684]},{388:[1,4685]},{388:[1,4686]},o($VKl,[2,734]),o($VKl,$VEq,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{382:[1,4687]},o($Vji,[2,2353]),{382:[1,4688]},{398:[1,4691],1026:4689,1027:4690},o($VOl,[2,2359]),{382:[1,4692]},{398:[1,4693],1026:4689},o($V2,[2,1909]),o($V2,[2,1913]),o($V2,[2,1914]),o($V2,[2,1916]),o($VFq,[2,1917]),{398:[1,4694]},o($VFq,[2,1918]),o($Vti,[2,1919]),o($Vti,[2,1920]),{394:$VDm,399:$VGq},{2:$Vsf,399:$Vtf,502:4696},o($V2,[2,1906]),o($VHq,[2,2164]),{19:$VIq,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,172:[1,4704],189:$Vql,249:$Vwq,402:$Vg8,518:3425,523:2116,834:4703,845:4706,886:4700,889:4701,977:4697,979:4698,987:4707,988:4708,1010:4702,1011:4705,1012:3360,1013:3362},o($VJq,[2,2166]),o($VF8,[2,2175],{394:[1,4709]}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3498,523:2116,886:3506,976:4710},o($V2,[2,2018]),o($V2,[2,2036]),o($V2,[2,2041]),o($V2,[2,2042]),o($V2,[2,2043]),o($V2,[2,2771]),o($V2,[2,2773]),{398:$Vvn,1212:4711,1215:3904},o($VIe,[2,2995]),o($VXl,[2,2979]),o($VIe,[2,2994]),o($VIe,[2,2993]),{398:$Vvn,1212:4712,1215:3904},o($VIe,[2,2984]),o($VXl,[2,2976]),o($VIe,[2,2983]),o($VIe,[2,2982]),o($VIe,$VUl,{1035:3468,463:3469,1037:4713,117:$VVl,274:$VWl}),o($VIe,$VUl,{1035:3468,463:3469,1037:4714,117:$VVl,274:$VWl}),o($VXl,$VUl,{1035:3468,463:3469,1037:4716,117:$VVl,274:$VWl,1209:[1,4715]}),{32:$VWh,67:$VXh,85:$VYh,89:$VZh,95:$V_h,109:$V$h,124:$V0i,211:$V1i,240:$V2i,268:$V3i,270:$V4i,271:$V5i,277:$V6i,876:4717,1040:$V7i},o([6,10,19,117,274,352,577,1190,1209],[2,3022]),o($VKq,$Vho,{456:4189,1045:4718,60:$Vio,223:$Vjo}),o($Vni,[2,3024]),o($Vni,[2,3025]),o($VLq,$Vho,{456:4073,1050:4719,1045:4720,60:$Vio,223:$Vjo}),{790:[1,4721]},o($VZl,[2,1501]),o($V2,$V7q,{541:4587,540:4722,212:$VOe,543:$V8q}),o($V2,$Vlq,{854:4723,202:$Vmq}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:3371,554:2201,916:4611},{403:$V0d,404:$V1d,468:1754,472:1755,474:4622,871:4724,873:4620},o([6,10,40,75,117,121,167,212,244,274,275,286,352,452,543,957],$Vfq,{1048:4631,459:4637,73:$Vgq,243:$Vhq}),{123:$Viq,276:$Vjq,466:4725},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:1988,160:$Va8,161:$Vb8,207:$VQb,281:$VRb,304:$VAf,323:$VBf,346:$VCf,382:$Vpc,383:$Vqc,391:$VDf,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1754,472:1755,474:1990,547:1989,661:1994,689:$VEf,694:1395,695:1396,808:4650},{387:$Vaq,388:$Vbq,389:$Vcq,390:$Vdq,505:4726},o($V2,$VQl,{489:4727,35:$VRl,105:$VSl}),o($Vzq,$Vrq,{451:3624,981:4663,985:4667,987:4670,949:4676,984:4679,40:$VWj,152:$Vsq,153:$Vtq,154:$Vuq,155:$Vvq,249:$VAq,322:$VBq,323:$Vyq,452:$VXj}),{388:[1,4728]},{388:[1,4729]},{388:[1,4730]},{388:[1,4731]},{382:[1,4732]},{398:[1,4733]},{394:$VIl,399:$VGq},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,172:[1,4736],189:$VAm,249:$VAq,402:$Vg8,518:3498,523:2116,834:4735,886:4734,977:4697,987:4737,1010:4702,1012:3618},o($V4m,$VMq,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{398:$VSe,1220:4738,1231:1824},o($V9m,[2,1214],{394:$V2m}),o($V9m,[2,1208],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,394:[1,4739]}),o($V9m,[2,1211],{394:[1,4740]}),o($Vam,$VMq,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:4741,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V9m,[2,1209],{394:$V2m}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:4742,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2,[2,3089]),{19:[1,4743],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:[1,4746],402:$Vt8,509:766,522:4748,523:764,525:4747,1237:4745,1238:4744},o($VXa,[2,3050]),o($VXa,$Vnc,{446:1076,497:1375,496:4749,188:$Vta,328:$Vua}),o($VXa,[2,3057]),o($VXa,[2,3058]),o($VXa,[2,3059]),o($VYa,[2,3053]),{6:[2,13],10:$Vyi},o($V2,[2,2809]),{19:[1,4751],158:$VNq},{19:[1,4753],158:$VOq},o($V2,[2,2897]),{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:4754},o($Vmc,[2,2901]),o($V2,[2,2903]),o($V2,[2,2818]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,516:4755,518:1880,523:2116},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,516:4756,518:1880,523:2116},o($VZo,[2,1301]),o($Vgm,$VPq,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($VVi,[2,1359],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VVi,[2,1360],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:4758,716:4757},o($Vlm,$VPq,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{19:[1,4760],199:[1,4759]},{2:$Vsf,399:$Vtf,502:4761},o($VNb,[2,1374]),o($VNb,[2,1375]),o($VKb,[2,1382]),{399:[1,4762]},{199:[1,4763]},o($VWb,[2,722],{527:3570,281:$Vrm}),o($V2,$VQq,{19:[1,4764]}),o($V2,[2,2830]),o($Vmc,$Vcm,{1173:4765,1181:4766,352:$Vdm}),{2:$VRq,19:$VFg,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,167:$VSq,402:$Vt8,509:2345,510:4770,523:4767,799:4768},o($V5j,[2,1623]),o($V$b,[2,1625],{159:598,25:613,523:4772,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V$b,[2,1631]),{398:$VGh,680:4773,686:4774},{398:$VGh,680:4775,686:4776},{2:$VRq,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,167:$VSq,402:$Vg8,523:4777,799:4768},{398:$Vqj,680:4773},{398:$Vqj,680:4775},o($V0p,$V1p,{926:4310,923:4778,179:$V2p}),o($V2,$VWo),{145:[1,4780],182:[1,4779]},{158:$VXo},o($V2,$VYo),o($V2,$Vcm,{1173:4781,352:$V$o}),o($Vti,$Vkb,{159:598,25:613,523:4782,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),{307:[1,4783]},{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:4784},{307:[1,4785],394:$V4b},{315:[1,4786]},o($V2,$V4p),{384:$VPf,537:4787},o($V2,$V5p),{307:$V7p,394:[1,4788]},{307:$Vap,394:[1,4789]},{96:$Vbp},o($V2,$V7q,{541:4587,540:4790,212:$VOe,543:$V8q}),{53:[1,4791]},{398:$VIf,513:4792},o([6,10,37,75,90,114,117,121,167,212,244,258,269,274,275,286,328,335,543,957],$VVj,{949:3024,451:3624,946:4793,40:$VWj,452:$VXj}),o([6,10,37,40,75,90,114,117,121,167,212,244,258,269,274,275,286,328,335,452,543,957],$Vdp,{973:4360,861:4362,319:$Vfp,398:$Vui,975:$Vgp}),o($Vnp,$Vjp,{1058:4794,121:$Vkp}),{398:$Vpp,1107:4795},o($V2,$Vqp,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{394:$VTq,399:$Vsp},{54:$VZm,118:$V_m,119:$VRo,125:$V$m,126:$V0n,130:$VSo,168:$V1n,175:$V2n,251:$V3n,285:$VTo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VUo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4113,980:4396,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121},{75:$Vce,244:$Vhe,460:1808,536:4797},{255:$VYm,1071:4798},o($V2,$VBp),{31:$VCp,61:$VDp,68:$VEp,1098:4427,1099:4429,1100:4430},o($V2,$VFp,{446:1076,497:4435,188:$Vta,328:$Vua}),o($VTb,$VUl,{1035:3468,463:3469,1037:4716,117:$VVl,274:$VWl}),{307:[1,4799]},o($VTb,$VUb,{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,728:1967,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:2671,595:4494,667:4800,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,668:[1,4801],669:2435},{394:$V2m,399:$VZp},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4802,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{343:$V$p,385:[1,4804],1241:4803},{233:$VSg,239:$VTg,288:$Vbj,302:$V0q,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,669:2435},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4805,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4552},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4806,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4807,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{394:$V2m,399:$V4q},{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,399:$V5q,669:2435},{394:$V2m,399:$V6q},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,398:[1,4809],402:$Vg8,522:4748,523:1250,1237:4808},o($VUq,$VVq,{924:4810,927:4811,929:4812,169:[1,4813]}),o($V0p,$V1p,{926:4310,923:4814,179:$V2p}),o($V0p,$VWq,{19:[1,4815]}),o($VUq,$VVq,{924:4816,927:4817,169:$VXq}),{19:[1,4820],39:$VYq},o($VUq,$VVq,{927:4817,924:4821,169:$VXq}),o($V0p,$VWq),{39:$VYq},o($VUq,$VVq,{927:4817,924:4822,169:$VXq}),o($VUq,$VVq,{927:4817,924:4823,169:$VXq}),o($VF8,[2,736],{394:[1,4824]}),o($VF8,[2,737],{394:$VIl}),o($VEm,$VEq,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($VFm,[2,741],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VFm,[2,742]),o($VFm,[2,743],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{19:[1,4826],106:$V3f,132:$V4f,309:$V5f,828:1866,1172:4825,1180:4827},o($V2,[2,2925]),o($V2,$VZq,{394:$VCi}),o($V2,[2,2937],{394:$VDi}),o($V2,[2,2938]),{19:[1,4829],106:$V3f,132:$V4f,309:$V5f,828:1866,1172:4828,1180:4830},o($V2,[2,2939]),o($V2,[2,2913]),{19:[1,4832],193:$VG9,262:$VI9,342:$VL9,447:4831},o($V2,[2,3126]),{193:$VG9,262:$VI9,342:$VL9,447:4833},o($V2,[2,3150]),o($V2,[2,3151]),o($V2,[2,3153]),o($V2,$V_q,{19:[1,4835],179:[1,4834]}),o($V2,[2,3172],{179:[1,4836]}),{384:$VPf,537:4837},o($V2,[2,3179],{179:[1,4838]}),o($V2,[2,3175],{179:[1,4839]}),o($V2,[2,3391]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:2200,554:2201,1245:4840,1308:2196,1310:2203},o($Vtj,[2,890]),o($VRj,[2,1276],{394:$VOm}),{17:4843,19:$VPm,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,392:$Vgg,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2214,534:2218,554:1610,556:1609,580:4841,588:4842,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,697:2211,699:2213,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VRj,[2,1279],{394:$VOm}),o($VRj,[2,1280],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,697:2211,533:2834,580:4844,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($VRj,[2,1281],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,697:2211,533:2834,580:4845,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($Vtj,$V8p,{602:4349,603:4350,710:4351,600:4846,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),o($Vtj,[2,915]),o($Vtj,[2,917],{710:1918,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),o($Vtj,[2,918]),o([2,6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,266,294,308,313,317,318,326,333,338,347,398,399,402],$V8f,{711:4847,273:$V9f,279:$Vaf}),{2:$Vfg,17:3734,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,392:$Vgg,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2214,534:2218,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,697:3732,699:3735,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649,805:4848,806:[1,4849]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,394:$VXp,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,580:3731,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:2211,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2,[2,1745]),o($V2,[2,1750]),o($V2,[2,2135]),{382:[1,4850]},o($V$q,$V0r,{960:4851,968:4852,1015:4853,462:4854,90:$V1r,269:$V2r,328:[1,4855]}),o($V3r,$V0r,{1015:4853,960:4858,462:4859,90:$V1r,269:$V2r,328:$V4r}),o($Vcp,[2,2153]),o($Vep,[2,2154]),o($Vcp,[2,2157]),{384:$VJe,537:4861,539:4862},{19:[1,4864],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:4863,523:764,525:4865},o($Vep,[2,2160]),o($Vep,[2,2155]),{384:$VPf,537:4861},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:4863,523:1250},o($Vmc,[2,2115]),o($V5r,[2,2127]),{19:[1,4867],47:[1,4866]},{2:[2,2117]},{2:[2,2116]},o($VTm,[2,2123],{403:$Vfk}),o($VTm,[2,2124],{404:$Vhk}),{19:[1,4869],167:$Vza,286:$VAa,436:4868},{398:$V8i,827:4870},o($V2,[2,2474]),o([6,10,40,121,452],[2,2588]),o($V_j,[2,2587]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:4871,554:2201},o($VEm,$V6r,{19:[1,4872]}),o($Vnp,$Vjp,{1058:4873,121:$Vkp}),{167:$Vza,286:$VAa,436:4874},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:4875,554:2201},o($VFm,$V6r),{19:[1,4877],167:[1,4876]},o($V2,[2,2606],{167:[1,4878]}),{17:4882,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,518:1631,523:2116,553:4881,554:2201,1117:4879,1118:4880},{167:[1,4883]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:4881,554:2201,1117:4884},o($Vrp,[2,2644]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:3795,160:$Va8,161:$Vb8,1123:4885,1124:4886},o([6,10,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,160,161,168,207,236,281,285,292,303,304,311,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,395,396,397,398,402,403,404,762,763,794],[2,2645]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:4282,160:$Va8,161:$Vb8,1121:4887,1123:3793},o($VFm,[2,2652]),o($VFm,[2,2653]),o($VFm,[2,2654]),{19:[1,4889],261:$V7r,1072:4888},o($V2,[2,2491]),o($V2,[2,2496],{1072:4891,261:$V7r}),{261:$V7r,1072:4892},o([19,75,244],[2,2547]),o([6,10,75,244],[2,2548]),{261:$V7r,1072:4893},{399:[1,4894]},{2:$Vsf,399:$Vtf,502:4895},{17:4897,19:$V5,54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,441:$VF5,561:4896},{399:[2,2546]},o($V8r,[2,2537]),{54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:3806,1093:4898},o($Vxp,[2,814]),{382:[1,4899]},o($Vxp,[2,815]),{382:[1,4900]},o($Vxp,[2,816]),{75:$Vce,244:$Vhe,460:1808,536:4901},{261:$V7r,1072:4902},{54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4896},{19:[1,4904],75:$Vce,244:$Vhe,460:1723,536:4903,538:4905},o($V2,[2,2509]),o($V2,[2,2514],{460:1808,536:4906,75:$Vce,244:$Vhe}),{75:$Vce,244:$Vhe,460:1808,536:4907},{255:$VYm,1071:4908},{75:$Vce,244:$Vhe,460:1808,536:4909},o($V2,[2,2532]),o($Vmc,[2,2575],{394:[1,4910]}),o($V2,[2,2576]),o($V9r,[2,2577]),{403:$V0d,468:4911},{403:[2,2580]},{403:[2,2581]},{403:[2,2582]},o($V2,[2,2714]),o($V2,[2,3348]),o($V2,[2,3356],{159:598,25:613,523:2116,531:2606,518:2607,500:4912,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,402:$Vg8}),o($V2,[2,3359]),o($V2,[2,3357]),o($V2,[2,3358]),o($Var,$Vbr,{613:4913,629:4914,650:4915,651:4916,652:4917,170:$Vcr,176:$Vdr,656:$Ver}),o($VGp,$Vfr),{291:[1,4921]},{167:[1,4922]},o($Vgr,[2,977]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4923,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vgr,[2,983]),{173:$Vhr,191:$Vir},{112:[1,4926]},o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:4927,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:4928,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:4929,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:4930,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:4931,170:$Vcr,176:$Vdr,656:$Ver}),o($Vkr,$Vbr,{650:4915,652:4917,621:4932,613:4933,629:4934,653:4935,654:4936,651:4937,655:4938,170:$Vlr,176:$Vmr,656:$Vnr}),o($VSp,$Vfr,{2:[1,4943],19:[1,4942]}),{19:[1,4945],291:[1,4944]},o($VRp,$VHp,{628:4441,612:4946,325:$VIp}),o($Vor,$VHp,{628:4441,620:4948,612:4949,19:[1,4947],325:$VTp}),{19:[1,4950],167:[1,4951]},o($VRp,$VHp,{628:4441,612:4952,325:$VIp}),o($Von,$Vln,{627:3871,611:4953,206:$Vmn}),o($VRp,$VHp,{628:4441,612:4954,325:$VIp}),o($Vor,$VHp,{628:4441,620:4955,612:4956,325:$VTp}),o($VRp,$VHp,{628:4441,612:4957,325:$VIp}),o($VRp,$VHp,{628:4441,612:4958,325:$VIp}),o($VRp,$VHp,{628:4441,612:4959,325:$VIp}),o($Vor,$VHp,{628:4441,620:4960,612:4961,325:$VTp}),o($VPg,[2,978]),o($VPg,[2,979]),o($VVp,[2,1005],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3875,554:2108,633:4962,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VPg,[2,981]),{17:4966,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:4964,534:4965,554:1610,556:1609,642:4963,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VPg,[2,986]),{19:[1,4967],173:$Vhr,191:$Vir},{19:[1,4968],112:[1,4969]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3875,554:2108,633:4970,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VRp,$VHp,{628:4441,612:4971,325:$VIp}),o($Von,$Vln,{627:3871,611:4972,206:$Vmn}),o($VRp,$VHp,{628:4441,612:4973,325:$VIp}),o($VRp,$VHp,{628:4441,612:4974,325:$VIp}),o($VRp,$VHp,{628:4441,612:4975,325:$VIp}),o($Vor,$VHp,{628:4441,620:4976,612:4977,325:$VTp}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,580:4342,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:2211,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{398:$Vvn,1212:4978,1215:3904},{394:[1,4980],399:[1,4979]},o($VEm,[2,1218]),{2:$Vsf,394:$V2m,399:$Vtf,502:4981},{2:$Vsf,399:$Vtf,502:4982},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4983,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vzh,[2,1159]),o($Vzh,[2,1160]),o($Vpr,[2,1167],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{399:[1,4984]},{19:$V7m,394:$V8m,399:$Vqr},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4986,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{19:[1,4988],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:4989,534:4987,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vzh,[2,1165]),o($Vzh,[2,1130]),{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:4990,509:3201,518:1631,519:1630,523:1646,533:4992,534:4991,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VEh,[2,1105]),o($VEh,[2,1106]),o($Vzh,[2,1639]),o($Vzh,[2,1640]),o($Vzh,[2,1641]),o($Vpr,[2,1168],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($Vpr,[2,1169],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VNn,[2,1170],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($Vrr,$Vsr,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),{19:[1,4993],343:[1,4994]},o($V2,[2,3110]),{19:[1,4996],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4995,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vzh,[2,1668]),o($VWn,[2,1686],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($Vzh,[2,1661]),o($Vzh,[2,1660]),o($VEh,[2,1658]),o($Vzh,[2,1665]),o($Vzh,[2,1666]),o($Vzh,[2,1663]),o($VWn,[2,1682],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VWn,[2,1683],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VWn,[2,1695],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,669:2398,533:4997,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,233:$VSg,236:$VQf,239:$VTg,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,319:$VUg,321:$Vtd,322:$VMj,323:$Vvd,332:$VWg,334:$VXg,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,391:$VZf,392:$V2h,393:$V3h,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o([19,301,302,350],$Vtr,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($VWn,[2,1694],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VWn,[2,1697],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VWn,[2,1692],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($Vzh,[2,1452]),o($VHh,[2,1450]),{209:$Vel,233:$VSg,239:$VTg,283:$Vfl,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,461:4998,669:2435},o($VHh,[2,1447]),o($Vzh,[2,779],{442:3976,207:$VQb,281:$VRb,395:$VSb}),o($Vzh,[2,782],{442:3976,207:$VQb,281:$VRb,395:$VSb}),{2:$Vsf,399:$Vtf,502:4999},o($VF8,$Vur,{778:5000,780:5001,781:5002,791:5004,250:$Vvr,331:$Vwr,336:$Vxr}),{2:$Vsf,399:$Vtf,502:5007},{399:[1,5008]},o($VF8,[2,1484]),{19:[1,5009],250:$Vvr,331:$Vwr,336:$Vxr,399:$Vur,778:5000,779:5010,780:5001,781:5011,791:5004},o($VF8,$V1q,{628:4535,774:5012,325:$VIp}),{17:5016,19:[1,5014],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,394:$Vxi,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2682,534:2680,554:1610,556:1609,661:1642,664:1597,667:5013,671:1589,677:5015,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($V9m,[2,1479]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:5017,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2q,[2,1463]),{2:$Vsf,399:$Vtf,502:5018},o($Vzh,[2,1538]),{2:$Vsf,399:$Vtf,502:5019},o($Vzh,[2,1541]),{2:$Vsf,399:$Vtf,502:5020},o($Vzh,[2,1544]),{2:$Vsf,399:$Vtf,502:5021},{399:[1,5022]},o($Vzh,[2,1546]),{2:$Vsf,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,399:$Vtf,502:5023,669:2435},o($Vzh,[2,1555]),{2:$Vsf,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,399:$Vtf,502:5024,669:2435},{2:$Vsf,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h,399:$Vtf,502:5025,669:2398},{2:$Vsf,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,399:$Vtf,502:5026,669:2417},{233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,399:$Vyr,669:2435,674:2434},{2:$Vsf,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,399:$Vtf,502:5028,669:2435},o($Vzh,[2,1600]),{2:$Vsf,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,399:$Vtf,502:5029,669:2435},o($Vzh,[2,1603]),{2:$Vsf,399:$Vtf,502:5030},{2:$Vsf,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,399:$Vtf,502:5031,669:2417},{233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,399:$Vzr,669:2435,674:2434},{2:$Vsf,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,399:$Vtf,502:5033,669:2435},o($Vzh,[2,1610]),o($Vzh,[2,1606]),o($Vzh,[2,1608]),o($Vzh,[2,1550]),{2:$Vsf,394:$VVo,399:$Vtf,502:5034},o($VNh,[2,1549]),o($Vzh,[2,1552]),o($Vzh,[2,1615]),{2:$Vsf,399:$Vtf,502:5035},o($VNh,[2,1613]),o($Vzh,[2,1617]),o($Vzh,[2,1571]),{2:$Vsf,394:$VVo,399:$Vtf,502:5036},o($VNh,[2,1570]),o($Vzh,[2,1573]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2509,523:2116,557:5037},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:2509,523:2116,557:5038},o($V2,$VAr,{19:[1,5039]}),o($V2,[2,1776]),o($Vwl,$V9i,{546:2570,542:5040,352:$Vsi}),o($Vwl,[2,751]),o($V2,[2,1775]),o($V6o,[2,1992],{446:1076,912:4027,497:4032,911:5041,188:$Vta,328:$Vua}),o($Vnl,[2,1989]),o($V6o,[2,1991],{446:1076,497:4032,912:4591,188:$Vta,328:$Vua}),o($V_l,[2,1994]),o($Vnl,[2,1996]),o($V_l,[2,1995]),o($V2,[2,1774]),{19:[1,5043],348:[1,5042]},o($V2,[2,671],{348:[1,5044]}),o($VBr,[2,677]),o($VBr,[2,678]),o($VBr,[2,679]),o($VBr,[2,680]),o($V2,[2,1753]),o($V2,[2,1778]),o($V2,$V9i,{546:2570,542:5045,352:$Vsi}),{19:[1,5047],82:$VCr},o($VKl,[2,2273]),{82:[1,5048]},{19:$VDr,190:[1,5049]},o($Vv9,[2,2278]),o($VFm,[2,2000]),o($VF8,[2,2002],{394:[1,5051]}),o($VF8,[2,2004],{394:$VQo}),o($VFm,[2,2005]),o($VFm,[2,2008]),o($VFm,[2,2009]),o($VFm,[2,2010]),{394:[1,5053],399:$VEr},{2:$Vsf,399:$Vtf,502:5054},o($VFm,[2,1855]),o($VF8,[2,1857],{394:[1,5055]}),{387:[1,5056]},o($VFm,[2,1862]),o($Vsl,[2,2400]),o($VEm,[2,2133]),o($VEm,[2,2134]),o($Vco,[2,2459]),o($Vco,[2,2456]),o($Vco,[2,2457]),o($Vwl,[2,758]),o($Vco,$Vtl,{1056:3388,877:5057,352:$V$l}),o($VFr,$Vtl,{1056:3388,877:5058,352:$V$l}),{19:[1,5060],123:$Viq,276:$Vjq,466:5059},o($Vkq,[2,595]),o($Vkq,[2,596]),o($VFr,$Vtl,{1056:3388,877:5061,352:$V$l}),{123:$Viq,276:$Vjq,466:5062},{19:[1,5064],291:[1,5063]},o($VGr,[2,2433]),o($Vvk,[2,609]),o($Vvk,[2,610]),o($V2,$VHr,{19:[1,5065]}),o($V2,[2,1831]),o($Vmc,[2,2012]),{19:[1,5066],167:[1,5067]},{394:[1,5069],399:[1,5068]},o($VEm,[2,2380]),{207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:5071,521:5070,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},o($V2,[2,1828]),o($V2,[2,1834]),o($V2,[2,1841]),{188:$Vta,328:$Vua,446:1076,497:2589,903:5072},{188:$Vta,328:$Vua,446:1076,497:2589,903:5073},o($V2,[2,1929]),{398:$V8i,827:5074},o($V2,[2,1903]),o($V2,$VIr,{19:[1,5075]}),o($V2,[2,1880]),o($Vuo,[2,1957]),o($Vyo,[2,1960]),o($Vyo,[2,1961]),o($V2,[2,1878]),o([2,6,10,19,29,35,63,105,394,399],[2,2179]),o($Vzq,[2,2182]),o($Vqq,$VJr,{451:3624,988:4668,987:4670,949:4676,986:5076,985:5077,40:$VWj,152:$Vsq,153:$Vtq,154:$Vuq,155:$Vvq,249:$Vwq,322:$Vxq,323:$Vyq,452:$VXj}),o($Vzq,[2,2187],{451:3624,985:4667,987:4670,949:4676,984:5078,40:$VWj,152:$Vsq,153:$Vtq,154:$Vuq,155:$Vvq,249:$VAq,322:$VBq,323:$Vyq,452:$VXj}),o($VKr,[2,2185]),o($VLr,[2,2199]),{19:[1,5079],323:$VMr},o($VKr,[2,2191]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:5081,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:5082,160:$Va8,161:$Vb8},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,304:$Vrd,311:$Vsd,321:$Vtd,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,395:$VSb,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,554:2108,661:1642,664:5083,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,395:$VSb,442:1398,661:5084,694:1395,695:1396},o($VKr,[2,2197]),o($VKr,[2,2198]),{19:[1,5085],156:$VNr},o($Vzq,[2,2180]),o($Vzq,$VJr,{451:3624,987:4670,949:4676,985:5077,40:$VWj,152:$Vsq,153:$Vtq,154:$Vuq,155:$Vvq,249:$VAq,322:$VBq,323:$Vyq,452:$VXj}),{323:$VMr},{156:$VNr},o($Vzq,[2,2181]),{17:5089,19:$V5,54:$VZm,118:$V_m,119:$Vzo,125:$V$m,126:$V0n,130:$VAo,168:$V1n,175:$V2n,251:$V3n,285:$VBo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VCo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,389:$VOr,441:$VF5,561:4113,980:5087,982:5090,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,997:4122,998:4123,999:4124,1000:4125},{17:5093,19:$V5,54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,389:$VPr,394:$VQr,441:$VF5,561:5091},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,389:$VRr,394:$VSr,402:$Vg8,435:5101,523:5100,1002:5095,1003:5097,1004:5098,1005:5099},{17:5109,19:$V5,54:$VZm,118:$V_m,119:$Vzo,125:$V$m,126:$V0n,130:$VAo,168:$V1n,175:$V2n,251:$V3n,285:$VBo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VCo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,389:$VTr,394:$VSr,435:5108,441:$VF5,561:4113,980:5106,982:5110,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,997:4122,998:4123,999:4124,1000:4125,1007:5103,1008:5105,1009:5107},{19:[1,5112],34:$VUr},{34:[1,5113]},o($VVr,[2,2358]),o($VOl,[2,2360]),{17:5120,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,518:5118,519:5119,523:1646,1028:5114,1029:5115,1030:5116,1031:5117},{34:[1,5121]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:5123,523:2116,1028:5122,1030:5116},{17:2927,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,441:$VF5,500:5124,501:5125,509:2926,518:2925,523:2116,531:2606,532:2924},o($VEm,[2,1921]),o($VF8,[2,1923]),{399:[1,5126]},{2:$Vsf,399:$Vtf,502:5127},{2:$Vsf,172:[1,5129],399:$Vtf,502:5128},o($VEm,$VWr,{19:[1,5130]}),o($VF8,[2,2173],{394:[1,5131]}),{399:[2,2257]},{394:[1,5132],399:$VXr},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5133},o($VF8,[2,2261]),o($VF8,[2,2262],{394:[1,5134]}),{398:$Vcb,513:5135,515:5136},o($VF8,[2,2290],{513:5137,398:$VIf}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3498,523:2116,886:3506,976:5138},o($VF8,[2,2172],{394:$VYr}),o($V2,[2,3008]),o($V2,[2,3009]),o($VIe,[2,2986]),o($VIe,[2,2987]),o($VIe,[2,2988]),o($VXl,[2,2977]),o($Vsl,[2,2397]),o([6,10,40,73,75,117,121,167,212,243,244,274,275,286,321,323,352,452,543,577,957,1190],$VZr,{1046:5140,38:$V_r}),o($V$r,$VZr,{1046:5142,38:$V_r}),o([6,10,19,40,73,75,117,121,167,212,243,244,274,275,286,321,323,352,452,543,577,957,1209],$VZr,{1051:5143,1046:5144,38:[1,5145]}),o($VZl,[2,1500]),o($V2,[2,1764]),o($V2,$VHr),{394:$V0s,399:$VEr},{291:[1,5147]},{348:[1,5148]},o($V2,$VIr),{54:$VZm,118:$V_m,119:$VRo,125:$V$m,126:$V0n,130:$VSo,168:$V1n,175:$V2n,251:$V3n,285:$VTo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VUo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,389:$VOr,561:4113,980:5087,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121},{54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,389:$VPr,561:5149},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,389:$VRr,402:$Vg8,523:5151,1002:5150,1004:5098},{54:$VZm,118:$V_m,119:$VRo,125:$V$m,126:$V0n,130:$VSo,168:$V1n,175:$V2n,251:$V3n,285:$VTo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VUo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,389:$VTr,561:4113,980:5106,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,1007:5152},{34:$VUr},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,500:5153,518:2607,523:2116,531:2606},o($VFm,$VWr),{394:[1,5154],399:$VXr},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5155},{398:$VIf,513:5135},o($V2,[2,3071],{394:$Vvi}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:5156,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2671,554:2108,661:1642,664:1597,667:5157,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V9m,[2,1213],{394:$V2m}),o($V9m,[2,1217],{394:$V2m}),o($V2,[2,3090]),o($V2,[2,3091]),{19:[1,5158],167:[1,5159]},o($VTb,$VUb,{728:1214,596:5161,595:5162,19:[1,5160]}),o($V2,[2,3098]),o($V1s,[2,3095]),o($VXa,[2,3056]),o($Vmc,[2,2895]),o($V2,[2,2898]),o($Vmc,[2,2896]),o($V2,[2,2899]),o($V2,[2,2885],{394:$Vxm}),o($VHi,[2,707],{394:$Vym}),o($VHi,[2,706],{394:$Vym}),{394:[1,5164],399:[1,5163]},o($VEm,[2,1357]),{382:[1,5165]},{2:$Vsf,399:$Vtf,502:5166},o($VKb,[2,1378]),o($Vlf,[2,1384],{252:[1,5167]}),{382:[1,5168]},o($V2,[2,2829]),o($V2,$V2s,{19:[1,5169]}),o($V2,[2,2832]),o($VYb,$V3s,{799:5170,800:5172,167:[1,5171]}),o($V5j,[2,1620]),o($V5j,[2,1622]),o($V$b,[2,1629],{799:5173,167:$VSq}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5174},o($V$b,[2,1626],{799:5175,167:$VSq}),o($V4s,[2,1436]),o($V5s,[2,1438]),o($V4s,[2,1437]),o($V5s,[2,1439]),o($V2g,$V3s,{799:5170,167:[1,5176]}),o($VUq,$VVq,{924:4810,927:4817,169:$VXq}),{158:$VNq},{158:$VOq},o($V2,$VQq),o($V2,$Vcm,{1173:5177,352:$V$o}),{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:5178},o($V2,$VZq,{394:$Vxm}),{106:$V3f,132:$V4f,309:$V5f,828:1866,1172:5179},{193:$VG9,262:$VI9,342:$VL9,447:5180},o($V2,$V_q,{179:[1,5181]}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,580:5182,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:2211,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{2:$Vfg,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,392:$Vgg,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:2834,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,697:3732,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119,805:5183,806:$Vhg},o($V2,$VAr),{82:$VCr},{190:[1,5184]},o([6,10,37,75,114,117,121,167,212,244,258,274,275,286,335,543,957],$V0r,{1015:4853,462:4859,960:5185,90:$V1r,269:$V2r,328:$V4r}),{167:$Vza,286:$VAa,436:5186},{167:[1,5187]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:4282,160:$Va8,161:$Vb8,1123:4885},{261:$V7r,1072:4888},{75:$Vce,244:$Vhe,460:1808,536:5188},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:5189,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{394:$V2m,399:$Vqr},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:5190,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vrr,$Vsr,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{343:[1,5191]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:4995,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VWn,$Vtr,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,399:$Vyr,669:2435},{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,399:$Vzr,669:2435},{167:[1,5192]},o($VTb,$VUb,{728:1967,595:5162}),o($V2,$V6s,{925:5193,81:$V7s}),o($VUq,$V8s,{19:[1,5195]}),o($V2,$V6s,{925:5196,81:$V7s}),{19:[1,5198],78:$V9s},o($VUq,$VVq,{927:4817,924:5199,169:$VXq}),o($VUq,$VVq,{927:4817,924:5200,169:$VXq}),o($V2,$V6s,{925:5201,81:$V7s}),o($VUq,$V8s),{78:$V9s},o([6,10,19,81,169],[2,2062]),o($V0p,[2,2063]),o($V2,$V6s,{925:5202,81:$V7s}),o($V2,$V6s,{925:5203,81:$V7s}),o($V2,$V6s,{925:5204,81:$V7s}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,500:5205,518:2607,523:2116,531:2606},o($V2,$Vas,{394:$VCi}),o($V2,[2,2926],{394:$VDi}),o($V2,[2,2927]),o($V2,$Vbs,{394:$VCi}),o($V2,[2,2940],{394:$VDi}),o($V2,[2,2941]),{19:[1,5207],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:5206,523:764,525:5208},o($V2,[2,3127]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:5209,523:1250},{19:[1,5211],101:$Vcs},o($V2,[2,3173]),{101:[1,5212]},o($V2,[2,3177],{179:[1,5213]}),{101:[1,5214]},{101:[1,5215]},o($VFj,[2,3405],{394:$VJj}),{19:$V9p,307:$Vds,394:$Vun},{307:[2,1705]},{167:$Vza,286:$VAa,307:[2,1708],436:3009},o($VRj,[2,1282],{394:$VOm}),o($VRj,[2,1283],{394:$VOm}),o($Vtj,[2,914]),o($Vtj,[2,1302],{159:598,25:613,522:760,666:761,710:1185,523:1250,717:1273,720:1274,705:2756,602:5216,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb,398:$VVb,402:$Vg8}),{307:$Ves,394:[1,5217]},{394:[1,5218]},o($V2,[2,2137]),o($Vfs,$Vgs,{961:5219,969:5220,1018:5221,258:[1,5222]}),o($Vhs,$Vgs,{1018:5221,961:5223,258:$Vis}),o($V$q,[2,2298]),{19:[1,5225],291:[1,5226],398:[1,5228],897:5227},{19:[1,5229],291:[1,5230]},o($VCe,[2,601]),o($VCe,[2,602]),o($Vhs,$Vgs,{1018:5221,961:5231,258:$Vis}),{291:[1,5232]},{291:[1,5233]},o($Vcp,[2,2158]),o($Vep,[2,2161]),o($Vcp,[2,2159]),o($Vep,[2,2162]),o($Vep,[2,2163]),o($V5r,[2,2129],{827:5234,398:$V8i}),o($V5r,[2,2130]),{15:5235,18:1014,19:[1,5236],23:5237,352:$V26,572:382,574:412,576:1015,577:$VK5},o($V2,[2,2475]),o([6,10,19,167,286],[2,2464]),o($Vmp,$VVj,{949:3024,451:3624,946:5238,40:$VWj,452:$VXj}),o($VF8,[2,2591],{394:[1,5239]}),{167:$Vza,286:$VAa,436:5240},{15:5241,18:1010,352:$V_8,572:808,577:$V19},o($VFm,$VVj,{949:3024,451:3624,946:5242,40:$VWj,452:$VXj}),{19:[1,5244],403:$V1e,404:$V2e,468:1754,470:5248,472:1755,473:5249,474:5246,475:5247,1108:5243,1114:5245},o($V2,[2,2607]),{403:$V0d,404:$V1d,468:1754,472:1755,474:5246,1108:5250},{394:[1,5252],399:$Vjs},{2:$Vsf,399:$Vtf,502:5253},o($VFm,[2,2632]),o($VF8,[2,2634],{394:[1,5254]}),{403:$V0d,404:$V1d,468:1754,472:1755,474:5246,1108:5255},{394:$Vks,399:$Vjs},o($VFm,[2,2647]),o($VF8,[2,2649],{394:[1,5257]}),o($VF8,[2,2650],{394:$VTq}),o($V2,[2,2487]),o($V2,[2,2492]),{387:[1,5258]},o($V2,[2,2500]),o($V2,[2,2499]),o($V2,[2,2498]),o($Vtp,[2,2536]),o($V8r,[2,2538]),o($Vwp,[2,2540]),o($VF8,[2,2542],{394:[1,5259]}),o($VF8,[2,2543],{394:$VAp}),{394:[1,5261],399:[1,5260]},{399:[1,5262]},{261:$V7r,1072:5263},o($V2,[2,2497]),o([19,278],$Vls,{1075:5264,1083:5265,237:[1,5266]}),o($V2,[2,2510]),o($Vms,$Vls,{1075:5267,237:$Vns}),{237:$Vns,278:$Vls,1075:5269},{237:$Vns,278:$Vls,1075:5270},{75:$Vce,244:$Vhe,460:1808,536:5271},{237:$Vns,278:$Vls,1075:5272},{31:$VCp,61:$VDp,68:$VEp,1099:5273,1100:4430},o($V9r,[2,2579]),o($V2,[2,3360],{394:$VIl}),o($Vos,$Vps,{614:5274,630:5275,242:$Vqs,320:$Vrs}),o($Var,$Vss),o($Vts,[2,1041]),o($Var,$Vus,{652:5278,656:$Ver}),o($Vts,[2,1044]),{291:[1,5279]},{291:[1,5280]},{291:[1,5281]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:5284,554:2108,643:5282,645:5283,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{398:$V$k,771:5285},o($VPp,$Vvs,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($Vgr,[2,984]),o($Vgr,[2,985]),{398:[1,5286]},o($Vws,$Vps,{630:5275,614:5287,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5288,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5289,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5290,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5291,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5292,242:$Vqs,320:$Vrs}),o($Vxs,$Vps,{622:5293,614:5294,630:5295,242:$Vys,320:$Vzs}),o($Vkr,$Vss,{2:[1,5299],19:[1,5298]}),o($Vjr,[2,1045]),o($Vjr,[2,1046],{652:5300,656:$Ver}),o($VAs,$Vus,{652:5278,655:5301,656:$Vnr}),o($Vjr,[2,1049]),{19:[1,5302],291:[1,5303]},{19:[1,5304],291:[1,5305]},{19:[1,5306],291:[1,5307]},o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5308,170:$Vcr,176:$Vdr,656:$Ver}),o($VBs,$Vbr,{629:4914,650:4915,652:4917,653:4935,654:4936,651:4937,655:4938,621:5310,613:5311,19:[1,5309],170:$Vlr,176:$Vmr,656:$Vnr}),{17:5318,19:[1,5315],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:5317,534:5316,554:1610,556:1609,643:5313,644:5312,645:5283,646:5314,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VRp,[2,1018]),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5319,170:$Vcr,176:$Vdr,656:$Ver}),o($VRp,$VHp,{628:4441,612:5320,325:$VIp}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5321,170:$Vcr,176:$Vdr,656:$Ver}),o($VBs,$Vbr,{629:4914,650:4915,652:4917,653:4935,654:4936,651:4937,655:4938,621:5322,613:5323,170:$Vlr,176:$Vmr,656:$Vnr}),o($Von,[2,1533]),{398:$V_k,771:5285,772:5324},o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5325,170:$Vcr,176:$Vdr,656:$Ver}),o($VRp,$VHp,{628:4441,612:5326,325:$VIp}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5327,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5328,170:$Vcr,176:$Vdr,656:$Ver}),o($VBs,$Vbr,{629:4914,650:4915,652:4917,653:4935,654:4936,651:4937,655:4938,621:5329,613:5330,170:$Vlr,176:$Vmr,656:$Vnr}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5331,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5332,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5333,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5334,170:$Vcr,176:$Vdr,656:$Ver}),o($VBs,$Vbr,{629:4914,650:4915,652:4917,653:4935,654:4936,651:4937,655:4938,621:5335,613:5336,170:$Vlr,176:$Vmr,656:$Vnr}),o($VVp,[2,1006],{394:$VOp}),o($VVp,[2,1008],{394:[1,5337]}),o($VWp,$Vvs,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($VCs,[2,1011],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VCs,[2,1013],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:5338,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($VPg,[2,987]),o($VPg,[2,989]),{398:[1,5339]},o($VVp,[2,1007],{394:$VOp}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5340,170:$Vcr,176:$Vdr,656:$Ver}),o($VRp,$VHp,{628:4441,612:5341,325:$VIp}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5342,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5343,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5344,170:$Vcr,176:$Vdr,656:$Ver}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5345,170:$Vcr,176:$Vdr,656:$Ver}),o($VBs,$Vbr,{629:4914,650:4915,652:4917,653:4935,654:4936,651:4937,655:4938,621:5346,613:5347,170:$Vlr,176:$Vmr,656:$Vnr}),o($VYp,[2,3017]),o([6,10,19,350,394],[2,3018]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,304:$Vrd,311:$Vsd,321:$Vtd,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,395:$VSb,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,554:2108,661:1642,664:5348,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vzh,[2,1157]),o($Vzh,[2,1158]),o($VHk,[2,1161],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VEh,[2,1103]),o($VEh,[2,1104]),o($VHk,[2,1162],{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VHk,[2,1163],{669:2417,233:$VSg,239:$VTg,312:$V5h,319:$VUg,332:$VWg,334:$VXg,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VIk,[2,1164],{669:2398,233:$VSg,239:$VTg,319:$VUg,332:$VWg,334:$VXg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($VJk,$VDs,{674:2434,669:2435,233:$Vgh,239:$Vhh,312:$Vjh,316:$Vkh,319:$Vlh,332:$Vnh,334:$Voh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Vzh,[2,1134]),o($VNk,[2,1135],{669:2417}),o($VOk,$VEs,{674:2434,669:2435}),o($V2,[2,3109]),{19:[1,5349],1166:$VFs,1190:[1,5353],1191:[1,5352],1242:5351,1244:5350},o($V_p,[2,3114],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($V2,[2,3115]),o($VWn,[2,1696],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VHh,[2,1446]),o($Vzh,[2,1472]),o($VF8,[2,1483]),o($VF8,[2,1488]),{288:[1,5355],785:[1,5356]},o($VGs,[2,1505]),o($VGs,[2,1506]),o($VHs,[2,1515]),o($VHs,[2,1516]),o($Vzh,[2,1473]),o($VHh,[2,1471]),o($VF8,$Vur,{780:5001,781:5002,791:5004,778:5357,250:$Vvr,331:$Vwr,336:$Vxr}),o($VF8,[2,1486]),{19:[1,5358],288:[1,5359],785:[1,5360]},{2:$Vsf,399:$Vtf,502:5361},o($VZn,$VIs,{19:[1,5362],394:$V8m}),o($V9m,[2,1480],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h,394:$Vr9}),o($V9m,[2,1481]),{394:$V6m},o($V9m,$VIs,{394:$V2m}),o($Vzh,[2,1537]),o($Vzh,[2,1540]),o($Vzh,[2,1543]),o($Vzh,[2,1545]),o($VHh,[2,1535]),o($Vzh,[2,1558]),o($Vzh,[2,1559]),o($Vzh,[2,1556]),o($Vzh,[2,1557]),o($VHh,[2,1553]),o($Vzh,[2,1599]),o($Vzh,[2,1602]),o($Vzh,[2,1605]),o($Vzh,[2,1607]),o($VHh,[2,1597]),o($Vzh,[2,1609]),o($Vzh,[2,1551]),o($Vzh,[2,1616]),o($Vzh,[2,1572]),o($Vll,[2,787],{442:3612,207:$VQb,281:$VRb,395:$VSb}),o($Vll,[2,791],{442:3612,207:$VQb,281:$VRb,395:$VSb}),o($V2,[2,1777]),o($Vwl,[2,750]),o($V6o,[2,1993],{446:1076,497:4032,912:4591,188:$Vta,328:$Vua}),{19:[1,5364],387:$Vaq,388:$Vbq,389:$Vcq,390:$Vdq,505:5363},o($V2,[2,672],{505:5365,387:$Vaq,388:$Vbq,389:$Vcq,390:$Vdq}),{387:$Vaq,388:$Vbq,389:$Vcq,390:$Vdq,505:5366},o($V2,[2,753]),o([6,10,394,399],[2,2270]),o($VKl,[2,2274]),o($VKl,[2,2275]),{19:$VJs,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:5367,523:764,525:5369},o($Vv9,[2,2279]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:3371,554:2201,914:5370,916:3369},o($V2,[2,1853]),{19:$Veq,403:$V0d,404:$V1d,468:1754,472:1755,474:4622,873:5371,874:5372},o($V2,[2,1854]),{403:$V0d,404:$V1d,468:1754,472:1755,474:4622,871:5373,873:4620},{403:$V0d,404:$V1d,468:1754,472:1755,474:5374},o($Vco,[2,2427]),o($VFr,[2,2429]),{19:[1,5376],291:$VKs},o($VLs,[2,2448]),o($VFr,[2,2428]),{291:$VKs},{403:$V0d,468:5377},o($VGr,[2,2434]),o($V2,[2,1830]),o($V2,[2,2013]),{19:[1,5378]},o([6,10,19,75,117,121,167,202,212,244,274,275,286,335,543,957],[2,2379]),{398:$Vnq,520:5379},{394:[1,5381],399:[1,5380]},o($VEm,[2,709]),o($VDl,[2,1979],{394:$V1m}),o($VDl,[2,1983],{394:$V1m}),o($Vmc,[2,1901]),o($V2,[2,1879]),o($Vzq,[2,2189],{451:3624,985:4667,987:4670,949:4676,984:5382,40:$VWj,152:$Vsq,153:$Vtq,154:$Vuq,155:$Vvq,249:$VAq,322:$VBq,323:$Vyq,452:$VXj}),o($VKr,[2,2186]),o($Vzq,[2,2188],{451:3624,987:4670,949:4676,985:5077,40:$VWj,152:$Vsq,153:$Vtq,154:$Vuq,155:$Vvq,249:$VAq,322:$VBq,323:$Vyq,452:$VXj}),o($VLr,[2,2200]),o($VKr,[2,2196]),o($VKr,[2,2192]),o($VKr,[2,2193]),o($VKr,[2,2194]),o($VKr,[2,2195]),o([2,6,10,29,35,40,63,105,152,153,154,155,249,322,323,394,398,399,452],[2,2294]),o([2,6,10,19,29,35,40,63,105,152,153,154,155,249,322,323,394,398,399,452],[2,2293]),{389:[1,5383]},o($VCq,[2,2215]),{2:$VMs,389:$VNs,1001:5384},{2:$VMs,389:$VNs,1001:5387},{394:[1,5388]},o($VCq,[2,2219]),{2:$VMs,389:$VNs,1001:5389},{17:5390,19:$V5,441:$VF5},{389:$VOs,394:$VPs},o($VCq,[2,2225]),{2:$VMs,389:$VNs,1001:5393},o($VQs,[2,2227]),o($VE8,[2,2229],{435:5394,394:$VSr}),{1006:[1,5395]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,394:$VRs,402:$Vg8,523:5396},o($VSs,[2,550]),{389:$VTs,394:$VUs},o($VCq,[2,2242]),{2:$VMs,389:$VNs,1001:5400},o($VQs,[2,2244]),o($VE8,[2,2246],{435:5401,394:$VSr}),{17:5402,19:$V5,119:$VVs,130:$VWs,285:$VXs,321:$VYs,394:$VRs,441:$VF5,982:5403,997:4122,998:4123,999:4124,1000:4125},o($VQs,[2,2253]),o($VQs,[2,2254]),o($VZs,[2,2349]),o($Vji,[2,2354]),o($Vji,[2,2355]),{394:[1,5409],399:$V_s},{2:$Vsf,399:$Vtf,502:5410},o($VFm,[2,2363]),o($VF8,[2,2365],{394:[1,5411]}),o($Vmp,$V$s,{647:5412,194:$V0t,287:$V1t,300:$V2t,571:$V3t}),o($VFm,$V$s,{647:5417,194:$V0t,287:$V1t,300:$V2t,571:$V3t}),o($VFm,$V$s,{647:5418,194:$V0t,287:$V1t,300:$V2t,571:$V3t}),o($Vji,[2,2352]),{394:$V4t,399:$V_s},o($VFm,$V$s,{647:5420,194:$V0t,287:$V1t,300:$V2t,571:$V3t}),{394:$VDm,399:$V5t},{2:$Vsf,399:$Vtf,502:5422},o($VHq,[2,2165]),o($VJq,[2,2167]),o($VJq,[2,2168]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5423},o($VF8,[2,2177],{394:[1,5424]}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3498,523:2116,886:3506,976:5425},{19:$V6t,172:[1,5426]},{19:$V7t,180:$Vpl,835:5428,846:5430},{172:[1,5431]},{399:[2,2289]},o($VF8,[2,2292]),o($VF8,[2,2291]),o($VF8,[2,2176],{394:$VYr}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3498,523:2116,886:4734},o([6,10,40,73,75,117,121,167,212,243,244,274,275,286,323,352,452,543,577,957,1190],$V8t,{1047:5432,321:$V9t}),{70:[1,5434]},o($Vat,$V8t,{1047:5435,321:$V9t}),o($Vat,$V8t,{1047:5436,321:$V9t}),o([6,10,19,40,73,75,117,121,167,212,243,244,274,275,286,323,352,452,543,577,957,1209],$V8t,{1052:5437,1047:5438,321:[1,5439]}),{19:[1,5440],70:[1,5441]},{403:$V0d,404:$V1d,468:1754,472:1755,474:4622,873:5371},{403:$V0d,468:5442},{387:$Vaq,388:$Vbq,389:$Vcq,390:$Vdq,505:5363},{394:[1,5443]},{389:$VOs,394:$Vbt},{1006:[1,5445]},{389:$VTs,394:$Vct},{394:$VIl,399:$V5t},{172:[1,5447]},{180:$Vzm,835:5428},o($V9m,[2,1210],{394:$V2m}),o($V9m,[2,1212],{394:$V2m}),o($V2,[2,3092]),{19:[1,5448],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:5449,160:$Va8,161:$Vb8},{2:$Vsf,399:$Vtf,502:5450},{2:$Vsf,399:$Vtf,502:5451},{399:[1,5452]},o($VZo,[2,1356]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5453},o($Vdt,$Vet,{725:5454,726:5455,324:[1,5456]}),o($VKb,[2,1379]),{398:[1,5457]},{324:[1,5459],399:$Vet,725:5458},o($V2,[2,2831]),o($V5j,[2,1618]),{2:$Vft,19:$VFg,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:2345,510:5462,523:5461},o($V$b,[2,1628]),o($V$b,[2,1630]),o($V5j,$Vgt,{394:[1,5463]}),o($V$b,[2,1627]),{2:$Vft,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5174},o($V2,$V2s),o($V2,$Vas,{394:$Vxm}),o($V2,$Vbs,{394:$Vxm}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:5464,523:1250},{101:$Vcs},{307:$Vds,394:$VOm},{307:$Ves},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:5465,523:1250},o([6,10,37,75,114,117,121,167,212,244,274,275,286,335,543,957],$Vgs,{1018:5221,961:5466,258:$Vis}),{15:5235,18:1010,352:$V_8,572:808,577:$V19},{403:$V0d,404:$V1d,468:1754,472:1755,474:5246,1108:5467},{237:$Vns,278:$Vls,1075:5468},o($VOk,$VEs,{669:2435}),o($VJk,$VDs,{669:2435,233:$VSg,239:$VTg,312:$Vcj,316:$Vdj,319:$VUg,332:$VWg,334:$VXg,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{1166:$VFs,1190:[1,5470],1191:[1,5469],1242:5351},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:5449,160:$Va8,161:$Vb8},o($V2,[2,2044]),o($V2,[2,2069]),o($V2,$V6s,{925:5471,81:$V7s}),o($V2,[2,2059]),o([6,10,19,81],[2,2066]),o($VUq,[2,2067]),o($V2,$V6s,{925:5472,81:$V7s}),o($V2,$V6s,{925:5473,81:$V7s}),o($V2,[2,2058]),o($V2,[2,2057]),o($V2,[2,2056]),o($V2,[2,2055]),o($VF8,[2,738],{394:$VIl}),o($Vmc,$Vnc,{497:1375,499:1376,446:1377,496:5474,498:5475,188:$Vta,328:$Vua}),o($V2,[2,3128]),o($V2,$Vnc,{446:1076,497:1375,496:5476,188:$Vta,328:$Vua}),o($V2,$Vnc,{446:1076,497:1375,496:5477,188:$Vta,328:$Vua}),{398:[1,5478]},o($V2,[2,3174]),{398:[1,5479]},{101:[1,5480]},{398:[1,5481]},{398:[1,5482]},o($Vtj,[2,1303],{710:1918,266:$Vzb,294:$VAb,308:$VBb,313:$VCb,317:$Vub,318:$VDb,326:$VEb,333:$VFb,338:$VGb}),{17:2219,19:$VPm,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,392:$Vgg,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:2214,534:2218,554:1610,556:1609,580:5484,588:5483,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,697:2211,699:2213,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{2:$VQm,17:5485,19:$V5,441:$VF5},o($VZs,$Vht,{962:5486,862:5487,852:5488,37:$Vla}),o($Vji,$Vht,{852:5488,962:5489,37:$VGa}),o($Vfs,[2,2314]),{19:[1,5490],291:[1,5491]},o($Vji,$Vht,{852:5488,962:5492,37:$VGa}),{291:[1,5493]},o($V3r,[2,2302],{861:5494,398:$Vui}),{398:$Vki,861:5496,897:5495},o($V3r,[2,2305]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3425,523:2116,886:3448,889:3449,976:5497,978:3447},o($V3r,[2,2306]),{19:[1,5498],232:[1,5500],250:$Vvr,331:$Vwr,791:5499},o($Vji,$Vht,{852:5488,962:5501,37:$VGa}),{398:$Vui,861:5496},{232:[1,5503],250:$Vvr,331:$Vwr,791:5502},o($V5r,[2,2128]),o($V2,[2,2470]),o($V2,[2,2476]),o($V2,[2,2477]),o($VEm,$Vit,{19:[1,5504]}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:3778,554:2201,1103:5505},{15:5506,18:1010,352:$V_8,572:808,577:$V19},o($V2,[2,2478]),o($VFm,$Vit),o($Vjt,$Vkt,{1109:5507,1115:5508,352:[1,5509]}),o($V2,[2,2608]),o($Vlt,$Vkt,{1109:5510,352:$Vmt}),o([6,10,19,40,69,75,117,121,244,274,275,312,335,352,452],[2,2617]),o($Vnt,[2,2618]),o($Vnt,[2,621]),o($Vnt,[2,622]),o($Vlt,$Vkt,{1109:5512,352:$Vmt}),o($V1s,[2,2630]),{17:5514,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,518:1631,523:2116,553:5513,554:2201},o([6,10,167],[2,2631]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:4881,554:2201,1117:5515},o($Vlt,$Vkt,{1109:5516,352:$Vmt}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:5513,554:2201},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:4282,160:$Va8,161:$Vb8,1121:5517,1123:3793},{403:$V0d,468:5518},{54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:3806,1093:5519},o($Vxp,[2,824]),{382:[1,5520]},o($Vxp,[2,822]),o($V2,[2,2489]),{19:[1,5522],278:[1,5524],1076:5521,1084:5523},o($V2,[2,2516],{1076:5525,278:$Vot}),{387:[1,5527]},o($V2,[2,2515],{1076:5528,278:$Vot}),{387:[1,5529]},{278:$Vot,1076:5530},{278:$Vot,1076:5531},{237:$Vns,278:$Vls,1075:5532},{278:$Vot,1076:5533},o($V9r,[2,2578]),o($Vpt,$Vqt,{615:5534,662:5535,663:$Vrt}),o($Vos,$Vst),{161:$Vtt,207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,395:$VSb,442:1398,661:5537,694:1395,695:1396},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:5539,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vts,[2,1043]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,516:5540,518:1880,523:2116},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,516:5541,518:1880,523:2116},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:5544,523:2116,657:5542,659:5543},o([2,6,10,170,176,242,250,266,294,308,313,317,318,320,326,331,333,336,338,347,399,656,663,957,1190],$Vut,{394:$Vvt}),o($Vwt,[2,1019]),o([2,6,10,170,176,242,246,250,266,294,308,313,317,318,320,326,331,333,336,338,347,394,399,656,663,957,1190],$V$s,{669:2435,647:5546,194:$V0t,233:$VSg,239:$VTg,287:$V1t,288:$Vbj,300:$V2t,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,571:$V3t}),o([2,6,10,19,170,176,242,266,294,308,313,317,318,320,325,326,333,338,347,399,656,663,957,1190],[2,1532]),o($VEm,$Vxt,{159:598,25:613,518:1631,523:2116,554:2201,639:5547,553:5548,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$Vyt,402:$Vg8}),o($Vzt,$Vqt,{662:5535,615:5550,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5551,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5552,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5553,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5554,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5555,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5556,663:$Vrt}),o($VAt,$Vqt,{615:5534,662:5535,623:5557,663:[1,5558]}),o($Vxs,$Vst,{2:[1,5560],19:[1,5559]}),{19:[1,5561],161:$Vtt,207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,395:$VSb,442:1398,661:5537,694:1395,695:1396},{19:[1,5562],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:5564,534:5563,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vws,$Vps,{630:5275,614:5565,242:$Vqs,320:$Vrs}),{19:[1,5566]},o($Vjr,[2,1048]),o($Vjr,[2,1047]),o($Vjr,[2,1051]),{19:[1,5567],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,516:5569,517:5568,518:1880,519:1879,523:1646},o($VHi,[2,1055]),{19:[1,5570],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,516:5572,517:5571,518:1880,519:1879,523:1646},o($Vjr,[2,1059]),{17:5577,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,518:5544,519:5576,523:1646,657:5574,658:5573,659:5543,660:5575},o($Vws,$Vps,{630:5275,614:5578,242:$Vqs,320:$Vrs}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5579,170:$Vcr,176:$Vdr,656:$Ver}),o($Vws,$Vps,{630:5275,614:5580,242:$Vqs,320:$Vrs}),{242:$Vys,320:$Vzs,614:5582,622:5581,630:5275,663:$Vps},o($VRp,[2,1017]),o([2,6,10,19,170,176,242,250,320,331,336,347,399,656,663,957,1190],$Vut,{394:[1,5583]}),o($VRp,[2,1021]),o([2,6,10,170,176,194,242,246,266,287,294,300,308,313,317,318,320,326,333,338,347,399,571,656,663,1190],$Vr9,{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,669:2398,533:5284,645:5584,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,233:$VSg,236:$VQf,239:$VTg,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,319:$VUg,321:$Vtd,322:$VMj,323:$Vvd,332:$VWg,334:$VXg,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,391:$VZf,392:$V2h,393:$V3h,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($VBt,$V$s,{669:2417,647:5585,194:$V0t,233:$VSg,239:$VTg,287:$V1t,288:$V4h,300:$V2t,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh,571:$V3t}),o([2,6,10,19,170,176,242,246,250,320,331,336,347,394,399,656,663,957,1190],$V$s,{674:2434,669:2435,647:5586,194:$V0t,233:$Vgh,239:$Vhh,287:$V1t,288:$Vih,300:$V2t,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh,571:$V3t}),o($VBt,$V$s,{647:5587,194:$V0t,287:$V1t,300:$V2t,571:$V3t}),o($Vws,$Vps,{630:5275,614:5588,242:$Vqs,320:$Vrs}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5589,170:$Vcr,176:$Vdr,656:$Ver}),o($Vws,$Vps,{630:5275,614:5590,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5591,242:$Vqs,320:$Vrs}),{242:$Vys,320:$Vzs,614:5593,622:5592,630:5275,663:$Vps},o($Von,[2,1534]),o($Vws,$Vps,{630:5275,614:5594,242:$Vqs,320:$Vrs}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5595,170:$Vcr,176:$Vdr,656:$Ver}),o($Vws,$Vps,{630:5275,614:5596,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5597,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5598,242:$Vqs,320:$Vrs}),{242:$Vys,320:$Vzs,614:5600,622:5599,630:5275,663:$Vps},o($Vws,$Vps,{630:5275,614:5601,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5602,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5603,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5604,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5605,242:$Vqs,320:$Vrs}),{242:$Vys,320:$Vzs,614:5607,622:5606,630:5275,663:$Vps},o($VVp,[2,1009],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,533:3875,633:5608,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($VCs,[2,1012],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($VEm,$Vxt,{159:598,25:613,519:1630,518:1631,523:1646,554:3375,556:3376,553:5548,640:5609,639:5610,641:5611,17:5613,555:5614,19:$V5,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$VCt,402:$Vg8,441:$VF5}),o($Vws,$Vps,{630:5275,614:5615,242:$Vqs,320:$Vrs}),o($Vjr,$Vbr,{629:4914,650:4915,651:4916,652:4917,613:5616,170:$Vcr,176:$Vdr,656:$Ver}),o($Vws,$Vps,{630:5275,614:5617,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5618,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5619,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5620,242:$Vqs,320:$Vrs}),o($Vws,$Vps,{630:5275,614:5621,242:$Vqs,320:$Vrs}),{242:$Vys,320:$Vzs,614:5623,622:5622,630:5275,663:$Vps},o($VEm,[2,1219]),o($V2,[2,3111]),o($V2,[2,3112]),o($VYp,[2,3107]),{19:[1,5624],339:[1,5625]},{19:[1,5626],348:$VDt},o($VYp,[2,3117]),o($VEt,$VFt,{782:5628}),o($VEt,$VFt,{782:5629}),o($VF8,[2,1485]),o($VF8,[2,1491]),o($VGt,$VFt,{782:5630}),o($VGt,$VFt,{782:5631}),o($Vzh,[2,1474]),o($VF8,$V1q,{628:4535,774:5632,325:$VIp,394:$VVo}),{207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:5633,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},o($V2,[2,673],{694:1395,695:1396,442:1398,690:1625,661:1642,692:1643,468:1650,472:1651,696:1652,504:5634,207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d}),{207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:5635,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},{207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:5636,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},{398:$Vcb,513:5637,515:5638},o($Vv9,[2,2280]),o($Vv9,[2,2281]),o($VF8,[2,2003],{394:$VQo}),o($VFm,[2,1856]),o($VF8,[2,1858],{394:[1,5639]}),o($VF8,[2,1860],{394:$V0s}),o($VFm,[2,1861]),{403:$V0d,468:5640},o($VLs,[2,2449]),o($VLq,$VHt,{455:5641,56:$VIt,220:$VJt,1055:[1,5642]}),o($V2,[2,2014]),o($VEm,[2,2381]),o($VEm,[2,708]),{207:$VQb,281:$VRb,304:$Vrd,346:$Vwd,382:$Vpc,383:$Vqc,395:$VSb,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:5645,661:1642,690:1625,692:1643,694:1395,695:1396,696:1652},o($Vzq,[2,2190],{451:3624,987:4670,949:4676,985:5077,40:$VWj,152:$Vsq,153:$Vtq,154:$Vuq,155:$Vvq,249:$VAq,322:$VBq,323:$Vyq,452:$VXj}),o($VCq,[2,2214]),o($VDq,[2,2216]),o($VDq,[2,2255]),o($VDq,[2,2256]),o($VDq,[2,2217]),{17:5648,19:$V5,54:$VZm,118:$V_m,119:$Vzo,125:$V$m,126:$V0n,130:$VAo,168:$V1n,175:$V2n,251:$V3n,285:$VBo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VCo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,441:$VF5,561:4113,980:5646,982:5647,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,997:4122,998:4123,999:4124,1000:4125},o($VDq,[2,2221]),{2:$VMs,389:$VNs,1001:5649},o($VCq,[2,2224]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,394:$VSr,402:$Vg8,435:5101,523:5100,1004:5650,1005:5651},o($VDq,[2,2226]),o($VE8,[2,2230],{159:598,25:613,1004:5098,523:5151,1002:5652,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,394:$VRs,402:$Vg8}),{17:5654,19:$V5,54:$VZm,118:$V_m,119:$Vzo,125:$V$m,126:$V0n,130:$VAo,168:$V1n,175:$V2n,251:$V3n,285:$VBo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VCo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,441:$VF5,561:4113,980:5653,982:5655,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,997:4122,998:4123,999:4124,1000:4125},{1006:[1,5656]},o($VSs,[2,551]),o($VCq,[2,2241]),{17:5109,19:$V5,54:$VZm,118:$V_m,119:$Vzo,125:$V$m,126:$V0n,130:$VAo,168:$V1n,175:$V2n,251:$V3n,285:$VBo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VCo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,394:$VSr,435:5108,441:$VF5,561:4113,980:5657,982:5110,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,997:4122,998:4123,999:4124,1000:4125,1009:5658},o($VDq,[2,2243]),o($VE8,[2,2247],{561:4113,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,980:5106,1007:5659,54:$VZm,118:$V_m,119:$VRo,125:$V$m,126:$V0n,130:$VSo,168:$V1n,175:$V2n,251:$V3n,285:$VTo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VUo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,394:$VRs}),o($VQs,[2,2251]),o($VQs,[2,2252]),{388:[1,5660]},{388:[1,5661]},{388:[1,5662]},{388:[1,5663]},o($VVr,[2,2361]),{17:5120,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,518:5118,519:5119,523:1646,1030:5664,1031:5665},o($VOl,[2,2362]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:5123,523:2116,1028:5666,1030:5116},o($VEm,$VKt,{19:[1,5667]}),o($VLt,[2,1031]),o($VLt,[2,1032]),o($VLt,[2,1033]),o($VLt,[2,1034]),o($VFm,[2,2371]),o($VFm,[2,2372]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:5123,523:2116,1030:5664},o($VFm,$VKt),o($VEm,[2,1922]),o($VF8,[2,1924]),{180:$Vzm,835:5668},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:3498,523:2116,886:3506,976:5669},o($VF8,[2,2174],{394:$VYr}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5670},o($VF8,[2,2263]),{399:[2,2259]},o($VF8,[2,2267]),o($VF8,[2,2268]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5671},o([6,10,40,75,117,121,167,212,244,274,275,286,323,352,452,543,577,957,1190],$Vfq,{459:4637,1048:5672,73:$Vgq,243:$Vhq}),{72:[1,5673]},{123:[1,5674]},o($VLs,$Vfq,{459:4637,1048:5675,73:$Vgq,243:$Vhq}),o($VLs,$Vfq,{459:4637,1048:5676,73:$Vgq,243:$Vhq}),o($VLs,$Vfq,{459:4637,1048:5677,73:$Vgq,243:$Vhq}),o([6,10,19,40,75,117,121,167,212,244,274,275,286,323,352,452,543,577,957,1209],$Vfq,{459:4633,1053:5678,1048:5679,73:$Vgq,243:$Vhq}),{19:[1,5680],72:[1,5681]},o($V$r,[2,2438]),{19:[1,5682],123:[1,5683]},o($VKq,$VHt,{455:5641,56:$VIt,220:$VJt}),{54:$VZm,118:$V_m,119:$VRo,125:$V$m,126:$V0n,130:$VSo,168:$V1n,175:$V2n,251:$V3n,285:$VTo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VUo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4113,980:5646,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5151,1004:5650},{54:$VZm,118:$V_m,119:$VRo,125:$V$m,126:$V0n,130:$VSo,168:$V1n,175:$V2n,251:$V3n,285:$VTo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VUo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4113,980:5684,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121},{54:$VZm,118:$V_m,119:$VRo,125:$V$m,126:$V0n,130:$VSo,168:$V1n,175:$V2n,251:$V3n,285:$VTo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VUo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:4113,980:5657,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5685},o($V2,[2,3093]),o($VXb,[2,3083]),o($V2,[2,3096]),o($V2,[2,3097]),o($V1s,[2,3094]),o($VEm,[2,1358]),{19:[1,5687],399:$VMt},{2:$Vsf,399:$Vtf,502:5688},{19:[1,5690],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:5689,534:5691,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{382:[1,5692]},{399:$VMt},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:5693,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V5j,[2,1621]),o($VYb,$Vgt,{394:[1,5694]}),o($V$b,[2,1637]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:5695},o($V2,$Vnc,{446:1076,497:1375,496:5696,188:$Vta,328:$Vua}),{398:$VIf,513:5697},o([6,10,75,114,117,121,167,212,244,274,275,286,335,543,957],$Vht,{852:5488,962:5698,37:$VGa}),o($Vlt,$Vkt,{1109:5699,352:$Vmt}),{278:$Vot,1076:5700},{339:[1,5701]},{348:$VDt},o($V2,[2,2053]),o($V2,[2,2051]),o($V2,[2,2052]),o($V2,$VNt,{19:[1,5702]}),o($V2,[2,3131]),o($V2,[2,3129]),o($V2,[2,3132]),{403:$V0d,404:$V1d,468:1754,472:1755,474:5703},{403:$V0d,404:$V1d,468:1754,472:1755,474:5704},{398:[1,5705]},{403:$V0d,404:$V1d,468:1754,472:1755,474:5706},{403:$V0d,404:$V1d,468:1754,472:1755,474:5707},{307:[2,1706]},{19:$V9p,394:$Vun},{307:[2,1709]},o($VOt,$VPt,{963:5708,970:5709,1032:5710,114:[1,5711]}),o($VQt,$VPt,{1032:5710,963:5712,114:$VRt}),o($VZs,[2,2348]),o($VQt,$VPt,{1032:5710,963:5714,114:$VRt}),o($Vhs,[2,2316]),{398:$Vcb,513:5716,515:5715},o($VQt,$VPt,{1032:5710,963:5717,114:$VRt}),{398:$VIf,513:5716},o($V3r,[2,2303]),o($V3r,[2,2304]),o($V$q,[2,2299]),{394:[1,5718]},o($V3r,[2,2307]),{398:$Vcb,513:5720,515:5719},{398:$Vcb,513:5722,515:5721},o($VQt,$VPt,{1032:5710,963:5723,114:$VRt}),{398:$VIf,513:5724},{398:$VIf,513:5725},o($VF8,[2,2593],{394:[1,5726]}),o($VF8,[2,2592],{394:$Vop}),o($V2,[2,2472]),o($VSt,$VTt,{1110:5727,69:$VUt}),o($VVt,$VTt,{1110:5729,69:$VUt}),{19:[1,5731],48:[1,5730]},o($VVt,$VTt,{1110:5732,69:$VUt}),{48:[1,5733]},o($VVt,$VTt,{1110:5734,69:$VUt}),o($VFm,[2,2633]),o($VF8,[2,2635],{394:[1,5735]}),o($VF8,[2,2636],{394:$Vks}),o($VVt,$VTt,{1110:5736,69:$VUt}),o($VF8,[2,2651],{394:$VTq}),o($V2,[2,2549]),o($VF8,[2,2544],{394:$VAp}),{399:[1,5737]},o($V2,[2,2518],{1077:5738,1085:5740,19:[1,5739],245:[1,5741]}),o($V2,[2,2511]),o($V2,[2,2517],{1077:5742,245:$VWt}),{387:[1,5744]},{245:$VWt,1077:5745},{387:[1,5746]},{403:$V1e,468:5749,470:5750,1096:5747,1097:5748},{245:$VWt,1077:5751},{403:$V0d,468:5749,1096:5747},{245:$VWt,1077:5752},{245:$VWt,1077:5753},{278:$Vot,1076:5754},{245:$VWt,1077:5755},o($Vpt,[2,923]),o($Vpt,[2,1081]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:5756,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VXt,[2,1072],{394:[1,5757]}),o($VXt,[2,1074],{394:[1,5758]}),o($Vos,$VYt,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($Var,$VZt,{394:$Vym}),o([2,6,10,242,266,294,308,313,317,318,320,326,333,338,347,399,656,663,957,1190],$V_t,{394:$Vym}),o($Var,$V$t,{394:$V0u}),o($V1u,[2,1061]),o($V1u,$V$s,{647:5760,194:$V0t,287:$V1t,300:$V2t,571:$V3t}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:5284,554:2108,645:5761,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o([2,6,10,170,176,242,250,266,294,308,313,317,318,320,326,331,333,336,338,347,394,399,656,663,957,1190],$V2u,{648:5762,246:$V3u}),{394:$V4u,399:$V5u},o($VFm,[2,992]),o($VEm,$Vxt,{159:598,25:613,518:1631,523:2116,554:2201,553:5548,639:5766,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$Vyt,402:$Vg8}),o($Vzt,[2,924]),o($Vzt,[2,925]),o($Vzt,[2,926]),o($Vzt,[2,927]),o($Vzt,[2,928]),o($Vzt,[2,929]),o($Vzt,[2,930]),o($Vzt,[2,931]),{19:$V6u,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:5769,534:5768,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vzt,$Vqt,{662:5535,615:5770,663:$Vrt}),{19:[1,5771]},o($Vws,[2,1077]),o($Vws,[2,1078],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($Vws,[2,1079],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o([2,6,10,19,347,399,663,957,1190],$VYt,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Vzt,$Vqt,{662:5535,615:5772,663:$Vrt}),o($Vws,$Vps,{630:5275,614:5773,242:$Vqs,320:$Vrs}),o($Vjr,[2,1052]),o($Vjr,[2,1053]),o($VAs,$VZt,{394:$VFi}),o($VHi,[2,1056]),o($VHi,[2,1057]),o([2,6,10,19,242,320,347,399,656,663,957,1190],$V_t,{394:$VFi}),o($Vjr,[2,1060]),o($VAs,$V$t,{394:[1,5774]}),o($Vjr,[2,1063],{394:[1,5775]}),o($V7u,$V$s,{647:5776,194:$V0t,287:$V1t,300:$V2t,571:$V3t}),o($V7u,$V$s,{647:5777,194:$V0t,287:$V1t,300:$V2t,571:$V3t}),o($Vzt,$Vqt,{662:5535,615:5778,663:$Vrt}),o($Vws,$Vps,{630:5275,614:5779,242:$Vqs,320:$Vrs}),o($Vzt,$Vqt,{662:5535,615:5780,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5781,663:$Vrt}),{623:5782,663:$V8u},{17:5318,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:5317,534:5316,554:1610,556:1609,645:5761,646:5784,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VRp,[2,1022]),o($V9u,$V2u,{648:5785,246:$V3u}),o([2,6,10,19,170,176,242,250,320,331,336,347,394,399,656,663,957,1190],$V2u,{648:5762,649:5786,246:[1,5787]}),o($V9u,$V2u,{648:5788,246:$V3u}),o($Vzt,$Vqt,{662:5535,615:5789,663:$Vrt}),o($Vws,$Vps,{630:5275,614:5790,242:$Vqs,320:$Vrs}),o($Vzt,$Vqt,{662:5535,615:5791,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5792,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5793,663:$Vrt}),{623:5794,663:$V8u},o($Vzt,$Vqt,{662:5535,615:5795,663:$Vrt}),o($Vws,$Vps,{630:5275,614:5796,242:$Vqs,320:$Vrs}),o($Vzt,$Vqt,{662:5535,615:5797,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5798,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5799,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5800,663:$Vrt}),{623:5801,663:$V8u},o($Vzt,$Vqt,{662:5535,615:5802,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5803,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5804,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5805,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5806,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5807,663:$Vrt}),{623:5808,663:$V8u},o($VVp,[2,1010],{394:$VOp}),{2:$Vsf,399:$Vtf,502:5809},{394:$Vau,399:$V5u},o($VF8,[2,995],{394:[1,5811]}),o($VEm,$Vxt,{159:598,25:613,519:1630,518:1631,523:1646,554:3375,556:3376,553:5548,641:5611,17:5613,555:5614,640:5812,639:5813,19:$V5,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$VCt,402:$Vg8,441:$VF5}),o($VFm,[2,1000]),o($VFm,[2,1001]),o($Vzt,$Vqt,{662:5535,615:5814,663:$Vrt}),o($Vws,$Vps,{630:5275,614:5815,242:$Vqs,320:$Vrs}),o($Vzt,$Vqt,{662:5535,615:5816,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5817,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5818,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5819,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5820,663:$Vrt}),o($Vzt,$Vqt,{662:5535,615:5821,663:$Vrt}),{623:5822,663:$V8u},o($V2,[2,3119]),{19:$Veg,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:2200,554:2201,1245:5824,1246:5823,1308:2196,1309:2197,1310:2198},o($V2,[2,3121]),{398:$Vvn,1212:5825,1215:3904},o($Vbu,$Vcu,{783:5826,792:5827,793:5828,144:$Vdu,174:$Veu,295:$Vfu,382:$Vgu,785:$Vhu}),o($Vbu,$Vcu,{792:5827,793:5828,783:5834,144:$Vdu,174:$Veu,295:$Vfu,382:$Vgu,785:$Vhu}),o($Viu,$Vcu,{783:5835,786:5836,792:5837,793:5838,144:$Vdu,174:$Veu,295:$Vfu,382:$Vgu,785:$Vhu}),o($Viu,$Vcu,{792:5837,793:5838,783:5839,786:5840,144:$Vdu,174:$Veu,295:$Vfu,382:$Vgu,785:$Vhu}),{2:$Vsf,399:$Vtf,502:5841},o($V2,[2,670]),o($V2,[2,676]),o($V2,[2,675]),o($V2,[2,674]),{19:$Vju,53:[1,5842]},o($Vv9,[2,2282]),{403:$V0d,404:$V1d,468:1754,472:1755,474:4622,871:5844,873:4620},o([6,10,19,40,75,117,121,167,212,244,274,275,286,323,352,452,543,577,957,1190,1209],[2,2447]),{291:[1,5845]},{19:[1,5846]},{291:[2,587]},{291:[2,588]},o($VEm,[2,710]),{389:[1,5847]},{2:$VMs,389:$VNs,1001:5848},{2:$VMs,389:$VNs,1001:5849},o($VDq,[2,2223]),o($VQs,[2,2228]),o($VE8,[2,2232],{435:5850,394:$VSr}),o($VE8,[2,2231],{394:$Vbt}),o([389,394],$VVj,{949:3024,451:3624,946:5851,19:[1,5852],40:$VWj,452:$VXj}),o($VQs,[2,2239]),o($VQs,[2,2240]),{17:5854,19:$V5,54:$VZm,118:$V_m,119:$Vzo,125:$V$m,126:$V0n,130:$VAo,168:$V1n,175:$V2n,251:$V3n,285:$VBo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VCo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,441:$VF5,561:4113,980:5853,982:5855,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,997:4122,998:4123,999:4124,1000:4125},o($VQs,[2,2245]),o($VE8,[2,2248],{435:5856,394:$VSr}),o($VE8,[2,2249],{394:$Vct}),{17:5089,19:$V5,119:$VVs,130:$VWs,285:$VXs,321:$VYs,441:$VF5,982:5090,997:4122,998:4123,999:4124,1000:4125},{17:5093,19:$V5,54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,394:$VQr,441:$VF5,561:5857},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,394:$VSr,402:$Vg8,435:5101,523:5100,1002:5858,1003:5097,1004:5098,1005:5099},{17:5109,19:$V5,54:$VZm,118:$V_m,119:$Vzo,125:$V$m,126:$V0n,130:$VAo,168:$V1n,175:$V2n,251:$V3n,285:$VBo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VCo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,394:$VSr,435:5108,441:$VF5,561:4113,980:5106,982:5110,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,997:4122,998:4123,999:4124,1000:4125,1007:5859,1008:5105,1009:5107},o($VFm,[2,2364]),o($VF8,[2,2367],{394:[1,5860]}),o($VF8,[2,2366],{394:$V4t}),o($VFm,[2,2370]),o($VF8,[2,2269]),o($VF8,[2,2178],{394:$VYr}),{19:$Vku,180:$Vpl,835:5861,846:5863},{180:$Vzm,835:5864},o([6,10,40,75,117,121,167,212,244,274,275,286,352,452,543,577,957,1190],$Vlu,{1049:5865,323:$Vmu}),{123:[1,5867]},{291:$Vnu},o($Vou,$Vlu,{1049:5869,323:$Vmu}),o($Vou,$Vlu,{1049:5870,323:$Vmu}),o($Vou,$Vlu,{1049:5871,323:$Vmu}),o($Vou,$Vlu,{1049:5872,323:$Vmu}),o([6,10,19,40,75,117,121,167,212,244,274,275,286,352,452,543,577,957,1209],$Vlu,{1049:5865,1054:5873,323:[1,5874]}),o($Vat,[2,2443]),{19:[1,5875],123:[1,5876]},o($V$r,[2,2439]),{19:[1,5877],291:$Vnu},o($VQs,$VVj,{949:3024,451:3624,946:5851,40:$VWj,452:$VXj}),{180:$Vzm,835:5861},o($VNb,[2,1373]),{2:$Vsf,399:$Vtf,502:5878},o($VKb,[2,1381]),o($Vdt,$Vpu,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($VF8,[2,1389],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($VF8,[2,1390],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),{399:[1,5879]},{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj,399:$Vpu,669:2435},{17:3200,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,441:$VF5,508:5880,509:3201,523:5695},o($V5j,[2,1636]),o($V2,$VNt),{53:[1,5881]},o([6,10,75,117,121,167,212,244,274,275,286,335,543,957],$VPt,{1032:5710,963:5882,114:$VRt}),o($VVt,$VTt,{1110:5883,69:$VUt}),{245:$VWt,1077:5884},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:2200,554:2201,1245:5885,1308:2196,1310:2203},o($V2,[2,3130]),{399:[1,5886]},{399:[1,5887]},{403:$V0d,404:$V1d,468:1754,472:1755,474:5888},{399:[1,5889]},{399:[1,5890]},o([6,10,19,75,121,167,212,244,275,286,543,957],$Vqu,{964:5891,971:5892,1034:5893,463:5894,1038:5895,1035:5897,117:$Vru,274:$VWl,335:$Vsu}),o($Vtu,$Vqu,{463:3469,1034:5893,1035:5897,964:5899,117:$Vru,274:$VWl,335:$Vuu}),o($VOt,[2,2374]),{19:[1,5901],291:[1,5902]},o($Vtu,$Vqu,{463:3469,1034:5893,1035:5897,964:5903,117:$Vru,274:$VWl,335:$Vuu}),{291:[1,5904]},o($Vtu,$Vqu,{463:3469,1034:5893,1035:5897,964:5905,117:$Vru,274:$VWl,335:$Vuu}),o($Vhs,[2,2317]),o($Vfs,[2,2315]),o($Vtu,$Vqu,{463:3469,1034:5893,1035:5897,964:5906,117:$Vru,274:$VWl,335:$Vuu}),{19:$VIq,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,172:[1,5908],189:$Vql,249:$Vwq,402:$Vg8,518:3425,523:2116,834:5907,845:4706,886:4700,889:4701,979:4698,987:5909,988:4708,1011:4705,1012:3360,1013:3362},o($V3r,[2,2308]),{398:[1,5912],1016:5911,1017:5910},o($V3r,[2,2310],{247:[1,5913]}),{19:[1,5914],247:$Vvu},o($Vtu,$Vqu,{463:3469,1034:5893,1035:5897,964:5916,117:$Vru,274:$VWl,335:$Vuu}),{398:[1,5917],1016:5911},{247:$Vvu},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:3778,554:2201,1103:5918},o($Vwu,$Vxu,{1111:5919,1116:5920,312:[1,5921]}),{398:$V8i,827:5922},o($Vyu,$Vxu,{1111:5923,312:$Vzu}),{19:[1,5926],96:$VAu},o($Vlt,[2,2621]),o($Vyu,$Vxu,{1111:5927,312:$Vzu}),{96:$VAu},o($Vyu,$Vxu,{1111:5928,312:$Vzu}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:1631,523:2116,553:4881,554:2201,1117:5929},o($Vyu,$Vxu,{1111:5930,312:$Vzu}),o($Vxp,[2,825]),o($VBu,$VCu,{1078:5931,1086:5932,248:[1,5933]}),o($V2,[2,2512]),o($VDu,$VCu,{1078:5934,248:$VEu}),{387:[1,5936]},o($VDu,$VCu,{1078:5937,248:$VEu}),{387:[1,5938]},{403:$V1e,468:5749,470:5750,1096:5939,1097:5940},o($VDu,$VCu,{1078:5941,248:$VEu}),{403:$V0d,468:5749,1096:5939},o([6,10,19,278],[2,2551]),o($Vms,[2,2552]),o([6,10,19,214,225,235,245,248,257,278],[2,2572]),o([6,10,214,225,235,245,248,257,278],[2,2573]),o($VDu,$VCu,{1078:5942,248:$VEu}),o($VDu,$VCu,{1078:5943,248:$VEu}),o($VDu,$VCu,{1078:5944,248:$VEu}),{245:$VWt,1077:5945},o($VDu,$VCu,{1078:5946,248:$VEu}),o($Vpt,$VFu,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,395:$VSb,442:1398,661:5947,694:1395,695:1396},{161:[1,5948]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:5544,523:2116,659:5949},o($V1u,[2,1067]),o($Vwt,[2,1020]),o($Vwt,[2,1026]),{226:$VGu,241:$VHu},o($Vgr,[2,988]),o($VFm,$Vxt,{159:598,25:613,518:1631,523:2116,554:2201,553:5548,639:5952,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$Vyt,402:$Vg8}),{394:$V4u,399:$VIu},o($Vzt,[2,1083],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($Vzt,[2,1084],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VAt,$VFu,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($Vzt,[2,938]),o($Vzt,$Vqt,{662:5535,615:5954,663:$Vrt}),o($Vzt,[2,937]),o($Vzt,$Vqt,{662:5535,615:5955,663:$Vrt}),{17:5577,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,518:5544,519:5576,523:1646,659:5949,660:5956},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:5544,523:2116,657:5957,659:5543},o($V7u,[2,1068]),o($V7u,[2,1069]),o($Vzt,[2,936]),o($Vzt,$Vqt,{662:5535,615:5958,663:$Vrt}),o($Vzt,[2,967]),o($Vzt,[2,968]),o($Vzt,[2,969]),{19:$V6u,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:3414,534:5768,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VRp,[2,1023],{394:[1,5959]}),o($V9u,[2,1027]),o($V9u,[2,1028]),{19:[1,5960],226:$VGu,241:$VHu},o($V9u,[2,1029]),o($Vzt,[2,935]),o($Vzt,$Vqt,{662:5535,615:5961,663:$Vrt}),o($Vzt,[2,963]),o($Vzt,[2,964]),o($Vzt,[2,965]),o($Vzt,[2,966]),o($Vzt,[2,934]),o($Vzt,$Vqt,{662:5535,615:5962,663:$Vrt}),o($Vzt,[2,958]),o($Vzt,[2,959]),o($Vzt,[2,960]),o($Vzt,[2,961]),o($Vzt,[2,962]),o($Vzt,[2,933]),o($Vzt,$VSm),o($Vzt,[2,953]),o($Vzt,[2,954]),o($Vzt,[2,955]),o($Vzt,[2,956]),o($Vzt,[2,957]),o($VPg,[2,990]),o($VEm,$Vxt,{159:598,25:613,519:1630,518:1631,523:1646,554:3375,556:3376,553:5548,17:5613,555:5614,639:5952,641:5963,19:$V5,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$Vyt,402:$Vg8,441:$VF5}),o($VFm,$Vxt,{159:598,25:613,518:1631,523:2116,554:2201,553:5548,639:5964,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$Vyt,402:$Vg8}),{2:$Vsf,399:$Vtf,502:5965},{394:$Vau,399:$VIu},o($Vzt,[2,932]),o($Vzt,$Vqt,{662:5535,615:5966,663:$Vrt}),o($Vzt,[2,945]),o($Vzt,[2,946]),o($Vzt,[2,947]),o($Vzt,[2,948]),o($Vzt,[2,949]),o($Vzt,[2,950]),o($Vzt,[2,951]),o($V2,[2,3120]),o($VYp,$VJu,{394:$VBj}),o($VYp,[2,3118]),o($VF8,$VKu,{784:5967,385:$VLu}),{329:$VMu},{335:$VNu},o($VOu,[2,1523]),o($VOu,[2,1524]),o($VPu,[2,1512]),o($VPu,[2,1513]),o($VPu,[2,1514]),o($VF8,$VKu,{784:5971,385:$VLu}),o($Vdt,$VKu,{784:5972,787:5973,385:[1,5974]}),o($VF8,$VKu,{784:5975,385:$VLu}),{19:[1,5976],329:$VMu},{19:[1,5977],335:$VNu},{19:[1,5978],385:$VLu,399:$VKu,784:5971},o($VF8,[2,1496]),o($Vzh,[2,1475]),{19:$VQu,82:[1,5979]},o($Vv9,[2,2283]),o($VF8,[2,1859],{394:$V0s}),{403:$V0d,468:5981},o($VGr,[2,2435]),o($VCq,[2,2218]),o($VDq,[2,2220]),o($VDq,[2,2222]),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,394:$VRs,402:$Vg8,523:5151,1002:5982,1004:5098},o($VQs,[2,2234]),o($VQs,[2,2238]),{19:[1,5983]},o($VQs,[2,2236]),o($VQs,[2,2237]),{54:$VZm,118:$V_m,119:$VRo,125:$V$m,126:$V0n,130:$VSo,168:$V1n,175:$V2n,251:$V3n,285:$VTo,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,321:$VUo,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,394:$VRs,561:4113,980:5106,989:4114,990:4115,991:4116,992:4117,993:4118,994:4119,995:4120,996:4121,1007:5984},{394:[1,5985]},{394:$VPs},{394:$VUs},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:5123,523:2116,1028:5986,1030:5116},{399:[2,2260]},o($VF8,[2,2264]),o($VF8,[2,2265]),o($VF8,[2,2266]),o($VRu,[2,2421]),{49:[1,5987]},{291:$VSu},{403:$V0d,468:5989},o($Vou,[2,2422]),o($Vou,[2,2423]),o($Vou,[2,2424]),o($Vou,[2,2425]),o($Vou,[2,2426]),{19:[1,5990],49:[1,5991]},o($Vat,[2,2444]),{19:[1,5992],291:$VSu},o($V$r,[2,2440]),o($VKb,[2,1380]),o($Vlf,[2,1385]),o($V$b,[2,1638]),{82:[1,5993]},o([6,10,75,121,167,212,244,275,286,543,957],$Vqu,{463:3469,1034:5893,1035:5897,964:5994,117:$Vru,274:$VWl,335:$Vuu}),o($Vyu,$Vxu,{1111:5995,312:$Vzu}),o($VDu,$VCu,{1078:5996,248:$VEu}),o([6,10,350],$VJu,{394:$VJj}),o($V2,[2,3166]),o($V2,[2,3181]),{399:[1,5997]},o($V2,[2,3180]),o($V2,[2,3176]),o([6,10,19,121,167,212,275,286,543,957],$Vol,{460:1723,536:3350,535:5998,538:5999,75:$Vce,244:$Vhe}),o($VTu,$Vol,{460:1808,536:3350,535:6000,75:$Vce,244:$Vhe}),o($VUu,[2,2383]),{19:[1,6001],167:$Vza,286:$VAa,436:6002},o($VFr,[2,2389]),{19:[1,6003],64:$VVu,227:$VWu,457:6004},o($VUu,[2,2384]),o($VMo,$VNo,{291:[1,6007]}),o($VTu,$Vol,{460:1808,536:3350,535:6008,75:$Vce,244:$Vhe}),{64:$VVu,227:$VWu,457:6009},o($VQt,[2,2377]),{398:$VIf,513:6010},o($VTu,$Vol,{460:1808,536:3350,535:6011,75:$Vce,244:$Vhe}),{398:$VIf,513:6012},o($VTu,$Vol,{460:1808,536:3350,535:6013,75:$Vce,244:$Vhe}),o($VTu,$Vol,{460:1808,536:3350,535:6014,75:$Vce,244:$Vhe}),{394:[1,6015]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:6016},{398:[1,6017],515:5136},o($V3r,[2,2309]),o($V$q,[2,2300]),{19:[1,6018],328:$VXu,833:$VYu,1019:6020,1020:6019,1021:6022,1022:6021},{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,395:$VSb,442:1398,661:6025,694:1395,695:1396},o($V3r,[2,2311]),{207:$VQb,281:$VRb,382:$Vpc,383:$Vqc,395:$VSb,442:1398,661:6026,694:1395,695:1396},o($VTu,$Vol,{460:1808,536:3350,535:6027,75:$Vce,244:$Vhe}),{328:$VZu,833:$V_u,1019:6028,1021:6022},o($VF8,[2,2594],{394:$Vop}),o([6,10,19,40,75,121,244,275,452],$Vqu,{1034:5893,463:5894,1038:5895,1035:5897,964:6031,971:6032,117:$Vru,274:$VWl,335:$Vsu}),o($V$u,$Vqu,{463:3469,1034:5893,1035:5897,964:6033,117:$Vru,274:$VWl,335:$Vuu}),{19:[1,6035],193:[1,6034]},o($VSt,[2,2624]),o($V$u,$Vqu,{463:3469,1034:5893,1035:5897,964:6036,117:$Vru,274:$VWl,335:$Vuu}),{193:[1,6037]},o($Vjt,[2,2620]),o($Vlt,[2,2622]),o($V$u,$Vqu,{463:3469,1034:5893,1035:5897,964:6038,117:$Vru,274:$VWl,335:$Vuu}),o($V$u,$Vqu,{463:3469,1034:5893,1035:5897,964:6039,117:$Vru,274:$VWl,335:$Vuu}),o($VF8,[2,2637],{394:$Vks}),o($V$u,$Vqu,{463:3469,1034:5893,1035:5897,964:6040,117:$Vru,274:$VWl,335:$Vuu}),o($V0v,$V1v,{1079:6041,1087:6042,214:[1,6043]}),o($V2v,$V1v,{1079:6044,214:$V3v}),{387:[1,6046]},o($V2v,$V1v,{1079:6047,214:$V3v}),{387:[1,6048]},{403:$V1e,468:5749,470:5750,1096:6049,1097:6050},o($V2v,$V1v,{1079:6051,214:$V3v}),{403:$V0d,468:5749,1096:6049},o([6,10,19,245],[2,2553]),o([6,10,245],[2,2554]),o($V2v,$V1v,{1079:6052,214:$V3v}),o($V2v,$V1v,{1079:6053,214:$V3v}),o($V2v,$V1v,{1079:6054,214:$V3v}),o($V2v,$V1v,{1079:6055,214:$V3v}),o($VDu,$VCu,{1078:6056,248:$VEu}),o($V2v,$V1v,{1079:6057,214:$V3v}),o($VXt,[2,1073]),o($VXt,[2,1075]),o($V1u,[2,1062]),o($Vwt,[2,1036]),o($Vwt,[2,1037]),o($VFm,[2,993]),o($VFm,[2,994]),o($Vzt,[2,944]),o($Vzt,[2,943]),o($Vjr,[2,1065],{394:[1,6058]}),o($Vjr,[2,1064],{394:$V0u}),o($Vzt,[2,942]),o($VRp,[2,1024],{159:598,25:613,694:1395,695:1396,442:1398,664:1597,504:1604,682:1605,683:1607,690:1625,750:1626,751:1627,752:1628,518:1631,765:1635,766:1636,767:1637,661:1642,692:1643,468:1650,472:1651,696:1652,679:2106,681:2107,554:2108,746:2109,748:2110,523:2116,796:2119,645:5283,533:5284,643:6059,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,762:$V3e,763:$V4e,794:$V1g}),o($V9u,[2,1038]),o($Vzt,[2,941]),o($Vzt,[2,940]),o($VF8,[2,997],{394:[1,6060]}),o($VF8,[2,996],{394:$V4u}),o($VF8,[2,999]),o($Vzt,[2,939]),o($VF8,$V4v),{144:$Vdu,174:$Veu,295:$Vfu,382:$Vgu,785:$Vhu,792:6062,793:6061},o($V5v,[2,1508]),o($V5v,[2,1509]),o($VF8,[2,1490]),{19:[1,6063],399:$V4v},o($VF8,[2,1494]),{19:[1,6066],144:$Vdu,174:$Veu,295:$Vfu,382:$Vgu,785:$Vhu,792:6065,793:6064},o($VF8,[2,1493]),o($Vbu,[2,1510]),o($Vbu,[2,1511]),o($VF8,[2,1495]),o([6,10,19,399],$V6v,{1014:6067,98:$V7v,99:$V8v}),o($Vv9,[2,2284]),o([6,10,19,38,40,73,75,117,121,167,212,243,244,274,275,286,321,323,352,452,543,577,957,1190,1209],[2,2432]),o($VE8,[2,2233],{394:$Vbt}),o($VQs,[2,2235]),o($VE8,[2,2250],{394:$Vct}),{17:5648,19:$V5,119:$VVs,130:$VWs,285:$VXs,321:$VYs,441:$VF5,982:5647,997:4122,998:4123,999:4124,1000:4125},o($VF8,[2,2368],{394:$V4t}),{167:$V9v},{403:$V0d,468:6071},o([6,10,19,40,73,75,117,121,167,212,243,244,274,275,286,321,323,352,452,543,577,957,1190,1209],[2,2437]),o($Vou,[2,2452]),{19:[1,6072],167:$V9v},o($Vat,[2,2445]),o($Vv9,$V6v,{1014:6073,98:$V7v,99:$V8v}),o([6,10,121,167,212,275,286,543,957],$Vol,{460:1808,536:3350,535:6074,75:$Vce,244:$Vhe}),o($V$u,$Vqu,{463:3469,1034:5893,1035:5897,964:6075,117:$Vru,274:$VWl,335:$Vuu}),o($V2v,$V1v,{1079:6076,214:$V3v}),o($V2,[2,3178]),o([6,10,19,167,212,286,543,957],$Vav,{965:6077,1057:6078,465:6079,121:$Vfe,275:$Vje}),o($Vbv,$Vav,{1057:6078,465:6079,965:6080,121:$Vfe,275:$Vje}),o($Vbv,$Vav,{1057:6078,465:6079,965:6081,121:$Vfe,275:$Vje}),o($VFr,[2,2388]),{19:[1,6082],32:$VWh,67:$VXh,85:$VYh,89:$VZh,95:$V_h,109:$V$h,124:$V0i,211:$V1i,240:$V2i,268:$V3i,270:$V4i,271:$V5i,277:$V6i,876:4717,1040:$V7i},o($VFr,[2,2390]),{19:[1,6083],50:$VPo,110:$Vcv,219:$Vxl,879:6089,894:6086,1036:6085,1039:6084,1041:6088,1042:6087,1043:6091,1044:6090},o($Vdv,[2,591]),o($Vdv,[2,592]),{403:$V0d,404:$V1d,468:1754,472:1755,474:6093},o($Vbv,$Vav,{1057:6078,465:6079,965:6094,121:$Vfe,275:$Vje}),{50:$VOo,110:$Vcv,219:$V0m,879:6089,1036:6095,1041:6088,1043:6091},{19:[1,6096],324:$Vev},o($Vbv,$Vav,{1057:6078,465:6079,965:6098,121:$Vfe,275:$Vje}),{324:$Vev},o($Vbv,$Vav,{1057:6078,465:6079,965:6099,121:$Vfe,275:$Vje}),o($Vbv,$Vav,{1057:6078,465:6079,965:6100,121:$Vfe,275:$Vje}),{19:$V6t,172:[1,6101]},{19:$V7t,180:$Vfv,846:5430},{17:1877,19:$V5,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,441:$VF5,516:6103,517:1876,518:1880,519:1879,523:1646},{2:$Vsf,399:$Vtf,502:6104},{2:$Vsf,399:$Vtf,502:6105},{394:[1,6107],399:$Vgv},o($VF8,[2,2323]),o($VFm,[2,2321]),{19:[1,6108],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,348:[1,6111],353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:6110,534:6109,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{19:[1,6112],387:[1,6113]},o($V3r,[2,2312]),o($V$q,[2,2301]),o($Vbv,$Vav,{1057:6078,465:6079,965:6114,121:$Vfe,275:$Vje}),{394:$Vhv,399:$Vgv},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,348:[1,6117],353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:6116,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{387:[1,6118]},o([6,10,19,40,121,275,452],$Vol,{460:1723,536:3350,535:6119,538:6120,75:$Vce,244:$Vhe}),o($Viv,$Vol,{460:1808,536:3350,535:6121,75:$Vce,244:$Vhe}),o($Viv,$Vol,{460:1808,536:3350,535:6122,75:$Vce,244:$Vhe}),{19:[1,6124],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:6123,523:764,525:6125},o($Vyu,[2,2627]),o($Viv,$Vol,{460:1808,536:3350,535:6126,75:$Vce,244:$Vhe}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,522:6123,523:1250},o($Viv,$Vol,{460:1808,536:3350,535:6127,75:$Vce,244:$Vhe}),o($Viv,$Vol,{460:1808,536:3350,535:6128,75:$Vce,244:$Vhe}),o($Viv,$Vol,{460:1808,536:3350,535:6129,75:$Vce,244:$Vhe}),o($Vjv,$Vkv,{1080:6130,1088:6131,257:[1,6132]}),o($Vlv,$Vkv,{1080:6133,257:$Vmv}),{387:[1,6135]},o($Vlv,$Vkv,{1080:6136,257:$Vmv}),{387:[1,6137]},{403:$V1e,468:5749,470:5750,1096:6138,1097:6139},o($Vlv,$Vkv,{1080:6140,257:$Vmv}),{403:$V0d,468:5749,1096:6138},o([6,10,19,214,225,235,248,257],[2,2555]),o([6,10,214,225,235,248,257],[2,2556]),o($Vlv,$Vkv,{1080:6141,257:$Vmv}),o($Vlv,$Vkv,{1080:6142,257:$Vmv}),o($Vlv,$Vkv,{1080:6143,257:$Vmv}),o($Vlv,$Vkv,{1080:6144,257:$Vmv}),o($Vlv,$Vkv,{1080:6145,257:$Vmv}),o($V2v,$V1v,{1079:6146,214:$V3v}),o($Vlv,$Vkv,{1080:6147,257:$Vmv}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,518:5544,523:2116,657:6148,659:5543},o($VRp,[2,1025],{394:$Vvt}),o($VFm,$Vxt,{159:598,25:613,518:1631,523:2116,554:2201,553:5548,639:6149,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,160:$Va8,161:$Vb8,398:$Vyt,402:$Vg8}),{335:$Vnv},{306:$Vov},o($VF8,[2,1492]),{19:[1,6152],335:$Vnv},{19:[1,6153],306:$Vov},o($VF8,[2,1520]),o([6,10,399],$Vpv,{19:$Vqv}),o($Vrv,[2,2287]),o($Vrv,[2,2288]),{403:$V0d,468:6155},o([6,10,19,40,73,75,117,121,167,212,243,244,274,275,286,323,352,452,543,577,957,1190,1209],[2,2442]),o($Vou,[2,2453]),o($Vv9,$Vpv),o([6,10,167,212,286,543,957],$Vav,{1057:6078,465:6079,965:6156,121:$Vfe,275:$Vje}),o($Viv,$Vol,{460:1808,536:3350,535:6157,75:$Vce,244:$Vhe}),o($Vlv,$Vkv,{1080:6158,257:$Vmv}),o($Vwl,$V7q,{540:6159,545:6160,541:6161,212:$Vge,543:$V8q}),o($Vsv,[2,2461]),{398:$V8i,827:6162},o($Vyl,$V7q,{541:4587,540:6163,212:$VOe,543:$V8q}),o($Vyl,$V7q,{541:4587,540:6164,212:$VOe,543:$V8q}),o($VFr,[2,2398]),o($VFr,[2,2391]),o($VFr,[2,2392]),o($VUu,$VUl,{1035:3468,463:6165,1038:6166,1037:6167,117:$VVl,274:$VWl}),o($VFr,[2,2415]),o($VFr,[2,2416]),o($Vco,[2,2413]),o($Vco,[2,2414]),o($VFr,[2,2420]),o($Vco,[2,2417]),{403:$V0d,404:$V1d,468:1754,472:1755,474:6168},o($VUu,$Vtl,{1056:3388,877:6169,895:6170,352:$Vul}),o($Vyl,$V7q,{541:4587,540:6171,212:$VOe,543:$V8q}),o([6,10,40,75,121,167,212,244,275,286,452,543,957],$VUl,{1035:3468,463:3469,1037:6167,117:$VVl,274:$VWl}),o($VQt,[2,2378]),{398:$Vko,853:6172},o($Vyl,$V7q,{541:4587,540:6173,212:$VOe,543:$V8q}),o($Vyl,$V7q,{541:4587,540:6174,212:$VOe,543:$V8q}),o($Vyl,$V7q,{541:4587,540:6175,212:$VOe,543:$V8q}),{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vg8,523:6176},{19:$V8o,71:[1,6177]},{394:$VFi},o($V3r,[2,2319]),o($V3r,[2,2320]),o($V$q,[2,2318]),{19:[1,6178],328:$VXu,833:$VYu,1021:6180,1022:6179},o($VFm,[2,2332],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($VFm,[2,2335],{669:2417,1023:6181,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:[1,6182],389:$Vbh,390:[1,6183],391:$Vdh,392:$Veh,393:$Vfh}),{19:[1,6184],233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:[1,6186],389:$Vuh,390:[1,6187],391:$Vwh,392:$Vxh,393:$Vyh,669:2435,674:2434,1023:6185},{19:[1,6188],388:$Vtv,390:$Vuv,1023:6189},o($VFm,[2,2333]),{19:[1,6192],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:6193,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vyl,$V7q,{541:4587,540:6194,212:$VOe,543:$V8q}),{328:$VZu,833:$V_u,1021:6180},{233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:[1,6196],389:$Vkj,390:[1,6197],391:$Vmj,392:$Vnj,393:$Voj,669:2435,1023:6195},{388:$Vtv,390:$Vuv,1023:6198},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:6193,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o([6,10,19,40,452],$Vav,{1057:6078,465:6079,965:6199,121:$Vfe,275:$Vje}),o($Vvv,$Vav,{1057:6078,465:6079,965:6200,121:$Vfe,275:$Vje}),o($Vvv,$Vav,{1057:6078,465:6079,965:6201,121:$Vfe,275:$Vje}),o($Vvv,$Vav,{1057:6078,465:6079,965:6202,121:$Vfe,275:$Vje}),o($Vwu,[2,2626]),o($Vyu,[2,2628]),o($Vyu,[2,2629]),o($Vvv,$Vav,{1057:6078,465:6079,965:6203,121:$Vfe,275:$Vje}),o($Vvv,$Vav,{1057:6078,465:6079,965:6204,121:$Vfe,275:$Vje}),o($Vvv,$Vav,{1057:6078,465:6079,965:6205,121:$Vfe,275:$Vje}),o($Vvv,$Vav,{1057:6078,465:6079,965:6206,121:$Vfe,275:$Vje}),o($Vwv,$Vxv,{1081:6207,1089:6208,225:[1,6209]}),o($Vyv,$Vxv,{1081:6210,225:$Vzv}),{387:[1,6212]},o($Vyv,$Vxv,{1081:6213,225:$Vzv}),{387:[1,6214]},{403:$V1e,468:5749,470:5750,1096:6215,1097:6216},o($Vyv,$Vxv,{1081:6217,225:$Vzv}),{403:$V0d,468:5749,1096:6215},o($VBu,[2,2558]),o($VDu,[2,2559]),o($Vyv,$Vxv,{1081:6218,225:$Vzv}),o($Vyv,$Vxv,{1081:6219,225:$Vzv}),o($Vyv,$Vxv,{1081:6220,225:$Vzv}),o($Vyv,$Vxv,{1081:6221,225:$Vzv}),o($Vyv,$Vxv,{1081:6222,225:$Vzv}),o($Vyv,$Vxv,{1081:6223,225:$Vzv}),o($Vlv,$Vkv,{1080:6224,257:$Vmv}),o($Vyv,$Vxv,{1081:6225,225:$Vzv}),o($Vjr,[2,1066],{394:$V0u}),o($VF8,[2,998],{394:$V4u}),o($VAv,[2,1518]),o($VAv,[2,1519]),o($VF8,[2,1521]),o($VF8,[2,1522]),o($Vv9,[2,2285]),o($VRu,[2,2451]),o([6,10,167,286,957],$V7q,{541:4587,540:6226,212:$VOe,543:$V8q}),o($Vvv,$Vav,{1057:6078,465:6079,965:6227,121:$Vfe,275:$Vje}),o($Vyv,$Vxv,{1081:6228,225:$Vzv}),o($VBv,$VCv,{966:6229,972:6230,436:6232,19:[1,6231],167:$Vza,286:$VAa}),o($V2,$VCv,{966:6233,436:6234,167:$Vza,286:$VAa}),o($Vwl,$V9i,{546:2570,542:5040,548:6235,352:$Vai}),o($Vsv,[2,2462]),o($V2,$VCv,{436:6234,966:6236,167:$Vza,286:$VAa}),o($V2,$VCv,{436:6234,966:6237,167:$Vza,286:$VAa}),{19:[1,6238],167:$Vza,286:$VAa,436:6002},o($VFr,[2,2394]),o($VUu,[2,2385]),o($Vco,$Vtl,{1056:3388,877:6239,895:6240,352:$Vul}),o($VUu,[2,2386]),o($VUu,[2,2387]),o($V2,$VCv,{436:6234,966:6241,167:$Vza,286:$VAa}),o($VOt,[2,2375],{202:[1,6242]}),o($V2,$VCv,{436:6234,966:6243,167:$Vza,286:$VAa}),o($V2,$VCv,{436:6234,966:6244,167:$Vza,286:$VAa}),o($V2,$VCv,{436:6234,966:6245,167:$Vza,286:$VAa}),{19:$Vku,180:$Vfv,846:5863},{398:$Vcb,513:6246,515:4610},o($VF8,[2,2324],{394:[1,6247]}),o($VF8,[2,2326],{394:[1,6248]}),o($VFm,[2,2322]),{348:[1,6249]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,348:$VDv,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3176,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,348:$VEv,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3178,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($VFm,[2,2336]),{19:[1,6250],348:[1,6251]},{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,348:$VDv,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3202,509:3201,518:1631,519:1630,523:1646,533:3204,534:3203,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{17:3200,19:$VAh,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,348:$VEv,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vt8,403:$V1e,404:$V2e,441:$VF5,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,508:3208,509:3201,518:1631,519:1630,523:1646,533:3210,534:3209,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($VFm,[2,2342]),{19:[1,6252],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:6254,534:6253,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},o($Vrp,$VDv),o($Vrp,$VEv),o($VFm,[2,2334]),o($VFm,[2,2331],{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($V2,$VCv,{436:6234,966:6255,167:$Vza,286:$VAa}),{348:[1,6256]},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,348:$VDv,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3647,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,348:$VEv,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:3649,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:6257,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($Vmc,$VVj,{949:3024,451:3624,946:6258,40:$VWj,452:$VXj}),o($V2,$VVj,{949:3024,451:3624,946:6259,40:$VWj,452:$VXj}),o($V2,$VVj,{949:3024,451:3624,946:6260,40:$VWj,452:$VXj}),o($V2,$VVj,{949:3024,451:3624,946:6261,40:$VWj,452:$VXj}),o($V2,$VVj,{949:3024,451:3624,946:6262,40:$VWj,452:$VXj}),o($V2,$VVj,{949:3024,451:3624,946:6263,40:$VWj,452:$VXj}),o($V2,$VVj,{949:3024,451:3624,946:6264,40:$VWj,452:$VXj}),o($V2,$VVj,{949:3024,451:3624,946:6265,40:$VWj,452:$VXj}),o($Vmc,$VFv,{1082:6266,1090:6267,235:[1,6268]}),o($V2,$VFv,{1082:6269,235:$VGv}),{387:[1,6271]},o($V2,$VFv,{1082:6272,235:$VGv}),{387:[1,6273]},{403:$V1e,468:5749,470:5750,1096:6274,1097:6275},o($V2,$VFv,{1082:6276,235:$VGv}),{403:$V0d,468:5749,1096:6274},o($V0v,[2,2561]),o($V2v,[2,2562]),o($V2,$VFv,{1082:6277,235:$VGv}),o($V2,$VFv,{1082:6278,235:$VGv}),o($V2,$VFv,{1082:6279,235:$VGv}),o($V2,$VFv,{1082:6280,235:$VGv}),o($V2,$VFv,{1082:6281,235:$VGv}),o($V2,$VFv,{1082:6282,235:$VGv}),o($V2,$VFv,{1082:6283,235:$VGv}),o($Vyv,$Vxv,{1081:6284,225:$Vzv}),o($V2,$VFv,{1082:6285,235:$VGv}),o($VBv,$VCv,{966:6229,436:6234,167:$Vza,286:$VAa}),o($V2,$VVj,{949:3024,451:3624,946:6286,40:$VWj,452:$VXj}),o($V2,$VFv,{1082:6287,235:$VGv}),o($VBv,[2,2141]),o($V2,[2,2151]),o($V2,[2,2152]),o($VXl,$VHv,{1059:6288}),o($V2,[2,2149]),o($VTb,$VHv,{1059:6289}),o($V2,$VCv,{436:6234,966:6290,167:$Vza,286:$VAa}),o($V2,[2,2148]),o($V2,[2,2147]),o($VFr,[2,2393]),o($Vco,[2,2418]),o($Vco,[2,2419]),o($V2,[2,2146]),o($VOt,[2,2376]),o($V2,[2,2145]),o($V2,[2,2144]),o($V2,[2,2143]),{19:$VDr,190:[1,6291]},{328:$VZu,833:$V_u,1019:6292,1021:6022},{328:$VZu,833:$V_u,1019:6293,1021:6022},o($VFm,[2,2338]),o($VFm,[2,2337]),o($VEm,$VIv,{1023:6295,19:[1,6294],388:$Vtv,390:$Vuv}),o($VFm,[2,2343],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($VFm,[2,2344],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VEm,$VJv,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($V2,[2,2142]),o($VFm,$VIv,{1023:6296,388:$Vtv,390:$Vuv}),o($VFm,$VJv,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),o($V2,$VKv,{19:[1,6297]}),o($V2,[2,2615]),o($V2,[2,2614]),o($V2,[2,2613]),o($V2,[2,2612]),o($V2,[2,2609]),o($V2,[2,2611]),o($V2,[2,2610]),o($V2,$VLv,{19:[1,6298]}),o($V2,[2,2524]),{19:[1,6300],54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:6299},o($V2,[2,2523]),{54:$VZm,118:$V_m,125:$V$m,126:$V0n,168:$V1n,175:$V2n,251:$V3n,289:$V4n,290:$V5n,293:$V6n,297:$V7n,299:$V8n,305:$V9n,314:$Van,340:$Vbn,341:$Vcn,344:$Vdn,345:$Ven,349:$Vfn,561:6299},{403:$V1e,468:5749,470:5750,1096:6301,1097:6302},o($V2,[2,2522]),{403:$V0d,468:5749,1096:6301},o($Vjv,[2,2564]),o($Vlv,[2,2565]),o($V2,[2,2521]),o($V2,[2,2520]),o($V2,[2,2519]),o($V2,[2,2528]),o($V2,[2,2527]),o($V2,[2,2526]),o($V2,[2,2525]),o($V2,[2,2508]),o($V2,$VFv,{1082:6303,235:$VGv}),o($V2,[2,2506]),o($V2,$VKv),o($V2,$VLv),{15:6304,18:1014,19:[1,6305],23:6306,352:$V26,572:382,574:412,576:1015,577:$VK5},{15:6304,18:1010,352:$V_8,572:808,577:$V19},o($V2,[2,2150]),{19:$VJs,25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,402:$Vt8,509:766,522:6307,523:764,525:5369},o($VF8,[2,2325],{394:$Vhv}),o($VF8,[2,2327],{394:$Vhv}),o($VFm,[2,2339]),{19:[1,6308],25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$Vnd,281:$VRb,285:$Vod,292:$Vpd,303:$Vqd,304:$Vrd,311:$Vsd,321:$Vtd,322:$Vud,323:$Vvd,346:$Vwd,353:$Vxd,354:$Vyd,355:$Vzd,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VEd,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VSd,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYd,382:$Vpc,383:$Vqc,391:$VZd,395:$VSb,396:$V_d,397:$V$d,398:$V0e,402:$Vg8,403:$V1e,404:$V2e,442:1398,468:1650,470:1644,472:1651,473:1645,504:1604,518:1631,519:1630,523:1646,533:6310,534:6309,554:1610,556:1609,661:1642,664:1597,671:1589,679:1600,681:1601,682:1605,683:1607,684:1598,685:1599,687:1602,688:1603,690:1625,691:1608,692:1643,693:1629,694:1395,695:1396,696:1652,746:1618,748:1620,750:1626,751:1627,752:1628,753:1617,755:1619,757:1621,758:1622,759:1623,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,768:1632,769:1633,770:1634,794:$V5e,796:1649},{25:613,26:$V56,27:$V66,28:$V76,29:$V86,30:$V96,31:$Va6,32:$Vb6,33:$Vc6,34:$Vd6,35:$Ve6,36:$Vf6,37:$Vg6,38:$Vh6,39:$Vi6,40:$Vj6,41:$Vk6,42:$Vl6,43:$Vm6,44:$Vn6,45:$Vo6,46:$Vp6,47:$Vq6,48:$Vr6,49:$Vs6,50:$Vt6,51:$Vu6,52:$Vv6,53:$Vw6,54:$Vx6,55:$Vy6,56:$Vz6,57:$VA6,58:$VB6,59:$VC6,60:$VD6,61:$VE6,62:$VF6,63:$VG6,64:$VH6,65:$VI6,66:$VJ6,67:$VK6,68:$VL6,69:$VM6,70:$VN6,71:$VO6,72:$VP6,73:$VQ6,74:$VR6,75:$VS6,76:$VT6,77:$VU6,78:$VV6,79:$VW6,80:$VX6,81:$VY6,82:$VZ6,83:$V_6,84:$V$6,85:$V07,86:$V17,87:$V27,88:$V37,89:$V47,90:$V57,91:$V67,92:$V77,93:$V87,94:$V97,95:$Va7,96:$Vb7,97:$Vc7,98:$Vd7,99:$Ve7,100:$Vf7,101:$Vg7,102:$Vh7,103:$Vi7,104:$Vj7,105:$Vk7,106:$Vr8,107:$Vm7,108:$Vn7,109:$Vo7,110:$Vp7,111:$Vq7,112:$Vr7,113:$Vs7,114:$Vt7,115:$Vu7,116:$Vv7,117:$Vw7,118:$Vx7,119:$Vy7,120:$Vz7,121:$VA7,122:$VB7,123:$VC7,124:$VD7,125:$VE7,126:$VF7,127:$VG7,128:$VH7,129:$VI7,130:$VJ7,131:$VK7,132:$VL7,133:$VM7,134:$VN7,135:$VO7,136:$VP7,137:$VQ7,138:$VR7,139:$VS7,140:$VT7,141:$VU7,142:$VV7,143:$VW7,144:$VX7,145:$VY7,146:$VZ7,147:$V_7,148:$V$7,149:$V08,150:$V18,151:$V28,152:$V38,153:$V48,154:$V58,155:$V68,156:$V78,157:$V88,158:$V98,159:598,160:$Va8,161:$Vb8,168:$Vmd,207:$VQb,236:$VQf,281:$VRb,285:$Vod,292:$VRf,303:$VSf,304:$Vrd,311:$Vsd,321:$Vtd,322:$VTf,323:$Vvd,346:$Vwd,353:$Vxd,354:$VUf,355:$VVf,356:$VAd,357:$VBd,358:$VCd,359:$VDd,360:$VWf,361:$VFd,362:$VGd,363:$VHd,364:$VId,365:$VJd,366:$VKd,367:$VLd,368:$VMd,370:$VNd,371:$VOd,372:$VPd,373:$VQd,374:$VRd,375:$VXf,376:$VTd,377:$VUd,378:$VVd,379:$VWd,380:$VXd,381:$VYf,382:$Vpc,383:$Vqc,391:$VZf,395:$VSb,396:$V_f,397:$V$f,398:$V0g,402:$Vg8,403:$V0d,404:$V1d,442:1398,468:1650,472:1651,504:1604,518:1631,523:2116,533:6311,554:2108,661:1642,664:1597,679:2106,681:2107,682:1605,683:1607,690:1625,692:1643,694:1395,695:1396,696:1652,746:2109,748:2110,750:1626,751:1627,752:1628,762:$V3e,763:$V4e,765:1635,766:1636,767:1637,794:$V1g,796:2119},o($V2,[2,2616]),o($V2,[2,2513]),o($Vmc,[2,2570]),o($V2,[2,2571]),o($Vwv,[2,2567]),o($Vyv,[2,2568]),o($V2,[2,2503]),o($VBv,[2,2466]),o($V2,[2,2467]),o($V2,[2,2468]),{398:$Vcb,513:6312,515:5638},o($VFm,[2,2340],{669:2398,233:$VSg,239:$VTg,319:$VUg,322:$VVg,332:$VWg,334:$VXg,385:$VYg,386:$VZg,387:$V_g,388:$V$g,389:$V0h,390:$V1h,392:$V2h,393:$V3h}),o($VFm,[2,2341],{669:2417,233:$VSg,239:$VTg,288:$V4h,312:$V5h,319:$VUg,322:$V6h,332:$VWg,334:$VXg,385:$V7h,386:$V8h,387:$V9h,388:$Vah,389:$Vbh,390:$Vch,391:$Vdh,392:$Veh,393:$Vfh}),o($VEm,$VMv,{674:2434,669:2435,233:$Vgh,239:$Vhh,288:$Vih,312:$Vjh,316:$Vkh,319:$Vlh,322:$Vmh,332:$Vnh,334:$Voh,385:$Vqh,386:$Vrh,387:$Vsh,388:$Vth,389:$Vuh,390:$Vvh,391:$Vwh,392:$Vxh,393:$Vyh}),o($VFm,$VMv,{669:2435,233:$VSg,239:$VTg,288:$Vbj,312:$Vcj,316:$Vdj,319:$VUg,322:$Vej,332:$VWg,334:$VXg,385:$Vgj,386:$Vhj,387:$Vij,388:$Vjj,389:$Vkj,390:$Vlj,391:$Vmj,392:$Vnj,393:$Voj}),{19:$Vju,53:[1,6313]},{19:$VQu,82:[1,6314]},{19:$V6v,98:$V7v,99:$V8v,1014:6315},{19:$Vqv}], -defaultActions: {13:[2,178],14:[2,179],15:[2,180],16:[2,181],17:[2,182],18:[2,183],19:[2,184],20:[2,185],21:[2,186],22:[2,187],23:[2,188],24:[2,189],25:[2,190],26:[2,191],27:[2,192],28:[2,193],29:[2,194],30:[2,195],31:[2,196],32:[2,197],33:[2,198],34:[2,199],35:[2,200],36:[2,201],37:[2,202],38:[2,203],39:[2,204],40:[2,205],41:[2,206],42:[2,207],43:[2,208],44:[2,209],45:[2,210],46:[2,211],47:[2,212],49:[2,214],50:[2,215],51:[2,216],52:[2,217],53:[2,218],54:[2,219],55:[2,220],56:[2,221],57:[2,222],58:[2,223],59:[2,224],60:[2,225],61:[2,226],62:[2,227],63:[2,228],64:[2,229],65:[2,230],66:[2,231],67:[2,232],68:[2,233],69:[2,234],70:[2,235],71:[2,236],72:[2,237],73:[2,238],74:[2,239],75:[2,240],76:[2,241],77:[2,242],78:[2,243],79:[2,244],80:[2,245],81:[2,246],82:[2,247],83:[2,248],84:[2,249],85:[2,250],86:[2,251],87:[2,252],88:[2,253],89:[2,254],90:[2,255],91:[2,256],92:[2,257],93:[2,258],94:[2,259],95:[2,260],96:[2,261],97:[2,262],98:[2,263],99:[2,264],100:[2,265],101:[2,266],102:[2,267],103:[2,268],104:[2,269],105:[2,270],106:[2,271],107:[2,272],108:[2,273],109:[2,274],110:[2,275],111:[2,276],112:[2,277],113:[2,278],114:[2,279],115:[2,280],116:[2,281],117:[2,282],118:[2,283],119:[2,284],120:[2,285],121:[2,286],122:[2,287],123:[2,288],124:[2,289],125:[2,290],126:[2,291],127:[2,292],128:[2,293],129:[2,294],130:[2,295],131:[2,296],132:[2,297],133:[2,298],134:[2,299],135:[2,300],136:[2,301],137:[2,302],138:[2,303],139:[2,304],140:[2,305],141:[2,306],142:[2,307],143:[2,308],145:[2,310],146:[2,311],147:[2,312],148:[2,313],149:[2,314],150:[2,315],151:[2,316],152:[2,317],153:[2,318],154:[2,319],155:[2,320],156:[2,321],157:[2,322],158:[2,323],159:[2,324],160:[2,325],161:[2,326],162:[2,327],163:[2,328],164:[2,329],165:[2,330],166:[2,331],167:[2,332],168:[2,333],169:[2,334],170:[2,335],171:[2,336],172:[2,337],173:[2,338],174:[2,339],175:[2,340],176:[2,341],177:[2,342],178:[2,343],179:[2,344],180:[2,345],181:[2,346],182:[2,347],183:[2,348],184:[2,349],185:[2,350],186:[2,351],187:[2,352],188:[2,353],189:[2,354],190:[2,355],191:[2,356],192:[2,357],193:[2,358],194:[2,359],195:[2,360],196:[2,361],197:[2,362],198:[2,363],200:[2,365],201:[2,366],202:[2,367],203:[2,368],204:[2,369],205:[2,370],206:[2,371],207:[2,372],208:[2,373],209:[2,374],210:[2,375],211:[2,376],212:[2,377],213:[2,378],214:[2,379],215:[2,380],216:[2,381],217:[2,382],218:[2,383],219:[2,384],220:[2,385],221:[2,386],222:[2,387],223:[2,388],224:[2,389],225:[2,390],226:[2,391],227:[2,392],228:[2,393],229:[2,394],230:[2,395],231:[2,396],232:[2,397],233:[2,398],234:[2,399],235:[2,400],236:[2,401],237:[2,402],238:[2,403],239:[2,404],240:[2,405],241:[2,406],243:[2,408],244:[2,409],245:[2,410],246:[2,411],247:[2,412],248:[2,413],249:[2,414],250:[2,415],251:[2,416],252:[2,417],253:[2,418],254:[2,419],255:[2,420],256:[2,421],257:[2,422],258:[2,423],259:[2,424],260:[2,425],261:[2,426],262:[2,427],263:[2,428],264:[2,429],265:[2,430],266:[2,431],267:[2,432],268:[2,433],269:[2,434],270:[2,435],271:[2,436],272:[2,437],273:[2,438],274:[2,439],276:[2,441],277:[2,442],278:[2,443],279:[2,444],280:[2,445],281:[2,446],282:[2,447],283:[2,448],284:[2,449],285:[2,450],286:[2,451],287:[2,452],288:[2,453],290:[2,455],291:[2,456],292:[2,457],293:[2,458],294:[2,459],295:[2,460],296:[2,461],297:[2,462],298:[2,463],299:[2,464],300:[2,465],301:[2,466],302:[2,467],303:[2,468],304:[2,469],305:[2,470],306:[2,471],307:[2,472],308:[2,473],309:[2,474],310:[2,475],311:[2,476],312:[2,477],313:[2,478],314:[2,479],315:[2,480],316:[2,481],317:[2,482],318:[2,483],319:[2,484],320:[2,485],321:[2,486],322:[2,487],323:[2,488],324:[2,489],325:[2,490],326:[2,491],327:[2,492],328:[2,493],329:[2,494],330:[2,495],331:[2,496],332:[2,497],333:[2,498],334:[2,499],335:[2,500],336:[2,501],337:[2,502],338:[2,503],339:[2,504],340:[2,505],341:[2,506],342:[2,507],343:[2,508],344:[2,509],345:[2,510],346:[2,511],347:[2,512],348:[2,513],349:[2,514],350:[2,515],351:[2,516],352:[2,517],571:[2,2],573:[2,3],1344:[2,624],1611:[2,1440],1612:[2,1441],1613:[2,1442],1614:[2,1443],1615:[2,1444],1616:[2,1445],1655:[2,1574],1656:[2,1575],1657:[2,1576],1658:[2,1577],1659:[2,1578],1660:[2,1579],1661:[2,1580],1662:[2,1581],1663:[2,1582],1664:[2,1583],1665:[2,1584],1666:[2,1585],1667:[2,1586],1668:[2,1587],1669:[2,1588],1670:[2,1589],1671:[2,1590],1672:[2,1591],1673:[2,1592],1674:[2,1593],1675:[2,1594],1676:[2,1595],1677:[2,1596],1724:[2,607],1725:[2,608],1726:[2,1971],1727:[2,1972],1729:[2,597],1730:[2,598],1771:[2,1907],1772:[2,1908],2179:[2,3142],2180:[2,3143],3743:[2,1704],3784:[2,2600],4044:[2,2295],4372:[2,2117],4373:[2,2116],4409:[2,2546],4431:[2,2580],4432:[2,2581],4433:[2,2582],4702:[2,2257],4842:[2,1705],5135:[2,2289],5183:[2,1701],5428:[2,2259],5483:[2,1706],5485:[2,1709],5643:[2,587],5644:[2,588],5861:[2,2260]}, -parseError: function parseError (str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } -}, -parse: function parse (input) { - var self = this, - stack = [0], - tstack = [], // token stack - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - var args = lstack.slice.call(arguments, 1); - - //this.reductionCount = this.shiftCount = 0; - - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - // copy state - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - - var ranges = lexer.options && lexer.options.ranges; - - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - -_token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length - 1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; - - // Return the rule stack depth where the nearest error rule can be found. - // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { - var stack_probe = stack.length - 1; - var depth = 0; - - // try to recover from error - for(;;) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - return depth; - } - if (state === 0 || stack_probe < 2) { - return false; // No suitable error recovery rule available. - } - stack_probe -= 2; // popStack(1): [symbol, action] - state = stack[stack_probe]; - ++depth; - } - } - - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); - - // Report error - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'"+this.terminals_[p]+"'"); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == EOF ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected, - recoverable: (error_rule_depth !== false) - }); - } else if (preErrorSymbol !== EOF) { - error_rule_depth = locateNearestErrorRecoveryRule(state); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol === EOF || preErrorSymbol === EOF) { - throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); - } - - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - if (error_rule_depth === false) { - throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); - } - popStack(error_rule_depth); - - preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: - // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: - // accept - return true; - } - - } - - return true; -}}; - - -SqlParseSupport.initSqlParser(parser);/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function(match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex () { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin (condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState () { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules () { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState (n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState (condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {"case-insensitive":true,"flex":true}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0: /* skip whitespace */ -break; -case 1: /* skip comments */ -break; -case 2: /* skip comments */ -break; -case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 19; -break; -case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 441; -break; -case 5: return 166; -break; -case 6: return 285; -break; -case 7: return 167; -break; -case 8: return 164; -break; -case 9: return 168; -break; -case 10: return 169; -break; -case 11: return 860; -break; -case 12: return 171; -break; -case 13: return 172; -break; -case 14: parser.determineCase(yy_.yytext); return 439; -break; -case 15: return 173; -break; -case 16: return 174; -break; -case 17: return 175; -break; -case 18: parser.determineCase(yy_.yytext); return 1166; -break; -case 19: parser.determineCase(yy_.yytext); return 570; -break; -case 20: return 165; -break; -case 21: return 178; -break; -case 22: return 179; -break; -case 23: return 180; -break; -case 24: return 181; -break; -case 25: return 182; -break; -case 26: return 183; -break; -case 27: parser.determineCase(yy_.yytext); return 1253; -break; -case 28: parser.determineCase(yy_.yytext); return 1190; -break; -case 29: return 184; -break; -case 30: return 185; -break; -case 31: return 187; -break; -case 32: return 321; -break; -case 33: return 198; -break; -case 34: return 199; -break; -case 35: return 200; -break; -case 36: return 189; -break; -case 37: return 190; -break; -case 38: return 1193; -break; -case 39: return 191; -break; -case 40: return 193; -break; -case 41: return 125; -break; -case 42: return 132; -break; -case 43: return 204; -break; -case 44: return 205; -break; -case 45: parser.determineCase(yy_.yytext); return 26; -break; -case 46: return 27; -break; -case 47: return 28; -break; -case 48: return 29; -break; -case 49: parser.determineCase(yy_.yytext); return 30; -break; -case 50: return 31; -break; -case 51: return 194; -break; -case 52: return 32; -break; -case 53: return 33; -break; -case 54: return 34; -break; -case 55: return 35; -break; -case 56: return 36; -break; -case 57: return 170; -break; -case 58: return 37; -break; -case 59: return 38; -break; -case 60: return 39; -break; -case 61: return 40; -break; -case 62: return 41; -break; -case 63: return 42; -break; -case 64: return 43; -break; -case 65: return 44; -break; -case 66: return 45; -break; -case 67: return 46; -break; -case 68: return 135; -break; -case 69: return 369; -break; -case 70: return 47; -break; -case 71: return 48; -break; -case 72: return 49; -break; -case 73: return 50; -break; -case 74: return 51; -break; -case 75: return 571; -break; -case 76: this.begin('hdfs'); return 52; -break; -case 77: return 53; -break; -case 78: return 176; -break; -case 79: return 54; -break; -case 80: return 56; -break; -case 81: return 55; -break; -case 82: return 57; -break; -case 83: parser.determineCase(yy_.yytext); return 58; -break; -case 84: parser.determineCase(yy_.yytext); return 59; -break; -case 85: return 60; -break; -case 86: return 61; -break; -case 87: return 62; -break; -case 88: return 63; -break; -case 89: return 64; -break; -case 90: return 195; -break; -case 91: return 181; -break; -case 92: return 65; -break; -case 93: return 136; -break; -case 94: return 69; -break; -case 95: return 196; -break; -case 96: return 197; -break; -case 97: this.begin('hdfs'); return 66; -break; -case 98: return 67; -break; -case 99: return 70; -break; -case 100: return 68; -break; -case 101: return 71; -break; -case 102: return 72; -break; -case 103: return 73; -break; -case 104: parser.determineCase(yy_.yytext); return 74; -break; -case 105: this.begin('hdfs'); return 75; -break; -case 106: return 186; -break; -case 107: return 76; -break; -case 108: return 77; -break; -case 109: return 79; -break; -case 110: return 78; -break; -case 111: return 137; -break; -case 112: return 138; -break; -case 113: return 80; -break; -case 114: return 99; -break; -case 115: return 81; -break; -case 116: return 82; -break; -case 117: return 83; -break; -case 118: return 84; -break; -case 119: return 85; -break; -case 120: return 86; -break; -case 121: return 87; -break; -case 122: this.begin('hdfs'); return 1207; -break; -case 123: return 88; -break; -case 124: return 89; -break; -case 125: return 90; -break; -case 126: return 91; -break; -case 127: return 92; -break; -case 128: return 93; -break; -case 129: return 94; -break; -case 130: return 139; -break; -case 131: return 95; -break; -case 132: return 96; -break; -case 133: parser.determineCase(yy_.yytext); return 97; -break; -case 134: return 98; -break; -case 135: return 100; -break; -case 136: return 101; -break; -case 137: return 102; -break; -case 138: return 103; -break; -case 139: return 104; -break; -case 140: return 105; -break; -case 141: return 106; -break; -case 142: return 107; -break; -case 143: return 140; -break; -case 144: return 201; -break; -case 145: return 108; -break; -case 146: return 109; -break; -case 147: return 110; -break; -case 148: return 111; -break; -case 149: return 112; -break; -case 150: parser.determineCase(yy_.yytext); return 113; -break; -case 151: return 192; -break; -case 152: return 114; -break; -case 153: return 857; -break; -case 154: return 656; -break; -case 155: return 115; -break; -case 156: return 116; -break; -case 157: return 117; -break; -case 158: return 202; -break; -case 159: return 118; -break; -case 160: return 119; -break; -case 161: return 120; -break; -case 162: return 203; -break; -case 163: return 121; -break; -case 164: return 122; -break; -case 165: return 123; -break; -case 166: return 124; -break; -case 167: return 126; -break; -case 168: return 127; -break; -case 169: return 128; -break; -case 170: return 129; -break; -case 171: return 130; -break; -case 172: parser.determineCase(yy_.yytext); return 131; -break; -case 173: return 133; -break; -case 174: return 134; -break; -case 175: return 141; -break; -case 176: return 206; -break; -case 177: return 142; -break; -case 178: return 207; -break; -case 179: return 208; -break; -case 180: return 209; -break; -case 181: return 908; -break; -case 182: return 210; -break; -case 183: return 211; -break; -case 184: return 212; -break; -case 185: return 213; -break; -case 186: return 906; -break; -case 187: return 214; -break; -case 188: return 215; -break; -case 189: return 898; -break; -case 190: parser.determineCase(yy_.yytext); return 452; -break; -case 191: parser.determineCase(yy_.yytext); return 933; -break; -case 192: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('CREATE', yy_.yylloc, yy.lexer.upcomingInput()); return 440; -break; -case 193: return 216; -break; -case 194: return 217; -break; -case 195: return 218; -break; -case 196: return 219; -break; -case 197: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DESCRIBE', yy_.yylloc); return 569; -break; -case 198: return 220; -break; -case 199: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('EXPLAIN', yy_.yylloc); return 163; -break; -case 200: return 222; -break; -case 201: return 221; -break; -case 202: return 223; -break; -case 203: return 907; -break; -case 204: return 224; -break; -case 205: return 225; -break; -case 206: return 226; -break; -case 207: return 227; -break; -case 208: return 228; -break; -case 209: return 229; -break; -case 210: return 230; -break; -case 211: return 231; -break; -case 212: return 232; -break; -case 213: return 233; -break; -case 214: return 234; -break; -case 215: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INSERT', yy_.yylloc); return 1192; -break; -case 216: return 236; -break; -case 217: return 235; -break; -case 218: return 237; -break; -case 219: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INVALIDATE', yy_.yylloc, yy.lexer.upcomingInput()); return 931; -break; -case 220: this.begin('hdfs'); return 238; -break; -case 221: return 239; -break; -case 222: return 156; -break; -case 223: return 240; -break; -case 224: return 241; -break; -case 225: this.begin('hdfs'); return 975; -break; -case 226: return 242; -break; -case 227: return 243; -break; -case 228: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('LOAD', yy_.yylloc, yy.lexer.upcomingInput()); return 1252; -break; -case 229: this.begin('hdfs'); return 244; -break; -case 230: return 245; -break; -case 231: return 932; -break; -case 232: return 246; -break; -case 233: return 663; -break; -case 234: return 1040; -break; -case 235: return 1230; -break; -case 236: return 268; -break; -case 237: return 269; -break; -case 238: return 247; -break; -case 239: return 248; -break; -case 240: return 249; -break; -case 241: return 270; -break; -case 242: return 250; -break; -case 243: return 251; -break; -case 244: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REFRESH', yy_.yylloc); return 930; -break; -case 245: return 910; -break; -case 246: return 252; -break; -case 247: return 762; -break; -case 248: return 253; -break; -case 249: return 254; -break; -case 250: return 255; -break; -case 251: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REVOKE', yy_.yylloc); return 1195; -break; -case 252: return 271; -break; -case 253: return 272; -break; -case 254: return 256; -break; -case 255: return 257; -break; -case 256: return 150; -break; -case 257: return 258; -break; -case 258: return 259; -break; -case 259: return 274; -break; -case 260: return 260; -break; -case 261: return 261; -break; -case 262: return 262; -break; -case 263: return 263; -break; -case 264: return 264; -break; -case 265: return 275; -break; -case 266: return 276; -break; -case 267: return 277; -break; -case 268: return 543; -break; -case 269: return 278; -break; -case 270: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('UPSERT', yy_.yylloc); return 1227; -break; -case 271: return 149; -break; -case 272: return 265; -break; -case 273: return 833; -break; -case 274: return 143; -break; -case 275: return 266; -break; -case 276: return 285; -break; -case 277: return 152; -break; -case 278: return 153; -break; -case 279: return 144; -break; -case 280: return 154; -break; -case 281: return 155; -break; -case 282: return 145; -break; -case 283: return 321; -break; -case 284: return 146; -break; -case 285: return 147; -break; -case 286: return 148; -break; -case 287: return 119; -break; -case 288: return 151; -break; -case 289: return 279; -break; -case 290: return 267; -break; -case 291: return 273; -break; -case 292: return 280; -break; -case 293: return 281; -break; -case 294: return 282; -break; -case 295: return 283; -break; -case 296: this.popState(); return 668; -break; -case 297: return 957; -break; -case 298: return 284; -break; -case 299: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 826; -break; -case 300: return 385; -break; -case 301: return 286; -break; -case 302: return 287; -break; -case 303: this.begin('between'); return 288; -break; -case 304: return 289; -break; -case 305: return 290; -break; -case 306: return 291; -break; -case 307: return 292; -break; -case 308: return 293; -break; -case 309: parser.determineCase(yy_.yytext); return 438; -break; -case 310: return 294; -break; -case 311: return 295; -break; -case 312: return 296; -break; -case 313: return 297; -break; -case 314: return 298; -break; -case 315: return 393; -break; -case 316: return 299; -break; -case 317: return 300; -break; -case 318: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 868; -break; -case 319: return 301; -break; -case 320: return 302; -break; -case 321: parser.yy.correlatedSubQuery = true; return 303; -break; -case 322: return 304; -break; -case 323: return 305; -break; -case 324: return 306; -break; -case 325: parser.determineCase(yy_.yytext); return 307; -break; -case 326: return 308; -break; -case 327: return 309; -break; -case 328: return 310; -break; -case 329: return 311; -break; -case 330: return 312; -break; -case 331: return 313; -break; -case 332: return 1213; -break; -case 333: return 314; -break; -case 334: return 315; -break; -case 335: return 316; -break; -case 336: return 317; -break; -case 337: return 318; -break; -case 338: return 319; -break; -case 339: return 320; -break; -case 340: return 322; -break; -case 341: return 323; -break; -case 342: return 324; -break; -case 343: return 158; -break; -case 344: return 386; -break; -case 345: return 325; -break; -case 346: return 326; -break; -case 347: return 328; -break; -case 348: return 329; -break; -case 349: return 330; -break; -case 350: return 331; -break; -case 351: return 332; -break; -case 352: return 333; -break; -case 353: return 334; -break; -case 354: return 335; -break; -case 355: return 336; -break; -case 356: return 337; -break; -case 357: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 577; -break; -case 358: return 338; -break; -case 359: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 339; -break; -case 360: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 1278; -break; -case 361: return 340; -break; -case 362: return 341; -break; -case 363: return 342; -break; -case 364: return 343; -break; -case 365: return 344; -break; -case 366: return 345; -break; -case 367: return 837; -break; -case 368: return 346; -break; -case 369: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 763; -break; -case 370: return 785; -break; -case 371: parser.determineCase(yy_.yytext); return 1191; -break; -case 372: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 1314; -break; -case 373: return 347; -break; -case 374: return 1101; -break; -case 375: return 349; -break; -case 376: return 348; -break; -case 377: return 350; -break; -case 378: return 351; -break; -case 379: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 352; -break; -case 380: return 327; -break; -case 381: return 157; -break; -case 382: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 353; -break; -case 383: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 354; -break; -case 384: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 355; -break; -case 385: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 356; -break; -case 386: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 357; -break; -case 387: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 358; -break; -case 388: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 359; -break; -case 389: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 360; -break; -case 390: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 361; -break; -case 391: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 362; -break; -case 392: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 363; -break; -case 393: yy.lexer.unput('('); yy_.yytext = 'collect_set'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 364; -break; -case 394: yy.lexer.unput('('); yy_.yytext = 'collect_list'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 365; -break; -case 395: yy.lexer.unput('('); yy_.yytext = 'corr'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 366; -break; -case 396: yy.lexer.unput('('); yy_.yytext = 'covar_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 367; -break; -case 397: yy.lexer.unput('('); yy_.yytext = 'covar_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 368; -break; -case 398: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 794; -break; -case 399: yy.lexer.unput('('); yy_.yytext = 'histogram_numeric'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 370; -break; -case 400: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 371; -break; -case 401: yy.lexer.unput('('); yy_.yytext = 'percentile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 372; -break; -case 402: yy.lexer.unput('('); yy_.yytext = 'percentile_approx'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 373; -break; -case 403: yy.lexer.unput('('); yy_.yytext = 'appx_median'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 374; -break; -case 404: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 375; -break; -case 405: yy.lexer.unput('('); yy_.yytext = 'group_concat'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 376; -break; -case 406: yy.lexer.unput('('); yy_.yytext = 'ndv'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 377; -break; -case 407: yy.lexer.unput('('); yy_.yytext = 'stddev'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 378; -break; -case 408: yy.lexer.unput('('); yy_.yytext = 'variance_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 379; -break; -case 409: yy.lexer.unput('('); yy_.yytext = 'variance_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 380; -break; -case 410: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 411: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 412: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 413: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 414: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 415: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 416: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 417: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 418: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 419: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 420: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 421: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 422: yy.lexer.unput('('); yy_.yytext = 'system'; return 727; -break; -case 423: return 382; -break; -case 424: return 382; -break; -case 425: return 383; -break; -case 426: return 160; -break; -case 427: parser.yy.cursorFound = true; return 19; -break; -case 428: parser.yy.cursorFound = true; return 441; -break; -case 429: return 384; -break; -case 430: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 789; -break; -case 431: this.popState(); return 790; -break; -case 432: return 6; -break; -case 433: return 385; -break; -case 434: return 386; -break; -case 435: return 387; -break; -case 436: return 388; -break; -case 437: return 389; -break; -case 438: return 390; -break; -case 439: return 390; -break; -case 440: return 390; -break; -case 441: return 390; -break; -case 442: return 390; -break; -case 443: return 391; -break; -case 444: return 392; -break; -case 445: return 393; -break; -case 446: return 393; -break; -case 447: return 393; -break; -case 448: return 393; -break; -case 449: return 393; -break; -case 450: return 393; -break; -case 451: return 394; -break; -case 452: return 395; -break; -case 453: return 1006; -break; -case 454: return 10; -break; -case 455: return 396; -break; -case 456: return 397; -break; -case 457: return 398; -break; -case 458: return 399; -break; -case 459: return 400; -break; -case 460: return 401; -break; -case 461: return 161; -break; -case 462: this.begin('backtickedValue'); return 402; -break; -case 463: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { - return 471; - } - return 469; - -break; -case 464: this.popState(); return 402; -break; -case 465: this.begin('singleQuotedValue'); return 403; -break; -case 466: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { - return 471; - } - return 469; - -break; -case 467: this.popState(); return 403; -break; -case 468: this.begin('doubleQuotedValue'); return 404; -break; -case 469: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { - return 471; - } - return 469; - -break; -case 470: this.popState(); return 404; -break; -case 471: return 6; -break; -case 472: /* To prevent console logging of unknown chars */ -break; -case 473: -break; -case 474: -break; -case 475: -break; -case 476: -break; -case 477: -break; -case 478: -break; -case 479: -break; -case 480:console.log(yy_.yytext); -break; -} -}, -rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:ALL)/i,/^(?:ARRAY)/i,/^(?:AS)/i,/^(?:AUTHORIZATION)/i,/^(?:BINARY)/i,/^(?:CACHE)/i,/^(?:COLUMN)/i,/^(?:CONF)/i,/^(?:CONSTRAINT)/i,/^(?:CREATE)/i,/^(?:CUBE)/i,/^(?:CURRENT)/i,/^(?:DATE)/i,/^(?:DELETE)/i,/^(?:DESCRIBE)/i,/^(?:EXTENDED)/i,/^(?:EXTERNAL)/i,/^(?:FOR)/i,/^(?:FOREIGN)/i,/^(?:FUNCTION)/i,/^(?:GRANT)/i,/^(?:GROUPING)/i,/^(?:IMPORT)/i,/^(?:INSERT)/i,/^(?:LATERAL)/i,/^(?:LOCAL)/i,/^(?:MACRO)/i,/^(?:MAP)/i,/^(?:NONE)/i,/^(?:OF)/i,/^(?:OUT)/i,/^(?:PRIMARY)/i,/^(?:REFERENCES)/i,/^(?:REVOKE)/i,/^(?:ROLLUP)/i,/^(?:TABLE)/i,/^(?:TIMESTAMP)/i,/^(?:USER)/i,/^(?:USING)/i,/^(?:VIEWS)/i,/^(?:ABORT)/i,/^(?:ADD)/i,/^(?:ADMIN)/i,/^(?:AFTER)/i,/^(?:ANALYZE)/i,/^(?:ARCHIVE)/i,/^(?:ASC)/i,/^(?:AVRO)/i,/^(?:BUCKET)/i,/^(?:BUCKETS)/i,/^(?:CASCADE)/i,/^(?:CHANGE)/i,/^(?:CLUSTER)/i,/^(?:CLUSTERED)/i,/^(?:COLLECTION)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMPACT)/i,/^(?:COMPACTIONS)/i,/^(?:COMPUTE)/i,/^(?:CONCATENATE)/i,/^(?:DATA)/i,/^(?:DATABASES)/i,/^(?:DAY)/i,/^(?:DAYOFWEEK)/i,/^(?:DBPROPERTIES)/i,/^(?:DEFERRED)/i,/^(?:DEFINED)/i,/^(?:DELIMITED)/i,/^(?:DEPENDENCY)/i,/^(?:DESC)/i,/^(?:DIRECTORY)/i,/^(?:DISABLE)/i,/^(?:DISTRIBUTE)/i,/^(?:DOUBLE\s+PRECISION)/i,/^(?:ESCAPED)/i,/^(?:ENABLE)/i,/^(?:EXCHANGE)/i,/^(?:EXPLAIN)/i,/^(?:EXPORT)/i,/^(?:FIELDS)/i,/^(?:FILE)/i,/^(?:FILEFORMAT)/i,/^(?:FIRST)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FUNCTION)/i,/^(?:FUNCTIONS)/i,/^(?:HOUR)/i,/^(?:IDXPROPERTIES)/i,/^(?:INDEX)/i,/^(?:INDEXES)/i,/^(?:INPATH)/i,/^(?:INPUTFORMAT)/i,/^(?:ITEMS)/i,/^(?:JAR)/i,/^(?:KEY)/i,/^(?:KEYS)/i,/^(?:LINES)/i,/^(?:LOAD)/i,/^(?:LOCATION)/i,/^(?:LOCK)/i,/^(?:LOCKS)/i,/^(?:MATCHED)/i,/^(?:MERGE)/i,/^(?:METADATA)/i,/^(?:MINUTE)/i,/^(?:MONTH)/i,/^(?:MSCK)/i,/^(?:NORELY)/i,/^(?:NOSCAN)/i,/^(?:NOVALIDATE)/i,/^(?:NO_DROP)/i,/^(?:OFFLINE)/i,/^(?:ORC)/i,/^(?:OUTPUTFORMAT)/i,/^(?:OVERWRITE)/i,/^(?:OVERWRITE\s+DIRECTORY)/i,/^(?:OWNER)/i,/^(?:PARQUET)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PERCENT)/i,/^(?:PRIVILEGES)/i,/^(?:PURGE)/i,/^(?:QUARTER)/i,/^(?:RCFILE)/i,/^(?:REBUILD)/i,/^(?:RELOAD)/i,/^(?:RELY)/i,/^(?:REPAIR)/i,/^(?:REPLICATION)/i,/^(?:RECOVER)/i,/^(?:RENAME)/i,/^(?:REPLACE)/i,/^(?:RESTRICT)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:SECOND)/i,/^(?:SCHEMA)/i,/^(?:SCHEMAS)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SETS)/i,/^(?:SHOW)/i,/^(?:SHOW_DATABASE)/i,/^(?:SKEWED)/i,/^(?:SKEWED LOCATION)/i,/^(?:SORT)/i,/^(?:SORTED)/i,/^(?:STATISTICS)/i,/^(?:STORED)/i,/^(?:STORED\s+AS\s+DIRECTORIES)/i,/^(?:STRING)/i,/^(?:STRUCT)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TEMPORARY)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:TINYINT)/i,/^(?:TOUCH)/i,/^(?:TRANSACTIONS)/i,/^(?:UNARCHIVE)/i,/^(?:UNIONTYPE)/i,/^(?:USE)/i,/^(?:VIEW)/i,/^(?:WAIT)/i,/^(?:WEEK)/i,/^(?:WINDOW)/i,/^(?:YEAR)/i,/^(?:\.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:ADD)/i,/^(?:AGGREGATE)/i,/^(?:AVRO)/i,/^(?:CACHED)/i,/^(?:CASCADE)/i,/^(?:CHANGE)/i,/^(?:CLOSE_FN)/i,/^(?:COLUMN)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMPUTE)/i,/^(?:CREATE)/i,/^(?:DATA)/i,/^(?:DATABASES)/i,/^(?:DELETE)/i,/^(?:DELIMITED)/i,/^(?:DESCRIBE)/i,/^(?:ESCAPED)/i,/^(?:EXPLAIN)/i,/^(?:EXTERNAL)/i,/^(?:EXTENDED)/i,/^(?:FIELDS)/i,/^(?:FILEFORMAT)/i,/^(?:FILES)/i,/^(?:FINALIZE_FN)/i,/^(?:FIRST)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FUNCTION)/i,/^(?:FUNCTIONS)/i,/^(?:GROUP)/i,/^(?:HASH)/i,/^(?:ILIKE)/i,/^(?:INCREMENTAL)/i,/^(?:INSERT)/i,/^(?:INTERVAL)/i,/^(?:INTERMEDIATE)/i,/^(?:INIT_FN)/i,/^(?:INVALIDATE)/i,/^(?:INPATH)/i,/^(?:IREGEXP)/i,/^(?:KEY)/i,/^(?:KUDU)/i,/^(?:LAST)/i,/^(?:LIKE\s+PARQUET)/i,/^(?:LIMIT)/i,/^(?:LINES)/i,/^(?:LOAD)/i,/^(?:LOCATION)/i,/^(?:MERGE_FN)/i,/^(?:METADATA)/i,/^(?:NULLS)/i,/^(?:OFFSET)/i,/^(?:ORC)/i,/^(?:OVERWRITE)/i,/^(?:PARQUET)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PREPARE_FN)/i,/^(?:PRIMARY)/i,/^(?:RCFILE)/i,/^(?:RANGE)/i,/^(?:REAL)/i,/^(?:REFRESH)/i,/^(?:RENAME)/i,/^(?:REPEATABLE)/i,/^(?:REPLACE)/i,/^(?:REPLICATION)/i,/^(?:RESTRICT)/i,/^(?:RETURNS)/i,/^(?:REVOKE)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SCHEMAS)/i,/^(?:SERIALIZE_FN)/i,/^(?:SERVER)/i,/^(?:SORT)/i,/^(?:STATS)/i,/^(?:STORED)/i,/^(?:STRAIGHT_JOIN)/i,/^(?:SYMBOL)/i,/^(?:TABLE)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:UNCACHED)/i,/^(?:UPDATE_FN)/i,/^(?:UPSERT)/i,/^(?:URI)/i,/^(?:USING)/i,/^(?:PARTITION\s+VALUE\s)/i,/^(?:ANALYTIC)/i,/^(?:ANTI)/i,/^(?:ARRAY)/i,/^(?:BLOCK_SIZE)/i,/^(?:COMPRESSION)/i,/^(?:CURRENT)/i,/^(?:DEFAULT)/i,/^(?:ENCODING)/i,/^(?:GRANT)/i,/^(?:MAP)/i,/^(?:RECOVER)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:STRUCT)/i,/^(?:UNKNOWN)/i,/^(?:\[BROADCAST\])/i,/^(?:\[NOSHUFFLE\])/i,/^(?:\[SHUFFLE\])/i,/^(?:\.\.\.)/i,/^(?:\.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:AND)/i,/^(?:LIFECYCLE)/i,/^(?:ALL)/i,/^(?:ALTER)/i,/^(?:AND)/i,/^(?:AS)/i,/^(?:ASC)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BOOLEAN)/i,/^(?:BY)/i,/^(?:CASE)/i,/^(?:CHAR)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CURRENT)/i,/^(?:DATABASE)/i,/^(?:DECIMAL)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DESC)/i,/^(?:DROP)/i,/^(?:ELSE)/i,/^(?:END)/i,/^(?:EXISTS)/i,/^(?:FALSE)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:GROUP)/i,/^(?:HAVING)/i,/^(?:IF)/i,/^(?:IN)/i,/^(?:INNER)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTO)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIMIT)/i,/^(?:NOT)/i,/^(?:NULL)/i,/^(?:ON)/i,/^(?:OPTION)/i,/^(?:OR)/i,/^(?:ORDER)/i,/^(?:OUTER)/i,/^(?:PARTITION)/i,/^(?:PRECEDING)/i,/^(?:PURGE)/i,/^(?:RANGE)/i,/^(?:REGEXP)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROW)/i,/^(?:ROWS)/i,/^(?:SCHEMA)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SET)/i,/^(?:SHOW)/i,/^(?:SMALLINT)/i,/^(?:STRING)/i,/^(?:TABLE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TINYINT)/i,/^(?:TO)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UNBOUNDED)/i,/^(?:UPDATE)/i,/^(?:USE)/i,/^(?:UNION)/i,/^(?:VIEW)/i,/^(?:VARCHAR)/i,/^(?:VALUES)/i,/^(?:WHEN)/i,/^(?:WHERE)/i,/^(?:WITH)/i,/^(?:OVER)/i,/^(?:ROLE)/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:COLLECT_SET\s*\()/i,/^(?:COLLECT_LIST\s*\()/i,/^(?:CORR\s*\()/i,/^(?:COVAR_POP\s*\()/i,/^(?:COVAR_SAMP\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:HISTOGRAM_NUMERIC\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENTILE\s*\()/i,/^(?:PERCENTILE_APPROX\s*\()/i,/^(?:APPX_MEDIAN\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:GROUP_CONCAT\s*\()/i,/^(?:NDV\s*\()/i,/^(?:STDDEV\s*\()/i,/^(?:VARIANCE_POP\s*\()/i,/^(?:VARIANCE_SAMP\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:SYSTEM\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['])/i,/^(?:[^'\u2020\u2021]+)/i,/^(?:['])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], -conditions: {"hdfs":{"rules":[427,428,429,430,431,432,476],"inclusive":false},"doubleQuotedValue":{"rules":[469,470,479],"inclusive":false},"singleQuotedValue":{"rules":[466,467,478],"inclusive":false},"backtickedValue":{"rules":[463,464,477],"inclusive":false},"between":{"rules":[0,1,2,3,4,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,410,411,412,413,414,415,416,417,423,424,425,426,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,465,468,471,472,473,480],"inclusive":true},"hive":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,410,411,412,413,414,415,416,417,418,419,423,424,425,426,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,465,468,471,472,474,480],"inclusive":true},"impala":{"rules":[0,1,2,3,4,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,420,421,422,423,424,425,426,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,465,468,471,472,475,480],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,410,411,412,413,414,415,416,417,423,424,425,426,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,465,468,471,472,480],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); - - -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = sqlAutocompleteParser; -exports.Parser = sqlAutocompleteParser.Parser; -exports.parse = function () { return sqlAutocompleteParser.parse.apply(sqlAutocompleteParser, arguments); }; -exports.main = function commonjsMain (args) { - if (!args[1]) { - console.log('Usage: '+args[0]+' FILE'); - process.exit(1); - } - var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); - return exports.parser.parse(source); -}; -if (typeof module !== 'undefined' && require.main === module) { - exports.main(process.argv.slice(1)); -} -} \ No newline at end of file diff --git a/src/core/sqlSyntaxParser.js b/src/core/sqlSyntaxParser.js deleted file mode 100644 index b7ace29..0000000 --- a/src/core/sqlSyntaxParser.js +++ /dev/null @@ -1,9197 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var SqlParseSupport = (function () { - - // endsWith polyfill from hue_utils.js, needed as workers live in their own js environment - if (!String.prototype.endsWith) { - String.prototype.endsWith = function (searchString, position) { - var subjectString = this.toString(); - if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { - position = subjectString.length; - } - position -= searchString.length; - var lastIndex = subjectString.lastIndexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; - } - - /** - * Calculates the Optimal String Alignment distance between two strings. Returns 0 when the strings are equal and the - * distance when not, distances is less than or equal to the length of the longest string. - * - * @param strA - * @param strB - * @param [ignoreCase] - * @returns {number} The similarity - */ - var stringDistance = function (strA, strB, ignoreCase) { - if (ignoreCase) { - strA = strA.toLowerCase(); - strB = strB.toLowerCase(); - } - - // TODO: Consider other algorithms for performance - var strALength = strA.length; - var strBLength = strB.length; - if (strALength === 0) { - return strBLength; - } - if (strBLength === 0) { - return strALength; - } - - var distances = new Array(strALength); - - var cost, deletion, insertion, substitution, transposition; - for (var i = 0; i <= strALength; i++) { - distances[i] = new Array(strBLength); - distances[i][0] = i; - for (var j = 1; j <= strBLength; j++) { - if (!i){ - distances[0][j] = j; - } else { - cost = strA[i-1] === strB[j-1] ? 0 : 1; - deletion = distances[i - 1][j] + 1; - insertion = distances[i][j - 1] + 1; - substitution = distances[i - 1][j - 1] + cost; - if (deletion <= insertion && deletion <= substitution) { - distances[i][j] = deletion; - } else if (insertion <= deletion && insertion <= substitution) { - distances[i][j] = insertion; - } else { - distances[i][j] = substitution; - } - - if (i > 1 && j > 1 && strA[i] === strB[j - 1] && strA[i - 1] === strB[j]) { - transposition = distances[i - 2][j - 2] + cost; - if (transposition < distances[i][j]) { - distances[i][j] = transposition; - } - } - } - } - } - - return distances[strALength][strBLength]; - }; - - var equalIgnoreCase = function (a, b) { - return a && b && a.toLowerCase() === b.toLowerCase(); - }; - - var initSqlParser = function (parser) { - - var SIMPLE_TABLE_REF_SUGGESTIONS = ['suggestJoinConditions', 'suggestAggregateFunctions', 'suggestFilters', 'suggestGroupBys', 'suggestOrderBys']; - - parser.prepareNewStatement = function () { - linkTablePrimaries(); - parser.commitLocations(); - - delete parser.yy.lateralViews; - delete parser.yy.latestCommonTableExpressions; - delete parser.yy.correlatedSubQuery; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - prioritizeSuggestions(); - }; - - parser.yy.parseError = function (message, error) { - parser.yy.errors.push(error); - return message; - }; - - parser.addCommonTableExpressions = function (identifiers) { - parser.yy.result.commonTableExpressions = identifiers; - parser.yy.latestCommonTableExpressions = identifiers; - }; - - parser.isInSubquery = function () { - return !!parser.yy.primariesStack.length - }; - - parser.pushQueryState = function () { - parser.yy.resultStack.push(parser.yy.result); - parser.yy.locationsStack.push(parser.yy.locations); - parser.yy.lateralViewsStack.push(parser.yy.lateralViews); - parser.yy.selectListAliasesStack.push(parser.yy.selectListAliases); - parser.yy.primariesStack.push(parser.yy.latestTablePrimaries); - parser.yy.subQueriesStack.push(parser.yy.subQueries); - - parser.yy.result = {}; - parser.yy.locations = []; - parser.yy.selectListAliases = []; // Not allowed in correlated sub-queries - parser.yy.lateralViews = []; // Not allowed in correlated sub-queries - - if (parser.yy.correlatedSubQuery) { - parser.yy.latestTablePrimaries = parser.yy.latestTablePrimaries.concat(); - parser.yy.subQueries = parser.yy.subQueries.concat(); - } else { - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - } - }; - - parser.popQueryState = function (subQuery) { - linkTablePrimaries(); - parser.commitLocations(); - - if (Object.keys(parser.yy.result).length === 0) { - parser.yy.result = parser.yy.resultStack.pop(); - } else { - parser.yy.resultStack.pop(); - } - var oldSubQueries = parser.yy.subQueries; - parser.yy.subQueries = parser.yy.subQueriesStack.pop(); - if (subQuery) { - if (oldSubQueries.length > 0) { - subQuery.subQueries = oldSubQueries; - } - parser.yy.subQueries.push(subQuery); - } - - parser.yy.lateralViews = parser.yy.lateralViewsStack.pop(); - parser.yy.latestTablePrimaries = parser.yy.primariesStack.pop(); - parser.yy.locations = parser.yy.locationsStack.pop(); - parser.yy.selectListAliases = parser.yy.selectListAliasesStack.pop(); - }; - - parser.suggestSelectListAliases = function () { - if (parser.yy.selectListAliases && parser.yy.selectListAliases.length > 0 && parser.yy.result.suggestColumns - && (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || parser.yy.result.suggestColumns.identifierChain.length === 0)) { - parser.yy.result.suggestColumnAliases = parser.yy.selectListAliases; - } - }; - - parser.isHive = function () { - return parser.yy.activeDialect === 'hive'; - }; - - parser.isImpala = function () { - return parser.yy.activeDialect === 'impala'; - }; - - parser.mergeSuggestKeywords = function () { - var result = []; - Array.prototype.slice.call(arguments).forEach(function (suggestion) { - if (typeof suggestion !== 'undefined' && typeof suggestion.suggestKeywords !== 'undefined') { - result = result.concat(suggestion.suggestKeywords); - } - }); - if (result.length > 0) { - return {suggestKeywords: result}; - } - return {}; - }; - - parser.suggestValueExpressionKeywords = function (valueExpression, extras) { - var expressionKeywords = parser.getValueExpressionKeywords(valueExpression, extras); - parser.suggestKeywords(expressionKeywords.suggestKeywords); - if (expressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(expressionKeywords.suggestColRefKeywords); - } - if (valueExpression.lastType) { - parser.addColRefIfExists(valueExpression.lastType); - } else { - parser.addColRefIfExists(valueExpression); - } - }; - - parser.getSelectListKeywords = function (excludeAsterisk) { - var keywords = [{ value: 'CASE', weight: 450 }, 'FALSE', 'TRUE', 'NULL']; - if (!excludeAsterisk) { - keywords.push({ value: '*', weight: 10000 }); - } - if (parser.isHive()) { - keywords = keywords.concat(['EXISTS', 'NOT']); - } - return keywords; - }; - - parser.getValueExpressionKeywords = function (valueExpression, extras) { - var types = valueExpression.lastType ? valueExpression.lastType.types : valueExpression.types; - // We could have valueExpression.columnReference to suggest based on column type - var keywords = ['<', '<=', '<=>', '<>', '=', '>', '>=', 'BETWEEN', 'IN', 'IS NOT NULL', 'IS NULL', 'IS NOT TRUE', 'IS TRUE', 'IS NOT FALSE', 'IS FALSE', 'NOT BETWEEN', 'NOT IN']; - if (parser.isImpala()) { - keywords = keywords.concat(['IS DISTINCT FROM', 'IS NOT DISTINCT FROM', 'IS NOT UNKNOWN', 'IS UNKNOWN']); - } - if (extras) { - keywords = keywords.concat(extras); - } - if (valueExpression.suggestKeywords) { - keywords = keywords.concat(valueExpression.suggestKeywords); - } - if (types.length === 1 && types[0] === 'COLREF') { - return { - suggestKeywords: keywords, - suggestColRefKeywords: { - BOOLEAN: ['AND', 'OR'], - NUMBER: ['+', '-', '*', '/', '%', 'DIV'], - STRING: parser.isImpala() ? ['ILIKE', 'IREGEXP', 'LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] : ['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] - } - } - } - if (typeof SqlFunctions === 'undefined' || SqlFunctions.matchesType(parser.yy.activeDialect, ['BOOLEAN'], types)) { - keywords = keywords.concat(['AND', 'OR']); - } - if (typeof SqlFunctions === 'undefined' || SqlFunctions.matchesType(parser.yy.activeDialect, ['NUMBER'], types)) { - keywords = keywords.concat(['+', '-', '*', '/', '%', 'DIV']); - } - if (typeof SqlFunctions === 'undefined' || SqlFunctions.matchesType(parser.yy.activeDialect, ['STRING'], types)) { - keywords = keywords.concat(parser.isImpala() ? ['ILIKE', 'IREGEXP', 'LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] : ['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE']); - } - return { suggestKeywords: keywords }; - }; - - parser.getTypeKeywords = function () { - if (parser.isHive()) { - return ['BIGINT', 'BINARY', 'BOOLEAN', 'CHAR', 'DATE', 'DECIMAL', 'DOUBLE', 'DOUBLE PRECISION', 'FLOAT', 'INT', 'SMALLINT', 'TIMESTAMP', 'STRING', 'TINYINT', 'VARCHAR']; - } - if (parser.isImpala()) { - return ['BIGINT', 'BOOLEAN', 'CHAR', 'DECIMAL', 'DOUBLE', 'FLOAT', 'INT', 'REAL', 'SMALLINT', 'TIMESTAMP', 'STRING', 'TINYINT', 'VARCHAR']; - } - return ['BIGINT', 'BOOLEAN', 'CHAR', 'DECIMAL', 'DOUBLE', 'FLOAT', 'INT', 'SMALLINT', 'TIMESTAMP', 'STRING', 'TINYINT', 'VARCHAR']; - }; - - parser.getColumnDataTypeKeywords = function () { - if (parser.isHive()) { - return parser.getTypeKeywords().concat(['ARRAY<>', 'MAP<>', 'STRUCT<>', 'UNIONTYPE<>']); - } - if (parser.isImpala()) { - return parser.getTypeKeywords().concat(['ARRAY<>', 'MAP<>', 'STRUCT<>']); - } - return parser.getTypeKeywords(); - }; - - parser.addColRefIfExists = function (valueExpression) { - if (valueExpression.columnReference) { - parser.yy.result.colRef = {identifierChain: valueExpression.columnReference}; - } - }; - - parser.selectListNoTableSuggest = function (selectListEdit, hasDistinctOrAll) { - if (selectListEdit.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!hasDistinctOrAll) { - keywords = keywords.concat([{ value: 'ALL', weight: 2 }, { value: 'DISTINCT', weight: 2 }]); - } - if (parser.isImpala()) { - keywords.push('STRAIGHT_JOIN'); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForKeywords(selectListEdit); - } - if (selectListEdit.suggestFunctions) { - parser.suggestFunctions(); - } - if (selectListEdit.suggestColumns) { - parser.suggestColumns(); - } - if (selectListEdit.suggestAggregateFunctions && (!hasDistinctOrAll || hasDistinctOrAll === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - }; - - parser.suggestJoinConditions = function (details) { - parser.yy.result.suggestJoinConditions = details || {}; - if (parser.yy.latestTablePrimaries && !parser.yy.result.suggestJoinConditions.tablePrimaries) { - parser.yy.result.suggestJoinConditions.tablePrimaries = parser.yy.latestTablePrimaries.concat(); - } - }; - - parser.suggestJoins = function (details) { - parser.yy.result.suggestJoins = details || {}; - }; - - parser.valueExpressionSuggest = function (oppositeValueExpression, operator) { - if (oppositeValueExpression && oppositeValueExpression.columnReference) { - parser.suggestValues(); - parser.yy.result.colRef = {identifierChain: oppositeValueExpression.columnReference}; - } - parser.suggestColumns(); - parser.suggestFunctions(); - var keywords = [{ value: 'CASE', weight: 450 }, { value: 'FALSE', weight: 450 }, { value: 'NULL', weight: 450 }, { value: 'TRUE', weight: 450 }]; - if (parser.isHive() || typeof oppositeValueExpression === 'undefined' || typeof operator === 'undefined') { - keywords = keywords.concat(['EXISTS', 'NOT']); - } - if (oppositeValueExpression && oppositeValueExpression.types[0] === 'NUMBER') { - parser.applyTypeToSuggestions(['NUMBER']); - } else if (parser.isImpala() && (typeof operator === 'undefined' || operator === '-' || operator === '+')) { - keywords.push('INTERVAL'); - } - parser.suggestKeywords(keywords); - }; - - parser.applyTypeToSuggestions = function (types) { - if (types[0] === 'BOOLEAN') { - return; - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.yy.result.suggestFunctions.types = types; - } - if (parser.yy.result.suggestColumns && !parser.yy.result.suggestColumns.types) { - parser.yy.result.suggestColumns.types = types; - } - }; - - parser.findCaseType = function (whenThenList) { - var types = {}; - whenThenList.caseTypes.forEach(function (valueExpression) { - valueExpression.types.forEach(function (type) { - types[type] = true; - }); - }); - if (Object.keys(types).length === 1) { - return {types: [Object.keys(types)[0]]}; - } - return {types: ['T']}; - }; - - parser.findReturnTypes = function (functionName) { - return typeof SqlFunctions === 'undefined' ? ['T'] : SqlFunctions.getReturnTypes(parser.yy.activeDialect, functionName.toLowerCase()); - }; - - parser.applyArgumentTypesToSuggestions = function (functionName, position) { - var foundArguments = typeof SqlFunctions === 'undefined' ? ['T'] : SqlFunctions.getArgumentTypes(parser.yy.activeDialect, functionName.toLowerCase(), position); - if (foundArguments.length == 0 && parser.yy.result.suggestColumns) { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.suggestKeyValues; - delete parser.yy.result.suggestValues; - delete parser.yy.result.suggestFunctions; - delete parser.yy.result.suggestIdentifiers; - delete parser.yy.result.suggestKeywords; - } else { - parser.applyTypeToSuggestions(foundArguments); - } - }; - - var getCleanImpalaPrimaries = function (primaries) { - var cleanPrimaries = []; - for (var i = primaries.length - 1; i >= 0; i--) { - var cleanPrimary = primaries[i]; - if (cleanPrimary.identifierChain && cleanPrimary.identifierChain.length > 0) { - for (var j = i - 1; j >=0; j--) { - var parentPrimary = primaries[j]; - if (parentPrimary.alias && cleanPrimary.identifierChain[0].name === parentPrimary.alias) { - var restOfChain = cleanPrimary.identifierChain.concat(); - restOfChain.shift(); - if (cleanPrimary.alias) { - cleanPrimary = { identifierChain: parentPrimary.identifierChain.concat(restOfChain), alias: cleanPrimary.alias, impalaComplex: true }; - } else { - cleanPrimary = { identifierChain: parentPrimary.identifierChain.concat(restOfChain), impalaComplex: true }; - } - } - } - } - cleanPrimaries.push(cleanPrimary); - } - return cleanPrimaries; - }; - - parser.commitLocations = function () { - if (parser.yy.locations.length === 0) { - return; - } - - var tablePrimaries = parser.yy.latestTablePrimaries; - - if (parser.isImpala()) { - tablePrimaries = []; - getCleanImpalaPrimaries(parser.yy.latestTablePrimaries).forEach(function (primary) { - var cleanPrimary = primary; - if (primary.identifierChain && primary.identifierChain.length > 0) { - for (var j = parser.yy.primariesStack.length - 1; j >= 0; j--) { - getCleanImpalaPrimaries(parser.yy.primariesStack[j]).every(function (parentPrimary) { - if (parentPrimary.alias && parentPrimary.alias === primary.identifierChain[0].name) { - var identifierChain = primary.identifierChain.concat(); - identifierChain.shift(); - cleanPrimary = { identifierChain: parentPrimary.identifierChain.concat(identifierChain) }; - if (primary.alias) { - cleanPrimary.alias = primary.alias; - } - return false; - } - return true; - }); - } - } - tablePrimaries.unshift(cleanPrimary); - }); - } - var i = parser.yy.locations.length; - - while (i--) { - var location = parser.yy.locations[i]; - if (location.type === 'variable' && location.colRef) { - parser.expandIdentifierChain({ wrapper: location.colRef, tablePrimaries: tablePrimaries, isColumnWrapper: true }); - delete location.colRef.linked; - } - - // Impala can have references to previous tables after FROM, i.e. FROM testTable t, t.testArray - // In this testArray would be marked a type table so we need to switch it to column. - if (location.type === 'table' && typeof location.identifierChain !== 'undefined' && location.identifierChain.length > 1 && tablePrimaries) { - var allPrimaries = tablePrimaries; - parser.yy.primariesStack.forEach(function (parentPrimaries) { - allPrimaries = getCleanImpalaPrimaries(parentPrimaries).concat(allPrimaries); - }); - var found = allPrimaries.filter(function (primary) { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name); - }); - if (found.length > 0) { - location.type = 'column'; - } - } - - if (location.type === 'database' && typeof location.identifierChain !== 'undefined' && location.identifierChain.length > 0 && tablePrimaries) { - var allPrimaries = tablePrimaries; - parser.yy.primariesStack.forEach(function (parentPrimaries) { - allPrimaries = getCleanImpalaPrimaries(parentPrimaries).concat(allPrimaries); - }); - var foundAlias = allPrimaries.filter(function (primary) { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name); - }); - if (foundAlias.length > 0 && parser.isImpala()) { - // Impala complex reference in FROM clause, i.e. FROM testTable t, t.testMap tm - location.type = 'table'; - parser.expandIdentifierChain({ tablePrimaries: allPrimaries, wrapper: location, anyOwner: true }); - location.type = location.identifierChain.length === 1 ? 'table' : 'complex'; - continue; - } - } - - if (location.type === 'unknown') { - if (typeof location.identifierChain !== 'undefined' && location.identifierChain.length > 0 && location.identifierChain.length <= 2 && tablePrimaries) { - var found = tablePrimaries.filter(function (primary) { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name) || (primary.identifierChain && equalIgnoreCase(primary.identifierChain[0].name, location.identifierChain[0].name)); - }); - if (!found.length && location.firstInChain) { - found = tablePrimaries.filter(function (primary) { - return !primary.alias && primary.identifierChain && equalIgnoreCase(primary.identifierChain[primary.identifierChain.length - 1].name, location.identifierChain[0].name); - }); - } - - if (found.length) { - if (found[0].identifierChain.length > 1 && location.identifierChain.length === 1 && equalIgnoreCase(found[0].identifierChain[0].name, location.identifierChain[0].name)) { - location.type = 'database'; - } else if (found[0].alias && equalIgnoreCase(location.identifierChain[0].name, found[0].alias) && location.identifierChain.length > 1) { - location.type = 'column'; - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true }); - } else if (!found[0].alias && found[0].identifierChain && equalIgnoreCase(location.identifierChain[0].name, found[0].identifierChain[found[0].identifierChain.length - 1].name) && location.identifierChain.length > 1) { - location.type = 'column'; - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true }); - } else { - location.type = found[0].impalaComplex ? 'column' : 'table'; - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true }); - } - } else { - if (parser.yy.subQueries) { - found = parser.yy.subQueries.filter(function (subQuery) { - return equalIgnoreCase(subQuery.alias, location.identifierChain[0].name); - }); - if (found.length > 0) { - location.type = 'subQuery'; - location.identifierChain = [{subQuery: found[0].alias}]; - } - } - } - } - } - - if (location.type === 'asterisk' && !location.linked) { - - if (tablePrimaries && tablePrimaries.length > 0) { - location.tables = []; - location.linked = false; - if (!location.identifierChain) { - location.identifierChain = [{ asterisk: true }]; - } - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: false }); - if (location.tables.length === 0) { - parser.yy.locations.splice(i, 1); - } - } else { - parser.yy.locations.splice(i, 1); - } - } - - if (location.type === 'table' && typeof location.identifierChain !== 'undefined' && location.identifierChain.length === 1 && location.identifierChain[0].name) { - // Could be a cte reference - parser.yy.locations.some(function (otherLocation) { - if (otherLocation.type === 'alias' && otherLocation.source === 'cte' && SqlUtils.identifierEquals(otherLocation.alias, location.identifierChain[0].name)) { - // TODO: Possibly add the other location if we want to show the link in the future. - // i.e. highlight select definition on hover over alias, also for subquery references. - location.type = 'alias'; - location.target = 'cte'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - return true; - } - }); - } - - if (location.type === 'table' && (typeof location.identifierChain === 'undefined' || location.identifierChain.length === 0)) { - parser.yy.locations.splice(i, 1); - } - - if (location.type === 'unknown') { - location.type = 'column'; - } - - // A column location might refer to a previously defined alias, i.e. last 'foo' in "SELECT cast(id AS int) foo FROM tbl ORDER BY foo;" - if (location.type === 'column') { - for (var j = i - 1; j >= 0; j--) { - var otherLocation = parser.yy.locations[j]; - if (otherLocation.type === 'alias' && otherLocation.source === 'column' && location.identifierChain && location.identifierChain.length === 1 && location.identifierChain[0].name && otherLocation.alias && location.identifierChain[0].name.toLowerCase() === otherLocation.alias.toLowerCase()) { - location.type = 'alias'; - location.source = 'column'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - location.parentLocation = otherLocation.parentLocation; - break; - } - } - } - - if (location.type === 'column') { - if (parser.isHive() && !location.linked) { - location.identifierChain = parser.expandLateralViews(parser.yy.lateralViews, location.identifierChain); - } - - var initialIdentifierChain = location.identifierChain ? location.identifierChain.concat() : undefined; - - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true, isColumnWrapper: true, isColumnLocation: true }); - - if (typeof location.identifierChain === 'undefined') { - parser.yy.locations.splice(i, 1); - } else if (location.identifierChain.length === 0 && initialIdentifierChain && initialIdentifierChain.length === 1) { - // This is for the case "SELECT tblOrColName FROM db.tblOrColName"; - location.identifierChain = initialIdentifierChain; - } - } - if (location.type === 'column' && location.identifierChain) { - if (location.identifierChain.length > 1 && location.tables && location.tables.length > 0) { - location.type = 'complex'; - } - } - delete location.firstInChain; - if (location.type !== 'column' && location.type !== 'complex') { - delete location.qualified; - } else if (typeof location.qualified === 'undefined') { - location.qualified = false; - } - } - - if (parser.yy.locations.length > 0) { - parser.yy.allLocations = parser.yy.allLocations.concat(parser.yy.locations); - parser.yy.locations = []; - } - }; - - var prioritizeSuggestions = function () { - parser.yy.result.lowerCase = parser.yy.lowerCase || false; - - var cteIndex = {}; - - if (typeof parser.yy.latestCommonTableExpressions !== 'undefined') { - parser.yy.latestCommonTableExpressions.forEach(function (cte) { - cteIndex[cte.alias.toLowerCase()] = cte; - }) - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) { - if (suggestionType !== 'suggestAggregateFunctions' && typeof parser.yy.result[suggestionType] !== 'undefined' && parser.yy.result[suggestionType].tables.length === 0) { - delete parser.yy.result[suggestionType]; - } else if (typeof parser.yy.result[suggestionType] !== 'undefined' && typeof parser.yy.result[suggestionType].tables !== 'undefined') { - for (var i = parser.yy.result[suggestionType].tables.length - 1; i >= 0; i--) { - var table = parser.yy.result[suggestionType].tables[i]; - if (table.identifierChain.length === 1 && typeof table.identifierChain[0].name !== 'undefined' && typeof cteIndex[table.identifierChain[0].name.toLowerCase()] !== 'undefined') { - parser.yy.result[suggestionType].tables.splice(i, 1); - } - } - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - if (!parser.yy.result.colRef.linked || typeof parser.yy.result.colRef.identifierChain === 'undefined' || parser.yy.result.colRef.identifierChain.length === 0) { - delete parser.yy.result.colRef; - if (typeof parser.yy.result.suggestColRefKeywords !== 'undefined') { - Object.keys(parser.yy.result.suggestColRefKeywords).forEach(function (type) { - parser.yy.result.suggestKeywords = parser.yy.result.suggestKeywords.concat(parser.createWeightedKeywords(parser.yy.result.suggestColRefKeywords[type], -1)); - }); - delete parser.yy.result.suggestColRefKeywords; - } - if (parser.yy.result.suggestColumns && parser.yy.result.suggestColumns.types.length === 1 && parser.yy.result.suggestColumns.types[0] === 'COLREF') { - parser.yy.result.suggestColumns.types = ['T']; - } - delete parser.yy.result.suggestValues; - } - } - - if (typeof parser.yy.result.colRef !== 'undefined') { - if (!parser.yy.result.suggestValues && !parser.yy.result.suggestColRefKeywords && - (!parser.yy.result.suggestColumns || - parser.yy.result.suggestColumns.types[0] !== 'COLREF')) { - delete parser.yy.result.colRef; - } - } - if (typeof parser.yy.result.suggestIdentifiers !== 'undefined' && parser.yy.result.suggestIdentifiers.length > 0) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - var suggestColumns = parser.yy.result.suggestColumns; - if (typeof suggestColumns.tables === 'undefined' || suggestColumns.tables.length === 0) { - // Impala supports statements like SELECT * FROM tbl1, tbl2 WHERE db.tbl1.col = tbl2.bla - if (parser.yy.result.suggestColumns.linked && parser.isImpala() && typeof suggestColumns.identifierChain !== 'undefined' && suggestColumns.identifierChain.length > 0) { - if (suggestColumns.identifierChain.length === 1) { - parser.yy.result.suggestTables = suggestColumns; - delete parser.yy.result.suggestColumns - } else { - suggestColumns.tables = [{identifierChain: suggestColumns.identifierChain}]; - delete suggestColumns.identifierChain; - } - } else { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.subQueries; - } - } else { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - - suggestColumns.tables.forEach(function (table) { - if (typeof table.identifierChain !== 'undefined' && table.identifierChain.length === 1 && typeof table.identifierChain[0].name !== 'undefined') { - var cte = cteIndex[table.identifierChain[0].name.toLowerCase()]; - if (typeof cte !== 'undefined') { - delete table.identifierChain[0].name; - table.identifierChain[0].cte = cte.alias; - } - } else if (typeof table.identifierChain === 'undefined' && table.subQuery) { - table.identifierChain = [{ subQuery: table.subQuery }]; - delete table.subQuery; - } - }); - - if (typeof suggestColumns.identifierChain !== 'undefined' && suggestColumns.identifierChain.length === 0) { - delete suggestColumns.identifierChain; - } - } - } else { - delete parser.yy.result.subQueries; - } - - if (typeof parser.yy.result.suggestJoinConditions !== 'undefined') { - if (typeof parser.yy.result.suggestJoinConditions.tables === 'undefined' || parser.yy.result.suggestJoinConditions.tables.length === 0) { - delete parser.yy.result.suggestJoinConditions; - } - } - - if (typeof parser.yy.result.suggestTables !== 'undefined' && typeof parser.yy.latestCommonTableExpressions !== 'undefined') { - var ctes = []; - parser.yy.latestCommonTableExpressions.forEach(function (cte) { - var suggestion = {name: cte.alias}; - if (parser.yy.result.suggestTables.prependFrom) { - suggestion.prependFrom = true - } - if (parser.yy.result.suggestTables.prependQuestionMark) { - suggestion.prependQuestionMark = true; - } - ctes.push(suggestion); - }); - if (ctes.length > 0) { - parser.yy.result.suggestCommonTableExpressions = ctes; - } - } - }; - - /** - * Impala supports referencing maps and arrays in the the table reference list i.e. - * - * SELECT m['foo'].bar.| FROM someDb.someTable t, t.someMap m; - * - * From this the tablePrimaries would look like: - * - * [ { alias: 't', identifierChain: [ { name: 'someDb' }, { name: 'someTable' } ] }, - * { alias: 'm', identifierChain: [ { name: 't' }, { name: 'someMap' } ] } ] - * - * with an identifierChain from the select list: - * - * [ { name: 'm', keySet: true }, { name: 'bar' } ] - * - * Calling this would return an expanded identifierChain, given the above it would be: - * - * [ { name: 't' }, { name: 'someMap', keySet: true }, { name: 'bar' } ] - */ - parser.expandImpalaIdentifierChain = function (tablePrimaries, identifierChain) { - var expandedChain = identifierChain.concat(); // Clone in case it's called multiple times. - if (typeof expandedChain === 'undefined' || expandedChain.length === 0) { - return identifierChain; - } - var expand = function (identifier, expandedChain) { - var foundPrimary = tablePrimaries.filter(function (tablePrimary) { - var primaryIdentifier = tablePrimary.alias; - if (!primaryIdentifier && tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { - primaryIdentifier = tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1].name; - } - return equalIgnoreCase(primaryIdentifier, identifier); - }); - - if (foundPrimary.length === 1 && foundPrimary[0].identifierChain) { - var parentPrimary = tablePrimaries.filter(function (tablePrimary) { - return equalIgnoreCase(tablePrimary.alias, foundPrimary[0].identifierChain[0].name); - }); - if (parentPrimary.length === 1) { - var keySet = expandedChain[0].keySet; - var secondPart = expandedChain.slice(1); - var firstPart = []; - // Clone to make sure we don't add keySet to the primaries - foundPrimary[0].identifierChain.forEach(function (identifier) { - firstPart.push({name: identifier.name}); - }); - if (keySet && firstPart.length > 0) { - firstPart[firstPart.length - 1].keySet = true; - } - - if (firstPart.length === 0 || typeof secondPart === 'undefined' || secondPart.length === 0) { - return firstPart; - } - var result = firstPart.concat(secondPart); - if (result.length > 0) { - return expand(firstPart[0].name, result); - } else { - return result; - } - } - } - return expandedChain; - }; - return expand(expandedChain[0].name, expandedChain); - }; - - parser.identifyPartials = function (beforeCursor, afterCursor) { - var beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - var afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return {left: beforeMatch ? beforeMatch[0].length : 0, right: afterMatch ? afterMatch[0].length : 0}; - }; - - parser.expandLateralViews = function (lateralViews, originalIdentifierChain, columnSuggestion) { - var identifierChain = originalIdentifierChain.concat(); // Clone in case it's re-used - var firstIdentifier = identifierChain[0]; - if (typeof lateralViews !== 'undefined') { - lateralViews.concat().reverse().forEach(function (lateralView) { - if (!lateralView.udtf.expression.columnReference) { - return; - } - if (equalIgnoreCase(firstIdentifier.name, lateralView.tableAlias) && identifierChain.length > 1) { - identifierChain.shift(); - firstIdentifier = identifierChain[0]; - if (columnSuggestion) { - delete parser.yy.result.suggestKeywords; - } - } else if (equalIgnoreCase(firstIdentifier.name, lateralView.tableAlias) && identifierChain.length === 1 && typeof parser.yy.result.suggestColumns !== 'undefined') { - if (columnSuggestion) { - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = []; - } - lateralView.columnAliases.forEach(function (columnAlias) { - parser.yy.result.suggestIdentifiers.push({name: columnAlias, type: 'alias'}); - }); - delete parser.yy.result.suggestColumns; - delete parser.yy.result.suggestKeywords; - } - return identifierChain; - } - if (lateralView.columnAliases.indexOf(firstIdentifier.name) !== -1) { - if (lateralView.columnAliases.length === 2 && lateralView.udtf.function.toLowerCase() === 'explode' && equalIgnoreCase(firstIdentifier.name, lateralView.columnAliases[0])) { - identifierChain[0] = {name: 'key'}; - } else if (lateralView.columnAliases.length === 2 && lateralView.udtf.function.toLowerCase() === 'explode' && equalIgnoreCase(firstIdentifier.name, lateralView.columnAliases[1])) { - identifierChain[0] = {name: 'value'}; - } else { - identifierChain[0] = {name: 'item'}; - } - identifierChain = lateralView.udtf.expression.columnReference.concat(identifierChain); - firstIdentifier = identifierChain[0]; - } - }); - } - return identifierChain; - }; - - var addCleanTablePrimary = function (tables, tablePrimary) { - if (tablePrimary.alias) { - tables.push({alias: tablePrimary.alias, identifierChain: tablePrimary.identifierChain}); - } else { - tables.push({identifierChain: tablePrimary.identifierChain}); - } - }; - - parser.expandIdentifierChain = function (options) { - var wrapper = options.wrapper; - var anyOwner = options.anyOwner; - var isColumnWrapper = options.isColumnWrapper; - var isColumnLocation = options.isColumnLocation; - var tablePrimaries = options.tablePrimaries || parser.yy.latestTablePrimaries; - - if (typeof wrapper.identifierChain === 'undefined' || typeof tablePrimaries === 'undefined') { - return; - } - var identifierChain = wrapper.identifierChain.concat(); - - if (tablePrimaries.length === 0) { - delete wrapper.identifierChain; - return; - } - - if (!anyOwner) { - tablePrimaries = filterTablePrimariesForOwner(tablePrimaries, wrapper.owner); - } - - if (identifierChain.length > 0 && identifierChain[identifierChain.length - 1].asterisk) { - var tables = []; - tablePrimaries.forEach(function (tablePrimary) { - if (identifierChain.length > 1 && !tablePrimary.subQueryAlias) { - if (identifierChain.length === 2 && equalIgnoreCase(tablePrimary.alias, identifierChain[0].name)) { - addCleanTablePrimary(tables, tablePrimary); - } else if (identifierChain.length === 2 && equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name)) { - addCleanTablePrimary(tables, tablePrimary); - } else if (identifierChain.length === 3 && tablePrimary.identifierChain.length > 1 && - equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimary.identifierChain[1].name, identifierChain[1].name)) { - addCleanTablePrimary(tables, tablePrimary); - } - } else { - if (tablePrimary.subQueryAlias) { - tables.push({identifierChain: [{subQuery: tablePrimary.subQueryAlias}]}); - } else { - addCleanTablePrimary(tables, tablePrimary); - } - } - }); - // Possible Joins - if (tables.length > 0) { - wrapper.tables = tables; - delete wrapper.identifierChain; - return; - } - } - - // Impala can have references to maps or array, i.e. FROM table t, t.map m - // We need to replace those in the identifierChain - if (parser.isImpala()) { - var lengthBefore = identifierChain.length; - identifierChain = parser.expandImpalaIdentifierChain(tablePrimaries, identifierChain); - // Change type of any locations marked as table - if (wrapper.type === 'table' && identifierChain.length > lengthBefore) { - wrapper.type = 'column'; - } - wrapper.identifierChain = identifierChain; - } - // Expand exploded views in the identifier chain - if (parser.isHive() && identifierChain.length > 0) { - identifierChain = parser.expandLateralViews(parser.yy.lateralViews, identifierChain); - wrapper.identifierChain = identifierChain; - } - - // IdentifierChain contains a possibly started identifier or empty, example: a.b.c = ['a', 'b', 'c'] - // Reduce the tablePrimaries to the one that matches the first identifier if found - var foundPrimary; - var doubleMatch = false; - var aliasMatch = false; - if (identifierChain.length > 0) { - for (var i = 0; i < tablePrimaries.length; i++) { - if (tablePrimaries[i].subQueryAlias) { - if (equalIgnoreCase(tablePrimaries[i].subQueryAlias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - } - } else if (equalIgnoreCase(tablePrimaries[i].alias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - aliasMatch = true; - break; - } else if (tablePrimaries[i].identifierChain.length > 1 && identifierChain.length > 1 && - equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimaries[i].identifierChain[1].name, identifierChain[1].name)) { - foundPrimary = tablePrimaries[i]; - doubleMatch = true; - break; - } else if (!foundPrimary && equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && identifierChain.length > (isColumnLocation ? 1 : 0)) { - foundPrimary = tablePrimaries[i]; - // No break as first two can still match. - } else if (!foundPrimary && tablePrimaries[i].identifierChain.length > 1 && !tablePrimaries[i].alias - && equalIgnoreCase(tablePrimaries[i].identifierChain[tablePrimaries[i].identifierChain.length - 1].name, identifierChain[0].name)) { - // This is for the case SELECT baa. FROM bla.baa, blo.boo; - foundPrimary = tablePrimaries[i]; - break; - } - } - } - - if (foundPrimary) { - if (foundPrimary.impalaComplex && wrapper.type === 'column') { - wrapper.type = 'complex'; - } - identifierChain.shift(); - if (doubleMatch) { - identifierChain.shift(); - } - } else if (tablePrimaries.length === 1 && !isColumnWrapper) { - foundPrimary = tablePrimaries[0]; - } - - if (foundPrimary) { - if (isColumnWrapper) { - wrapper.identifierChain = identifierChain; - if (foundPrimary.subQueryAlias) { - wrapper.tables = [{ subQuery: foundPrimary.subQueryAlias }]; - } else if (foundPrimary.alias) { - if (!isColumnLocation && isColumnWrapper && aliasMatch) { - // TODO: add alias on table in suggestColumns (needs support in sqlAutocomplete3.js) - // the case is: SELECT cu.| FROM customers cu; - // This prevents alias from being added automatically in sqlAutocompleter3.js - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } else { - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain, alias: foundPrimary.alias }]; - } - } else { - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } - } else { - if (foundPrimary.subQueryAlias) { - identifierChain.unshift({ subQuery: foundPrimary.subQueryAlias }); - } else { - identifierChain = foundPrimary.identifierChain.concat(identifierChain); - } - if (wrapper.tables) { - wrapper.tables.push({identifierChain: identifierChain}); - delete wrapper.identifierChain; - } else { - wrapper.identifierChain = identifierChain; - } - } - } else { - if (isColumnWrapper) { - wrapper.tables = []; - } - tablePrimaries.forEach(function (tablePrimary) { - var targetTable = tablePrimary.subQueryAlias ? { subQuery: tablePrimary.subQueryAlias } : { identifierChain: tablePrimary.identifierChain } ; - if (tablePrimary.alias) { - targetTable.alias = tablePrimary.alias; - } - if (wrapper.tables) { - wrapper.tables.push(targetTable) - } - }); - } - delete wrapper.owner; - wrapper.linked = true; - }; - - var suggestLateralViewAliasesAsIdentifiers = function () { - if (typeof parser.yy.lateralViews === 'undefined' || parser.yy.lateralViews.length === 0) { - return; - } - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = []; - } - parser.yy.lateralViews.forEach(function (lateralView) { - if (typeof lateralView.tableAlias !== 'undefined') { - parser.yy.result.suggestIdentifiers.push({name: lateralView.tableAlias + '.', type: 'alias'}); - } - lateralView.columnAliases.forEach(function (columnAlias) { - parser.yy.result.suggestIdentifiers.push({name: columnAlias, type: 'alias'}); - }); - }); - if (parser.yy.result.suggestIdentifiers.length === 0) { - delete parser.yy.result.suggestIdentifiers; - } - }; - - var filterTablePrimariesForOwner = function (tablePrimaries, owner) { - var result = []; - tablePrimaries.forEach(function (primary) { - if (typeof owner === 'undefined' && typeof primary.owner === 'undefined') { - result.push(primary); - } else if (owner === primary.owner) { - result.push(primary); - } - }); - return result; - }; - - var convertTablePrimariesToSuggestions = function (tablePrimaries) { - var tables = []; - var identifiers = []; - tablePrimaries.forEach(function (tablePrimary) { - if (tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { - var table = {identifierChain: tablePrimary.identifierChain}; - if (tablePrimary.alias) { - table.alias = tablePrimary.alias; - identifiers.push({name: table.alias + '.', type: 'alias'}); - if (parser.isImpala()) { - var testForImpalaAlias = [{name: table.alias}]; - var result = parser.expandImpalaIdentifierChain(tablePrimaries, testForImpalaAlias); - if (result.length > 1) { - // Continue if it's a reference to a complex type - return; - } - } - } else { - var lastIdentifier = tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1]; - if (typeof lastIdentifier.name !== 'undefined') { - identifiers.push({name: lastIdentifier.name + '.', type: 'table'}); - } else if (typeof lastIdentifier.subQuery !== 'undefined') { - identifiers.push({name: lastIdentifier.subQuery + '.', type: 'sub-query'}); - } - } - tables.push(table); - } else if (tablePrimary.subQueryAlias) { - identifiers.push({name: tablePrimary.subQueryAlias + '.', type: 'sub-query'}); - tables.push({identifierChain: [{subQuery: tablePrimary.subQueryAlias}]}); - } - }); - if (identifiers.length > 0) { - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = identifiers; - } else { - parser.yy.result.suggestIdentifiers = identifiers.concat(parser.yy.result.suggestIdentifiers); - } - } - parser.yy.result.suggestColumns.tables = tables; - if (parser.yy.result.suggestColumns.identifierChain && parser.yy.result.suggestColumns.identifierChain.length === 0) { - delete parser.yy.result.suggestColumns.identifierChain; - } - parser.yy.result.suggestColumns.linked = true; - }; - - var linkTablePrimaries = function () { - if (!parser.yy.cursorFound || typeof parser.yy.latestTablePrimaries === 'undefined') { - return; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) { - if (typeof parser.yy.result[suggestionType] !== 'undefined' && parser.yy.result[suggestionType].tablePrimaries && !parser.yy.result[suggestionType].linked) { - parser.yy.result[suggestionType].tables = []; - parser.yy.result[suggestionType].tablePrimaries.forEach(function (tablePrimary) { - if (!tablePrimary.subQueryAlias) { - parser.yy.result[suggestionType].tables.push(tablePrimary.alias ? { - identifierChain: tablePrimary.identifierChain.concat(), - alias: tablePrimary.alias - } : {identifierChain: tablePrimary.identifierChain.concat()}); - } - }); - delete parser.yy.result[suggestionType].tablePrimaries; - parser.yy.result[suggestionType].linked = true; - } - }); - - if (typeof parser.yy.result.suggestColumns !== 'undefined' && !parser.yy.result.suggestColumns.linked) { - var tablePrimaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries, parser.yy.result.suggestColumns.owner); - if (!parser.yy.result.suggestColumns.tables) { - parser.yy.result.suggestColumns.tables = []; - } - if (parser.yy.subQueries.length > 0) { - parser.yy.result.subQueries = parser.yy.subQueries; - } - if (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || parser.yy.result.suggestColumns.identifierChain.length === 0) { - if (tablePrimaries.length > 1) { - convertTablePrimariesToSuggestions(tablePrimaries); - } else { - suggestLateralViewAliasesAsIdentifiers(); - if (tablePrimaries.length === 1 && (tablePrimaries[0].alias || tablePrimaries[0].subQueryAlias)) { - convertTablePrimariesToSuggestions(tablePrimaries); - } - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestColumns, anyOwner: false, isColumnWrapper: true }); - } - } else { - // Expand exploded views in the identifier chain - if (parser.isHive() && !parser.yy.result.suggestColumns.linked) { - var originalLength = parser.yy.result.suggestColumns.identifierChain.length; - parser.yy.result.suggestColumns.identifierChain = parser.expandLateralViews(parser.yy.lateralViews, parser.yy.result.suggestColumns.identifierChain, true); - // Drop '*' keyword for lateral views - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - if (parser.yy.result.suggestColumns.identifierChain.length > originalLength && - typeof parser.yy.result.suggestKeywords !== 'undefined' && - parser.yy.result.suggestKeywords.length === 1 && - parser.yy.result.suggestKeywords[0].value === '*') { - delete parser.yy.result.suggestKeywords; - } - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestColumns, anyOwner: false, isColumnWrapper: true }); - } - } else { - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestColumns, anyOwner: false, isColumnWrapper: true }); - } - } - } - - if (typeof parser.yy.result.colRef !== 'undefined' && !parser.yy.result.colRef.linked) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.colRef }); - - var primaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries); - if (primaries.length === 0 || (primaries.length > 1 && parser.yy.result.colRef.identifierChain.length === 1)) { - parser.yy.result.colRef.identifierChain = []; - } - } - if (typeof parser.yy.result.suggestKeyValues !== 'undefined' && !parser.yy.result.suggestKeyValues.linked) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestKeyValues }); - } - }; - - parser.getSubQuery = function (cols) { - var columns = []; - cols.selectList.forEach(function (col) { - var result = {}; - if (col.alias) { - result.alias = col.alias; - } - if (col.valueExpression && col.valueExpression.columnReference) { - result.identifierChain = col.valueExpression.columnReference - } else if (col.asterisk) { - result.identifierChain = [{asterisk: true}]; - } - if (col.valueExpression && col.valueExpression.types && col.valueExpression.types.length === 1) { - result.type = col.valueExpression.types[0]; - } - - columns.push(result); - }); - - return { - columns: columns - }; - }; - - parser.addTablePrimary = function (ref) { - if (typeof parser.yy.latestTablePrimaries === 'undefined') { - parser.yy.latestTablePrimaries = []; - } - parser.yy.latestTablePrimaries.push(ref); - }; - - parser.suggestFileFormats = function () { - if (parser.isHive()) { - parser.suggestKeywords(['AVRO', 'INPUTFORMAT', 'ORC', 'PARQUET', 'RCFILE', 'SEQUENCEFILE', 'TEXTFILE']); - } else { - parser.suggestKeywords(['AVRO', 'KUDU', 'ORC', 'PARQUET', 'RCFILE', 'SEQUENCEFILE', 'TEXTFILE']); - } - }; - - parser.getKeywordsForOptionalsLR = function (optionals, keywords, override) { - var result = []; - - for (var i = 0; i < optionals.length; i++) { - if (!optionals[i] && (typeof override === 'undefined' || override[i])) { - if (keywords[i] instanceof Array) { - result = result.concat(keywords[i]); - } else { - result.push(keywords[i]); - } - } else if (optionals[i]) { - break; - } - } - return result; - }; - - parser.suggestDdlAndDmlKeywords = function (extraKeywords) { - var keywords = ['ALTER', 'CREATE', 'DESCRIBE', 'DROP', 'GRANT', 'INSERT', 'REVOKE', 'SELECT', 'SET', 'SHOW', 'TRUNCATE', 'UPDATE', 'USE', 'WITH']; - - if (extraKeywords) { - keywords = keywords.concat(extraKeywords); - } - - if (parser.isHive()) { - keywords = keywords.concat(['ABORT', 'ANALYZE TABLE', 'DELETE', 'EXPORT', 'IMPORT', 'LOAD', 'MERGE', 'MSCK', 'RELOAD FUNCTION', 'RESET']); - } - - if (parser.isImpala()) { - keywords = keywords.concat(['COMMENT ON', 'COMPUTE', 'DELETE', 'INVALIDATE METADATA', 'LOAD', 'REFRESH', 'UPSERT']); - } - - parser.suggestKeywords(keywords); - }; - - parser.checkForSelectListKeywords = function (selectList) { - if (selectList.length === 0) { - return; - } - var last = selectList[selectList.length - 1]; - if (!last || !last.valueExpression) { - return; - } - var valueExpressionKeywords = parser.getValueExpressionKeywords(last.valueExpression); - var keywords = []; - if (last.suggestKeywords) { - keywords = keywords.concat(last.suggestKeywords); - } - if (valueExpressionKeywords.suggestKeywords) { - keywords = keywords.concat(valueExpressionKeywords.suggestKeywords); - } - if (valueExpressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(valueExpressionKeywords.suggestColRefKeywords); - parser.addColRefIfExists(last.valueExpression); - } - if (!last.alias) { - keywords.push('AS'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - }; - - parser.checkForKeywords = function (expression) { - if (expression) { - if (expression.suggestKeywords && expression.suggestKeywords.length > 0) { - parser.suggestKeywords(expression.suggestKeywords); - } - if (expression.suggestColRefKeywords) { - parser.suggestColRefKeywords(expression.suggestColRefKeywords); - parser.addColRefIfExists(expression); - } - } - }; - - parser.createWeightedKeywords = function (keywords, weight) { - var result = []; - keywords.forEach(function (keyword) { - if (typeof keyword.weight !== 'undefined') { - keyword.weight = weight + (keyword.weight / 10); - result.push(keyword); - } else { - result.push({value: keyword, weight: weight}); - } - }); - return result; - }; - - parser.suggestKeywords = function (keywords) { - var weightedKeywords = []; - if (keywords.length == 0) { - return; - } - keywords.forEach(function (keyword) { - if (typeof keyword.weight !== 'undefined') { - weightedKeywords.push(keyword); - } else { - weightedKeywords.push({value: keyword, weight: -1}) - } - }); - weightedKeywords.sort(function (a, b) { - if (a.weight !== b.weight) { - return b.weight - a.weight; - } - return a.value.localeCompare(b.value); - }); - parser.yy.result.suggestKeywords = weightedKeywords; - }; - - parser.suggestColRefKeywords = function (colRefKeywords) { - parser.yy.result.suggestColRefKeywords = colRefKeywords; - }; - - parser.suggestTablesOrColumns = function (identifier) { - if (typeof parser.yy.latestTablePrimaries == 'undefined') { - parser.suggestTables({identifierChain: [{name: identifier}]}); - return; - } - var tableRef = parser.yy.latestTablePrimaries.filter(function (tablePrimary) { - return equalIgnoreCase(tablePrimary.alias, identifier); - }); - if (tableRef.length > 0) { - parser.suggestColumns({identifierChain: [{name: identifier}]}); - } else { - parser.suggestTables({identifierChain: [{name: identifier}]}); - } - }; - - parser.suggestFunctions = function (details) { - parser.yy.result.suggestFunctions = details || {}; - }; - - parser.suggestAggregateFunctions = function () { - var primaries = []; - var aliases = {}; - parser.yy.latestTablePrimaries.forEach(function (primary) { - if (typeof primary.alias !== 'undefined') { - aliases[primary.alias] = true; - } - // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...) - if (typeof primary.identifierChain !== 'undefined' && !aliases[primary.identifierChain[0].name] && typeof primary.owner === 'undefined') { - primaries.push(primary); - } - }); - parser.yy.result.suggestAggregateFunctions = {tablePrimaries: primaries}; - }; - - parser.suggestAnalyticFunctions = function () { - parser.yy.result.suggestAnalyticFunctions = true; - }; - - parser.suggestSetOptions = function () { - parser.yy.result.suggestSetOptions = true; - }; - - parser.suggestIdentifiers = function (identifiers) { - parser.yy.result.suggestIdentifiers = identifiers; - }; - - parser.suggestColumns = function (details) { - if (typeof details === 'undefined') { - details = {identifierChain: []}; - } else if (typeof details.identifierChain === 'undefined') { - details.identifierChain = []; - } - parser.yy.result.suggestColumns = details; - }; - - parser.suggestGroupBys = function (details) { - parser.yy.result.suggestGroupBys = details || {}; - }; - - parser.suggestOrderBys = function (details) { - parser.yy.result.suggestOrderBys = details || {}; - }; - - parser.suggestFilters = function (details) { - parser.yy.result.suggestFilters = details || {}; - }; - - parser.suggestKeyValues = function (details) { - parser.yy.result.suggestKeyValues = details || {}; - }; - - parser.suggestTables = function (details) { - parser.yy.result.suggestTables = details || {}; - }; - - var adjustLocationForCursor = function (location) { - // columns are 0-based and lines not, so add 1 to cols - var newLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - if (parser.yy.cursorFound) { - if (parser.yy.cursorFound.first_line === newLocation.first_line && parser.yy.cursorFound.last_column <= newLocation.first_column) { - var additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. - newLocation.first_column = newLocation.first_column + additionalSpace; - newLocation.last_column = newLocation.last_column + additionalSpace; - } - } - return newLocation; - }; - - parser.addFunctionLocation = function (location, functionName) { - // Remove trailing '(' from location - var adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column, - last_column: location.last_column - 1 - }; - parser.yy.locations.push({ - type: 'function', - location: adjustLocationForCursor(adjustedLocation), - function: functionName.toLowerCase() - }); - }; - - parser.addStatementLocation = function (location) { - // Don't report lonely cursor as a statement - if (location.first_line === location.last_line && Math.abs(location.last_column - location.first_column) === 1) { - return; - } - var adjustedLocation; - if (parser.yy.cursorFound && parser.yy.cursorFound.last_line === location.last_line && - parser.yy.cursorFound.first_column >= location.first_column && parser.yy.cursorFound.last_column <= location.last_column) { - var additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + additionalSpace - (parser.yy.partialCursor ? 0 : 2) - } - } else { - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - } - } - - parser.yy.locations.push({ - type: 'statement', - location: adjustedLocation - }); - }; - - parser.firstDefined = function () { - for (var i = 0; i + 1 < arguments.length; i += 2) { - if (arguments[i]) { - return arguments[i + 1]; - } - } - }; - - parser.addClauseLocation = function (type, precedingLocation, locationIfPresent, isCursor) { - var location; - if (isCursor) { - if (parser.yy.partialLengths.left === 0 && parser.yy.partialLengths.right === 0) { - location = { - type: type, - missing: true, - location: adjustLocationForCursor({ - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - }) - } - } else { - location = { - type: type, - missing: false, - location: { - first_line: locationIfPresent.last_line, - first_column: locationIfPresent.last_column - 1, - last_line: locationIfPresent.last_line, - last_column: locationIfPresent.last_column - 1 + parser.yy.partialLengths.right + parser.yy.partialLengths.left - } - } - } - } else { - location = { - type: type, - missing: !locationIfPresent, - location: adjustLocationForCursor(locationIfPresent || { - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - }) - }; - } - if (parser.isInSubquery()) { - location.subquery = true; - } - parser.yy.locations.push(location) - }; - - parser.addStatementTypeLocation = function (identifier, location, additionalText) { - if (!parser.isImpala()) { - return; - } - var loc = { - type: 'statementType', - location: adjustLocationForCursor(location), - identifier: identifier - }; - if (typeof additionalText !== 'undefined') { - switch (identifier) { - case 'ALTER': - if (/ALTER\s+VIEW/i.test(additionalText)) { - loc.identifier = 'ALTER VIEW'; - } else { - loc.identifier = 'ALTER TABLE'; - } - break; - case 'COMPUTE': - loc.identifier = 'COMPUTE STATS'; - break; - case 'CREATE': - if (/CREATE\s+VIEW/i.test(additionalText)) { - loc.identifier = 'CREATE VIEW'; - } else if (/CREATE\s+TABLE/i.test(additionalText)) { - loc.identifier = 'CREATE TABLE'; - } else if (/CREATE\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'CREATE DATABASE'; - } else if (/CREATE\s+ROLE/i.test(additionalText)) { - loc.identifier = 'CREATE ROLE'; - } else if (/CREATE\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'CREATE FUNCTION'; - } else { - loc.identifier = 'CREATE TABLE'; - } - break; - case 'DROP': - if (/DROP\s+VIEW/i.test(additionalText)) { - loc.identifier = 'DROP VIEW'; - } else if (/DROP\s+TABLE/i.test(additionalText)) { - loc.identifier = 'DROP TABLE'; - } else if (/DROP\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'DROP DATABASE'; - } else if (/DROP\s+ROLE/i.test(additionalText)) { - loc.identifier = 'DROP ROLE'; - } else if (/DROP\s+STATS/i.test(additionalText)) { - loc.identifier = 'DROP STATS'; - } else if (/DROP\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'DROP FUNCTION'; - } else { - loc.identifier = 'DROP TABLE'; - } - break; - case 'INVALIDATE': - loc.identifier = 'INVALIDATE METADATA'; - break; - case 'LOAD': - loc.identifier = 'LOAD DATA'; - break; - case 'TRUNCATE': - loc.identifier = 'TRUNCATE TABLE'; - break; - default: - } - } - parser.yy.locations.push(loc); - }; - - parser.addFileLocation = function (location, path) { - parser.yy.locations.push({ - type: 'file', - location: adjustLocationForCursor(location), - path: path - }); - }; - - parser.addDatabaseLocation = function (location, identifierChain) { - parser.yy.locations.push({ - type: 'database', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addTableLocation = function (location, identifierChain) { - parser.yy.locations.push({ - type: 'table', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addColumnAliasLocation = function (location, alias, parentLocation) { - var aliasLocation = { - type: 'alias', - source: 'column', - alias: alias, - location: adjustLocationForCursor(location), - parentLocation: adjustLocationForCursor(parentLocation) - }; - if (parser.yy.locations.length && parser.yy.locations[parser.yy.locations.length - 1].type === 'column') { - var closestColumn = parser.yy.locations[parser.yy.locations.length - 1]; - if (closestColumn.location.first_line === aliasLocation.parentLocation.first_line && - closestColumn.location.last_line === aliasLocation.parentLocation.last_line && - closestColumn.location.first_column === aliasLocation.parentLocation.first_column && - closestColumn.location.last_column === aliasLocation.parentLocation.last_column) { - parser.yy.locations[parser.yy.locations.length - 1].alias = alias; - } - } - parser.yy.locations.push(aliasLocation); - }; - - parser.addTableAliasLocation = function (location, alias, identifierChain) { - parser.yy.locations.push({ - type: 'alias', - source: 'table', - alias: alias, - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addSubqueryAliasLocation = function (location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'subquery', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addAsteriskLocation = function (location, identifierChain) { - parser.yy.locations.push({ - type: 'asterisk', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addVariableLocation = function (location, value) { - if (/\$\{[^}]*\}/.test(value)) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: value - }); - } - }; - - parser.addColumnLocation = function (location, identifierChain) { - var isVariable = identifierChain.length && /\$\{[^}]*\}/.test(identifierChain[identifierChain.length - 1].name); - if (isVariable) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }); - } else { - parser.yy.locations.push({ - type: 'column', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }); - } - }; - - parser.addCteAliasLocation = function (location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'cte', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addUnknownLocation = function (location, identifierChain) { - var isVariable = identifierChain.length && /\$\{[^}]*\}/.test(identifierChain[identifierChain.length - 1].name); - var loc; - if (isVariable) { - loc = { - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }; - } else { - loc = { - type: 'unknown', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }; - } - parser.yy.locations.push(loc); - return loc; - }; - - parser.addColRefToVariableIfExists = function (left, right) { - if (left && left.columnReference && left.columnReference.length && right && right.columnReference && right.columnReference.length && parser.yy.locations.length > 1) { - var addColRefToVariableLocation = function (variableValue, colRef) { - // See if colref is actually an alias - if (colRef.length === 1 && colRef[0].name) { - parser.yy.locations.some(function (location) { - if (location.type === 'column' && location.alias === colRef[0].name) { - colRef = location.identifierChain; - return true; - } - }); - } - - for (var i = parser.yy.locations.length - 1; i > 0; i--) { - var location = parser.yy.locations[i]; - if (location.type === 'variable' && location.value === variableValue) { - location.colRef = { identifierChain: colRef }; - break; - } - } - }; - - if (/\$\{[^}]*\}/.test(left.columnReference[0].name)) { - // left is variable - addColRefToVariableLocation(left.columnReference[0].name, right.columnReference); - } else if (/\$\{[^}]*\}/.test(right.columnReference[0].name)) { - // right is variable - addColRefToVariableLocation(right.columnReference[0].name, left.columnReference); - } - } - }; - - parser.suggestDatabases = function (details) { - parser.yy.result.suggestDatabases = details || {}; - }; - - parser.suggestHdfs = function (details) { - parser.yy.result.suggestHdfs = details || {}; - }; - - parser.suggestValues = function (details) { - parser.yy.result.suggestValues = details || {}; - }; - - parser.determineCase = function (text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.handleQuotedValueWithCursor = function (lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - var cursorIndex = parser.yy.partialCursor ? yytext.indexOf('\u2021') : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - var remainder = yytext.substring(cursorIndex + 1); - var remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []).length; - if (remainingQuotes > 0 && remainingQuotes & 1 != 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - var lexerModified = false; - - /** - * Main parser function - */ - parser.parseSql = function (beforeCursor, afterCursor, dialect, debug) { - // Jison counts CRLF as two lines in the locations - beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); - afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); - parser.yy.result = {locations: []}; - parser.yy.lowerCase = false; - parser.yy.locations = []; - parser.yy.allLocations = []; - parser.yy.subQueries = []; - parser.yy.errors = []; - parser.yy.selectListAliases = []; - - parser.yy.locationsStack = []; - parser.yy.primariesStack = []; - parser.yy.lateralViewsStack = []; - parser.yy.subQueriesStack = []; - parser.yy.resultStack = []; - parser.yy.selectListAliasesStack = []; - - delete parser.yy.caseDetermined; - delete parser.yy.cursorFound; - delete parser.yy.partialCursor; - - parser.prepareNewStatement(); - - var REASONABLE_SURROUNDING_LENGTH = 150000; // About 3000 lines before and after - - if (beforeCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if ((beforeCursor.length - beforeCursor.lastIndexOf(';')) > REASONABLE_SURROUNDING_LENGTH) { - // Bail out if the last complete statement is more than 150000 chars before - return {}; - } - // Cut it at the first statement found within 150000 chars before - var lastReasonableChunk = beforeCursor.substring(beforeCursor.length - REASONABLE_SURROUNDING_LENGTH); - beforeCursor = lastReasonableChunk.substring(lastReasonableChunk.indexOf(';') + 1); - } - - if (afterCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if ((afterCursor.length - afterCursor.indexOf(';')) > REASONABLE_SURROUNDING_LENGTH) { - // No need to bail out for what's comes after, we can still get keyword completion - afterCursor = ''; - } else { - // Cut it at the last statement found within 150000 chars after - var firstReasonableChunk = afterCursor.substring(0, REASONABLE_SURROUNDING_LENGTH); - afterCursor = firstReasonableChunk.substring(0, firstReasonableChunk.lastIndexOf(';')); - } - } - - parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); - - if (parser.yy.partialLengths.left > 0) { - beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); - } - - if (parser.yy.partialLengths.right > 0) { - afterCursor = afterCursor.substring(parser.yy.partialLengths.right); - } - - parser.yy.activeDialect = (dialect !== 'hive' && dialect !== 'impala') ? undefined : dialect; - - // Hack to set the inital state of the lexer without first having to hit a token - // has to be done as the first token found can be dependant on dialect - if (!lexerModified) { - var originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function (input, yy) { - var lexer = originalSetInput.bind(parser.lexer)(input, yy); - if (typeof parser.yy.activeDialect !== 'undefined') { - lexer.begin(parser.yy.activeDialect); - } - return lexer; - }; - lexerModified = true; - } - - var result; - try { - // Add |CURSOR| or |PARTIAL_CURSOR| to represent the different cursor states in the lexer - result = parser.parse(beforeCursor + (beforeCursor.length == 0 || /[\s\(]$$/.test(beforeCursor) ? ' \u2020 ' : '\u2021') + afterCursor); - } catch (err) { - // On any error try to at least return any existing result - if (typeof parser.yy.result === 'undefined') { - throw err; - } - if (debug) { - console.log(err); - console.error(err.stack); - } - result = parser.yy.result; - } - if (parser.yy.errors.length > 0) { - parser.yy.result.errors = parser.yy.errors; - if (debug) { - console.log(parser.yy.errors); - } - } - try { - linkTablePrimaries(); - parser.commitLocations(); - // Clean up and prioritize - prioritizeSuggestions(); - } catch (err) { - if (debug) { - console.log(err); - console.error(err.stack); - } - } - - - parser.yy.allLocations.sort(function (a, b) { - if (a.location.first_line !== b.location.first_line) { - return a.location.first_line - b.location.first_line; - } - if (a.location.first_column !== b.location.first_column) { - return a.location.first_column - b.location.first_column; - } - if (a.location.last_column !== b.location.last_column) { - return b.location.last_column - a.location.last_column; - } - return b.type.localeCompare(a.type); - }); - parser.yy.result.locations = parser.yy.allLocations; - - parser.yy.result.locations.forEach(function (location) { - delete location.linked; - }); - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - delete parser.yy.result.suggestColumns.linked; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) { - if (typeof parser.yy.result[suggestionType] !== 'undefined') { - delete parser.yy.result[suggestionType].linked; - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - delete parser.yy.result.colRef.linked; - } - if (typeof parser.yy.result.suggestKeyValues !== 'undefined') { - delete parser.yy.result.suggestKeyValues.linked; - } - - if (typeof result.error !== 'undefined' && typeof result.error.expected !== 'undefined') { - // Remove any expected tokens from other dialects, jison doesn't remove tokens from other lexer states. - var actualExpected = {}; - result.error.expected.forEach(function (expected) { - var match = expected.match(/\<([a-z]+)\>(.*)/); - if (match !== null) { - if (typeof parser.yy.activeDialect !== 'undefined' && parser.yy.activeDialect === match[1]) { - actualExpected[("'" + match[2])] = true; - } - } else if (expected.indexOf('CURSOR') == -1) { - actualExpected[expected] = true; - } - }); - result.error.expected = Object.keys(actualExpected); - } - - if (typeof result.error !== 'undefined' && result.error.recoverable) { - delete result.error; - } - - // Adjust all the statement locations to include white space surrounding them - var lastStatementLocation = null; - result.locations.forEach(function (location) { - if (location.type === 'statement') { - if (lastStatementLocation === null) { - location.location.first_line = 1; - location.location.first_column = 1; - } else { - location.location.first_line = lastStatementLocation.location.last_line; - location.location.first_column = lastStatementLocation.location.last_column + 1; - } - lastStatementLocation = location; - } - }); - - return result; - }; - }; - - var SYNTAX_PARSER_NOOP_FUNCTIONS = ['prepareNewStatement', 'addCommonTableExpressions', 'pushQueryState', 'popQueryState', 'suggestSelectListAliases', - 'suggestValueExpressionKeywords', 'getSelectListKeywords', 'getValueExpressionKeywords', 'addColRefIfExists', 'selectListNoTableSuggest', 'suggestJoinConditions', - 'suggestJoins', 'valueExpressionSuggest', 'applyTypeToSuggestions', 'applyArgumentTypesToSuggestions', 'commitLocations', 'identifyPartials', - 'getSubQuery', 'addTablePrimary', 'suggestFileFormats', 'suggestDdlAndDmlKeywords', 'checkForSelectListKeywords', 'checkForKeywords', - 'suggestKeywords', 'suggestColRefKeywords', 'suggestTablesOrColumns', 'suggestFunctions', 'suggestAggregateFunctions', 'suggestAnalyticFunctions', - 'suggestColumns', 'suggestGroupBys', 'suggestIdentifiers', 'suggestOrderBys', 'suggestFilters', 'suggestKeyValues', 'suggestTables', 'addFunctionLocation', - 'addStatementLocation', 'firstDefined', 'addClauseLocation', 'addStatementTypeLocation', 'addFileLocation', 'addDatabaseLocation', 'addColumnAliasLocation', - 'addTableAliasLocation', 'addSubqueryAliasLocation', 'addTableLocation', 'addAsteriskLocation', 'addVariableLocation', 'addColumnLocation', 'addCteAliasLocation', - 'addUnknownLocation', 'addColRefToVariableIfExists', 'suggestDatabases', 'suggestHdfs', 'suggestValues']; - - var SYNTAX_PARSER_NOOP = function () {}; - - var initSyntaxParser = function (parser) { - - // Noop functions for compatibility with the autocomplete parser as the grammar is shared - SYNTAX_PARSER_NOOP_FUNCTIONS.forEach(function (noopFn) { - parser[noopFn] = SYNTAX_PARSER_NOOP - }); - - parser.yy.locations = [{}]; - - parser.determineCase = function (text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.getKeywordsForOptionalsLR = function () { - return []; - }; - - parser.mergeSuggestKeywords = function () { - return {}; - }; - - parser.getTypeKeywords = function () { - return []; - }; - - parser.getColumnDataTypeKeywords = function () { - return []; - }; - - parser.findCaseType = function () { - return {types: ['T']}; - }; - - parser.findReturnTypes = function (functionName) { - return ['T']; - }; - - parser.isHive = function () { - return parser.yy.activeDialect === 'hive'; - }; - - parser.isImpala = function () { - return parser.yy.activeDialect === 'impala'; - }; - - parser.expandImpalaIdentifierChain = function () { - return []; - }; - - parser.expandIdentifierChain = function () { - return []; - }; - - parser.expandLateralViews = function () { - return []; - }; - - parser.createWeightedKeywords = function () { - return []; - }; - - parser.handleQuotedValueWithCursor = function (lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - var cursorIndex = parser.yy.partialCursor ? yytext.indexOf('\u2021') : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - var remainder = yytext.substring(cursorIndex + 1); - var remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []).length; - if (remainingQuotes > 0 && remainingQuotes & 1 != 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - var lexerModified = false; - - parser.yy.parseError = function (str, hash) { - parser.yy.error = hash; - }; - - var IGNORED_EXPECTED = { - ';': true, - '.': true, - 'EOF': true, - 'UNSIGNED_INTEGER': true, - 'UNSIGNED_INTEGER_E': true, - 'REGULAR_IDENTIFIER': true, // TODO: Indicate that an identifier was expected - 'CURSOR': true, - 'PARTIAL_CURSOR': true, - 'HDFS_START_QUOTE': true, - 'HDFS_PATH': true, - 'HDFS_END_QUOTE' : true, - 'COMPARISON_OPERATOR': true, // TODO: Expand in results when found - 'ARITHMETIC_OPERATOR' : true, // TODO: Expand in results when found - 'VARIABLE_REFERENCE': true, - 'BACKTICK': true, - 'VALUE': true, - 'PARTIAL_VALUE': true, - 'SINGLE_QUOTE': true, - 'DOUBLE_QUOTE': true - }; - - var CLEAN_EXPECTED = { - 'BETWEEN_AND': 'AND', - 'OVERWRITE_DIRECTORY' : 'OVERWRITE', - 'STORED_AS_DIRECTORIES' : 'STORED', - 'LIKE_PARQUET' : 'LIKE', - 'PARTITION_VALUE' : 'PARTITION' - }; - - parser.parseSyntax = function (beforeCursor, afterCursor, dialect, debug) { - parser.yy.caseDetermined = false; - parser.yy.error = undefined; - - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - parser.yy.activeDialect = (dialect !== 'hive' && dialect !== 'impala') ? undefined : dialect; - - // Hack to set the inital state of the lexer without first having to hit a token - // has to be done as the first token found can be dependant on dialect - if (!lexerModified) { - var originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function (input, yy) { - var lexer = originalSetInput.bind(parser.lexer)(input, yy); - if (typeof parser.yy.activeDialect !== 'undefined') { - lexer.begin(parser.yy.activeDialect); - } - return lexer; - }; - lexerModified = true; - } - - // TODO: Find a way around throwing an exception when the parser finds a syntax error - try { - parser.yy.error = false; - parser.parse(beforeCursor + afterCursor); - } catch (err) { - if (debug) { - console.log(err); - console.error(err.stack); - console.log(parser.yy.error); - } - } - - if (parser.yy.error && (parser.yy.error.loc.last_column < beforeCursor.length || !beforeCursor.endsWith(parser.yy.error.text))) { - var weightedExpected = []; - - var addedExpected = {}; - - var isLowerCase = parser.yy.caseDetermined && parser.yy.lowerCase || parser.yy.error.text.toLowerCase() === parser.yy.error.text; - - if (parser.yy.error.expected.length == 2 && parser.yy.error.expected.indexOf('\';\'') !== -1 && parser.yy.error.expected.indexOf('\'EOF\'') !== -1) { - parser.yy.error.expected = []; - parser.yy.error.expectedStatementEnd = true; - return parser.yy.error; - } - for (var i = 0; i < parser.yy.error.expected.length; i++) { - var expected = parser.yy.error.expected[i]; - // Strip away the surrounding ' chars - expected = expected.substring(1, expected.length - 1); - // TODO: Only suggest alphanumeric? - if (!IGNORED_EXPECTED[expected] && /[a-z_]+/i.test(expected)) { - if (dialect && expected.indexOf('<' + dialect + '>') == 0) { - expected = expected.substring(dialect.length + 2); - } else if (/^<[a-z]+>/.test(expected)) { - continue; - } - expected = CLEAN_EXPECTED[expected] || expected; - if (expected === parser.yy.error.text.toUpperCase()) { - // Can happen when the lexer entry for a rule contains multiple words like 'stored' in 'stored as parquet' - return false; - } - var text = isLowerCase ? expected.toLowerCase() : expected; - if (text && !addedExpected[text]) { - addedExpected[text] = true; - weightedExpected.push({ - text: text, - distance: stringDistance(parser.yy.error.text, text, true) - }); - } - } - } - if (weightedExpected.length === 0) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - weightedExpected.sort(function (a, b) { - if (a.distance === b.distance) { - return a.text.localeCompare(b.text); - } - return a.distance - b.distance - }); - parser.yy.error.expected = weightedExpected; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } else if (parser.yy.error) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - return false; - } - }; - - var initGlobalSearchParser = function (parser) { - - parser.identifyPartials = function (beforeCursor, afterCursor) { - var beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - var afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return {left: beforeMatch ? beforeMatch[0].length : 0, right: afterMatch ? afterMatch[0].length : 0}; - }; - - parser.mergeFacets = function (a, b) { - if (!a.facets) { - a.facets = {}; - } - if (!b.facets) { - return; - } - Object.keys(b.facets).forEach(function (key) { - if (a.facets[key]) { - Object.keys(b.facets[key]).forEach(function (val) { - a.facets[key][val.toLowerCase()] = true; - }); - } else { - a.facets[key] = b.facets[key]; - } - }); - }; - - parser.mergeText = function (a, b) { - if (!a.text) { - a.text = []; - } - if (!b.text) { - return; - } - a.text = a.text.concat(b.text); - }; - - parser.handleQuotedValueWithCursor = function (lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - var cursorIndex = yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - var remainder = yytext.substring(cursorIndex + 1); - var remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []).length; - if (remainingQuotes > 0 && remainingQuotes & 1 != 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - parser.parseGlobalSearch = function (beforeCursor, afterCursor, debug) { - delete parser.yy.cursorFound; - - var result; - try { - result = parser.parse(beforeCursor + '\u2020' + afterCursor); - } catch (err) { - if (debug) { - console.log(err); - console.error(err.stack); - console.log(parser.yy.error); - } - return { - facets: {}, - text: [] - } - } - return result; - }; - }; - - return { - initSqlParser: initSqlParser, - initSyntaxParser: initSyntaxParser, - stringDistance: stringDistance, - initGlobalSearchParser: initGlobalSearchParser - }; -})(); -/* parser generated by jison 0.4.18 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var sqlSyntaxParser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,10,25,29,57,58,73,78,79,96,112,130,144,162,182,218,307,339,352,438,439,440,452,569,570,571,577,760,816,859,921,922,924,1160,1184,1185,1186,1187,1189,1207,1221,1246,1247,1273,1309],$V1=[2,4],$V2=[6,10],$V3=[2,5],$V4=[1,64],$V5=[1,44],$V6=[1,33],$V7=[1,99],$V8=[1,129],$V9=[1,140],$Va=[1,108],$Vb=[1,109],$Vc=[1,137],$Vd=[1,122],$Ve=[1,66],$Vf=[1,34],$Vg=[1,65],$Vh=[1,92],$Vi=[1,138],$Vj=[1,69],$Vk=[1,102],$Vl=[1,133],$Vm=[1,134],$Vn=[1,135],$Vo=[1,110],$Vp=[1,104],$Vq=[1,131],$Vr=[1,132],$Vs=[1,101],$Vt=[1,119],$Vu=[1,105],$Vv=[1,116],$Vw=[1,45],$Vx=[1,46],$Vy=[1,47],$Vz=[1,91],$VA=[1,125],$VB=[1,100],$VC=[1,144],$VD=[1,67],$VE=[1,68],$VF=[1,126],$VG=[1,143],$VH=[1,130],$VI=[1,98],$VJ=[1,136],$VK=[1,121],$VL=[6,10,399,951],$VM=[2,866],$VN=[1,153],$VO=[1,155],$VP=[1,158],$VQ=[25,29,58,73,78,79,96,112,130,144,182,218,307,339,352,438,439,440,452,569,570,571,577,760,816,859,921,922,924,1160,1184,1185,1186,1187,1189,1207,1221,1246,1247,1273,1309],$VR=[1,172],$VS=[1,173],$VT=[1,174],$VU=[1,175],$VV=[1,176],$VW=[1,177],$VX=[1,178],$VY=[1,179],$VZ=[1,180],$V_=[1,181],$V$=[1,182],$V01=[1,183],$V11=[1,184],$V21=[1,185],$V31=[1,186],$V41=[1,187],$V51=[1,188],$V61=[1,189],$V71=[1,190],$V81=[1,191],$V91=[1,192],$Va1=[1,193],$Vb1=[1,194],$Vc1=[1,195],$Vd1=[1,196],$Ve1=[1,197],$Vf1=[1,198],$Vg1=[1,199],$Vh1=[1,200],$Vi1=[1,201],$Vj1=[1,202],$Vk1=[1,203],$Vl1=[1,204],$Vm1=[1,205],$Vn1=[1,206],$Vo1=[1,207],$Vp1=[1,208],$Vq1=[1,209],$Vr1=[1,210],$Vs1=[1,211],$Vt1=[1,212],$Vu1=[1,213],$Vv1=[1,214],$Vw1=[1,215],$Vx1=[1,216],$Vy1=[1,217],$Vz1=[1,218],$VA1=[1,219],$VB1=[1,220],$VC1=[1,221],$VD1=[1,222],$VE1=[1,223],$VF1=[1,224],$VG1=[1,225],$VH1=[1,226],$VI1=[1,227],$VJ1=[1,228],$VK1=[1,229],$VL1=[1,230],$VM1=[1,231],$VN1=[1,232],$VO1=[1,233],$VP1=[1,234],$VQ1=[1,235],$VR1=[1,236],$VS1=[1,237],$VT1=[1,238],$VU1=[1,239],$VV1=[1,240],$VW1=[1,241],$VX1=[1,242],$VY1=[1,243],$VZ1=[1,244],$V_1=[1,245],$V$1=[1,246],$V02=[1,247],$V12=[1,248],$V22=[1,249],$V32=[1,250],$V42=[1,251],$V52=[1,252],$V62=[1,253],$V72=[1,254],$V82=[1,255],$V92=[1,256],$Va2=[1,257],$Vb2=[1,258],$Vc2=[1,259],$Vd2=[1,260],$Ve2=[1,261],$Vf2=[1,262],$Vg2=[1,263],$Vh2=[1,264],$Vi2=[1,265],$Vj2=[1,266],$Vk2=[1,267],$Vl2=[1,268],$Vm2=[1,269],$Vn2=[1,270],$Vo2=[1,271],$Vp2=[1,272],$Vq2=[1,273],$Vr2=[1,274],$Vs2=[1,275],$Vt2=[1,276],$Vu2=[1,277],$Vv2=[1,278],$Vw2=[1,279],$Vx2=[1,280],$Vy2=[1,281],$Vz2=[1,282],$VA2=[1,283],$VB2=[1,284],$VC2=[1,285],$VD2=[1,286],$VE2=[1,287],$VF2=[1,288],$VG2=[1,289],$VH2=[1,290],$VI2=[1,291],$VJ2=[1,292],$VK2=[1,293],$VL2=[1,294],$VM2=[1,295],$VN2=[1,296],$VO2=[1,297],$VP2=[1,298],$VQ2=[1,299],$VR2=[1,300],$VS2=[1,301],$VT2=[1,302],$VU2=[1,303],$VV2=[1,304],$VW2=[1,169],$VX2=[1,170],$VY2=[1,168],$VZ2=[1,325],$V_2=[1,323],$V$2=[1,324],$V03=[1,322],$V13=[1,320],$V23=[1,316],$V33=[1,319],$V43=[1,321],$V53=[1,318],$V63=[1,315],$V73=[1,317],$V83=[1,328],$V93=[1,330],$Va3=[1,334],$Vb3=[1,329],$Vc3=[1,331],$Vd3=[1,333],$Ve3=[1,332],$Vf3=[1,358],$Vg3=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,168,207,236,260,281,285,292,303,304,311,318,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,402,403,404,759,760,791],$Vh3=[2,901],$Vi3=[1,373],$Vj3=[1,374],$Vk3=[1,375],$Vl3=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,402],$Vm3=[1,386],$Vn3=[1,384],$Vo3=[1,385],$Vp3=[2,630],$Vq3=[1,389],$Vr3=[1,390],$Vs3=[1,398],$Vt3=[1,396],$Vu3=[1,397],$Vv3=[1,395],$Vw3=[1,399],$Vx3=[1,408],$Vy3=[1,435],$Vz3=[1,428],$VA3=[1,424],$VB3=[1,423],$VC3=[1,434],$VD3=[1,433],$VE3=[1,440],$VF3=[1,438],$VG3=[1,437],$VH3=[1,441],$VI3=[1,436],$VJ3=[1,409],$VK3=[1,446],$VL3=[1,445],$VM3=[178,193,222,262,342],$VN3=[1,459],$VO3=[1,460],$VP3=[1,461],$VQ3=[1,514],$VR3=[1,515],$VS3=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160],$VT3=[1,521],$VU3=[1,525],$VV3=[44,216],$VW3=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,164,181,195,201,296,337,402],$VX3=[105,121,132,146,156,178,181,193,196,201,210,222,229,262,296,337,342,1095],$VY3=[38,41,45,64,75,90,105,106,107,119,120,127,142,143,144,146,147,171,174,182,193,195,196,197,205,210,215,217,224,230,247,250,256,263,439,440],$VZ3=[267,273,348,577],$V_3=[6,10,347,399,951],$V$3=[2,662],$V04=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,184,188,203,206,212,231,242,244,258,264,265,266,267,269,273,274,275,286,294,307,308,309,310,311,313,317,318,320,322,324,325,326,328,330,333,335,338,339,347,348,351,352,394,398,399,402,445,452,543,577,653,660,759,816,827,859,897,899,901,951,1184],$V14=[1,554],$V24=[1,553],$V34=[1,552],$V44=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,164,167,168,170,175,176,180,183,184,188,189,194,203,206,207,208,209,212,213,231,233,239,242,244,246,249,250,251,254,258,264,265,266,267,269,273,274,275,281,282,283,285,286,287,288,289,290,293,294,297,299,300,301,302,305,307,308,309,310,311,312,313,314,316,317,318,319,320,321,322,323,324,325,326,328,330,331,332,333,334,335,336,338,339,340,341,343,344,345,347,348,349,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,403,445,452,543,571,577,653,660,665,759,816,827,859,897,899,901,951,969,1000,1184],$V54=[1,556],$V64=[1,555],$V74=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,164,167,168,170,175,176,180,183,184,188,189,194,203,204,206,207,208,209,212,213,231,233,239,242,244,246,249,250,251,254,258,264,265,266,267,269,273,274,275,281,282,283,285,286,287,288,289,290,293,294,297,299,300,301,302,305,307,308,309,310,311,312,313,314,316,317,318,319,320,321,322,323,324,325,326,328,330,331,332,333,334,335,336,338,339,340,341,343,344,345,347,348,349,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,403,445,452,543,571,577,653,660,665,759,816,827,859,897,899,901,946,951,969,1000,1184],$V84=[2,33],$V94=[2,111],$Va4=[2,152],$Vb4=[1,564],$Vc4=[1,566],$Vd4=[1,569],$Ve4=[1,568],$Vf4=[2,2772],$Vg4=[1,571],$Vh4=[307,324,394,827],$Vi4=[6,10,307,394,827],$Vj4=[2,691],$Vk4=[1,575],$Vl4=[307,324,394,398,827],$Vm4=[2,2811],$Vn4=[307,394],$Vo4=[207,281,387,395],$Vp4=[6,10,170,176,184,206,231,242,307,309,310,320,325,347,351,394,399,445,577,653,660,951,1184],$Vq4=[1,599],$Vr4=[1,600],$Vs4=[1,604],$Vt4=[1,601],$Vu4=[1,598],$Vv4=[1,605],$Vw4=[1,602],$Vx4=[1,606],$Vy4=[1,603],$Vz4=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,184,206,231,242,264,265,266,286,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,402,445,577,653,660,951,1184],$VA4=[6,10,170,176,184,206,231,242,264,265,266,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,445,577,653,660,951,1184],$VB4=[2,1372],$VC4=[352,577],$VD4=[2,1350],$VE4=[65,238],$VF4=[65,185,238],$VG4=[2,1458],$VH4=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,164,188,328,339,398,402],$VI4=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,168,207,236,281,285,292,303,304,311,318,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,402,403,404,759,760,791],$VJ4=[2,887],$VK4=[1,625],$VL4=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,168,207,236,260,281,285,292,303,304,311,318,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,392,395,396,397,398,399,402,403,404,577,759,760,791],$VM4=[307,394,398,577,1184,1186,1221],$VN4=[2,622],$VO4=[1,630],$VP4=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,164,311,402],$VQ4=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,311,402],$VR4=[188,250,328],$VS4=[2,655],$VT4=[2,1888],$VU4=[1,640],$VV4=[38,172,188,250,311,328,889],$VW4=[1,665],$VX4=[1,673],$VY4=[1,660],$VZ4=[1,670],$V_4=[1,668],$V$4=[1,672],$V05=[1,674],$V15=[1,671],$V25=[1,669],$V35=[1,663],$V45=[1,664],$V55=[1,666],$V65=[2,652],$V75=[1,680],$V85=[1,684],$V95=[1,685],$Va5=[2,1896],$Vb5=[188,328],$Vc5=[82,83],$Vd5=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,402,850],$Ve5=[291,398],$Vf5=[38,889],$Vg5=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,168,175,211,240,251,268,270,271,277,289,290,293,297,299,305,314,340,341,344,345,349,352,398,402,577,1034],$Vh5=[193,262,342],$Vi5=[1,731],$Vj5=[1,732],$Vk5=[6,10,324],$Vl5=[6,10,319,403],$Vm5=[2,659],$Vn5=[1,759],$Vo5=[6,10,319],$Vp5=[193,262,342,1095],$Vq5=[6,10,312,319,403],$Vr5=[2,932],$Vs5=[1,769],$Vt5=[6,10,1184],$Vu5=[2,2969],$Vv5=[1,773],$Vw5=[1,775],$Vx5=[1,777],$Vy5=[1,799],$Vz5=[1,809],$VA5=[1,798],$VB5=[1,788],$VC5=[1,786],$VD5=[1,828],$VE5=[1,797],$VF5=[1,803],$VG5=[1,800],$VH5=[1,782],$VI5=[1,793],$VJ5=[1,827],$VK5=[1,830],$VL5=[1,817],$VM5=[1,824],$VN5=[1,841],$VO5=[1,842],$VP5=[1,839],$VQ5=[1,840],$VR5=[1,825],$VS5=[1,847],$VT5=[1,850],$VU5=[1,851],$VV5=[1,831],$VW5=[1,832],$VX5=[1,833],$VY5=[1,834],$VZ5=[1,835],$V_5=[1,837],$V$5=[1,844],$V06=[1,845],$V16=[1,846],$V26=[1,829],$V36=[1,819],$V46=[1,836],$V56=[1,843],$V66=[1,838],$V76=[1,848],$V86=[1,849],$V96=[1,816],$Va6=[1,785],$Vb6=[1,784],$Vc6=[1,783],$Vd6=[1,787],$Ve6=[1,801],$Vf6=[1,802],$Vg6=[1,818],$Vh6=[6,10,170,176,184,206,231,242,309,310,320,325,347,351,399,445,577,653,660,951,1184],$Vi6=[6,10,170,176,184,206,231,242,309,310,320,325,347,351,394,399,445,577,653,660,951,1184],$Vj6=[1,857],$Vk6=[2,3001],$Vl6=[1,860],$Vm6=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,262,402],$Vn6=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,212,231,233,239,242,244,246,249,250,258,266,274,275,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,331,332,333,334,335,336,338,343,347,350,351,352,382,383,385,386,387,388,389,390,391,392,393,394,399,402,445,452,543,571,577,653,660,665,951,1184],$Vo6=[6,10,394],$Vp6=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,212,231,233,239,242,244,246,249,250,258,266,274,275,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,331,332,333,334,335,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,543,571,577,653,660,665,951,1184],$Vq6=[2,1210],$Vr6=[1,874],$Vs6=[1,887],$Vt6=[1,885],$Vu6=[1,886],$Vv6=[1,897],$Vw6=[1,896],$Vx6=[1,895],$Vy6=[1,894],$Vz6=[1,912],$VA6=[1,913],$VB6=[1,911],$VC6=[1,915],$VD6=[1,916],$VE6=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,398,402],$VF6=[2,1266],$VG6=[1,923],$VH6=[1,922],$VI6=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,273,279,398,402],$VJ6=[6,10,170,176,184,206,231,242,265,266,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,445,577,653,660,951,1184],$VK6=[2,1342],$VL6=[1,944],$VM6=[1,972],$VN6=[1,996],$VO6=[1,997],$VP6=[1,998],$VQ6=[1,999],$VR6=[1,1000],$VS6=[1,1001],$VT6=[1,1002],$VU6=[1,1003],$VV6=[1,1004],$VW6=[1,1006],$VX6=[1,1007],$VY6=[1,1008],$VZ6=[1,1009],$V_6=[1,1005],$V$6=[1,1011],$V07=[2,753],$V17=[1,1016],$V27=[31,66,84,88,94,108,123,211,240,268,270,271,277,1034],$V37=[6,10,352],$V47=[6,10,28,34,36,39,62,68,74,85,89,104,113,116,120,151,152,153,154,167,212,244,249,258,269,274,275,286,312,322,323,328,335,352,385,387,389,394,399,452,543,577,946,951],$V57=[2,1897],$V67=[1,1043],$V77=[6,10,36,39,74,89,113,116,120,167,212,244,258,269,274,275,286,319,328,335,398,452,543,951,969],$V87=[6,10,207],$V97=[6,10,170,176,206,242,310,320,325,347,399,653,660,951,1184],$Va7=[6,10,170,176,206,231,242,309,310,320,325,347,399,445,653,660,951,1184],$Vb7=[116,274,352,577],$Vc7=[2,2960],$Vd7=[1,1119],$Ve7=[1,1139],$Vf7=[1,1140],$Vg7=[1,1130],$Vh7=[1,1129],$Vi7=[1,1123],$Vj7=[1,1138],$Vk7=[1,1128],$Vl7=[1,1142],$Vm7=[1,1141],$Vn7=[1,1143],$Vo7=[1,1132],$Vp7=[1,1131],$Vq7=[1,1124],$Vr7=[1,1125],$Vs7=[1,1126],$Vt7=[1,1127],$Vu7=[1,1133],$Vv7=[1,1134],$Vw7=[1,1135],$Vx7=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,231,233,239,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,653,660,665,951,1184],$Vy7=[1,1154],$Vz7=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,231,233,239,242,246,249,250,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,571,577,653,660,665,951,1184],$VA7=[1,1156],$VB7=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,231,233,239,242,246,249,250,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,398,399,402,445,452,571,577,653,660,665,951,1184],$VC7=[1,1161],$VD7=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,207,209,231,233,239,242,246,249,250,266,281,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,445,452,571,577,653,660,665,951,1184],$VE7=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,231,233,239,242,246,249,250,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,327,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,571,577,653,660,665,951,1184],$VF7=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,168,170,175,176,183,184,188,194,206,207,209,231,233,239,242,246,249,250,251,266,281,283,285,286,287,288,289,290,293,294,297,299,300,301,302,305,307,308,309,310,312,313,314,316,317,318,319,320,321,322,323,325,326,328,331,332,333,334,336,338,339,340,341,343,344,345,347,349,350,351,352,385,386,387,388,389,390,391,392,393,394,395,398,399,402,445,452,571,577,653,660,665,859,951,1184],$VG7=[1,1169],$VH7=[1,1170],$VI7=[1,1191],$VJ7=[2,1211],$VK7=[1,1195],$VL7=[307,827],$VM7=[2,2839],$VN7=[1,1203],$VO7=[1,1202],$VP7=[6,10,352,394],$VQ7=[1,1209],$VR7=[6,10,242,320,347,394,399,653,660,951,1184],$VS7=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,286,951],$VT7=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,231,233,239,242,246,250,264,265,266,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,324,325,326,331,332,333,334,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,653,660,665,951,1184],$VU7=[6,10,351],$VV7=[1,1252],$VW7=[6,10,307,350,351,394],$VX7=[39,387,394,399,452],$VY7=[1,1257],$VZ7=[6,10,170,176,206,231,242,307,309,310,320,325,347,351,394,399,445,653,660,951,1184],$V_7=[6,10,188,207,281,328,395],$V$7=[6,10,188,212,328,543],$V08=[2,742],$V18=[1,1274],$V28=[1,1275],$V38=[6,10,39,74,120,167,212,244,275,286,352,452,543,577,951],$V48=[2,2393],$V58=[1,1290],$V68=[6,10,167,286,951],$V78=[1,1293],$V88=[6,10,93,394],$V98=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,188,194,204,206,209,212,214,220,225,231,233,235,239,242,243,244,245,246,248,249,250,257,258,266,269,274,275,278,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,321,322,323,325,326,328,331,332,333,334,335,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,543,571,577,653,660,665,946,951,1184],$Va8=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,212,231,233,239,242,244,246,249,250,258,266,269,274,275,283,286,287,288,294,300,301,302,307,308,309,310,312,313,316,317,318,319,320,322,323,325,326,328,331,332,333,334,335,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,452,543,571,577,653,660,665,946,951,1184],$Vb8=[1,1310],$Vc8=[394,399],$Vd8=[2,647],$Ve8=[1,1319],$Vf8=[1,1320],$Vg8=[2,2057],$Vh8=[1,1329],$Vi8=[1,1330],$Vj8=[39,120,167,286,452],$Vk8=[1,1340],$Vl8=[6,10,170,176,206,242,320,325,347,399,653,660,951,1184],$Vm8=[2,2334],$Vn8=[1,1388],$Vo8=[1,1389],$Vp8=[2,1224],$Vq8=[1,1394],$Vr8=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,231,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,322,325,326,331,333,336,338,343,347,350,351,352,385,386,394,399,402,445,571,577,653,660,665,951,1184],$Vs8=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,231,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,322,325,326,331,333,336,338,343,347,350,351,352,385,386,387,388,389,390,391,392,393,394,399,402,445,571,577,653,660,665,951,1184],$Vt8=[301,302,350],$Vu8=[1,1428],$Vv8=[1,1448],$Vw8=[1,1449],$Vx8=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,168,207,209,236,281,283,285,292,303,304,311,318,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,395,396,397,398,402,403,404,759,760,791],$Vy8=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,168,207,236,281,285,292,303,304,311,318,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,395,396,397,398,402,403,404,759,760,791],$Vz8=[1,1459],$VA8=[325,394,399],$VB8=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,184,188,203,206,212,231,242,244,258,264,265,266,267,269,273,274,275,281,286,294,307,308,309,310,311,313,317,318,320,322,324,325,326,328,330,333,335,338,339,347,348,351,352,394,398,399,402,445,452,543,577,653,660,759,816,827,859,897,899,901,951,1184],$VC8=[2,2833],$VD8=[1,1470],$VE8=[6,10,170,176,184,206,231,242,266,294,307,308,309,310,313,317,318,320,325,326,333,338,347,351,394,399,445,577,653,660,951,1184],$VF8=[2,1313],$VG8=[1,1487],$VH8=[1,1486],$VI8=[91,336],$VJ8=[6,10,212,543],$VK8=[1,1524],$VL8=[6,10,39,74,116,120,167,212,244,274,275,286,452,543,951],$VM8=[1,1534],$VN8=[1,1535],$VO8=[2,2369],$VP8=[1,1539],$VQ8=[1,1540],$VR8=[6,10,34,104],$VS8=[1,1574],$VT8=[1,1577],$VU8=[1,1587],$VV8=[1,1582],$VW8=[1,1567],$VX8=[1,1588],$VY8=[1,1583],$VZ8=[1,1584],$V_8=[1,1575],$V$8=[1,1585],$V09=[1,1570],$V19=[1,1571],$V29=[1,1579],$V39=[1,1578],$V49=[1,1573],$V59=[1,1572],$V69=[1,1569],$V79=[1,1586],$V89=[1,1568],$V99=[1,1576],$Va9=[1,1581],$Vb9=[1,1566],$Vc9=[1,1580],$Vd9=[403,404],$Ve9=[1,1621],$Vf9=[6,10,170,176,242,320,325,347,399,653,660,951,1184],$Vg9=[167,286],$Vh9=[2,600],$Vi9=[1,1649],$Vj9=[1,1652],$Vk9=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,231,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,322,325,326,331,333,336,338,343,347,350,351,352,385,386,387,388,389,390,394,399,402,445,571,577,653,660,665,951,1184],$Vl9=[6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,231,242,246,250,266,283,286,287,294,300,301,302,307,308,309,310,313,317,318,320,325,326,331,333,336,338,343,347,350,351,352,385,386,394,399,402,445,571,577,653,660,665,951,1184],$Vm9=[2,1408],$Vn9=[325,399],$Vo9=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,168,285,311,318,321,759,760],$Vp9=[6,10,80,169],$Vq9=[2,746],$Vr9=[1,1714],$Vs9=[1,1719],$Vt9=[1,1720],$Vu9=[1,1721],$Vv9=[1,1718],$Vw9=[1,1729],$Vx9=[2,2385],$Vy9=[1,1743],$Vz9=[1,1744],$VA9=[1,1746],$VB9=[1,1747],$VC9=[122,276],$VD9=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,207,281,304,323,346,382,383,391,395,403,404,686],$VE9=[6,10,28,34,62,104,394,399],$VF9=[1,1760],$VG9=[1,1758],$VH9=[1,1759],$VI9=[1,1757],$VJ9=[1,1764],$VK9=[1,1761],$VL9=[1,1762],$VM9=[6,10,28,34,39,62,104,151,152,153,154,249,322,323,389,394,399,452],$VN9=[6,10,28,34,39,62,74,104,151,152,153,154,244,249,280,322,323,389,394,399,452],$VO9=[2,818],$VP9=[1,1768],$VQ9=[6,10,34,36,39,74,89,104,113,116,120,167,212,244,258,269,274,275,286,328,335,452,543,951],$VR9=[6,10,36,39,74,89,113,116,120,167,212,244,258,269,274,275,286,328,335,452,543,951],$VS9=[6,10,255],$VT9=[280,394,399],$VU9=[1,1814],$VV9=[1,1815],$VW9=[1,1816],$VX9=[6,10,170,176,242,320,347,399,653,660,951,1184],$VY9=[1,1820],$VZ9=[6,10,170,176,183,206,242,310,320,325,347,352,394,399,653,660,951,1184],$V_9=[6,10,37,39,72,74,116,120,167,212,243,244,274,275,286,321,323,352,452,543,577,951],$V$9=[6,10,350],$V0a=[6,10,80],$V1a=[207,281,304,346,348,382,383,395,403,404],$V2a=[6,10,28,34,39,62,104,151,152,153,154,249,322,323,394,399,452],$V3a=[6,10,36,74,113,116,120,167,212,244,258,274,275,286,335,543,951],$V4a=[6,10,242,320,347,399,660,951,1184],$V5a=[1,1955],$V6a=[6,10,39,72,74,116,120,167,212,243,244,274,275,286,321,323,352,452,543,577,951],$V7a=[1,1981],$V8a=[1,1980],$V9a=[1,1988],$Vaa=[389,394],$Vba=[6,10,74,113,116,120,167,212,244,274,275,286,335,543,951],$Vca=[2,992],$Vda=[1,2025],$Vea=[1,2024],$Vfa=[1,2026],$Vga=[1,2027],$Vha=[6,10,36,74,113,116,120,167,212,244,274,275,286,335,543,951],$Via=[6,10,347,399,660,951,1184],$Vja=[6,10,39,72,74,116,120,167,212,243,244,274,275,286,323,352,452,543,577,951],$Vka=[288,782],$Vla=[288,398,782],$Vma=[25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,402],$Vna=[6,10,170,176,242,246,250,320,331,336,347,394,399,653,660,951,1184],$Voa=[6,10,39,68,74,116,120,244,274,275,312,335,452],$Vpa=[6,10,347,399,951,1184],$Vqa=[6,10,170,176,242,250,320,331,336,347,394,399,653,660,951,1184],$Vra=[2,953],$Vsa=[1,2122],$Vta=[6,10,39,74,116,120,167,212,244,274,275,286,323,352,452,543,577,951],$Vua=[143,174,295,382,385,399,782],$Vva=[2,1457],$Vwa=[6,10,74,116,120,167,212,244,274,275,286,335,543,951],$Vxa=[6,10,39,74,116,120,244,274,275,312,335,452],$Vya=[6,10,242,320,347,394,399,660,951,1184],$Vza=[1,2164],$VAa=[6,10,39,74,116,120,167,212,244,274,275,286,352,452,543,577,951],$VBa=[385,399],$VCa=[2,1467],$VDa=[1,2179],$VEa=[1,2178],$VFa=[1,2177],$VGa=[1,2175],$VHa=[1,2176],$VIa=[2,2321],$VJa=[1,2190],$VKa=[1,2189],$VLa=[6,10,39,74,116,120,244,274,275,335,452],$VMa=[6,10,214,225,235,257],$VNa=[1,2214],$VOa=[2,1477],$VPa=[306,329],$VQa=[6,10,399],$VRa=[6,10,39,74,120,167,212,244,275,286,452,543,951],$VSa=[1,2229],$VTa=[1,2230],$VUa=[6,10,225,235,257],$VVa=[2,2399],$VWa=[49,109,219],$VXa=[6,10,225,235],$VYa=[6,10,39,167,212,286,452,543,951],$VZa=[1,2272],$V_a=[1,2279],$V$a=[1,2280],$V0b=[6,10,235],$V1b=[6,10,951],$V2b=[2,2284],$V3b=[2,2285]; -var parser = {trace: function trace () { }, -yy: {}, -symbols_: {"error":2,"SqlSyntax":3,"NewStatement":4,"SqlStatements":5,"EOF":6,"SqlAutocomplete":7,"SqlStatements_EDIT":8,"SqlStatement":9,";":10,"SqlStatement_EDIT":11,"DataDefinition":12,"DataManipulation":13,"QuerySpecification":14,"ExplainClause":15,"AnyCursor":16,"CommonTableExpression":17,"CURSOR":18,"ExplainClause_EDIT":19,"DataDefinition_EDIT":20,"DataManipulation_EDIT":21,"QuerySpecification_EDIT":22,"SetSpecification_EDIT":23,"NonReservedKeyword":24,"ABORT":25,"ADD":26,"ADMIN":27,"AFTER":28,"ANALYZE":29,"ARCHIVE":30,"AVRO":31,"BUCKET":32,"BUCKETS":33,"CASCADE":34,"CHANGE":35,"CLUSTERED":36,"COLLECTION":37,"COLUMNS":38,"COMMENT":39,"COMPACT":40,"COMPACTIONS":41,"COMPUTE":42,"CONCATENATE":43,"DATA":44,"DATABASES":45,"DBPROPERTIES":46,"DEFERRED":47,"DEFINED":48,"DELIMITED":49,"DEPENDENCY":50,"DIRECTORY":51,"DISABLE":52,"DOUBLE_PRECISION":53,"ENABLE":54,"ESCAPED":55,"EXCHANGE":56,"EXPLAIN":57,"EXPORT":58,"FIELDS":59,"FILE":60,"FILEFORMAT":61,"FIRST":62,"FORMAT":63,"FUNCTIONS":64,"INPATH":65,"INPUTFORMAT":66,"JAR":67,"IDXPROPERTIES":68,"ITEMS":69,"KEY":70,"KEYS":71,"LINES":72,"LOAD":73,"LOCATION":74,"LOCKS":75,"MATCHED":76,"METADATA":77,"MERGE":78,"MSCK":79,"NOSCAN":80,"NOVALIDATE":81,"NO_DROP":82,"OFFLINE":83,"ORC":84,"OUTPUTFORMAT":85,"OVERWRITE":86,"OWNER":87,"PARQUET":88,"PARTITIONED":89,"PARTITIONS":90,"PERCENT":91,"PRIVILEGES":92,"PURGE":93,"RCFILE":94,"REBUILD":95,"RELOAD":96,"RELY":97,"NORELY":98,"REPAIR":99,"REPLICATION":100,"RECOVER":101,"RENAME":102,"REPLACE":103,"RESTRICT":104,"ROLE":105,"ROLES":106,"SCHEMAS":107,"SEQUENCEFILE":108,"SERDE":109,"SERDEPROPERTIES":110,"SETS":111,"SHOW":112,"SKEWED":113,"SORTED":114,"STATISTICS":115,"STORED":116,"STRING":117,"STRUCT":118,"TABLES":119,"TBLPROPERTIES":120,"TEMPORARY":121,"TERMINATED":122,"TEXTFILE":123,"TIMESTAMP":124,"TINYINT":125,"TOUCH":126,"TRANSACTIONS":127,"UNARCHIVE":128,"UNIONTYPE":129,"USE":130,"USER":131,"VIEW":132,"WAIT":133,"DAY":134,"HOUR":135,"MINUTE":136,"MONTH":137,"QUARTER":138,"SECOND":139,"WEEK":140,"YEAR":141,"ANALYTIC":142,"CURRENT":143,"GRANT":144,"RECOVER":145,"ROLE":146,"ROLES":147,"URI":148,"SERVER":149,"UNKNOWN":150,"BLOCK_SIZE":151,"COMPRESSION":152,"DEFAULT":153,"ENCODING":154,"KEY":155,"ROLE":156,"OPTION":157,"RegularIdentifier":158,"REGULAR_IDENTIFIER":159,"VARIABLE_REFERENCE":160,"OptionalHiveExplainTypes":161,"EXPLAIN":162,"AUTHORIZATION":163,"EXTENDED":164,"NonStartingToken":165,"ALL":166,"AS":167,"BINARY":168,"CACHE":169,"CLUSTER":170,"CONF":171,"CONSTRAINT":172,"CUBE":173,"CURRENT":174,"DATE":175,"DISTRIBUTE":176,"DISTRIBUTED":177,"EXTERNAL":178,"FOR":179,"FOREIGN":180,"FUNCTION":181,"GRANT":182,"GROUPING":183,"LATERAL":184,"LOCAL":185,"LOCK":186,"MACRO":187,"PARTITION":188,"PRIMARY":189,"REFERENCES":190,"ROLLUP":191,"SHOW_DATABASE":192,"TABLE":193,"ASC":194,"FORMATTED":195,"INDEX":196,"INDEXES":197,"NONE":198,"OF":199,"OUT":200,"SCHEMA":201,"STORED_AS_DIRECTORIES":202,"TABLESAMPLE":203,"USING":204,"VIEWS":205,"WINDOW":206,".":207,"[":208,"]":209,"AGGREGATE":210,"AVRO":211,"CACHED":212,"CASCADE":213,"CLOSE_FN":214,"COLUMN":215,"DATA":216,"DATABASES":217,"DELETE":218,"DELIMITED":219,"ESCAPED":220,"EXTENDED":221,"EXTERNAL":222,"FIELDS":223,"FILES":224,"FINALIZE_FN":225,"FIRST":226,"FORMAT":227,"FORMATTED":228,"FUNCTION":229,"FUNCTIONS":230,"GROUP":231,"HASH":232,"ILIKE":233,"INCREMENTAL":234,"INTERMEDIATE":235,"INTERVAL":236,"INIT_FN":237,"INPATH":238,"IREGEXP":239,"KUDU":240,"LAST":241,"LIMIT":242,"LINES":243,"LOCATION":244,"MERGE_FN":245,"NULLS":246,"PARTITIONS":247,"PREPARE_FN":248,"PRIMARY":249,"RANGE":250,"REAL":251,"REPEATABLE":252,"REPLICATION":253,"RESTRICT":254,"RETURNS":255,"SCHEMAS":256,"SERIALIZE_FN":257,"SORT":258,"STATS":259,"STRAIGHT_JOIN":260,"SYMBOL":261,"TABLE":262,"TABLES":263,"TABLESAMPLE":264,"USING":265,"ANTI":266,"NOSHUFFLE":267,"PARQUET":268,"PARTITIONED":269,"RCFILE":270,"SEQUENCEFILE":271,"SERDEPROPERTIES":272,"SHUFFLE":273,"STORED":274,"TBLPROPERTIES":275,"TERMINATED":276,"TEXTFILE":277,"UPDATE_FN":278,"BROADCAST":279,"...":280,".":281,"[":282,"]":283,"ALL":284,"ARRAY":285,"AS":286,"ASC":287,"BETWEEN":288,"BIGINT":289,"BOOLEAN":290,"BY":291,"CASE":292,"CHAR":293,"CROSS":294,"CURRENT":295,"DATABASE":296,"DECIMAL":297,"DISTINCT":298,"DOUBLE":299,"DESC":300,"ELSE":301,"END":302,"EXISTS":303,"FALSE":304,"FLOAT":305,"FOLLOWING":306,"FROM":307,"FULL":308,"GROUP":309,"HAVING":310,"IF":311,"IN":312,"INNER":313,"INT":314,"INTO":315,"IS":316,"JOIN":317,"LEFT":318,"LIKE":319,"LIMIT":320,"MAP":321,"NOT":322,"NULL":323,"ON":324,"ORDER":325,"OUTER":326,"OVER":327,"PARTITION":328,"PRECEDING":329,"PURGE":330,"RANGE":331,"REGEXP":332,"RIGHT":333,"RLIKE":334,"ROW":335,"ROWS":336,"SCHEMA":337,"SEMI":338,"SET":339,"SMALLINT":340,"STRING":341,"TABLE":342,"THEN":343,"TIMESTAMP":344,"TINYINT":345,"TRUE":346,"UNION":347,"VALUES":348,"VARCHAR":349,"WHEN":350,"WHERE":351,"WITH":352,"AVG":353,"CAST":354,"COUNT":355,"MAX":356,"MIN":357,"STDDEV_POP":358,"STDDEV_SAMP":359,"SUM":360,"VARIANCE":361,"VAR_POP":362,"VAR_SAMP":363,"COLLECT_SET":364,"COLLECT_LIST":365,"CORR":366,"COVAR_POP":367,"COVAR_SAMP":368,"DAYOFWEEK":369,"HISTOGRAM_NUMERIC":370,"NTILE":371,"PERCENTILE":372,"PERCENTILE_APPROX":373,"APPX_MEDIAN":374,"EXTRACT":375,"GROUP_CONCAT":376,"NDV":377,"STDDEV":378,"VARIANCE_POP":379,"VARIANCE_SAMP":380,"ANALYTIC":381,"UNSIGNED_INTEGER":382,"UNSIGNED_INTEGER_E":383,"HDFS_START_QUOTE":384,"AND":385,"OR":386,"=":387,"<":388,">":389,"COMPARISON_OPERATOR":390,"-":391,"*":392,"ARITHMETIC_OPERATOR":393,",":394,".":395,"~":396,"!":397,"(":398,")":399,"[":400,"]":401,"BACKTICK":402,"SINGLE_QUOTE":403,"DOUBLE_QUOTE":404,"DescribeStatement":405,"AlterStatement":406,"AnalyzeStatement":407,"RefreshStatement":408,"InvalidateStatement":409,"ComputeStatsStatement":410,"CreateStatement":411,"DropStatement":412,"HiveAbortStatement":413,"GrantStatement":414,"RevokeStatement":415,"SetRoleStatement":416,"SetSpecification":417,"ShowStatement":418,"UseStatement":419,"DescribeStatement_EDIT":420,"AlterStatement_EDIT":421,"AnalyzeStatement_EDIT":422,"RefreshStatement_EDIT":423,"InvalidateStatement_EDIT":424,"ComputeStatsStatement_EDIT":425,"CreateStatement_EDIT":426,"DropStatement_EDIT":427,"HiveAbortStatement_EDIT":428,"GrantStatement_EDIT":429,"RevokeStatement_EDIT":430,"SetRoleStatement_EDIT":431,"ShowStatement_EDIT":432,"UseStatement_EDIT":433,"AggregateOrAnalytic":434,"Commas":435,"AnyAs":436,"AnyCreate":437,"CREATE":438,"CREATE":439,"CREATE":440,"PARTIAL_CURSOR":441,"AnyDot":442,"AnyFromOrIn":443,"AnyGroup":444,"GROUP":445,"AnyPartition":446,"AnyTable":447,"DatabaseOrSchema":448,"FromOrIn":449,"HiveIndexOrIndexes":450,"HiveOrImpalaComment":451,"COMMENT":452,"HiveOrImpalaCreate":453,"HiveOrImpalaDatabasesOrSchemas":454,"HiveOrImpalaEscaped":455,"HiveOrImpalaFields":456,"HiveOrImpalaFormat":457,"HiveOrImpalaLeftSquareBracket":458,"HiveOrImpalaLines":459,"HiveOrImpalaLocation":460,"HiveOrImpalaRightSquareBracket":461,"HiveOrImpalaPartitioned":462,"HiveOrImpalaStored":463,"HiveOrImpalaTables":464,"HiveOrImpalaTblproperties":465,"HiveOrImpalaTerminated":466,"HiveRoleOrUser":467,"SingleQuotedValue":468,"VALUE":469,"SingleQuotedValue_EDIT":470,"PARTIAL_VALUE":471,"DoubleQuotedValue":472,"DoubleQuotedValue_EDIT":473,"QuotedValue":474,"QuotedValue_EDIT":475,"OptionalAggregateOrAnalytic":476,"OptionalHiveExtended":477,"OptionalHiveExtendedOrFormatted":478,"OptionalExternal":479,"OptionalImpalaExtendedOrFormatted":480,"OptionallyFormattedIndex":481,"OptionallyFormattedIndex_EDIT":482,"OptionalFromDatabase":483,"DatabaseIdentifier":484,"OptionalFromDatabase_EDIT":485,"DatabaseIdentifier_EDIT":486,"OptionalCascade":487,"OptionalCascadeOrRestrict":488,"OptionalHiveCascadeOrRestrict":489,"OptionalHiveTemporary":490,"OptionalIfExists":491,"OptionalIfExists_EDIT":492,"OptionalIfNotExists":493,"OptionalIfNotExists_EDIT":494,"OptionalInDatabase":495,"OptionalPartitionSpec":496,"PartitionSpec":497,"OptionalPartitionSpec_EDIT":498,"PartitionSpec_EDIT":499,"PartitionSpecList":500,"PartitionSpecList_EDIT":501,"RightParenthesisOrError":502,"RangePartitionSpec":503,"UnsignedValueSpecification":504,"RangePartitionComparisonOperator":505,"RangePartitionSpec_EDIT":506,"ConfigurationName":507,"PartialBacktickedOrAnyCursor":508,"PartialBacktickedIdentifier":509,"PartialBacktickedOrCursor":510,"PartialBacktickedOrPartialCursor":511,"OptionalParenthesizedColumnList":512,"ParenthesizedColumnList":513,"OptionalParenthesizedColumnList_EDIT":514,"ParenthesizedColumnList_EDIT":515,"ColumnList":516,"ColumnList_EDIT":517,"ColumnIdentifier":518,"ColumnIdentifier_EDIT":519,"ParenthesizedSimpleValueList":520,"SimpleValueList":521,"SchemaQualifiedTableIdentifier":522,"RegularOrBacktickedIdentifier":523,"ImpalaFields":524,"SchemaQualifiedTableIdentifier_EDIT":525,"ImpalaFields_EDIT":526,"ImpalaField":527,"ImpalaField_EDIT":528,"SchemaQualifiedIdentifier":529,"SchemaQualifiedIdentifier_EDIT":530,"PartitionExpression":531,"PartitionExpression_EDIT":532,"ValueExpression":533,"ValueExpression_EDIT":534,"OptionalHdfsLocation":535,"HdfsLocation":536,"HdfsPath":537,"HdfsLocation_EDIT":538,"HdfsPath_EDIT":539,"OptionalCachedInOrUncached":540,"CachedIn":541,"OptionalWithReplication":542,"UNCACHED":543,"OptionalCachedIn":544,"CachedIn_EDIT":545,"WithReplication":546,"SignedInteger":547,"WithReplication_EDIT":548,"RegularOrBackTickedSchemaQualifiedName":549,"RegularOrBackTickedSchemaQualifiedName_EDIT":550,"LocalOrSchemaQualifiedName":551,"LocalOrSchemaQualifiedName_EDIT":552,"ColumnReference":553,"BasicIdentifierChain":554,"ColumnReference_EDIT":555,"BasicIdentifierChain_EDIT":556,"DerivedColumnChain":557,"DerivedColumnChain_EDIT":558,"PartialBacktickedIdentifierOrPartialCursor":559,"HiveOrImpalaRightSquareBracketOrError":560,"PrimitiveType":561,"OptionalTypePrecision":562,"OptionalTypeLength":563,"HiveDescribeStatement":564,"ImpalaDescribeStatement":565,"HiveDescribeStatement_EDIT":566,"ImpalaDescribeStatement_EDIT":567,"HiveDesc":568,"DESCRIBE":569,"DESCRIBE":570,"DESC":571,"SelectStatement":572,"OptionalUnions":573,"SelectStatement_EDIT":574,"OptionalUnions_EDIT":575,"CommonTableExpression_EDIT":576,"SELECT":577,"OptionalAllOrDistinct":578,"OptionalStraightJoin":579,"SelectList":580,"TableExpression":581,"Unions":582,"Unions_EDIT":583,"UnionClause":584,"UnionClause_EDIT":585,"SelectList_EDIT":586,"TableExpression_EDIT":587,"WithQueries":588,"WithQueries_EDIT":589,"WithQuery":590,"WithQuery_EDIT":591,"TableSubQueryInner":592,"TableSubQueryInner_EDIT":593,"FromClause":594,"OptionalSelectConditions":595,"FromClause_EDIT":596,"OptionalJoins":597,"OptionalSelectConditions_EDIT":598,"Joins":599,"Joins_INVALID":600,"TableReferenceList":601,"OptionalLateralViews":602,"TableReferenceList_EDIT":603,"OptionalLateralViews_EDIT":604,"OptionalWhereClause":605,"OptionalGroupByClause":606,"OptionalHavingClause":607,"OptionalWindowClause":608,"OptionalOrderByClause":609,"OptionalClusterOrDistributeBy":610,"OptionalLimitClause":611,"OptionalOffsetClause":612,"WhereClause_EDIT":613,"GroupByClause_EDIT":614,"HavingClause_EDIT":615,"WindowClause_EDIT":616,"OrderByClause_EDIT":617,"ClusterOrDistributeBy_EDIT":618,"LimitClause_EDIT":619,"OffsetClause_EDIT":620,"WhereClause":621,"GroupByClause":622,"HavingClause":623,"WindowClause":624,"OrderByClause":625,"ClusterOrDistributeBy":626,"LimitClause":627,"SearchCondition":628,"SearchCondition_EDIT":629,"GroupByColumnList":630,"OptionalHiveGroupingSetsCubeOrRollup":631,"GroupByColumnList_EDIT":632,"OptionalHiveGroupingSetsCubeOrRollup_EDIT":633,"HiveGroupingSets":634,"HiveGroupingSets_EDIT":635,"ColumnGroupingSets":636,"ColumnGroupingSets_EDIT":637,"ColumnGroupingSet_EDIT":638,"GroupByColumnListPartTwo_EDIT":639,"OrderByColumnList":640,"OrderByColumnList_EDIT":641,"OrderByIdentifier":642,"OrderByIdentifier_EDIT":643,"OptionalAscOrDesc":644,"OptionalImpalaNullsFirstOrLast":645,"OptionalImpalaNullsFirstOrLast_EDIT":646,"ClusterByClause":647,"DistributeByClause":648,"SortByClause":649,"ClusterByClause_EDIT":650,"DistributeByClause_EDIT":651,"SortByClause_EDIT":652,"SORT":653,"SortByList":654,"SortByList_EDIT":655,"SortByIdentifier":656,"SortByIdentifier_EDIT":657,"UnsignedNumericLiteral":658,"OffsetClause":659,"OFFSET":660,"NonParenthesizedValueExpressionPrimary":661,"OptionalNot":662,"TableSubQuery":663,"ValueExpressionList":664,"BETWEEN_AND":665,"LikeRightPart":666,"CaseRightPart":667,"NonParenthesizedValueExpressionPrimary_EDIT":668,"TableSubQuery_EDIT":669,"ValueExpressionInSecondPart_EDIT":670,"LikeRightPart_EDIT":671,"CaseRightPart_EDIT":672,"EndOrError":673,"ValueExpressionList_EDIT":674,"InValueList":675,"ColumnOrArbitraryFunctionRef":676,"ArbitraryFunctionRightPart":677,"ArbitraryFunctionName":678,"UserDefinedFunction":679,"ImpalaInterval":680,"UnsignedValueSpecification_EDIT":681,"ColumnOrArbitraryFunctionRef_EDIT":682,"ArbitraryFunctionRightPart_EDIT":683,"UserDefinedFunction_EDIT":684,"ImpalaInterval_EDIT":685,"+":686,"UnsignedLiteral":687,"UnsignedLiteral_EDIT":688,"GeneralLiteral":689,"GeneralLiteral_EDIT":690,"ExactNumericLiteral":691,"ApproximateNumericLiteral":692,"TruthValue":693,"SelectSpecification":694,"OptionalCorrelationName":695,"SelectSpecification_EDIT":696,"OptionalCorrelationName_EDIT":697,"TableReference":698,"TableReference_EDIT":699,"TablePrimaryOrJoinedTable":700,"TablePrimaryOrJoinedTable_EDIT":701,"TablePrimary":702,"JoinedTable":703,"TablePrimary_EDIT":704,"JoinedTable_EDIT":705,"Joins_EDIT":706,"JoinType":707,"OptionalImpalaBroadcastOrShuffle":708,"OptionalJoinCondition":709,"Join_EDIT":710,"JoinType_EDIT":711,"JoinCondition_EDIT":712,"UsingColList":713,"TableOrQueryName":714,"OptionalHiveTableSample":715,"OptionalImpalaTableSample":716,"DerivedTable":717,"TableOrQueryName_EDIT":718,"OptionalHiveTableSample_EDIT":719,"OptionalImpalaTableSample_EDIT":720,"DerivedTable_EDIT":721,"OptionalOnColumn":722,"OptionalOnColumn_EDIT":723,"SYSTEM":724,"PushQueryState":725,"PopQueryState":726,"SubQuery":727,"SubQuery_EDIT":728,"QueryExpression":729,"QueryExpression_EDIT":730,"QueryExpressionBody":731,"QueryExpressionBody_EDIT":732,"NonJoinQueryExpression":733,"NonJoinQueryExpression_EDIT":734,"NonJoinQueryTerm":735,"NonJoinQueryTerm_EDIT":736,"NonJoinQueryPrimary":737,"NonJoinQueryPrimary_EDIT":738,"SimpleTable":739,"SimpleTable_EDIT":740,"LateralView":741,"LateralView_EDIT":742,"AggregateFunction":743,"OptionalOverClause":744,"AnalyticFunction":745,"OverClause":746,"CastFunction":747,"HiveExtractFunction":748,"ImpalaExtractFunction":749,"AggregateFunction_EDIT":750,"OptionalOverClause_EDIT":751,"AnalyticFunction_EDIT":752,"OverClause_EDIT":753,"CastFunction_EDIT":754,"HiveExtractFunction_EDIT":755,"ImpalaExtractFunction_EDIT":756,"ArbitraryFunction":757,"ArbitraryFunction_EDIT":758,"REPLACE":759,"TRUNCATE":760,"OptionalFunctionSquareBracket":761,"CountFunction":762,"SumFunction":763,"OtherAggregateFunction":764,"CountFunction_EDIT":765,"SumFunction_EDIT":766,"OtherAggregateFunction_EDIT":767,"WindowExpression":768,"WindowExpression_EDIT":769,"OptionalPartitionBy":770,"OptionalOrderByAndWindow":771,"PartitionBy_EDIT":772,"OptionalOrderByAndWindow_EDIT":773,"PartitionBy":774,"OptionalWindowSpec":775,"WindowSpec_EDIT":776,"WindowSpec":777,"RowsOrRange":778,"PopLexerState":779,"OptionalCurrentOrPreceding":780,"OptionalAndFollowing":781,"UNBOUNDED":782,"OptionalCurrentOrPreceding_EDIT":783,"OptionalAndFollowing_EDIT":784,"PushHdfsLexerState":785,"HDFS_PATH":786,"HDFS_END_QUOTE":787,"AnyRange":788,"IntegerOrUnbounded":789,"AnyCurrent":790,"EXTRACT":791,"HiveDateField":792,"OtherAggregateFunction_Type":793,"FromOrComma":794,"OptionalOuter":795,"LateralViewColumnAliases":796,"LateralViewColumnAliases_EDIT":797,"CaseWhenThenList":798,"CaseWhenThenList_EDIT":799,"CaseWhenThenListPartTwo":800,"CaseWhenThenListPartTwo_EDIT":801,"AlterDatabase":802,"AlterIndex":803,"AlterTable":804,"AlterView":805,"Msck":806,"ReloadFunction":807,"CommentOn":808,"AlterDatabase_EDIT":809,"AlterIndex_EDIT":810,"AlterTable_EDIT":811,"AlterView_EDIT":812,"Msck_EDIT":813,"ReloadFunction_EDIT":814,"CommentOn_EDIT":815,"ALTER":816,"ParenthesizedPropertyAssignmentList":817,"PrincipalSpecification":818,"PrincipalSpecification_EDIT":819,"AlterTableLeftSide":820,"AnyAdd":821,"OptionalPartitionSpecs":822,"PARTITION_VALUE":823,"HivePrimaryKeySpecification":824,"HiveForeignKeySpecification":825,"AnyRename":826,"TO":827,"HiveSpecificOperations":828,"ImpalaSpecificOperations":829,"DropOperations":830,"OptionalPartitionOperations":831,"AlterTableLeftSide_EDIT":832,"AnyReplace":833,"OptionalPartitionSpecs_EDIT":834,"HivePrimaryKeySpecification_EDIT":835,"HiveForeignKeySpecification_EDIT":836,"HiveSpecificOperations_EDIT":837,"ImpalaSpecificOperations_EDIT":838,"OptionalPartitionOperations_EDIT":839,"DropOperations_EDIT":840,"AddOrReplace":841,"ClusteredBy":842,"ParenthesizedSkewedValueList":843,"OptionalStoredAsDirectories":844,"HiveExchange":845,"HiveArchiveOrUnArchive":846,"SKEWED_LOCATION":847,"ParenthesizedSkewedLocationList":848,"AnyChange":849,"COLUMN":850,"ParenthesizedColumnSpecificationList":851,"ClusteredBy_EDIT":852,"HiveExchange_EDIT":853,"ParenthesizedSkewedLocationList_EDIT":854,"OptionalStoredAsDirectories_EDIT":855,"OptionalImpalaColumn":856,"KuduStorageAttribute":857,"SetValue":858,"DROP":859,"ParenthesizedStatsList":860,"ParenthesizedStatsList_EDIT":861,"StatsList":862,"StatsList_EDIT":863,"StatsAssignment":864,"StatsAssignment_EDIT":865,"AnyFileFormat":866,"FileFormat":867,"OptionalWithSerdeproperties":868,"HiveOrImpalaSerdeproperties":869,"ImpalaRowFormat":870,"AddReplaceColumns":871,"OptionalAndWait":872,"OptionalWithOverwriteTblProperties":873,"HiveEnableOrDisable":874,"HiveNoDropOrOffline":875,"OptionalHiveColumn":876,"ColumnSpecification":877,"OptionalHiveFirstOrAfter":878,"AddReplaceColumns_EDIT":879,"ColumnSpecification_EDIT":880,"OptionalHiveFirstOrAfter_EDIT":881,"AndWait_EDIT":882,"WithOverwriteTblProperties_EDIT":883,"HiveNoDropOrOffline_EDIT":884,"ImpalaRowFormat_EDIT":885,"WithSerdeproperties_EDIT":886,"AnyColumns":887,"ParenthesizedColumnSpecificationList_EDIT":888,"COLUMNS":889,"ExchangePartitionSpec":890,"ExchangePartitionSpec_EDIT":891,"OneOrMorePartitionSpecLists":892,"OneOrMorePartitionSpecLists_EDIT":893,"OneOrMorePartitionSpecs":894,"OptionalHivePurge":895,"OneOrMorePartitionSpecs_EDIT":896,"CHANGE":897,"FILEFORMAT":898,"ADD":899,"HiveAfterOrFirst":900,"RENAME":901,"PartitionSpecWithLocationList":902,"PartitionSpecWithLocation":903,"PartitionSpecWithLocation_EDIT":904,"SkewedLocationList":905,"SkewedLocationList_EDIT":906,"SkewedLocation":907,"SkewedLocation_EDIT":908,"ColumnReferences":909,"AlterViewLeftSide":910,"AlterViewLeftSide_EDIT":911,"AnyView":912,"NullableComment":913,"OptionalForColumns":914,"OptionalCacheMetadata":915,"OptionalNoscan":916,"ForColumns":917,"CacheMetadata":918,"ForColumns_EDIT":919,"CacheMetadata_EDIT":920,"REFRESH":921,"INVALIDATE":922,"METADATA":923,"COMPUTE":924,"DatabaseDefinition":925,"TableDefinition":926,"ViewDefinition":927,"RoleDefinition":928,"FunctionDefinition":929,"IndexDefinition":930,"MacroDefinition":931,"DatabaseDefinition_EDIT":932,"TableDefinition_EDIT":933,"ViewDefinition_EDIT":934,"FunctionDefinition_EDIT":935,"IndexDefinition_EDIT":936,"MacroDefinition_EDIT":937,"DatabaseDefinitionOptionals":938,"OptionalComment":939,"OptionalHiveDbProperties":940,"DatabaseDefinitionOptionals_EDIT":941,"OptionalComment_INVALID":942,"Comment":943,"Comment_INVALID":944,"HiveDbProperties":945,"WITH":946,"PropertyAssignmentList":947,"PropertyAssignment":948,"TableDefinitionRightPart":949,"LifeCyclePart":950,"LIFECYCLE":951,"TableDefinitionRightPart_EDIT":952,"TableIdentifierAndOptionalColumnSpecification":953,"OptionalPartitionedBy":954,"OptionalSortBy":955,"OptionalClusteredBy":956,"OptionalSkewedBy":957,"OptionalStoredAsOrBy":958,"OptionalTblproperties":959,"OptionalAsSelectStatement":960,"TableIdentifierAndOptionalColumnSpecification_EDIT":961,"PartitionedBy_EDIT":962,"SortBy_EDIT":963,"SkewedBy_EDIT":964,"StoredAsOrBy_EDIT":965,"OptionalAsSelectStatement_EDIT":966,"OptionalColumnSpecificationsOrLike":967,"OptionalColumnSpecificationsOrLike_EDIT":968,"LIKE_PARQUET":969,"ColumnSpecificationList":970,"ConstraintSpecification":971,"ColumnSpecificationList_EDIT":972,"ConstraintSpecification_EDIT":973,"ColumnDataType":974,"OptionalColumnOptions":975,"ColumnDataType_EDIT":976,"ColumnOptions_EDIT":977,"ColumnOptions":978,"ColumnOption":979,"ColumnOption_EDIT":980,"ImpalaPrimaryKey":981,"ImpalaPrimaryKey_EDIT":982,"ArrayType":983,"MapType":984,"StructType":985,"UnionType":986,"ArrayType_INVALID":987,"MapType_INVALID":988,"StructType_INVALID":989,"UnionType_INVALID":990,"ArrayType_EDIT":991,"MapType_EDIT":992,"StructType_EDIT":993,"UnionType_EDIT":994,"GreaterThanOrError":995,"StructDefinitionList":996,"StructDefinitionList_EDIT":997,"StructDefinition":998,"StructDefinition_EDIT":999,":":1000,"ColumnDataTypeList":1001,"ColumnDataTypeList_EDIT":1002,"ColumnDataTypeListInner_EDIT":1003,"ImpalaPrimaryKeySpecification":1004,"ImpalaPrimaryKeySpecification_EDIT":1005,"HivePrimaryKey":1006,"HivePrimaryKey_EDIT":1007,"OptionalRelyNoRely":1008,"PartitionedBy":1009,"ParenthesizedPartitionValuesList":1010,"ParenthesizedPartitionValuesList_EDIT":1011,"SortBy":1012,"PartitionValueList":1013,"PartitionValueList_EDIT":1014,"PartitionValue":1015,"PartitionValue_EDIT":1016,"LessThanOrEqualTo":1017,"OptionalHiveSortedBy":1018,"OptionalHiveSortedBy_EDIT":1019,"ParenthesizedSortList":1020,"ParenthesizedSortList_EDIT":1021,"SortList":1022,"SortList_EDIT":1023,"SortIdentifier":1024,"SortIdentifier_EDIT":1025,"SkewedBy":1026,"SkewedValueList":1027,"StoredAsOrBy":1028,"StoredAs":1029,"HiveOrImpalaRowFormat":1030,"OptionalStoredAs":1031,"StoredAs_EDIT":1032,"HiveOrImpalaRowFormat_EDIT":1033,"ORC":1034,"HiveRowFormat":1035,"HiveRowFormat_EDIT":1036,"HiveDelimitedRowFormat":1037,"HiveDelimitedRowFormat_EDIT":1038,"OptionalFieldsTerminatedBy":1039,"OptionalCollectionItemsTerminatedBy":1040,"OptionalMapKeysTerminatedBy":1041,"OptionalLinesTerminatedBy":1042,"OptionalNullDefinedAs":1043,"OptionalFieldsTerminatedBy_EDIT":1044,"OptionalCollectionItemsTerminatedBy_EDIT":1045,"OptionalMapKeysTerminatedBy_EDIT":1046,"OptionalLinesTerminatedBy_EDIT":1047,"OptionalNullDefinedAs_EDIT":1048,"ESCAPED":1049,"WithSerdeproperties":1050,"TblProperties":1051,"OptionalHiveTblproperties":1052,"CommitLocations":1053,"OptionalParenthesizedViewColumnList":1054,"ParenthesizedViewColumnList_EDIT":1055,"ImpalaFunctionDefinition":1056,"ImpalaAggregateFunctionDefinition":1057,"HiveFunctionDefinition":1058,"HiveTemporaryFunction":1059,"ImpalaFunctionDefinition_EDIT":1060,"ImpalaAggregateFunctionDefinition_EDIT":1061,"HiveFunctionDefinition_EDIT":1062,"HiveTemporaryFunction_EDIT":1063,"ParenthesizedImpalaArgumentList":1064,"ImpalaReturns":1065,"ImpalaSymbol":1066,"ParenthesizedImpalaArgumentList_EDIT":1067,"ImpalaReturns_EDIT":1068,"OptionalImpalaInitFn":1069,"ImpalaUpdateFn":1070,"ImpalaMergeFn":1071,"OptionalImpalaPrepareFn":1072,"OptionalImpalaCloseFn":1073,"OptionalImpalaSerializeFn":1074,"OptionalImpalaFinalizeFn":1075,"OptionalIntermediate":1076,"OptionalImpalaInitFn_EDIT":1077,"ImpalaUpdateFn_EDIT":1078,"ImpalaMergeFn_EDIT":1079,"OptionalImpalaPrepareFn_EDIT":1080,"OptionalImpalaCloseFn_EDIT":1081,"OptionalImpalaSerializeFn_EDIT":1082,"OptionalImpalaFinalizeFn_EDIT":1083,"Intermediate_EDIT":1084,"OptionalHiveUsing":1085,"OptionalHiveUsing_EDIT":1086,"ImpalaArgumentList":1087,"OptionalVariableArguments":1088,"ImpalaArgumentList_EDIT":1089,"FunctionReference":1090,"FunctionReference_EDIT":1091,"OneOrMoreFunctionResources":1092,"FunctionResource":1093,"FunctionResourceType":1094,"VIEW":1095,"ParenthesizedViewColumnList":1096,"ViewColumnList":1097,"ViewColumnList_EDIT":1098,"AnyRole":1099,"ExistingTable":1100,"ParenthesizedIndexColumnList":1101,"IndexType":1102,"OptionalWithDeferredRebuild":1103,"OptionalIdxProperties":1104,"OptionalInTable":1105,"ExistingTable_EDIT":1106,"ParenthesizedIndexColumnList_EDIT":1107,"IndexType_EDIT":1108,"OptionalWithDeferredRebuild_EDIT":1109,"OptionalInTable_EDIT":1110,"IndexColumnList":1111,"IndexColumnList_EDIT":1112,"MacroArguments":1113,"MacroArguments_EDIT":1114,"MacroArgumentList":1115,"MacroArgumentList_EDIT":1116,"MacroArgument":1117,"MacroArgument_EDIT":1118,"HiveDeleteStatement":1119,"ImpalaDeleteStatement":1120,"InsertStatement":1121,"LoadStatement":1122,"ImportStatement":1123,"ExportStatement":1124,"UpdateStatement":1125,"HiveDeleteStatement_EDIT":1126,"ImpalaDeleteStatement_EDIT":1127,"HiveInsertStatement_EDIT":1128,"InsertValuesStatement_EDIT":1129,"ImpalaInsertOrUpsertStatement_EDIT":1130,"HiveInsertStatement":1131,"ImpalaInsertOrUpsertStatement":1132,"HiveMergeStatement_EDIT":1133,"LoadStatement_EDIT":1134,"ImportStatement_EDIT":1135,"ExportStatement_EDIT":1136,"UpdateStatement_EDIT":1137,"DropDatabaseStatement":1138,"DropFunctionStatement":1139,"DropRoleStatement":1140,"DropStatsStatement":1141,"DropTableStatement":1142,"DropIndexStatement":1143,"DropMacroStatement":1144,"DropViewStatement":1145,"TruncateTableStatement":1146,"DropDatabaseStatement_EDIT":1147,"DropFunctionStatement_EDIT":1148,"DropStatsStatement_EDIT":1149,"DropTableStatement_EDIT":1150,"DropIndexStatement_EDIT":1151,"DropMacroStatement_EDIT":1152,"DropViewStatement_EDIT":1153,"TruncateTableStatement_EDIT":1154,"DropImpalaFunction":1155,"DropHiveFunction":1156,"DropImpalaFunction_EDIT":1157,"DropHiveFunction_EDIT":1158,"OptionalPurge":1159,"DELETE":1160,"OptionalImpalaDeleteTableRef":1161,"ImpalaDeleteTableRef_EDIT":1162,"TransactionIdList":1163,"HivePrivilegeTypeList":1164,"OptionalOnSpecification":1165,"PrincipalSpecificationList":1166,"OptionalWithGrantOption":1167,"UserOrRoleList":1168,"OptionalWithAdminOption":1169,"ImpalaPrivilegeType":1170,"ImpalaObjectSpecification":1171,"HivePrivilegeTypeList_EDIT":1172,"OnSpecification_EDIT":1173,"PrincipalSpecificationList_EDIT":1174,"WithGrantOption_EDIT":1175,"WithAdminOption_EDIT":1176,"ImpalaPrivilegeType_EDIT":1177,"ImpalaObjectSpecification_EDIT":1178,"HiveObjectSpecification":1179,"HiveObjectSpecification_EDIT":1180,"HivePrivilegeTypeWithOptionalColumn":1181,"HivePrivilegeTypeWithOptionalColumn_EDIT":1182,"HivePrivilegeType":1183,"INSERT":1184,"UPDATE":1185,"INSERT":1186,"REVOKE":1187,"PrivilegesOrGrantOption":1188,"REVOKE":1189,"PrivilegesOrGrantOption_EDIT":1190,"InsertValuesStatement":1191,"HiveMergeStatement":1192,"HiveInsertWithoutQuery":1193,"HiveInserts":1194,"SelectWithoutTableExpression":1195,"HiveInsertWithoutQuery_EDIT":1196,"HiveInserts_EDIT":1197,"SelectWithoutTableExpression_EDIT":1198,"OptionalHiveTable":1199,"OptionalInsertRowFormat":1200,"OVERWRITE_DIRECTORY":1201,"OptionalInsertRowFormat_EDIT":1202,"OptionalStoredAs_EDIT":1203,"HiveInsert":1204,"HiveInsert_EDIT":1205,"InsertValuesList":1206,"INSERT":1207,"OptionalTable":1208,"ParenthesizedRowValuesList":1209,"ImpalaInsertOrUpsertStatementWithoutCTE":1210,"ImpalaInsertOrUpsertStatementWithoutCTE_EDIT":1211,"ImpalaInsertOrUpsertLeftPart":1212,"OptionalImpalaShuffleOrNoShuffle":1213,"ImpalaRowValuesLists":1214,"ImpalaInsertOrUpsertLeftPart_EDIT":1215,"ImpalaRowValuesLists_EDIT":1216,"ImpalaUpsertStatementLeftPart":1217,"ImpalaInsertLeftPart":1218,"ImpalaUpsertStatementLeftPart_EDIT":1219,"ImpalaInsertLeftPart_EDIT":1220,"UPSERT":1221,"OptionalImpalaTable":1222,"IntoOrOverwrite":1223,"OVERWRITE":1224,"ParenthesizedImpalaRowValuesList":1225,"ParenthesizedImpalaRowValuesList_EDIT":1226,"HiveMergeStatementLeftPart":1227,"WhenList":1228,"HiveMergeStatementLeftPart_EDIT":1229,"WhenList_EDIT":1230,"MergeSource":1231,"MergeSource_EDIT":1232,"WhenClause":1233,"WhenClause_EDIT":1234,"OptionalMatchCondition":1235,"UpdateDeleteOrInsert":1236,"MatchCondition_EDIT":1237,"UpdateDeleteOrInsert_EDIT":1238,"SetClauseList":1239,"SetClauseList_EDIT":1240,"AnyLoad":1241,"AnyData":1242,"OptionalHiveLocal":1243,"AnyInpath":1244,"OptionalOverwrite":1245,"LOAD":1246,"IMPORT":1247,"OptionalTableWithPartition":1248,"TableWithPartition":1249,"TableWithPartition_EDIT":1250,"SetOption":1251,"ShowColumnStatsStatement":1252,"ShowColumnsStatement":1253,"ShowCompactionsStatement":1254,"ShowConfStatement":1255,"ShowCreateTableStatement":1256,"ShowCurrentRolesStatement":1257,"ShowDatabasesStatement":1258,"ShowFilesStatement":1259,"ShowFunctionsStatement":1260,"ShowGrantStatement":1261,"ShowIndexStatement":1262,"ShowLocksStatement":1263,"ShowPartitionsStatement":1264,"ShowRoleStatement":1265,"ShowRolesStatement":1266,"ShowTableStatement":1267,"ShowTablesStatement":1268,"ShowTblPropertiesStatement":1269,"ShowTransactionsStatement":1270,"ShowViewsStatement":1271,"AnyShow":1272,"SHOW":1273,"ShowColumnStatsStatement_EDIT":1274,"ShowColumnsStatement_EDIT":1275,"ShowCreateTableStatement_EDIT":1276,"ShowCurrentRolesStatement_EDIT":1277,"ShowDatabasesStatement_EDIT":1278,"ShowFilesStatement_EDIT":1279,"ShowFunctionsStatement_EDIT":1280,"ShowGrantStatement_EDIT":1281,"ShowIndexStatement_EDIT":1282,"ShowLocksStatement_EDIT":1283,"ShowPartitionsStatement_EDIT":1284,"ShowRoleStatement_EDIT":1285,"ShowTableStatement_EDIT":1286,"ShowTablesStatement_EDIT":1287,"ShowTblPropertiesStatement_EDIT":1288,"ShowViewsStatement_EDIT":1289,"AnyTableOrView":1290,"OptionalPrincipalName":1291,"OptionalPrincipalName_EDIT":1292,"OptionalInOrFromDatabase":1293,"OptionalLike":1294,"InOrFromDatabase_EDIT":1295,"Like_EDIT":1296,"TargetTable":1297,"OptionalFromJoinedTable":1298,"TargetTable_EDIT":1299,"FromJoinedTable_EDIT":1300,"TableName":1301,"TableName_EDIT":1302,"SetClause":1303,"SetClause_EDIT":1304,"SetTarget":1305,"UpdateSource":1306,"UpdateSource_EDIT":1307,"AnyUse":1308,"USE":1309,"$accept":0,"$end":1}, -terminals_: {2:"error",6:"EOF",10:";",18:"CURSOR",23:"SetSpecification_EDIT",25:"ABORT",26:"ADD",27:"ADMIN",28:"AFTER",29:"ANALYZE",30:"ARCHIVE",31:"AVRO",32:"BUCKET",33:"BUCKETS",34:"CASCADE",35:"CHANGE",36:"CLUSTERED",37:"COLLECTION",38:"COLUMNS",39:"COMMENT",40:"COMPACT",41:"COMPACTIONS",42:"COMPUTE",43:"CONCATENATE",44:"DATA",45:"DATABASES",46:"DBPROPERTIES",47:"DEFERRED",48:"DEFINED",49:"DELIMITED",50:"DEPENDENCY",51:"DIRECTORY",52:"DISABLE",53:"DOUBLE_PRECISION",54:"ENABLE",55:"ESCAPED",56:"EXCHANGE",57:"EXPLAIN",58:"EXPORT",59:"FIELDS",60:"FILE",61:"FILEFORMAT",62:"FIRST",63:"FORMAT",64:"FUNCTIONS",65:"INPATH",66:"INPUTFORMAT",67:"JAR",68:"IDXPROPERTIES",69:"ITEMS",70:"KEY",71:"KEYS",72:"LINES",73:"LOAD",74:"LOCATION",75:"LOCKS",76:"MATCHED",77:"METADATA",78:"MERGE",79:"MSCK",80:"NOSCAN",81:"NOVALIDATE",82:"NO_DROP",83:"OFFLINE",84:"ORC",85:"OUTPUTFORMAT",86:"OVERWRITE",87:"OWNER",88:"PARQUET",89:"PARTITIONED",90:"PARTITIONS",91:"PERCENT",92:"PRIVILEGES",93:"PURGE",94:"RCFILE",95:"REBUILD",96:"RELOAD",97:"RELY",98:"NORELY",99:"REPAIR",100:"REPLICATION",101:"RECOVER",102:"RENAME",103:"REPLACE",104:"RESTRICT",105:"ROLE",106:"ROLES",107:"SCHEMAS",108:"SEQUENCEFILE",109:"SERDE",110:"SERDEPROPERTIES",111:"SETS",112:"SHOW",113:"SKEWED",114:"SORTED",115:"STATISTICS",116:"STORED",117:"STRING",118:"STRUCT",119:"TABLES",120:"TBLPROPERTIES",121:"TEMPORARY",122:"TERMINATED",123:"TEXTFILE",124:"TIMESTAMP",125:"TINYINT",126:"TOUCH",127:"TRANSACTIONS",128:"UNARCHIVE",129:"UNIONTYPE",130:"USE",131:"USER",132:"VIEW",133:"WAIT",134:"DAY",135:"HOUR",136:"MINUTE",137:"MONTH",138:"QUARTER",139:"SECOND",140:"WEEK",141:"YEAR",142:"ANALYTIC",143:"CURRENT",144:"GRANT",145:"RECOVER",146:"ROLE",147:"ROLES",148:"URI",149:"SERVER",150:"UNKNOWN",151:"BLOCK_SIZE",152:"COMPRESSION",153:"DEFAULT",154:"ENCODING",155:"KEY",156:"ROLE",157:"OPTION",159:"REGULAR_IDENTIFIER",160:"VARIABLE_REFERENCE",162:"EXPLAIN",163:"AUTHORIZATION",164:"EXTENDED",166:"ALL",167:"AS",168:"BINARY",169:"CACHE",170:"CLUSTER",171:"CONF",172:"CONSTRAINT",173:"CUBE",174:"CURRENT",175:"DATE",176:"DISTRIBUTE",177:"DISTRIBUTED",178:"EXTERNAL",179:"FOR",180:"FOREIGN",181:"FUNCTION",182:"GRANT",183:"GROUPING",184:"LATERAL",185:"LOCAL",186:"LOCK",187:"MACRO",188:"PARTITION",189:"PRIMARY",190:"REFERENCES",191:"ROLLUP",192:"SHOW_DATABASE",193:"TABLE",194:"ASC",195:"FORMATTED",196:"INDEX",197:"INDEXES",198:"NONE",199:"OF",200:"OUT",201:"SCHEMA",202:"STORED_AS_DIRECTORIES",203:"TABLESAMPLE",204:"USING",205:"VIEWS",206:"WINDOW",207:".",208:"[",209:"]",210:"AGGREGATE",211:"AVRO",212:"CACHED",213:"CASCADE",214:"CLOSE_FN",215:"COLUMN",216:"DATA",217:"DATABASES",218:"DELETE",219:"DELIMITED",220:"ESCAPED",221:"EXTENDED",222:"EXTERNAL",223:"FIELDS",224:"FILES",225:"FINALIZE_FN",226:"FIRST",227:"FORMAT",228:"FORMATTED",229:"FUNCTION",230:"FUNCTIONS",231:"GROUP",232:"HASH",233:"ILIKE",234:"INCREMENTAL",235:"INTERMEDIATE",236:"INTERVAL",237:"INIT_FN",238:"INPATH",239:"IREGEXP",240:"KUDU",241:"LAST",242:"LIMIT",243:"LINES",244:"LOCATION",245:"MERGE_FN",246:"NULLS",247:"PARTITIONS",248:"PREPARE_FN",249:"PRIMARY",250:"RANGE",251:"REAL",252:"REPEATABLE",253:"REPLICATION",254:"RESTRICT",255:"RETURNS",256:"SCHEMAS",257:"SERIALIZE_FN",258:"SORT",259:"STATS",260:"STRAIGHT_JOIN",261:"SYMBOL",262:"TABLE",263:"TABLES",264:"TABLESAMPLE",265:"USING",266:"ANTI",267:"NOSHUFFLE",268:"PARQUET",269:"PARTITIONED",270:"RCFILE",271:"SEQUENCEFILE",272:"SERDEPROPERTIES",273:"SHUFFLE",274:"STORED",275:"TBLPROPERTIES",276:"TERMINATED",277:"TEXTFILE",278:"UPDATE_FN",279:"BROADCAST",280:"...",281:".",282:"[",283:"]",284:"ALL",285:"ARRAY",286:"AS",287:"ASC",288:"BETWEEN",289:"BIGINT",290:"BOOLEAN",291:"BY",292:"CASE",293:"CHAR",294:"CROSS",295:"CURRENT",296:"DATABASE",297:"DECIMAL",298:"DISTINCT",299:"DOUBLE",300:"DESC",301:"ELSE",302:"END",303:"EXISTS",304:"FALSE",305:"FLOAT",306:"FOLLOWING",307:"FROM",308:"FULL",309:"GROUP",310:"HAVING",311:"IF",312:"IN",313:"INNER",314:"INT",315:"INTO",316:"IS",317:"JOIN",318:"LEFT",319:"LIKE",320:"LIMIT",321:"MAP",322:"NOT",323:"NULL",324:"ON",325:"ORDER",326:"OUTER",327:"OVER",328:"PARTITION",329:"PRECEDING",330:"PURGE",331:"RANGE",332:"REGEXP",333:"RIGHT",334:"RLIKE",335:"ROW",336:"ROWS",337:"SCHEMA",338:"SEMI",339:"SET",340:"SMALLINT",341:"STRING",342:"TABLE",343:"THEN",344:"TIMESTAMP",345:"TINYINT",346:"TRUE",347:"UNION",348:"VALUES",349:"VARCHAR",350:"WHEN",351:"WHERE",352:"WITH",353:"AVG",354:"CAST",355:"COUNT",356:"MAX",357:"MIN",358:"STDDEV_POP",359:"STDDEV_SAMP",360:"SUM",361:"VARIANCE",362:"VAR_POP",363:"VAR_SAMP",364:"COLLECT_SET",365:"COLLECT_LIST",366:"CORR",367:"COVAR_POP",368:"COVAR_SAMP",369:"DAYOFWEEK",370:"HISTOGRAM_NUMERIC",371:"NTILE",372:"PERCENTILE",373:"PERCENTILE_APPROX",374:"APPX_MEDIAN",375:"EXTRACT",376:"GROUP_CONCAT",377:"NDV",378:"STDDEV",379:"VARIANCE_POP",380:"VARIANCE_SAMP",381:"ANALYTIC",382:"UNSIGNED_INTEGER",383:"UNSIGNED_INTEGER_E",384:"HDFS_START_QUOTE",385:"AND",386:"OR",387:"=",388:"<",389:">",390:"COMPARISON_OPERATOR",391:"-",392:"*",393:"ARITHMETIC_OPERATOR",394:",",395:".",396:"~",397:"!",398:"(",399:")",400:"[",401:"]",402:"BACKTICK",403:"SINGLE_QUOTE",404:"DOUBLE_QUOTE",438:"CREATE",439:"CREATE",440:"CREATE",441:"PARTIAL_CURSOR",445:"GROUP",452:"COMMENT",469:"VALUE",471:"PARTIAL_VALUE",543:"UNCACHED",569:"DESCRIBE",570:"DESCRIBE",571:"DESC",577:"SELECT",653:"SORT",660:"OFFSET",665:"BETWEEN_AND",686:"+",724:"SYSTEM",759:"REPLACE",760:"TRUNCATE",782:"UNBOUNDED",786:"HDFS_PATH",787:"HDFS_END_QUOTE",791:"EXTRACT",816:"ALTER",823:"PARTITION_VALUE",827:"TO",847:"SKEWED_LOCATION",850:"COLUMN",859:"DROP",889:"COLUMNS",897:"CHANGE",898:"FILEFORMAT",899:"ADD",901:"RENAME",909:"ColumnReferences",921:"REFRESH",922:"INVALIDATE",923:"METADATA",924:"COMPUTE",946:"WITH",951:"LIFECYCLE",969:"LIKE_PARQUET",1000:":",1034:"ORC",1049:"ESCAPED",1095:"VIEW",1160:"DELETE",1184:"INSERT",1185:"UPDATE",1186:"INSERT",1187:"REVOKE",1189:"REVOKE",1201:"OVERWRITE_DIRECTORY",1203:"OptionalStoredAs_EDIT",1207:"INSERT",1221:"UPSERT",1224:"OVERWRITE",1246:"LOAD",1247:"IMPORT",1273:"SHOW",1309:"USE"}, -productions_: [0,[3,3],[7,3],[7,3],[4,0],[5,0],[5,1],[5,4],[8,1],[8,4],[8,4],[8,7],[9,1],[9,1],[9,1],[9,2],[9,2],[9,2],[11,1],[11,2],[11,1],[11,1],[11,1],[11,1],[11,1],[11,2],[11,2],[11,2],[11,2],[11,2],[11,2],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[24,1],[158,1],[158,1],[158,1],[15,2],[15,1],[19,3],[19,2],[161,0],[161,1],[161,1],[161,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[165,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[12,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,2],[20,1],[20,1],[434,1],[434,1],[435,1],[435,2],[436,1],[436,1],[437,1],[437,1],[437,1],[16,1],[16,1],[442,1],[442,1],[442,1],[443,1],[443,1],[444,1],[444,1],[444,1],[446,1],[446,1],[447,1],[447,1],[447,1],[448,1],[448,1],[448,1],[449,1],[449,1],[450,1],[450,1],[451,1],[451,1],[453,1],[453,1],[454,1],[454,1],[454,1],[454,1],[455,1],[455,1],[456,1],[456,1],[457,1],[457,1],[458,1],[458,1],[459,1],[459,1],[460,1],[460,1],[461,1],[461,1],[462,1],[462,1],[463,1],[463,1],[464,1],[464,1],[465,1],[465,1],[466,1],[466,1],[467,1],[467,1],[468,3],[468,2],[470,2],[472,3],[472,2],[473,2],[474,1],[474,1],[475,1],[475,1],[476,0],[476,1],[477,0],[477,1],[478,0],[478,1],[478,1],[479,0],[479,1],[479,1],[480,0],[480,1],[480,1],[481,2],[481,1],[482,2],[482,2],[483,0],[483,2],[485,2],[487,0],[487,1],[488,0],[488,1],[488,1],[488,1],[488,1],[489,0],[489,1],[489,1],[490,0],[490,1],[491,0],[491,2],[492,2],[493,0],[493,3],[494,2],[494,3],[495,0],[495,2],[495,2],[496,0],[496,1],[498,1],[497,4],[499,4],[503,5],[506,2],[506,3],[506,4],[506,5],[506,5],[506,5],[505,1],[505,1],[505,1],[505,1],[507,1],[507,1],[507,3],[507,3],[508,1],[508,1],[510,1],[510,1],[511,1],[511,1],[509,2],[502,1],[502,1],[512,0],[512,1],[514,1],[513,3],[515,3],[515,3],[516,1],[516,3],[517,1],[517,3],[517,3],[517,3],[517,5],[517,5],[520,3],[521,1],[521,3],[522,1],[522,3],[522,4],[525,1],[525,3],[525,3],[525,4],[524,1],[524,2],[526,1],[526,2],[526,3],[526,2],[527,2],[528,2],[529,1],[529,3],[530,1],[530,3],[530,3],[484,1],[486,1],[500,1],[500,3],[501,1],[501,3],[501,3],[501,5],[531,3],[531,1],[532,3],[532,3],[532,3],[532,1],[535,0],[535,1],[536,2],[538,2],[540,0],[540,2],[540,1],[544,0],[544,2],[541,3],[545,2],[542,0],[542,1],[546,4],[548,2],[548,3],[523,1],[523,3],[523,2],[549,1],[549,3],[550,1],[550,3],[551,1],[551,2],[552,1],[552,2],[553,1],[553,3],[555,1],[554,1],[554,3],[556,1],[556,3],[556,5],[556,3],[556,3],[556,5],[557,1],[557,3],[558,1],[558,3],[558,5],[558,3],[558,1],[558,3],[558,5],[558,3],[518,1],[518,4],[518,3],[519,4],[519,4],[559,1],[559,1],[560,1],[560,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,1],[561,2],[561,2],[561,2],[561,1],[561,1],[561,1],[561,1],[563,0],[563,3],[562,0],[562,3],[562,5],[405,1],[405,1],[420,1],[420,1],[564,5],[564,4],[564,4],[564,4],[566,4],[566,5],[566,6],[566,5],[566,5],[566,6],[566,5],[566,4],[566,3],[566,4],[566,5],[566,4],[566,5],[565,3],[565,4],[567,3],[567,3],[567,4],[567,4],[567,5],[568,1],[568,1],[14,2],[14,3],[14,5],[22,2],[22,2],[22,4],[22,3],[22,3],[22,1],[22,4],[22,3],[572,4],[572,5],[573,0],[573,1],[575,1],[582,1],[582,2],[583,1],[583,2],[583,2],[583,3],[584,4],[585,3],[585,4],[585,4],[574,4],[574,4],[574,5],[574,5],[574,5],[574,6],[574,7],[574,5],[579,0],[579,1],[17,2],[576,2],[588,1],[588,3],[589,1],[589,3],[589,3],[589,5],[590,5],[591,2],[591,5],[591,5],[578,0],[578,1],[578,1],[578,1],[581,2],[587,2],[587,4],[587,3],[597,0],[597,1],[597,1],[594,3],[596,2],[596,3],[596,3],[595,8],[598,8],[598,8],[598,8],[598,8],[598,8],[598,8],[598,8],[598,8],[598,9],[598,9],[598,9],[598,9],[598,9],[598,9],[598,9],[605,0],[605,1],[621,2],[613,2],[613,2],[606,0],[606,1],[622,4],[614,4],[614,4],[614,2],[614,4],[631,0],[631,1],[631,2],[631,2],[633,1],[633,2],[634,5],[635,2],[635,5],[636,0],[636,1],[636,3],[636,3],[637,1],[637,3],[637,3],[637,5],[637,3],[638,1],[638,1],[630,1],[630,3],[632,1],[632,2],[632,3],[632,3],[632,3],[632,4],[632,5],[639,1],[639,2],[639,1],[609,0],[609,1],[625,3],[617,3],[617,2],[640,1],[640,3],[641,1],[641,2],[641,3],[641,4],[641,5],[642,3],[643,3],[643,3],[643,3],[644,0],[644,1],[644,1],[644,1],[644,1],[645,0],[645,2],[645,2],[646,2],[610,0],[610,1],[626,1],[626,1],[626,2],[626,1],[618,1],[618,1],[618,2],[618,2],[618,1],[647,3],[650,2],[650,3],[650,3],[648,3],[651,2],[651,3],[651,3],[649,3],[652,2],[652,3],[654,1],[654,3],[655,1],[655,3],[655,3],[655,5],[656,2],[657,2],[657,2],[611,0],[611,1],[627,2],[627,4],[627,2],[627,4],[627,2],[619,2],[619,2],[619,2],[612,0],[612,1],[659,2],[620,2],[620,2],[628,1],[629,1],[533,1],[533,2],[533,2],[533,2],[533,2],[533,4],[533,4],[533,4],[533,4],[533,6],[533,2],[533,3],[533,3],[533,3],[533,3],[533,3],[533,6],[533,6],[533,5],[533,5],[533,6],[533,5],[533,3],[533,3],[533,3],[533,3],[533,3],[533,2],[533,3],[533,2],[533,3],[534,1],[534,3],[534,2],[534,2],[534,2],[534,2],[534,2],[534,2],[534,2],[534,2],[534,3],[534,4],[534,5],[534,4],[534,4],[534,4],[534,6],[534,6],[534,2],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,4],[534,3],[534,6],[534,6],[534,5],[534,5],[534,6],[534,6],[534,6],[534,6],[534,5],[534,4],[534,5],[534,5],[534,5],[534,5],[534,4],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,3],[534,2],[534,3],[534,2],[534,3],[534,2],[534,3],[534,2],[534,3],[534,3],[534,4],[534,3],[534,3],[534,3],[664,1],[664,3],[674,1],[674,3],[674,3],[674,5],[674,3],[674,5],[674,4],[674,3],[674,2],[674,2],[674,4],[675,1],[675,3],[661,1],[661,1],[661,2],[661,2],[661,1],[661,1],[661,1],[668,1],[668,1],[668,2],[668,2],[668,1],[668,1],[676,1],[676,3],[682,1],[680,3],[685,3],[547,1],[547,2],[547,2],[504,1],[681,1],[687,1],[687,1],[688,1],[658,1],[658,1],[691,1],[691,2],[691,3],[691,2],[692,2],[692,3],[692,4],[689,1],[689,1],[689,1],[690,1],[690,1],[693,1],[693,1],[662,0],[662,1],[694,2],[694,1],[696,2],[696,3],[696,2],[580,1],[580,3],[586,1],[586,2],[586,3],[586,3],[586,3],[586,4],[586,3],[586,3],[586,4],[586,4],[586,4],[586,5],[586,5],[601,1],[601,3],[603,1],[603,3],[603,3],[603,5],[603,3],[698,1],[699,1],[700,1],[700,1],[701,1],[701,1],[703,2],[705,2],[705,2],[599,4],[599,5],[600,2],[600,3],[708,0],[708,1],[708,1],[710,4],[710,2],[710,4],[710,4],[710,4],[706,1],[706,2],[706,2],[706,3],[707,1],[707,2],[707,2],[707,2],[707,2],[707,2],[707,2],[707,3],[707,2],[707,3],[707,3],[707,3],[707,3],[707,2],[707,3],[707,3],[707,3],[707,3],[711,2],[711,2],[711,2],[711,2],[711,2],[711,3],[711,3],[711,3],[711,3],[711,3],[711,3],[711,3],[711,3],[711,3],[711,3],[711,3],[711,3],[709,0],[709,2],[709,4],[713,1],[713,3],[712,2],[712,2],[702,4],[702,3],[704,4],[704,4],[704,4],[704,3],[704,3],[714,1],[718,1],[717,1],[721,1],[715,0],[715,9],[715,5],[715,5],[715,4],[719,4],[719,6],[719,7],[719,10],[719,9],[719,5],[716,0],[716,5],[716,9],[720,2],[722,0],[722,2],[723,2],[723,2],[725,0],[726,0],[663,3],[663,4],[669,3],[669,3],[592,2],[593,3],[727,1],[728,1],[729,1],[730,1],[731,1],[732,1],[733,1],[734,1],[735,1],[736,1],[737,1],[738,1],[739,1],[740,1],[695,0],[695,1],[695,2],[697,1],[697,2],[697,2],[602,0],[602,2],[604,3],[679,2],[679,2],[679,1],[679,1],[679,1],[684,1],[684,2],[684,1],[684,2],[684,2],[684,2],[684,1],[684,1],[684,1],[757,2],[757,2],[758,2],[758,2],[678,1],[678,1],[678,1],[678,1],[678,1],[678,1],[678,1],[761,3],[761,2],[761,0],[677,3],[677,4],[683,3],[683,4],[683,3],[743,1],[743,1],[743,1],[750,1],[750,1],[750,1],[745,3],[745,4],[752,4],[752,5],[752,4],[744,0],[744,1],[751,1],[746,2],[746,2],[753,2],[768,4],[769,4],[769,4],[769,5],[769,7],[770,0],[770,1],[774,3],[772,2],[772,3],[772,3],[771,0],[771,2],[773,1],[773,3],[773,2],[775,0],[775,1],[777,5],[777,5],[776,2],[776,6],[776,5],[776,5],[776,5],[776,4],[779,0],[785,0],[537,3],[539,5],[539,4],[539,3],[539,3],[539,2],[778,1],[778,1],[780,0],[780,2],[780,2],[783,2],[783,2],[790,1],[790,1],[790,1],[788,1],[788,1],[781,0],[781,3],[781,3],[784,2],[784,3],[784,3],[789,1],[789,1],[607,0],[607,1],[623,2],[615,2],[615,2],[608,0],[608,1],[624,4],[616,3],[616,4],[747,6],[747,3],[754,6],[754,5],[754,4],[754,6],[754,5],[754,4],[754,6],[754,5],[754,6],[754,5],[762,4],[762,3],[762,5],[765,5],[765,6],[765,5],[748,6],[755,4],[755,5],[755,6],[755,6],[755,6],[755,6],[792,1],[792,1],[792,1],[792,1],[792,1],[792,1],[792,1],[792,1],[792,1],[764,4],[764,5],[767,5],[767,6],[767,5],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[793,1],[749,6],[749,3],[756,6],[756,5],[756,4],[756,6],[756,5],[756,4],[756,6],[756,5],[756,6],[756,5],[756,6],[756,5],[794,1],[794,1],[763,5],[763,3],[766,5],[766,6],[766,5],[741,6],[741,5],[741,5],[742,4],[742,5],[742,6],[742,6],[742,5],[742,6],[742,4],[742,2],[795,0],[795,1],[796,2],[796,4],[797,2],[797,4],[670,3],[670,3],[670,3],[666,2],[666,2],[666,2],[666,2],[666,2],[671,2],[671,2],[671,2],[671,2],[671,2],[671,2],[671,2],[671,2],[671,2],[671,2],[667,2],[667,4],[672,2],[672,4],[672,4],[672,3],[672,4],[672,3],[672,4],[672,4],[672,3],[672,4],[672,3],[673,1],[673,1],[798,1],[798,2],[799,1],[799,2],[799,3],[799,3],[799,2],[800,4],[801,2],[801,3],[801,4],[801,4],[801,3],[801,3],[801,4],[801,2],[801,3],[801,2],[801,3],[801,3],[801,4],[801,3],[801,4],[801,4],[801,5],[801,4],[801,3],[406,1],[406,1],[406,1],[406,1],[406,1],[406,1],[406,1],[421,1],[421,1],[421,1],[421,1],[421,1],[421,1],[421,1],[421,2],[802,6],[802,5],[802,6],[809,3],[809,4],[809,5],[809,5],[809,6],[809,6],[803,7],[810,4],[810,5],[810,5],[810,6],[810,7],[804,7],[804,6],[804,7],[804,5],[804,5],[804,4],[804,2],[804,2],[804,2],[804,2],[804,3],[804,3],[811,1],[811,7],[811,4],[811,2],[811,2],[811,2],[811,2],[811,3],[811,4],[811,3],[811,3],[811,7],[811,7],[811,7],[811,8],[811,7],[811,5],[811,6],[811,6],[811,6],[811,4],[811,5],[811,5],[811,5],[811,2],[811,2],[811,2],[811,2],[811,2],[811,3],[811,4],[811,4],[811,3],[811,3],[811,3],[811,4],[811,3],[828,1],[828,6],[828,1],[828,2],[828,2],[828,2],[828,2],[828,2],[828,3],[828,3],[828,4],[828,5],[837,2],[837,2],[837,1],[837,1],[837,2],[837,3],[837,4],[837,3],[837,4],[837,2],[837,3],[837,3],[837,2],[837,3],[837,3],[837,3],[837,6],[837,4],[837,7],[837,6],[837,2],[837,2],[829,6],[829,5],[829,5],[838,3],[838,4],[838,5],[838,5],[838,6],[838,3],[838,4],[838,5],[838,5],[857,1],[857,1],[857,1],[857,1],[857,1],[856,0],[856,1],[860,3],[861,3],[862,1],[862,3],[863,1],[863,3],[863,5],[863,3],[864,3],[865,1],[831,3],[831,2],[831,3],[831,4],[831,3],[831,3],[831,4],[831,2],[831,1],[831,1],[831,4],[831,2],[831,6],[839,1],[839,3],[839,6],[839,7],[839,6],[839,5],[839,4],[839,4],[839,2],[839,2],[839,3],[839,2],[839,2],[839,4],[839,3],[839,3],[839,4],[839,5],[839,4],[839,5],[839,4],[872,0],[872,2],[882,2],[873,0],[873,4],[883,2],[883,3],[871,4],[879,4],[879,5],[887,1],[887,1],[845,5],[853,2],[853,3],[853,4],[853,5],[853,5],[853,2],[853,5],[890,4],[890,4],[891,4],[891,4],[892,3],[892,5],[893,3],[893,5],[830,4],[830,3],[830,3],[830,5],[830,6],[830,3],[840,3],[840,4],[840,5],[840,3],[840,2],[840,4],[840,5],[840,5],[840,5],[840,2],[840,3],[840,3],[820,3],[832,3],[832,3],[849,1],[849,1],[866,1],[866,1],[821,1],[821,1],[833,1],[833,1],[841,1],[841,1],[878,0],[878,2],[900,1],[900,1],[881,2],[881,2],[876,0],[876,1],[826,1],[826,1],[874,1],[874,1],[875,2],[875,1],[884,3],[869,1],[869,1],[846,1],[846,1],[894,1],[894,3],[896,1],[896,3],[896,5],[896,3],[896,3],[896,3],[896,5],[895,0],[895,1],[822,0],[822,1],[902,1],[902,2],[834,1],[834,2],[834,2],[834,3],[904,2],[904,2],[903,2],[848,3],[854,3],[905,1],[905,3],[906,1],[906,3],[906,5],[906,3],[907,3],[908,1],[908,1],[908,3],[908,3],[908,3],[844,0],[844,1],[855,2],[855,3],[805,4],[805,3],[805,4],[805,6],[812,1],[812,2],[812,3],[812,3],[812,3],[812,3],[812,4],[910,3],[911,3],[911,3],[806,4],[813,2],[813,3],[813,4],[813,4],[807,2],[814,2],[808,6],[815,2],[815,3],[815,4],[815,5],[815,6],[913,1],[913,1],[407,9],[422,2],[422,3],[422,4],[422,4],[422,5],[422,6],[422,10],[422,10],[422,10],[422,4],[422,9],[422,9],[422,9],[422,9],[422,9],[914,0],[914,1],[917,2],[919,2],[915,0],[915,1],[918,2],[920,2],[916,0],[916,1],[408,3],[408,3],[423,2],[423,3],[423,4],[423,3],[423,3],[409,2],[409,3],[424,2],[424,3],[424,3],[424,3],[410,5],[410,5],[425,2],[425,3],[425,3],[425,4],[425,6],[425,5],[425,5],[425,5],[425,3],[425,5],[425,4],[425,5],[425,6],[425,5],[411,1],[411,1],[411,1],[411,1],[411,1],[411,1],[411,1],[426,1],[426,1],[426,1],[426,1],[426,1],[426,1],[426,4],[925,3],[925,5],[932,4],[932,3],[932,5],[932,4],[932,6],[938,3],[941,3],[941,3],[939,0],[939,1],[943,2],[944,2],[944,2],[944,3],[944,3],[942,1],[940,0],[940,1],[945,3],[945,2],[945,2],[817,3],[947,1],[947,3],[948,3],[926,7],[950,0],[950,2],[933,6],[933,6],[933,5],[949,11],[952,11],[952,11],[952,11],[952,11],[952,11],[952,11],[952,11],[952,11],[952,12],[952,11],[952,11],[953,2],[961,2],[961,2],[967,0],[967,1],[967,2],[967,2],[968,1],[968,2],[968,2],[968,2],[851,3],[851,5],[888,3],[888,5],[888,5],[970,1],[970,3],[972,1],[972,3],[972,3],[972,5],[972,2],[972,4],[972,4],[972,6],[877,3],[880,3],[880,3],[880,3],[975,0],[975,1],[978,1],[978,2],[977,1],[977,2],[977,2],[977,3],[979,1],[979,2],[979,2],[979,2],[979,2],[979,2],[979,1],[979,1],[980,1],[980,2],[974,1],[974,1],[974,1],[974,1],[974,1],[974,1],[974,1],[974,1],[974,1],[976,1],[976,1],[976,1],[976,1],[983,4],[987,3],[991,4],[991,4],[984,6],[988,3],[992,6],[992,4],[992,6],[992,5],[985,4],[989,3],[993,4],[996,1],[996,3],[997,1],[997,2],[997,3],[997,3],[997,5],[998,4],[999,5],[999,4],[999,4],[999,4],[999,3],[999,3],[986,4],[990,3],[994,4],[1001,1],[1001,3],[1002,1],[1002,2],[1002,3],[1002,3],[1002,5],[1003,2],[1003,2],[1003,1],[1003,1],[995,1],[995,1],[971,1],[971,1],[971,3],[971,5],[973,1],[973,1],[973,3],[973,5],[973,5],[973,5],[973,3],[973,3],[973,4],[824,4],[835,1],[835,2],[835,3],[835,4],[835,4],[825,9],[836,2],[836,3],[836,4],[836,5],[836,5],[836,6],[836,7],[836,8],[836,10],[1008,0],[1008,1],[1008,1],[1004,2],[1005,1],[1005,2],[1005,2],[981,2],[982,2],[1006,2],[1007,2],[954,0],[954,1],[1009,3],[1009,5],[1009,6],[962,2],[962,3],[962,3],[962,2],[962,2],[962,3],[962,4],[962,5],[962,4],[962,5],[962,6],[955,0],[955,1],[1012,3],[963,2],[963,3],[1010,3],[1011,3],[1011,3],[1013,1],[1013,3],[1014,1],[1014,3],[1014,5],[1014,3],[1014,5],[1015,6],[1015,4],[1015,4],[1015,3],[1016,2],[1016,2],[1016,3],[1016,2],[1016,3],[1016,4],[1016,4],[1016,5],[1016,6],[1016,6],[1016,3],[1016,4],[1016,4],[1017,1],[1017,1],[956,0],[956,1],[842,7],[852,2],[852,4],[852,7],[852,5],[852,7],[852,7],[852,4],[1018,0],[1018,3],[1019,2],[1019,3],[1020,3],[1021,3],[1022,1],[1022,3],[1023,1],[1023,3],[1023,3],[1023,5],[1024,2],[1025,3],[1025,2],[1025,2],[957,0],[957,1],[1026,5],[1026,6],[964,2],[964,4],[843,3],[1027,1],[1027,3],[958,0],[958,1],[1028,1],[1028,4],[1028,4],[1028,4],[965,2],[965,1],[965,2],[965,3],[965,3],[965,5],[965,4],[1031,0],[1031,1],[1029,3],[1032,3],[867,1],[867,4],[867,1],[867,1],[867,1],[867,1],[867,1],[867,1],[867,1],[867,1],[867,1],[867,1],[867,1],[867,1],[1030,1],[1030,1],[1033,1],[1033,1],[1035,1],[1035,3],[1035,3],[1036,1],[1037,6],[1038,6],[1038,6],[1038,6],[1038,6],[1038,6],[870,4],[885,4],[885,4],[1039,0],[1039,4],[1039,7],[1044,2],[1044,3],[1044,6],[1040,0],[1040,5],[1045,2],[1045,3],[1045,4],[1041,0],[1041,5],[1046,2],[1046,3],[1046,4],[1042,0],[1042,4],[1047,2],[1047,3],[1043,0],[1043,4],[1048,2],[1048,3],[868,0],[868,1],[1050,3],[1050,3],[886,2],[886,3],[959,0],[959,1],[1051,2],[1052,0],[1052,2],[960,0],[960,3],[966,3],[966,3],[1053,0],[927,9],[934,4],[934,10],[934,3],[934,7],[934,8],[934,9],[934,9],[934,9],[929,1],[929,1],[929,1],[929,1],[935,1],[935,1],[935,1],[935,1],[1056,8],[1060,4],[1060,9],[1060,6],[1060,7],[1060,8],[1060,3],[1060,5],[1060,6],[1060,7],[1060,8],[1060,8],[1060,8],[1060,8],[1057,16],[1061,3],[1061,17],[1061,5],[1061,4],[1061,16],[1061,6],[1061,16],[1061,7],[1061,8],[1061,10],[1061,11],[1061,17],[1061,7],[1061,9],[1061,9],[1061,10],[1061,10],[1061,16],[1061,16],[1061,16],[1061,16],[1061,16],[1061,16],[1061,16],[1061,16],[1061,16],[1061,16],[1058,6],[1062,4],[1062,6],[1062,7],[1059,6],[1063,5],[1064,2],[1064,4],[1067,3],[1067,4],[1087,1],[1087,3],[1089,1],[1089,3],[1089,3],[1089,5],[1088,0],[1088,1],[1065,2],[1068,2],[1066,3],[1069,0],[1069,3],[1077,3],[1070,3],[1078,3],[1071,3],[1079,3],[1072,0],[1072,3],[1080,3],[1073,0],[1073,3],[1081,3],[1074,0],[1074,3],[1082,3],[1075,0],[1075,3],[1083,3],[1076,0],[1076,2],[1084,2],[1090,1],[1091,1],[1085,0],[1085,2],[1086,2],[1092,1],[1092,3],[1093,2],[1094,1],[1094,1],[1094,1],[912,1],[912,1],[1054,0],[1054,1],[1096,3],[1055,3],[1097,2],[1097,4],[1098,3],[1098,5],[1098,5],[1098,7],[928,3],[1099,1],[1099,1],[1099,1],[930,16],[1100,1],[1106,1],[936,4],[936,5],[936,6],[936,6],[936,7],[936,8],[936,9],[936,16],[936,16],[936,16],[936,16],[936,16],[936,16],[936,16],[936,17],[1102,1],[1108,1],[1103,0],[1103,3],[1109,2],[1109,3],[1104,0],[1104,2],[1105,0],[1105,3],[1110,2],[1110,3],[1110,3],[1101,3],[1107,3],[1111,1],[1111,3],[1112,1],[1112,3],[1112,3],[1112,5],[931,6],[937,5],[937,6],[937,6],[937,6],[1113,2],[1113,3],[1114,3],[1115,1],[1115,3],[1116,1],[1116,3],[1116,3],[1116,5],[1117,2],[1118,2],[1118,2],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[21,1],[21,1],[21,1],[21,1],[21,1],[21,2],[21,2],[21,2],[21,2],[21,1],[21,1],[21,1],[21,1],[21,1],[412,1],[412,1],[412,1],[412,1],[412,1],[412,1],[412,1],[412,1],[412,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,1],[427,2],[1138,5],[1147,3],[1147,3],[1147,4],[1147,5],[1147,5],[1147,6],[1139,1],[1139,1],[1148,1],[1148,1],[1155,5],[1155,6],[1157,4],[1157,5],[1157,6],[1157,3],[1157,6],[1157,5],[1157,3],[1157,7],[1157,4],[1157,6],[1157,5],[1157,6],[1156,4],[1156,5],[1158,4],[1158,5],[1158,3],[1158,4],[1158,4],[1158,5],[1158,4],[1140,3],[1141,3],[1141,5],[1149,3],[1149,3],[1149,4],[1149,5],[1149,3],[1149,4],[1149,4],[1149,5],[1149,5],[1149,5],[1142,5],[1150,3],[1150,4],[1150,5],[1150,5],[1150,6],[1159,0],[1159,1],[1159,1],[1143,6],[1151,4],[1151,3],[1151,5],[1151,6],[1151,6],[1144,5],[1152,3],[1152,5],[1152,4],[1145,4],[1153,4],[1153,5],[1153,3],[1153,4],[1153,4],[1146,5],[1154,2],[1154,5],[1154,4],[1154,5],[1154,6],[1154,5],[1154,6],[1154,5],[1119,4],[1126,2],[1126,3],[1126,5],[1126,4],[1126,4],[1120,5],[1127,3],[1127,2],[1127,4],[1127,6],[1127,3],[1127,5],[1127,5],[1127,5],[1161,0],[1161,1],[1162,1],[413,3],[428,2],[1163,1],[1163,3],[414,6],[414,5],[414,6],[414,6],[414,7],[414,8],[429,2],[429,3],[429,3],[429,4],[429,5],[429,5],[429,7],[429,6],[429,3],[429,4],[429,4],[429,6],[429,5],[429,5],[429,5],[429,7],[429,6],[429,2],[429,4],[429,5],[429,2],[429,3],[429,4],[429,4],[429,5],[429,6],[429,8],[429,7],[429,9],[429,8],[1165,0],[1165,2],[1173,2],[1173,2],[1179,2],[1179,2],[1179,1],[1180,2],[1180,2],[1180,2],[1180,1],[1171,2],[1171,2],[1171,2],[1171,2],[1178,2],[1178,2],[1178,2],[1164,1],[1164,3],[1172,1],[1172,3],[1172,3],[1172,5],[1172,3],[1172,3],[1172,5],[1181,2],[1182,2],[1183,1],[1183,1],[1183,1],[1183,1],[1183,1],[1183,1],[1183,1],[1183,1],[1183,1],[1183,1],[1183,1],[1170,1],[1170,1],[1170,1],[1170,1],[1170,1],[1170,1],[1170,2],[1177,2],[1166,1],[1166,3],[1174,3],[1174,3],[1174,5],[818,2],[818,2],[818,2],[819,2],[819,2],[819,2],[1168,1],[1168,3],[1167,0],[1167,3],[1167,3],[1175,2],[1175,3],[1175,3],[1169,0],[1169,3],[1176,2],[1176,3],[415,5],[415,8],[415,4],[415,5],[415,7],[415,8],[415,5],[415,6],[415,6],[415,7],[430,2],[430,2],[430,3],[430,4],[430,5],[430,5],[430,3],[430,4],[430,5],[430,5],[430,6],[430,7],[430,8],[430,8],[430,3],[430,4],[430,4],[430,4],[430,5],[430,5],[430,4],[430,5],[430,6],[430,7],[430,7],[430,7],[430,8],[430,8],[430,3],[430,4],[430,2],[430,4],[430,5],[430,2],[430,3],[430,4],[430,4],[430,5],[430,6],[1188,1],[1188,2],[1190,2],[1121,1],[1121,1],[1121,1],[1121,2],[1121,2],[1121,1],[1131,2],[1131,2],[1131,3],[1128,1],[1128,2],[1128,2],[1128,2],[1128,2],[1128,1],[1128,2],[1128,3],[1128,2],[1128,3],[1128,3],[1193,6],[1193,7],[1193,5],[1193,6],[1196,2],[1196,4],[1196,6],[1196,6],[1196,6],[1196,4],[1196,7],[1196,7],[1196,7],[1196,5],[1196,5],[1196,5],[1196,4],[1196,6],[1196,6],[1196,6],[1194,1],[1194,2],[1197,1],[1197,2],[1197,2],[1197,3],[1204,3],[1205,1],[1205,3],[1205,2],[1205,3],[1205,3],[1191,7],[1191,7],[1191,6],[1129,2],[1129,4],[1129,4],[1129,5],[1129,6],[1206,1],[1206,3],[1209,3],[1208,0],[1208,1],[1200,0],[1200,3],[1202,2],[1202,3],[1202,3],[1195,4],[1198,5],[1198,4],[1198,4],[1199,0],[1199,1],[1132,1],[1130,1],[1210,4],[1210,3],[1211,1],[1211,3],[1211,4],[1211,4],[1211,4],[1211,3],[1211,3],[1212,1],[1212,1],[1215,1],[1215,1],[1217,5],[1219,2],[1219,4],[1219,6],[1219,5],[1219,5],[1218,6],[1220,2],[1220,4],[1220,7],[1220,6],[1220,6],[1220,6],[1223,1],[1223,1],[1222,0],[1222,1],[1213,0],[1213,1],[1213,1],[1214,1],[1214,3],[1216,1],[1216,3],[1216,5],[1216,3],[1225,3],[1226,3],[1226,3],[1192,4],[1133,1],[1133,2],[1133,3],[1133,3],[1133,4],[1133,4],[1227,9],[1229,2],[1229,3],[1229,3],[1229,4],[1229,5],[1229,6],[1229,7],[1229,7],[1229,8],[1229,9],[1231,3],[1231,1],[1232,3],[1232,3],[1232,1],[1228,1],[1228,2],[1228,3],[1230,1],[1230,2],[1230,2],[1230,3],[1230,3],[1233,6],[1234,3],[1234,5],[1234,4],[1234,6],[1234,6],[1235,0],[1235,2],[1237,2],[1236,3],[1236,1],[1236,3],[1238,2],[1238,3],[1238,2],[1122,10],[1134,2],[1134,4],[1134,6],[1134,7],[1134,8],[1134,9],[1134,10],[1134,11],[1134,10],[1134,10],[1245,0],[1245,1],[1245,1],[1243,0],[1243,1],[1241,1],[1241,1],[1242,1],[1242,1],[1244,1],[1244,1],[1123,6],[1135,3],[1135,3],[1135,2],[1135,6],[1135,6],[1135,7],[1135,7],[1135,6],[1135,7],[1248,0],[1248,1],[1249,4],[1249,3],[1250,2],[1250,3],[1250,4],[1250,4],[1250,2],[1250,3],[1250,3],[1124,7],[1124,12],[1136,2],[1136,3],[1136,3],[1136,5],[1136,4],[1136,7],[1136,8],[1136,9],[1136,7],[1136,12],[1136,8],[1136,13],[1136,7],[1136,12],[1136,12],[417,4],[417,2],[1251,1],[1251,3],[858,1],[858,1],[858,2],[858,1],[858,1],[858,1],[858,1],[416,3],[416,3],[416,3],[431,3],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[418,1],[1272,1],[1272,1],[432,2],[432,3],[432,4],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[432,1],[1252,4],[1274,3],[1274,4],[1274,4],[1253,4],[1253,6],[1275,3],[1275,4],[1275,4],[1275,5],[1275,6],[1275,5],[1275,6],[1275,6],[1254,2],[1255,3],[1256,4],[1276,3],[1276,4],[1276,4],[1276,4],[1290,1],[1290,1],[1257,3],[1257,3],[1277,3],[1277,3],[1258,4],[1258,3],[1278,3],[1259,5],[1279,3],[1279,4],[1279,5],[1279,6],[1279,5],[1279,5],[1260,2],[1260,3],[1260,4],[1260,6],[1280,3],[1280,4],[1280,5],[1280,6],[1280,6],[1280,6],[1261,3],[1261,5],[1261,5],[1261,6],[1261,4],[1281,3],[1281,5],[1281,5],[1281,6],[1281,6],[1281,3],[1291,0],[1291,1],[1292,1],[1292,2],[1262,4],[1262,6],[1282,2],[1282,2],[1282,4],[1282,6],[1282,3],[1282,4],[1282,4],[1282,5],[1282,6],[1282,6],[1282,6],[1263,3],[1263,4],[1263,4],[1263,5],[1263,4],[1283,3],[1283,3],[1283,4],[1283,4],[1283,4],[1283,5],[1283,5],[1283,4],[1264,3],[1264,4],[1264,3],[1264,4],[1284,3],[1284,3],[1284,4],[1284,4],[1284,3],[1284,3],[1284,4],[1284,4],[1265,5],[1265,5],[1285,3],[1285,3],[1285,5],[1285,4],[1285,5],[1285,4],[1285,5],[1266,2],[1266,2],[1267,6],[1267,7],[1286,3],[1286,4],[1286,4],[1286,5],[1286,6],[1286,6],[1286,6],[1286,7],[1286,7],[1286,7],[1286,7],[1286,8],[1286,3],[1286,4],[1286,4],[1286,4],[1268,3],[1268,4],[1268,5],[1287,4],[1269,3],[1269,6],[1288,3],[1288,3],[1270,2],[1271,4],[1289,5],[1289,4],[1289,4],[1293,0],[1293,2],[1293,2],[1295,2],[1295,2],[1294,0],[1294,2],[1296,2],[1125,6],[1137,6],[1137,6],[1137,6],[1137,6],[1137,7],[1137,3],[1137,2],[1137,2],[1137,2],[1297,1],[1299,1],[1301,1],[1302,1],[1239,1],[1239,3],[1240,1],[1240,3],[1240,3],[1240,5],[1303,3],[1304,3],[1304,2],[1304,1],[1305,1],[1306,1],[1307,1],[1298,0],[1298,2],[1300,2],[1300,2],[1308,1],[1308,1],[419,2],[433,2]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 2: case 3: - - return parser.yy.result; - -break; -case 4: - - parser.prepareNewStatement(); - -break; -case 6: case 8: case 10: - - parser.addStatementLocation(_$[$0]); - -break; -case 9: case 11: - - parser.addStatementLocation(_$[$0-3]); - -break; -case 18: - - if (parser.isHive()) { - parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); - } else if (parser.isImpala()) { - parser.suggestDdlAndDmlKeywords(['EXPLAIN']); - } else { - parser.suggestDdlAndDmlKeywords(); - } - -break; -case 19: - - if (parser.isHive() || parser.isImpala()) { - parser.suggestKeywords(['INSERT', 'SELECT']); - } else { - parser.suggestKeywords(['SELECT']); - } - -break; -case 169: - - if (!$$[$0-1]) { - parser.suggestDdlAndDmlKeywords([{ value: 'AUTHORIZATION', weight: 2 }, { value: 'DEPENDENCY', weight: 2 }, { value: 'EXTENDED', weight: 2 }]); - } else { - parser.suggestDdlAndDmlKeywords(); - } - -break; -case 170: - - parser.suggestDdlAndDmlKeywords(); - -break; -case 542: - - parser.suggestSetOptions(); - if (parser.isHive()) { - parser.suggestKeywords(['ROLE']); - } - if (parser.isImpala()) { - parser.suggestKeywords(['ALL']); - } - -break; -case 610: case 613: case 718: case 759: case 853: case 1060: case 1243: case 1352: case 1413: case 2530: case 2532: case 3033: -this.$ = $$[$0-1]; -break; -case 611: case 614: case 760: -this.$ = ''; -break; -case 635: - - parser.suggestKeywords(['INDEX', 'INDEXES']); - -break; -case 636: - - parser.suggestKeywords(['FORMATTED']); - -break; -case 653: case 656: - - parser.yy.correlatedSubQuery = false; - -break; -case 654: case 658: - - parser.suggestKeywords(['EXISTS']); - -break; -case 657: - - parser.suggestKeywords(['NOT EXISTS']); - -break; -case 668: case 670: case 671: case 673: - - parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); - -break; -case 669: case 672: case 3060: - - parser.suggestKeywords(['VALUES']); - -break; -case 696: case 700: case 704: case 740: case 741: case 786: case 789: case 962: case 1031: case 1777: case 1875: case 1894: case 1940: case 1942: case 2311: case 2570: case 3350: - - parser.suggestColumns(); - -break; -case 708: case 761: - - parser.addTableLocation(_$[$0], [ { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0] } ] }; - -break; -case 709: case 762: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.addTableLocation(_$[$0], [ { name: $$[$0-2] }, { name: $$[$0] } ]); - this.$ = { identifierChain: [ { name: $$[$0-2] }, { name: $$[$0] } ] }; - -break; -case 710: - - // This is a special case for Impala expression like "SELECT | FROM db.table.col" - this.$ = { identifierChain: [ { name: $$[$0-3] }, { name: $$[$0-1] } ].concat($$[$0]) }; - -break; -case 711: case 1681: case 1847: case 2014: case 2020: case 2029: case 2219: case 2543: case 2567: case 2670: case 2675: case 2693: case 2716: case 2723: case 2780: case 2788: case 3067: case 3098: case 3101: case 3107: case 3336: case 3356: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 712: case 726: - - parser.suggestDatabases(); - this.$ = { identifierChain: [{ name: $$[$0-2] }] }; - -break; -case 713: - - // In Impala you can have statements like 'SELECT ... FROM testTable t, t.|' - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 714: - - // TODO: switch to suggestColumns, it's currently handled in sqlAutocompleter2.js - // Issue is that suggestColumns is deleted if no tables are defined and this is - // Impala only cases like "SELECT | FROM db.table.col" - parser.suggestTables({ identifierChain: [{ name: $$[$0-3] }, { name: $$[$0-1] }].concat($$[$0]) }); - -break; -case 715: case 891: -this.$ = [$$[$0]]; -break; -case 716: - - $$[$0-1].push($$[$0]); - -break; -case 717: case 720: -this.$ = []; -break; -case 719: case 855: case 1245: -this.$ = $$[$0-2]; -break; -case 721: -this.$ = { name: $$[$0] }; -break; -case 725: case 1732: case 1959: - - parser.suggestDatabases({ appendDot: true }); - -break; -case 729: case 1973: case 2010: case 2779: case 2787: case 3190: case 3250: case 3264: case 3322: case 3323: case 3361: - - parser.suggestDatabases(); - -break; -case 739: case 967: case 968: case 974: case 975: case 1348: case 1440: case 3018: case 3054: - - parser.valueExpressionSuggest(); - -break; -case 747: case 750: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['WITH REPLICATION ='] }; - } - -break; -case 752: case 3208: - - parser.suggestKeywords(['IN']); - -break; -case 756: - - parser.suggestKeywords(['REPLICATION =']); - -break; -case 757: case 1715: case 1872: case 2272: - - parser.suggestKeywords(['=']); - -break; -case 763: case 3313: - - parser.suggestTables(); - parser.suggestDatabases({ prependDot: true }); - -break; -case 764: - - parser.suggestTablesOrColumns($$[$0-2]); - -break; -case 766: -this.$ = { identifierChain: $$[$0-1].identifierChain, alias: $$[$0] }; -break; -case 769: - - parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; - -break; -case 770: case 1196: - - parser.addAsteriskLocation(_$[$0], $$[$0-2].concat({ asterisk: true })); - -break; -case 772: - - this.$ = [ $$[$0].identifier ]; - parser.yy.firstChainLocation = parser.addUnknownLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 773: - - if (parser.yy.firstChainLocation) { - parser.yy.firstChainLocation.firstInChain = true; - delete parser.yy.firstChainLocation; - } - $$[$0-2].push($$[$0].identifier); - parser.addUnknownLocation($$[$0].location, $$[$0-2].concat()); - -break; -case 774: case 782: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 775: case 783: - - if ($$[$0].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-2].concat([ $$[$0].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 778: - - parser.suggestColumns({ - identifierChain: $$[$0-2] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 779: - - parser.suggestColumns({ - identifierChain: $$[$0-4] - }); - this.$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; - -break; -case 780: -this.$ = [ $$[$0].identifier ]; -break; -case 781: - - $$[$0-2].push($$[$0].identifier); - -break; -case 784: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: $$[$0-4].concat([ $$[$0-2].identifier ]) }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 785: - - if ($$[$0-2].insideKey) { - parser.suggestKeyValues({ identifierChain: [ $$[$0-2].identifier ] }); - parser.suggestColumns(); - parser.suggestFunctions(); - } - -break; -case 787: - - parser.suggestColumns({ identifierChain: $$[$0-2] }); - -break; -case 788: - - parser.suggestColumns({ identifierChain: $$[$0-4] }); - -break; -case 790: -this.$ = { identifier: { name: $$[$0] }, location: _$[$0] };; -break; -case 791: -this.$ = { identifier: { name: $$[$0-3], keySet: true }, location: _$[$0-3] }; -break; -case 792: -this.$ = { identifier: { name: $$[$0-2], keySet: true }, location: _$[$0-2] }; -break; -case 793: -this.$ = { identifier: { name: $$[$0-3] }, insideKey: true }; -break; -case 794: -this.$ = { identifier: { name: $$[$0-3] }};; -break; -case 827: - - parser.addTablePrimary($$[$0-2]); - parser.addColumnLocation(_$[$0-1], $$[$0-1]); - -break; -case 828: case 1683: case 1982: case 2004: case 2018: case 2032: case 2221: case 2669: case 2679: case 2680: case 2705: case 2711: case 2714: case 2719: case 3061: case 3070: case 3071: case 3100: case 3110: case 3207: case 3253: case 3254: case 3266: case 3268: - - parser.addTablePrimary($$[$0-1]); - -break; -case 829: case 845: case 2005: - - parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 832: case 1679: case 2017: case 2024: case 2025: case 3255: - - parser.addTablePrimary($$[$0-2]); - -break; -case 833: - - if (!$$[$0-4]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - -break; -case 834: - - if (!$$[$0-3]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - -break; -case 835: - - parser.addTablePrimary($$[$0-2]); - parser.suggestColumns(); - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 836: - - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 839: - - if (!$$[$0-1]) { - parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 840: case 842: - - if (!$$[$0-1]) { - parser.suggestKeywords(['EXTENDED']); - } - -break; -case 841: case 843: - - if (!$$[$0-2]) { - parser.suggestKeywords(['EXTENDED']); - } - -break; -case 844: case 1877: case 1960: case 1963: case 2012: case 2539: case 2668: case 2689: case 2699: case 2703: case 2777: case 2778: case 2784: case 3034: case 3103: case 3177: case 3193: case 3252: case 3265: case 3267: case 3310: case 3339: - - parser.addTablePrimary($$[$0]); - -break; -case 846: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 848: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); - } - -break; -case 849: - - if (!$$[$0-1]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.suggestDatabases(); - -break; -case 850: - - if (!$$[$0-2]) { - parser.suggestKeywords(['EXTENDED', 'FORMATTED']); - } - parser.addDatabaseLocation(_$[$0], [{ name: $$[$0] }]); - -break; -case 858: - - parser.addCommonTableExpressions($$[$0-3]); - -break; -case 859: case 860: case 894: - - parser.addCommonTableExpressions($$[$0-2]); - -break; -case 864: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); - this.$ = { selectList: $$[$0] }; - -break; -case 865: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - this.$ = { selectList: $$[$0-1], tableExpression: $$[$0] } - -break; -case 876: - - parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); - -break; -case 877: - - parser.suggestKeywords(['ALL', 'DISTINCT']); - -break; -case 879: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0]); - if ($$[$0].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForSelectListKeywords($$[$0]); - } - if ($$[$0].suggestFunctions) { - parser.suggestFunctions(); - } - if ($$[$0].suggestColumns) { - parser.suggestColumns({ identifierChain: [], source: 'select' }); - } - if ($$[$0].suggestTables) { - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - } - if ($$[$0].suggestDatabases) { - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - } - if ($$[$0].suggestAggregateFunctions && (!$$[$0-2] || $$[$0-2] === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - -break; -case 880: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-1], _$[$0-1], $$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3]), _$[$0], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 881: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - -break; -case 882: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - parser.selectListNoTableSuggest($$[$0-1], $$[$0-3]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'select'; - } - -break; -case 883: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1], true); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-3] || $$[$0-3] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-2] && !$$[$0-3]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$$[$0-2]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns({ identifierChain: [], source: 'select' }); - parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); - parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); - -break; -case 884: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5]), _$[$0-2]); - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 885: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6]), _$[$0-3]); - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 886: - - parser.addClauseLocation('selectList', parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4]), _$[$0-1]); - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = ['FROM']; - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.suggestTables({ prependFrom: true }); - parser.suggestDatabases({ prependFrom: true, appendDot: true }); - -break; -case 889: case 934: case 965: case 978: case 982: case 1020: case 1024: case 1052: case 1078: case 1079: case 1160: case 1162: case 1230: case 1240: case 1247: case 1259: case 1438: case 1634: case 1635: case 1923: case 2092: case 2109: case 3053: case 3355: -this.$ = $$[$0]; -break; -case 892: -this.$ = $$[$0-2].concat([$$[$0]]);; -break; -case 896: - - parser.addCommonTableExpressions($$[$0-4]); - -break; -case 897: - - parser.addCteAliasLocation(_$[$0-4], $$[$0-4]); - $$[$0-1].alias = $$[$0-4]; - this.$ = $$[$0-1]; - -break; -case 898: case 1493: case 2332: case 2392: case 2469: case 2473: case 2546: - - parser.suggestKeywords(['AS']); - -break; -case 899: case 1355: case 1956: case 2406: case 2415: case 3035: - - parser.suggestKeywords(['SELECT']); - -break; -case 905: case 906: - - parser.addClauseLocation('whereClause', _$[$0-1], $$[$0].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0].limitClausePreceding || _$[$0-1], $$[$0].limitClauseLocation); - -break; -case 907: - - var keywords = []; - - parser.addClauseLocation('whereClause', _$[$0-3], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-2].limitClausePreceding || _$[$0-3], $$[$0-2].limitClauseLocation); - - if ($$[$0-3]) { - if (!$$[$0-3].hasLateralViews && typeof $$[$0-3].tableReferenceList.hasJoinCondition !== 'undefined' && !$$[$0-3].tableReferenceList.hasJoinCondition) { - keywords.push({ value: 'ON', weight: 3 }); - if (parser.isImpala()) { - keywords.push({ value: 'USING', weight: 3 }); - } - } - if ($$[$0-3].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - } - if ($$[$0-3].tableReferenceList.suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-3].tableReferenceList.suggestJoinConditions); - } - if ($$[$0-3].tableReferenceList.suggestJoins) { - parser.suggestJoins($$[$0-3].tableReferenceList.suggestJoins); - } - if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].tableReferenceList.suggestKeywords, 3)); - } - - // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' - keywords.forEach(function (keyword) { - if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { - keyword.weight = 1.1; - } - }); - - if (!$$[$0-3].hasLateralViews && $$[$0-3].tableReferenceList.types) { - var veKeywords = parser.getValueExpressionKeywords($$[$0-3].tableReferenceList); - keywords = keywords.concat(veKeywords.suggestKeywords); - if (veKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); - parser.addColRefIfExists($$[$0-3].tableReferenceList); - } - } - } - - if ($$[$0-1].empty && $$[$0] && $$[$0].joinType.toUpperCase() === 'JOIN') { - keywords = keywords.concat(['FULL', 'FULL OUTER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); - if (parser.isHive()) { - keywords = keywords.concat(['CROSS', 'INNER', 'LEFT SEMI']); - } else if (parser.isImpala()) { - keywords = keywords.concat(['ANTI', 'CROSS', 'INNER', 'LEFT ANTI', 'LEFT INNER', 'LEFT SEMI', 'OUTER', 'RIGHT ANTI', 'RIGHT INNER', 'RIGHT SEMI', 'SEMI']); - } else { - keywords.push('INNER'); - } - parser.suggestKeywords(keywords); - return; - } - - if ($$[$0-1].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].suggestFilters) { - parser.suggestFilters($$[$0-1].suggestFilters); - } - if ($$[$0-1].suggestGroupBys) { - parser.suggestGroupBys($$[$0-1].suggestGroupBys); - } - if ($$[$0-1].suggestOrderBys) { - parser.suggestOrderBys($$[$0-1].suggestOrderBys); - } - - if ($$[$0-1].empty) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - - keywords = keywords.concat([ - { value: 'FULL JOIN', weight: 1 }, - { value: 'FULL OUTER JOIN', weight: 1 }, - { value: 'JOIN', weight: 1 }, - { value: 'LEFT JOIN', weight: 1 }, - { value: 'LEFT OUTER JOIN', weight: 1 }, - { value: 'RIGHT JOIN', weight: 1 }, - { value: 'RIGHT OUTER JOIN', weight: 1 } - ]); - if (parser.isHive()) { - keywords = keywords.concat([ - { value: 'CROSS JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 } - ]); - } else if (parser.isImpala()) { - keywords = keywords.concat([ - { value: 'ANTI JOIN', weight: 1 }, - { value: 'INNER JOIN', weight: 1 }, - { value: 'LEFT ANTI JOIN', weight: 1 }, - { value: 'LEFT INNER JOIN', weight: 1 }, - { value: 'LEFT SEMI JOIN', weight: 1 }, - { value: 'OUTER JOIN', weight: 1 }, - { value: 'RIGHT ANTI JOIN', weight: 1 }, - { value: 'RIGHT INNER JOIN', weight: 1 }, - { value: 'RIGHT SEMI JOIN', weight: 1 }, - { value: 'SEMI JOIN', weight: 1 } - ]); - } else { - keywords.push({ value: 'INNER JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - -break; -case 908: - - // A couple of things are going on here: - // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options - // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest - // different join types - // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' - // or 'AND' based on type - - if (!$$[$0-1]) { - parser.addClauseLocation('whereClause', _$[$0-2]); - parser.addClauseLocation('limitClause', _$[$0-2]); - return; - } - parser.addClauseLocation('whereClause', _$[$0-2], $$[$0-1].whereClauseLocation); - parser.addClauseLocation('limitClause', $$[$0-1].limitClausePreceding || _$[$0-2], $$[$0-1].limitClauseLocation); - var keywords = []; - - if ($$[$0-1].suggestColRefKeywords) { - parser.suggestColRefKeywords($$[$0-1].suggestColRefKeywords); - parser.addColRefIfExists($$[$0-1]); - } - - if ($$[$0-1].suggestKeywords && $$[$0-1].suggestKeywords.length) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2)); - } - - if ($$[$0-1].cursorAtEnd) { - keywords.push({ value: 'UNION', weight: 2.11 }); - } - parser.suggestKeywords(keywords); - -break; -case 912: - - if (parser.isHive()) { - this.$ = { tableReferenceList : $$[$0-1], suggestKeywords: ['LATERAL VIEW'] } - } else { - this.$ = { tableReferenceList : $$[$0-1] } - } - if (parser.isHive() && $$[$0]) { - parser.yy.lateralViews = $$[$0].lateralViews; - this.$.hasLateralViews = true; - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = this.$.suggestKeywords.concat($$[$0].suggestKeywords); - } - } - -break; -case 913: case 1252: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 914: - - if ($$[$0]) { - parser.yy.lateralViews = $$[$0].lateralViews; - } - -break; -case 916: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-7], $$[$0-6], $$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, true, parser.isHive(), true, parser.isHive(), parser.isHive() && !$$[$0-3], true, parser.isImpala()]); - - if (keywords.length > 0) { - this.$ = { suggestKeywords: keywords, empty: !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - } else { - this.$ = {}; - } - - this.$.whereClauseLocation = $$[$0-7] ? _$[$0-7] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6], $$[$0-7], _$[$0-7]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - - if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; - } - -break; -case 917: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'where'; - } - -break; -case 918: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'group by'; - } - -break; -case 921: - - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.source = 'order by'; - } - -break; -case 925: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-6], $$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, true, parser.isHive(), true, parser.isHive(), parser.isHive() && !$$[$0-3], true, parser.isImpala()]); - if ($$[$0-8].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-8].suggestKeywords, 1)); - } - this.$ = parser.getValueExpressionKeywords($$[$0-8], keywords); - this.$.cursorAtEnd = !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if ($$[$0-8].columnReference) { - this.$.columnReference = $$[$0-8].columnReference; - } - if (!$$[$0-6]) { - parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6], $$[$0-8], _$[$0-8]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 926: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-5], $$[$0-4], $$[$0-3], $$[$0-2], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [true, parser.isHive(), true, parser.isHive(), parser.isHive() && !$$[$0-3], true, parser.isImpala()]); - if ($$[$0-7].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-7].suggestKeywords, 8)); - } - if ($$[$0-7].valueExpression) { - this.$ = parser.getValueExpressionKeywords($$[$0-7].valueExpression, keywords); - if ($$[$0-7].valueExpression.columnReference) { - this.$.columnReference = $$[$0-7].valueExpression.columnReference; - } - } else { - this.$ = { suggestKeywords: keywords }; - } - this.$.cursorAtEnd = !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]; - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-7], _$[$0-7]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 927: - - var keywords = parser.getKeywordsForOptionalsLR( - [$$[$0-4], $$[$0-3], $$[$0-2], $$[$0-2], $$[$0-1], $$[$0]], - [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], - [parser.isHive(), true, parser.isHive(), parser.isHive() && !$$[$0-3], true, parser.isImpala()]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - if (!$$[$0-4] && !$$[$0-3]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-6], _$[$0-6]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 928: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0-3], $$[$0-2], $$[$0-1], $$[$0]], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, parser.isHive(), true, parser.isImpala()]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - if (!$$[$0-3]) { - parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-3], _$[$0-3], $$[$0-5], _$[$0-5]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 929: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [parser.isHive(), true, parser.isImpala()]); - if ($$[$0-4].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-4].suggestKeywords, 5)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-2] && !$$[$0-1] && !$$[$0] }; - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-2], _$[$0-2], $$[$0-4], _$[$0-4]); - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 930: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, parser.isImpala()]); - if ($$[$0-3].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-3].suggestKeywords, 4)); - } - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0-1] && !$$[$0] }; - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = _$[$0-3]; - this.$.limitClauseLocation = $$[$0-1] ? _$[$0-1] : undefined; - -break; -case 931: - - var keywords = parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'OFFSET', weight: 2 }], [parser.isImpala()]); - this.$ = { suggestKeywords: keywords, cursorAtEnd: !$$[$0] }; - this.$.whereClauseLocation = $$[$0-8] ? _$[$0-8] : undefined; - this.$.limitClausePreceding = parser.firstDefined($$[$0-3], _$[$0-3], $$[$0-4], _$[$0-4], $$[$0-5], _$[$0-5], $$[$0-6], _$[$0-6], $$[$0-7], _$[$0-7], $$[$0-8], _$[$0-8]); - this.$.limitClauseLocation = $$[$0-2] ? _$[$0-2] : undefined; - -break; -case 935: - - if ($$[$0].suggestFilters) { - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 936: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); - parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 939: - - this.$ = { valueExpression: $$[$0] ? false : $$[$0-1] }; - if (!$$[$0] && parser.isHive()) { - this.$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; - } - -break; -case 940: case 989: case 1015: case 1019: case 1022: - - parser.suggestSelectListAliases(); - -break; -case 941: - - parser.valueExpressionSuggest(); - parser.suggestSelectListAliases(); - parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 942: - - parser.suggestKeywords(['BY']); - parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 949: - - if (parser.isHive()) { - parser.suggestKeywords(['CUBE', 'ROLLUP']); - } - -break; -case 951: - - parser.suggestKeywords(['SETS']); - -break; -case 979: - - if ($$[$0].emptyOrderBy) { - parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - } - -break; -case 980: - - parser.suggestKeywords(['BY']); - parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); - -break; -case 984: - - this.$ = { emptyOrderBy: false } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 985: case 986: case 987: -this.$ = { emptyOrderBy: false }; -break; -case 988: -this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]); -break; -case 991: - - this.$ = { emptyOrderBy: true } - parser.valueExpressionSuggest(); - parser.suggestAnalyticFunctions(); - parser.suggestSelectListAliases(); - -break; -case 992: - - this.$ = { suggestKeywords: ['ASC', 'DESC'] }; - -break; -case 997: - - if (parser.isImpala()) { - this.$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; - } else { - this.$ = {}; - } - -break; -case 1000: - - parser.suggestKeywords(['FIRST', 'LAST']); - -break; -case 1004: -this.$ = { suggestKeywords: ['SORT BY'] }; -break; -case 1013: case 1017: case 1021: - - suggestKeywords: ['BY']; - -break; -case 1014: case 1018: - - parser.suggestColumns(); - parser.suggestSelectListAliases(); - -break; -case 1029: - - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - this.$ = $$[$0]; - -break; -case 1040: case 1045: - - parser.suggestFunctions({ types: ['BIGINT'] }); - -break; -case 1041: case 1046: - - delete parser.yy.result.suggestColumns; - -break; -case 1050: case 1051: - - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1053: - - // verifyType($$[$0], 'NUMBER'); - this.$ = $$[$0]; - $$[$0].types = ['NUMBER']; - -break; -case 1054: case 1055: case 1056: case 1057: case 1058: case 1065: case 1066: case 1067: case 1068: case 1069: case 1070: case 1076: case 1077: case 1098: case 1156: case 1157: case 1219: -this.$ = { types: [ 'BOOLEAN' ] }; -break; -case 1059: - - this.$ = { types: [ 'BOOLEAN' ] }; - // clear correlated flag after completed sub-query (set by lexer) - parser.yy.correlatedSubQuery = false; - -break; -case 1061: case 1062: case 1063: case 1064: - - parser.addColRefToVariableIfExists($$[$0-2], $$[$0]); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1071: case 1072: - - // verifyType($$[$0-2], 'BOOLEAN'); - // verifyType($$[$0], 'BOOLEAN'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1073: case 1074: case 1075: - - // verifyType($$[$0-2], 'NUMBER'); - // verifyType($$[$0], 'NUMBER'); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 1081: - - if (parser.isImpala()) { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'ILIKE', 'IREGEXP', 'LIKE', 'REGEXP', 'RLIKE']); - } else { - parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); - } - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1082: case 1084: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 1083: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.suggestKeywords(['EXISTS']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1085: - - parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); - parser.suggestColumns({ types: [ 'BOOLEAN' ] }); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1086: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0].suggestFilters }; -break; -case 1087: - - parser.suggestFunctions(); - parser.suggestColumns(); - this.$ = { types: [ 'T' ] }; - -break; -case 1088: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions('NUMBER'); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1089: - - parser.suggestFunctions({ types: [ 'NUMBER' ] }); - parser.suggestColumns({ types: [ 'NUMBER' ] }); - this.$ = { types: [ 'NUMBER' ] }; - -break; -case 1090: - - var keywords = ['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']; - if (parser.isImpala()) { - keywords = keywords.concat(['DISTINCT FROM', 'NOT DISTINCT FROM', 'NOT UNKNOWN', 'UNKNOWN']); - } - parser.suggestKeywords(keywords); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1091: - - var keywords = ['FALSE', 'NULL', 'TRUE']; - if (parser.isImpala()) { - keywords = keywords.concat(['DISTINCT FROM', 'UNKNOWN']); - } - parser.suggestKeywords(keywords); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1092: - - if (parser.isImpala()) { - parser.suggestKeywords(['FROM']); - } - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1093: case 1094: case 1095: - - parser.suggestKeywords(['NOT']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1096: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-3] ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1097: - - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1099: - - this.$ = $$[$0-1]; - -break; -case 1100: - - parser.valueExpressionSuggest(); - this.$ = { types: ['T'], typeSet: true }; - -break; -case 1101: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1102: case 1103: case 1104: - - parser.valueExpressionSuggest($$[$0], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1105: case 1106: case 1107: case 1108: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0].types); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1109: case 1111: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1110: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; - -break; -case 1112: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $$[$0-1] === '<=' }; - -break; -case 1113: case 1114: case 1115: case 1116: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1117: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-3].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1118: - - if ($$[$0].inValueEdit) { - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - } - if ($$[$0].cursorAtStart) { - parser.suggestKeywords(['SELECT']); - } - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1119: case 1120: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; -break; -case 1121: case 1122: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; -break; -case 1123: - - if ($$[$0-2].types[0] === $$[$0].types[0] && !$$[$0-5].typeSet) { - parser.applyTypeToSuggestions($$[$0-2].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-5].suggestFilters }; - -break; -case 1124: - - if ($$[$0-5].types[0] === $$[$0].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 1125: - - if ($$[$0-5].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-5].types); - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1126: - - parser.valueExpressionSuggest($$[$0-5], $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1127: case 1133: - - parser.suggestValueExpressionKeywords($$[$0-1], ['AND']); - this.$ = { types: [ 'BOOLEAN' ] }; - -break; -case 1128: - - parser.valueExpressionSuggest($$[$0-3], $$[$0-2] + ' ' + $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1129: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-4].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-4].suggestFilters }; - -break; -case 1130: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0-2].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; - -break; -case 1131: - - if ($$[$0-4].types[0] === $$[$0-2].types[0] && !$$[$0].typeSet) { - parser.applyTypeToSuggestions($$[$0-4].types) - } - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1132: - - parser.valueExpressionSuggest($$[$0-4], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-4].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1134: - - parser.valueExpressionSuggest($$[$0-2], $$[$0-1]); - parser.applyTypeToSuggestions($$[$0-2].types); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1135: case 1137: case 1139: case 1141: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; - -break; -case 1136: case 1140: - - parser.addColRefIfExists($$[$0]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1138: case 1142: - - parser.addColRefIfExists($$[$0-2]); - this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0].suggestFilters } - -break; -case 1143: case 1144: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions([ 'NUMBER' ]); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 1145: case 1146: case 1147: - - if (!$$[$0-2].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0-2].suggestFilters } - -break; -case 1148: case 1149: case 1150: - - parser.valueExpressionSuggest(undefined, $$[$0-1]); - parser.applyTypeToSuggestions(['NUMBER']); - this.$ = { types: [ 'NUMBER' ], typeSet: true }; - -break; -case 1151: case 1152: case 1153: - - if (!$$[$0].typeSet) { - parser.applyTypeToSuggestions(['NUMBER']); - parser.addColRefIfExists($$[$0-2]); - } - this.$ = { types: [ 'NUMBER' ], suggestFilters: $$[$0].suggestFilters }; - -break; -case 1154: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1155: -this.$ = { types: [ 'BOOLEAN' ], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 1158: - - parser.valueExpressionSuggest(undefined, $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1159: - - parser.valueExpressionSuggest(undefined, $$[$0-1] + ' ' + $$[$0]); - parser.applyTypeToSuggestions([ 'STRING' ]); - this.$ = { types: [ 'BOOLEAN' ], typeSet: true }; - -break; -case 1161: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1163: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1164: - - this.$ = $$[$0]; - this.$.suggestFilters = $$[$0-1].suggestFilters; - -break; -case 1165: -this.$ = { types: [ 'T' ], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1166: case 1496: case 1501: case 1502: -this.$ = { types: [ 'T' ] }; -break; -case 1167: case 1169: - - $$[$0].position = 1; - -break; -case 1168: - - $$[$0].position = $$[$0-2].position + 1; - this.$ = $$[$0]; - -break; -case 1170: - - $$[$0-2].position += 1; - -break; -case 1171: - - $$[$0-2].position = 1; - -break; -case 1172: - - $$[$0-4].position += 1; - -break; -case 1173: - - parser.valueExpressionSuggest(); - $$[$0-2].position += 1; - -break; -case 1174: - - parser.valueExpressionSuggest(); - $$[$0-4].position += 1; - -break; -case 1175: - - parser.suggestValueExpressionKeywords($$[$0-3]); - -break; -case 1176: case 1177: - - parser.valueExpressionSuggest(); - this.$ = { cursorAtStart : true, position: 1 }; - -break; -case 1178: case 1179: - - parser.valueExpressionSuggest(); - this.$ = { position: 2 }; - -break; -case 1183: -this.$ = { types: ['COLREF'], columnReference: $$[$0].chain }; -break; -case 1184: - - // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict - // with columnReference for functions like: db.udf(foo) - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - if($$[$0-1].lastLoc.location){ - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].expression) { - this.$ = { function: fn, expression: $$[$0].expression, types: parser.findReturnTypes(fn) } - } else { - this.$ = { function: fn, types: parser.findReturnTypes(fn) } - } - -break; -case 1185: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 1187: -this.$ = { types: [ 'NULL' ] }; -break; -case 1188: -this.$ = { types: [ 'TIMESTAMP' ] }; -break; -case 1190: - - if ($$[$0].suggestKeywords) { - this.$ = { types: ['COLREF'], columnReference: $$[$0], suggestKeywords: $$[$0].suggestKeywords }; - } else { - this.$ = { types: ['COLREF'], columnReference: $$[$0] }; - } - -break; -case 1191: - - var fn = $$[$0-1].chain[$$[$0-1].chain.length - 1].name.toLowerCase(); - $$[$0-1].lastLoc.type = 'function'; - $$[$0-1].lastLoc.function = fn; - $$[$0-1].lastLoc.location = { - first_line: $$[$0-1].lastLoc.location.first_line, - last_line: $$[$0-1].lastLoc.location.last_line, - first_column: $$[$0-1].lastLoc.location.first_column, - last_column: $$[$0-1].lastLoc.location.last_column - 1 - } - if ($$[$0-1].lastLoc !== $$[$0-1].firstLoc) { - $$[$0-1].firstLoc.type = 'database'; - } else { - delete $$[$0-1].lastLoc.identifierChain; - } - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions(fn, $$[$0].position); - } - this.$ = { types: parser.findReturnTypes(fn) }; - -break; -case 1192: case 1397: case 1398: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].position) { - parser.applyArgumentTypesToSuggestions($$[$0-1], $$[$0].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-1]) }; - -break; -case 1195: - - var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; - if (lastLoc.type !== 'variable') { - lastLoc.type = 'column'; - } - // used for function references with db prefix - var firstLoc = parser.yy.locations[parser.yy.locations.length - $$[$0].length]; - this.$ = { chain: $$[$0], firstLoc: firstLoc, lastLoc: lastLoc } - -break; -case 1199: - - parser.suggestKeywords(['DAYS', 'HOURS', 'MICROSECONDS', 'MILLISECONDS', 'MINUTES', 'MONTHS', 'NANOSECONDS', 'SECONDS', 'WEEKS', 'YEARS']); - -break; -case 1204: - - parser.suggestValues($$[$0]); - -break; -case 1205: -this.$ = { types: [ 'NUMBER' ] }; -break; -case 1211: case 1213: -this.$ = $$[$0-1] + $$[$0]; -break; -case 1212: -this.$ = $$[$0-2] + $$[$0-1] + $$[$0]; -break; -case 1217: case 1218: - - if (/\$\{[^}]*\}/.test($$[$0])) { - parser.addVariableLocation(_$[$0], $$[$0]); - this.$ = { types: [ 'STRING' ], columnReference: [{ name: $$[$0] }] } - } else { - this.$ = { types: [ 'STRING' ] } - } - -break; -case 1220: - - this.$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 1221: - - this.$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; - -break; -case 1226: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - this.$ = { valueExpression: $$[$0-1], alias: $$[$0].alias }; - if (!parser.yy.selectListAliases) { - parser.yy.selectListAliases = []; - } - parser.yy.selectListAliases.push({ name: $$[$0].alias, types: $$[$0-1].types || ['T'] }); - } else { - this.$ = { valueExpression: $$[$0-1] } - } - -break; -case 1227: - - parser.addAsteriskLocation(_$[$0], [{ asterisk: true }]); - this.$ = { asterisk: true } - -break; -case 1228: - - if ($$[$0]) { - parser.addColumnAliasLocation($$[$0].location, $$[$0].alias, _$[$0-1]); - } - -break; -case 1229: - - parser.suggestFunctions(); - parser.suggestColumns(); - parser.addColumnAliasLocation(_$[$0], $$[$0], _$[$0-2]); - this.$ = { suggestAggregateFunctions: true }; - -break; -case 1231: case 1591: -this.$ = [ $$[$0] ]; -break; -case 1232: - - $$[$0-2].push($$[$0]); - -break; -case 1234: case 1235: - - this.$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 1237: - - parser.checkForSelectListKeywords($$[$0-2]); - -break; -case 1238: - - parser.checkForSelectListKeywords($$[$0-3]); - -break; -case 1239: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; - -break; -case 1241: case 1242: case 1244: - - this.$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; - -break; -case 1255: - - this.$ = $$[$0]; - - if (parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - this.$.suggestJoins = { - prependJoin: true, - tables: tables - }; - } - } - -break; -case 1262: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-3]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 1263: - - if ($$[$0] && $$[$0].valueExpression) { - this.$ = $$[$0].valueExpression; - } else { - this.$ = {}; - } - this.$.joinType = $$[$0-4]; - if ($$[$0].noJoinCondition) { - this.$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords; - } - if (parser.yy.latestTablePrimaries.length > 0) { - parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; - } - -break; -case 1264: -this.$ = { joinType: $$[$0-1] }; -break; -case 1265: -this.$ = { joinType: $$[$0-2] }; -break; -case 1269: - - if ($$[$0-3].suggestKeywords) { - parser.suggestKeywords($$[$0-3].suggestKeywords); - } - -break; -case 1270: case 1827: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - -break; -case 1273: - - if (!$$[$0-2] && parser.isImpala()) { - parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']); - } - if (!$$[$0-2] && parser.yy.latestTablePrimaries.length > 0) { - var idx = parser.yy.latestTablePrimaries.length - 1; - var tables = []; - do { - var tablePrimary = parser.yy.latestTablePrimaries[idx]; - if (!tablePrimary.subQueryAlias) { - tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) - } - idx--; - } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) - - if (tables.length > 0) { - parser.suggestJoins({ - prependJoin: false, - joinType: $$[$0-3], - tables: tables - }) - } - } - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 1278: -this.$ = 'JOIN'; -break; -case 1279: -this.$ = 'ANTI JOIN'; -break; -case 1280: -this.$ = 'CROSS JOIN'; -break; -case 1281: -this.$ = 'INNER JOIN'; -break; -case 1282: -this.$ = 'OUTER JOIN'; -break; -case 1283: -this.$ = 'SEMI JOIN'; -break; -case 1284: -this.$ = 'FULL JOIN'; -break; -case 1285: -this.$ = 'FULL OUTER JOIN'; -break; -case 1286: -this.$ = 'LEFT JOIN'; -break; -case 1287: -this.$ = 'LEFT ANTI JOIN'; -break; -case 1288: -this.$ = 'LEFT INNER JOIN'; -break; -case 1289: -this.$ = 'LEFT OUTER JOIN'; -break; -case 1290: -this.$ = 'LEFT SEMI JOIN'; -break; -case 1291: -this.$ = 'RIGHT JOIN'; -break; -case 1292: -this.$ = 'RIGHT ANTI JOIN'; -break; -case 1293: case 1294: -this.$ = 'RIGHT OUTER JOIN'; -break; -case 1295: -this.$ = 'RIGHT SEMI JOIN'; -break; -case 1296: case 1297: case 1298: case 1299: case 1300: case 1301: case 1303: case 1304: case 1305: case 1306: case 1308: case 1309: case 1310: case 1311: -this.$ = { suggestKeywords: ['JOIN'] }; -break; -case 1302: -this.$ = { suggestKeywords: ['OUTER'] }; -break; -case 1307: -this.$ = { suggestKeywords: parser.isImpala() ? ['ANTI', 'INNER', 'OUTER', 'SEMI'] : parser.isHive() ? ['OUTER', 'SEMI'] : ['OUTER'] }; -break; -case 1312: -this.$ = { suggestKeywords: parser.isImpala() ? ['ANTI', 'INNER', 'OUTER', 'SEMI'] : ['OUTER'] }; -break; -case 1313: -this.$ = { noJoinCondition: true, suggestKeywords: parser.isImpala() ? ['ON', 'USING'] : ['ON'] }; -break; -case 1314: -this.$ = { valueExpression: $$[$0] }; -break; -case 1315: case 2122: -this.$ = {}; -break; -case 1319: - - parser.valueExpressionSuggest(); - parser.suggestJoinConditions({ prependOn: false }); - -break; -case 1320: - - this.$ = { - primary: $$[$0-3] - } - if ($$[$0-3].identifierChain) { - if ($$[$0-1]) { - $$[$0-3].alias = $$[$0-1].alias - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-3].identifierChain); - } - parser.addTablePrimary($$[$0-3]); - } - var keywords = []; - if ($$[$0] && $$[$0].suggestKeywords) { - keywords = $$[$0].suggestKeywords; - } else { - // Right-to-left for cursor after TablePrimary - keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1], $$[$0-2]], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [parser.isImpala(), true, parser.isHive()]); - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 1321: - - this.$ = { - primary: $$[$0-2] - }; - - if ($$[$0-1]) { - if(this.$.primary){ - this.$.primary.alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - } - - var keywords = []; - if ($$[$0] && $$[$0].suggestKeywords) { - keywords = $$[$0].suggestKeywords; - } else { - keywords = parser.getKeywordsForOptionalsLR([$$[$0], $$[$0-1]], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }], [parser.isImpala(), true]); - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 1322: - - if ($$[$0-1]) { - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-3].identifierChain); - } - -break; -case 1323: case 1324: - - if ($$[$0-1]) { - $$[$0-3].alias = $$[$0-1].alias; - parser.addTableAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-3].identifierChain); - } - parser.addTablePrimary($$[$0-3]); - -break; -case 1325: - - if ($$[$0-1]) { - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias); - } - -break; -case 1336: - - parser.suggestKeywords(['BUCKET']); - -break; -case 1337: - - parser.suggestKeywords(['OUT OF']); - -break; -case 1338: - - parser.suggestKeywords(['OF']); - -break; -case 1339: - - if (!$$[$0-2]) { - parser.suggestKeywords(['ON']); - } - -break; -case 1341: - - if ($$[$0-2].indexOf('.') === -1 ) { - parser.suggestKeywords(['PERCENT', 'ROWS']); - } else { - parser.suggestKeywords(['PERCENT']); - } - -break; -case 1343: -this.$ = { suggestKeywords: ['REPEATABLE()'] }; -break; -case 1345: - - parser.suggestKeywords(['SYSTEM()']); - -break; -case 1350: - - parser.pushQueryState(); - -break; -case 1351: - - parser.popQueryState(); - -break; -case 1353: - - if ($$[$0-1]) { - $$[$0-2].alias = $$[$0-1].alias; - parser.addTablePrimary({ subQueryAlias: $$[$0-1].alias }); - parser.addSubqueryAliasLocation($$[$0-1].location, $$[$0-1].alias, $$[$0-2].identifierChain); - } - this.$ = $$[$0-2]; - -break; -case 1356: - - var subQuery = parser.getSubQuery($$[$0]); - if(subQuery){ - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; - }); - } - parser.popQueryState(subQuery); - this.$ = subQuery; - -break; -case 1373: case 1374: -this.$ = { alias: $$[$0], location: _$[$0] }; -break; -case 1379: - - if ($$[$0-1] && $$[$0].lateralView) { - $$[$0-1].lateralViews.push($$[$0].lateralView); - this.$ = $$[$0-1]; - } else if ($$[$0].lateralView) { - this.$ = { lateralViews: [ $$[$0].lateralView ] }; - } - if ($$[$0].suggestKeywords) { - this.$.suggestKeywords = $$[$0].suggestKeywords - } - -break; -case 1381: - - if (!$$[$0]) { - $$[$0-1].suggestKeywords = ['OVER']; - } - -break; -case 1390: - - parser.suggestKeywords(['OVER']); - -break; -case 1395: case 1396: - - parser.addFunctionLocation(_$[$0-1], $$[$0-1]); - if ($$[$0].expression) { - this.$ = { function: $$[$0-1], expression: $$[$0].expression, types: parser.findReturnTypes($$[$0-1]) } - } else { - this.$ = { function: $$[$0-1], types: parser.findReturnTypes($$[$0-1]) } - } - -break; -case 1410: -this.$ = { expression: $$[$0-2] }; -break; -case 1411: - - parser.valueExpressionSuggest(); - this.$ = { position: 1 } - -break; -case 1412: - - parser.suggestValueExpressionKeywords($$[$0-1]); - -break; -case 1420: case 1508: case 1574: -this.$ = { types: parser.findReturnTypes($$[$0-2]) }; -break; -case 1421: -this.$ = { function: $$[$0-3], expression: $$[$0-2], types: parser.findReturnTypes($$[$0-3]) }; -break; -case 1422: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-3], 1); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1423: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1424: - - parser.applyArgumentTypesToSuggestions($$[$0-3], $$[$0-1].position); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1432: case 1433: - - if (parser.yy.result.suggestFunctions) { - parser.suggestAggregateFunctions(); - } - -break; -case 1434: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); - } else if (!$$[$0-2]) { - parser.suggestKeywords(['PARTITION BY']); - } - -break; -case 1435: - - if (!$$[$0-1]) { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ORDER BY', weight: 2 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - -break; -case 1439: case 1758: case 2241: case 2242: case 2245: case 2255: case 2289: case 2298: case 2316: case 2373: case 2374: case 2379: case 2384: case 2388: - - parser.suggestKeywords(['BY']); - -break; -case 1444: - - // Only allowed in last order by - delete parser.yy.result.suggestAnalyticFunctions; - -break; -case 1445: - - var keywords = []; - if ($$[$0-2].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); - } - if (!$$[$0]) { - keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); - } - parser.suggestKeywords(keywords); - -break; -case 1451: - - parser.suggestKeywords(parser.isHive() ? ['BETWEEN', 'UNBOUNDED'] : ['BETWEEN']); - -break; -case 1452: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['AND']); - } - -break; -case 1455: - - if (!$$[$0-1] && parser.isHive()) { - parser.suggestKeywords(['PRECEDING']); - } - -break; -case 1457: - - lexer.popState(); - -break; -case 1458: - - lexer.begin('hdfs'); - -break; -case 1460: - - parser.suggestHdfs({ path: $$[$0-3] }); - -break; -case 1461: - - parser.suggestHdfs({ path: $$[$0-2] }); - -break; -case 1462: - - parser.suggestHdfs({ path: $$[$0-1] }); - -break; -case 1463: - - parser.suggestHdfs({ path: '' }); - -break; -case 1464: - - parser.suggestHdfs({ path: '' }); - -break; -case 1470: - - parser.suggestKeywords(['PRECEDING']); - -break; -case 1471: case 1481: - - parser.suggestKeywords(['ROW']); - -break; -case 1480: - - parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); - -break; -case 1482: - - parser.suggestKeywords(['FOLLOWING']); - -break; -case 1488: - - parser.valueExpressionSuggest(); - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 1489: - - parser.suggestAggregateFunctions(); - parser.suggestSelectListAliases(true); - -break; -case 1495: case 1500: -this.$ = { types: [ $$[$0-1].toUpperCase() ] }; -break; -case 1497: - - parser.valueExpressionSuggest(); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 1498: case 1499: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ] }; - -break; -case 1503: - - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ $$[$0-1].toUpperCase() ] }; - -break; -case 1504: - - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'AS', weight: 2 }]); - this.$ = { types: [ 'T' ] }; - -break; -case 1505: case 1506: - - parser.suggestKeywords(parser.getTypeKeywords()); - this.$ = { types: [ 'T' ] }; - -break; -case 1507: case 1529: -this.$ = { types: parser.findReturnTypes($$[$0-3]) }; -break; -case 1509: case 1530: case 1573: -this.$ = { types: parser.findReturnTypes($$[$0-4]) }; -break; -case 1510: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - if (parser.isImpala()) { - keywords.push('ALL'); - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1511: case 1532: case 1576: - - parser.suggestValueExpressionKeywords($$[$0-2]); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1512: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - if (parser.isImpala()) { - keywords.push('ALL'); - } - } - parser.suggestKeywords(keywords); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1513: case 1517: -this.$ = { types: ['INT'] }; -break; -case 1514: - - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - this.$ = { types: ['INT'] } - -break; -case 1515: case 1519: - - parser.suggestKeywords(['FROM']); - this.$ = { types: ['INT'] } - -break; -case 1516: - - parser.valueExpressionSuggest(); - this.$ = { types: ['INT'] } - -break; -case 1518: - - parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); - this.$ = { types: ['INT'] } - -break; -case 1531: - - parser.valueExpressionSuggest(); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else if (parser.isImpala()) { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1533: - - if ($$[$0-1].cursorAtStart) { - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - if ($$[$0-4].toLowerCase() === 'group_concat') { - keywords.push('ALL'); - } else if (parser.isImpala()) { - keywords.push('ALL'); - keywords.push('DISTINCT'); - } else { - keywords.push('DISTINCT'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], $$[$0-1].position); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1559: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1560: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1561: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1562: - - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1563: - - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1564: - - parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); - this.$ = { types: parser.findReturnTypes($$[$0-3]) }; - -break; -case 1565: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1566: - - parser.valueExpressionSuggest(); - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1567: - - parser.applyTypeToSuggestions($$[$0-2].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1568: - - parser.applyTypeToSuggestions($$[$0-1].toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1569: - - if ($$[$0-3].types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($$[$0-3], ['FROM']); - } else { - parser.suggestValueExpressionKeywords($$[$0-3]); - } - this.$ = { types: parser.findReturnTypes($$[$0-5]) }; - -break; -case 1570: - - if ($$[$0-2].types[0] === 'STRING') { - parser.suggestValueExpressionKeywords($$[$0-2], ['FROM']); - } else { - parser.suggestValueExpressionKeywords($$[$0-2]); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1575: - - parser.valueExpressionSuggest(); - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - var keywords = parser.getSelectListKeywords(true); - if (!$$[$0-2]) { - keywords.push('DISTINCT'); - if (parser.isImpala()) { - keywords.push('ALL'); - } - } - if (parser.yy.result.suggestKeywords) { - keywords = parser.yy.result.suggestKeywords.concat(keywords); - } - parser.suggestKeywords(keywords); - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1577: - - if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { - parser.applyArgumentTypesToSuggestions($$[$0-4], 1); - } - this.$ = { types: parser.findReturnTypes($$[$0-4]) }; - -break; -case 1578: -this.$ = { lateralView: { udtf: $$[$0-2], tableAlias: $$[$0-1], columnAliases: $$[$0] }}; -break; -case 1579: - - if ($$[$0-1].function.toLowerCase() === 'explode') { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; - } else if ($$[$0-1].function.toLowerCase() === 'posexplode') { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; - } else { - this.$ = { lateralView: { udtf: $$[$0-1], tableAlias: $$[$0], columnAliases: [] }, suggestKeywords: ['AS'] }; - } - -break; -case 1580: -this.$ = { lateralView: { udtf: $$[$0-1], columnAliases: $$[$0] }}; -break; -case 1587: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); - } else { - parser.suggestKeywords(['explode', 'posexplode']); - } - -break; -case 1588: - - parser.suggestKeywords(['VIEW']); - -break; -case 1592: -this.$ = [ $$[$0-2], $$[$0] ]; -break; -case 1596: -this.$ = { inValueEdit: true }; -break; -case 1597: -this.$ = { inValueEdit: true, cursorAtStart: true }; -break; -case 1598: case 1599: case 1600: case 1601: case 1602: -this.$ = { suggestKeywords: ['NOT'] }; -break; -case 1608: case 1609: case 1610: case 1611: case 1612: - - parser.suggestFunctions({ types: [ 'STRING' ] }); - parser.suggestColumns({ types: [ 'STRING' ] }); - this.$ = { types: ['BOOLEAN'] } - -break; -case 1613: case 1615: -this.$ = parser.findCaseType($$[$0-1]); -break; -case 1614: case 1617: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1616: - - parser.suggestValueExpressionKeywords($$[$0-1], ['END']); - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1618: -this.$ = parser.findCaseType($$[$0-2]); -break; -case 1619: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-3], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1620: - - if ($$[$0].toLowerCase() !== 'end') { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } else { - parser.suggestValueExpressionKeywords($$[$0-2], [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); - } - this.$ = parser.findCaseType($$[$0-2]); - -break; -case 1621: - - $$[$0-3].caseTypes.push($$[$0-1]); - this.$ = parser.findCaseType($$[$0-3]); - this.$.suggestFilters = $$[$0-1].suggestFilters - -break; -case 1622: - - parser.valueExpressionSuggest(); - this.$ = parser.findCaseType($$[$0-3]); - -break; -case 1623: - - parser.valueExpressionSuggest(); - this.$ = { types: [ 'T' ], typeSet: true }; - -break; -case 1624: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = $$[$0-1]; - -break; -case 1625: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { types: [ 'T' ] }; - -break; -case 1628: -this.$ = { caseTypes: [ $$[$0] ], lastType: $$[$0] }; -break; -case 1629: - - $$[$0-1].caseTypes.push($$[$0]); - this.$ = { caseTypes: $$[$0-1].caseTypes, lastType: $$[$0] }; - -break; -case 1633: - - parser.suggestValueExpressionKeywords($$[$0-2], ['WHEN']); - -break; -case 1636: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0].suggestFilters }; -break; -case 1637: -this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: $$[$0-1].suggestFilters }; -break; -case 1638: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0-2].suggestFilters }; -break; -case 1639: case 1640: -this.$ = { caseTypes: [$$[$0]], suggestFilters: $$[$0].suggestFilters }; -break; -case 1641: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1642: - - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [$$[$0]] }; - -break; -case 1643: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1644: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['WHEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1645: case 1647: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 1646: - - parser.valueExpressionSuggest(); - parser.suggestKeywords(['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; - -break; -case 1648: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [$$[$0]], suggestFilters: true }; - -break; -case 1649: - - parser.suggestValueExpressionKeywords($$[$0-1], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1650: - - parser.suggestValueExpressionKeywords($$[$0-2], ['THEN']); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1651: case 1652: case 1653: case 1654: - - parser.valueExpressionSuggest(); - this.$ = { caseTypes: [{ types: ['T'] }] }; - -break; -case 1669: - - if (parser.isHive()) { - parser.suggestKeywords(['DATABASE', 'INDEX', 'SCHEMA', 'TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['TABLE', 'VIEW']); - } - -break; -case 1670: case 1672: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - -break; -case 1671: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - -break; -case 1673: - - if (parser.isHive()) { - parser.suggestDatabases(); - } - -break; -case 1674: - - parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); - if (parser.isHive()) { - parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); - } - -break; -case 1675: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - if (parser.isHive()) { - parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); - } - -break; -case 1676: case 1970: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - -break; -case 1677: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - -break; -case 1678: - - parser.addDatabaseLocation(_$[$0-3], [ { name: $$[$0-3] } ]); - -break; -case 1680: case 1763: case 2317: case 2692: case 3017: case 3229: case 3245: case 3247: - - parser.suggestKeywords(['ON']); - -break; -case 1684: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PARTITION', 'REBUILD']); - } else { - parser.suggestKeywords(['REBUILD']); - } - -break; -case 1705: - - if (!$$[$0-1] && parser.isImpala()) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 4 }, { value: 'COLUMNS', weight: 3 }, { value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } else if (!$$[$0-1] && parser.isHive()) { - parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); - } else if (parser.isImpala()) { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); - } else if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1706: case 1727: case 1997: - - parser.suggestKeywords(['COLUMNS']); - -break; -case 1711: - - if (parser.isHive()) { - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['LOCATION', 'PARTITION']); - } else if ($$[$0-2] && $$[$0-2].suggestKeywords) { - var keywords = parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2); - keywords.push({ value: 'PARTITION', weight: 1 }); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords(['PARTITION']); - } - } else if (parser.isImpala()) { - if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['LOCATION', 'CACHED IN', 'UNCACHED']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['CACHED IN', 'UNCACHED']); - } else if ($$[$0-1] && $$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - } - -break; -case 1713: case 1746: case 1754: case 1766: case 1844: case 1870: case 3301: - - parser.suggestKeywords(['PARTITION']); - -break; -case 1714: case 1871: - - parser.suggestKeywords(['VALUE']); - -break; -case 1718: - - parser.suggestKeywords(['FOREIGN KEY', 'PRIMARY KEY']); - -break; -case 1725: - - if (parser.isHive()) { - parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', - 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', - 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', - 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', - 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['ADD COLUMNS', 'ADD PARTITION', 'ADD RANGE PARTITION', 'ALTER', 'ALTER COLUMN', 'CHANGE', - 'DROP COLUMN', 'DROP PARTITION', 'DROP RANGE PARTITION', 'PARTITION', 'RECOVER PARTITIONS', 'RENAME TO', - 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', - 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - } - -break; -case 1726: - - if (parser.isHive()) { - parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', - 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', - 'SET SERDE', 'SET SERDEPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['SET CACHED IN', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', - 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); - } - -break; -case 1728: - - if (parser.isHive()) { - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['CACHED IN', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES','TBLPROPERTIES', 'UNCACHED']); - } - -break; -case 1729: - - if (parser.isHive()) { - parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); - } - -break; -case 1731: case 1958: case 2750: case 2766: - - parser.suggestKeywords(['TO']); - -break; -case 1733: case 1755: case 2250: - - parser.suggestKeywords(['PARTITIONS']); - -break; -case 1750: - - if (parser.isHive()) { - parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); - } - -break; -case 1751: case 1947: - - parser.suggestKeywords(['AS DIRECTORIES']); - -break; -case 1752: case 1948: - - parser.suggestKeywords(['DIRECTORIES']); - -break; -case 1753: - - parser.suggestKeywords(['TO PARTITION']); - -break; -case 1756: case 2430: case 2449: - - parser.suggestKeywords(['LOCATION']); - -break; -case 1759: case 2746: case 2751: case 2755: case 2822: case 2823: case 2824: case 2857: case 2865: case 2868: case 2871: case 2876: case 2879: - - parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); - -break; -case 1764: - - if (!$$[$0-1]) { - parser.suggestKeywords(['STORED AS DIRECTORIES']); - } - -break; -case 1768: case 1775: case 1809: case 1812: case 1814: - - parser.addColumnLocation($$[$0-3].location, [ $$[$0-3].identifier ]); - -break; -case 1769: - - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - -break; -case 1770: case 1778: case 1779: - - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - -break; -case 1771: - - if (parser.isImpala()) { - if (!$$[$0-1]) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - } - -break; -case 1772: - - if (parser.isImpala()) { - parser.suggestKeywords(['DROP DEFAULT', 'SET BLOCK_SIZE', 'SET COMMENT', 'SET COMPRESSION', 'SET DEFAULT', - 'SET ENCODING']); - parser.addColumnLocation($$[$0-1].location, [ $$[$0-1].identifier ]); - } - -break; -case 1773: - - if (parser.isImpala()) { - parser.suggestKeywords(['DEFAULT']); - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - } - -break; -case 1774: - - if (parser.isImpala()) { - parser.suggestKeywords(['BLOCK_SIZE', 'COMMENT', 'COMPRESSION', 'DEFAULT', 'ENCODING']); - parser.addColumnLocation($$[$0-2].location, [ $$[$0-2].identifier ]); - } - -break; -case 1776: case 2027: case 2674: case 3178: case 3302: - - parser.suggestKeywords(['STATS']); - -break; -case 1796: - - parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); - -break; -case 1811: - - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords(['COLUMN']); - } - parser.suggestColumns(); - -break; -case 1813: - - if (parser.isHive() && !$$[$0-2] && !$$[$0-1]) { - if ($$[$0-3].suggestKeywords) { - var keywords = parser.createWeightedKeywords($$[$0-3].suggestKeywords, 3); - keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - parser.suggestKeywords(keywords); - } else { - parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); - } - } else if (parser.isHive() && $$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - parser.addColumnLocation($$[$0-4].location, [ $$[$0-4].identifier ]); - -break; -case 1815: - - if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); - } - -break; -case 1818: - - parser.suggestKeywords(['NO_DROP', 'OFFLINE']); - -break; -case 1820: case 2337: - - parser.suggestFileFormats(); - -break; -case 1823: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH REPLICATION =']); - } - -break; -case 1825: - - if (parser.isImpala()) { - parser.suggestKeywords(['FORMAT']); - } - -break; -case 1826: case 2963: - - parser.suggestKeywords(['DELIMITED']); - -break; -case 1829: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH SERDEPROPERTIES']); - } - -break; -case 1833: - - parser.suggestKeywords(['WAIT']); - -break; -case 1836: - - parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); - -break; -case 1837: - - parser.suggestKeywords(['TBLPROPERTIES']); - -break; -case 1840: - - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - -break; -case 1845: - - parser.suggestKeywords(['WITH TABLE']); - -break; -case 1846: case 1965: case 1979: case 2542: case 2566: case 2706: case 3097: case 3106: case 3233: - - parser.suggestKeywords(['TABLE']); - -break; -case 1864: - - parser.addColumnLocation($$[$0].location, [ $$[$0].identifier ]); - -break; -case 1865: - - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); - } else if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } else if (parser.isImpala() && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'COLUMN', weight: 1 }, { value: 'PARTITION', weight: 1 }, { value: 'RANGE PARTITION', weight: 1 }, { value: 'IF EXISTS', weight: 2 }]); - parser.suggestColumns(); - } else if (parser.isImpala()) { - parser.suggestKeywords(['PARTITION', 'RANGE PARTITION']); - } - -break; -case 1867: - - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 1878: case 1981: case 2683: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyTables = true; - } - -break; -case 1879: case 1966: case 1980: - - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1904: - - if (!$$[$0-1]) { - parser.suggestKeywords(['CASCADE']); - } - -break; -case 1912: case 1913: case 1914: - - if (parser.isHive()) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 1930: - - if (!$$[$0]) { - this.$ = { suggestKeywords: ['LOCATION'] }; - } - -break; -case 1954: - - if (parser.isHive()) { - parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['AS', 'RENAME TO']); - } else { - parser.suggestKeywords(['AS']); - } - -break; -case 1955: - - if (parser.isHive()) { - parser.suggestKeywords(['TBLPROPERTIES']); - } - -break; -case 1961: case 1967: case 2704: - - if (parser.yy.result.suggestTables) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 1962: - - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 1964: - - parser.suggestKeywords(['REPAIR TABLE']); - -break; -case 1969: case 2441: case 2652: - - parser.suggestKeywords(['FUNCTION']); - -break; -case 1971: - - parser.suggestKeywords(['ON DATABASE']); - -break; -case 1972: - - parser.suggestKeywords(['DATABASE']); - -break; -case 1974: - - parser.addDatabaseLocation(_$[$0-1], [ { name: $$[$0-1] } ]); - parser.suggestKeywords(['IS']); - -break; -case 1975: - - parser.addDatabaseLocation(_$[$0-2], [ { name: $$[$0-2] } ]); - parser.suggestKeywords(['NULL']); - -break; -case 1978: - - parser.addTablePrimary($$[$0-6]); - -break; -case 1983: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); - } else { - parser.suggestKeywords(['COMPUTE STATISTICS']); - } - -break; -case 1984: - - parser.addTablePrimary($$[$0-3]); - parser.suggestKeywords(['STATISTICS']); - -break; -case 1985: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-2], $$[$0-1], $$[$0]], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - -break; -case 1986: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0-1], $$[$0]], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); - -break; -case 1987: - - parser.addTablePrimary($$[$0-7]); - parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$$[$0]], [{ value: 'NOSCAN', weight: 1 }])); - -break; -case 1988: - - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($$[$0-1]); - -break; -case 1989: - - parser.suggestKeywords(['TABLE']); - parser.addTablePrimary($$[$0-6]); - -break; -case 2001: case 2013: - - parser.suggestKeywords(['METADATA']); - -break; -case 2006: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - parser.suggestKeywords(['FUNCTIONS']); - -break; -case 2008: case 3069: case 3211: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 2016: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['METADATA']); - -break; -case 2019: - - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - -break; -case 2022: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); - -break; -case 2023: - - parser.addTablePrimary($$[$0-3]); - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLESAMPLE']); - } else if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords($$[$0-1].suggestKeywords); - } - -break; -case 2026: case 2673: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['INCREMENTAL']); - -break; -case 2028: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['STATS']); - -break; -case 2031: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 2046: - - if ($$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } else if (parser.isHive()) { - if ($$[$0-2]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); - } else { - parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'VIEW']); - } - } else if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - -break; -case 2049: case 2078: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 2051: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 2054: - - var keywords = []; - if (!$$[$0] && parser.isHive()) { - keywords.push('WITH DBPROPERTIES'); - } - if (!$$[$0-1] && !$$[$0]) { - keywords.push('LOCATION'); - } - if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push('COMMENT'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 2069: - - parser.suggestKeywords(['DBPROPERTIES']); - -break; -case 2091: - - var keywords = []; - if (!$$[$0-10] && !$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'LIKE', weight: 1 }); - if (parser.isImpala()) { - keywords.push({ value: 'LIKE PARQUET', weight: 1 }); - } - } else { - if (!$$[$0-9] && !$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'COMMENT', weight: 11 }); - } - if (!$$[$0-8] && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'PARTITIONED BY', weight: 10 }); - if (parser.isImpala()) { - keywords.push({ value: 'PARTITION BY', weight: 10 }); - } - } - if (parser.isImpala() && !$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'SORT BY', weight: 9 }); - } - if (parser.isHive() && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'CLUSTERED BY', weight: 8 }); - } - if (parser.isHive() && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'SKEWED BY', weight: 7 }); - } else if (parser.isHive() && $$[$0-5] && $$[$0-5].suggestKeywords && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0-1]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 7)); // Get the last optional from SKEWED BY - } - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'ROW FORMAT', weight: 6 }); - keywords.push({ value: 'STORED AS', weight: 6 }); - if (parser.isHive()) { - keywords.push({ value: 'STORED BY', weight: 6 }); - } - } else if ($$[$0-4] && $$[$0-4].suggestKeywords && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-4].suggestKeywords, 6)); - } - if ((($$[$0-4] && $$[$0-4].storedBy) || parser.isImpala()) && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 5 }); - } - if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'LOCATION', weight: 4 }); - } - if (!$$[$0-1] && !$$[$0]) { - keywords.push({ value: 'TBLPROPERTIES', weight: 3 }); - } - if (parser.isImpala() && !$$[$0]) { - keywords.push({ value: 'CACHED IN', weight: 2 }, { value: 'UNCACHED', weight: 2 }); - } - if (parser.isImpala() && $$[$0] && $$[$0].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0].suggestKeywords, 2)); - } - keywords.push({ value: 'AS', weight: 1 }); - } - - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 2101: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (parser.isImpala()) { - parser.suggestKeywords(['PARQUET']); - } - -break; -case 2107: - - if (parser.isImpala()) { - parser.suggestKeywords(['PRIMARY KEY']); - } else if (parser.isHive()) { - parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); - } - -break; -case 2114: case 2116: case 2309: - - parser.checkForKeywords($$[$0-1]); - -break; -case 2115: case 2117: - - parser.checkForKeywords($$[$0-3]); - -break; -case 2118: - - this.$ = $$[$0-2]; - var keywords = []; - if (parser.isImpala()) { - if (!$$[$0]['primary']) { - keywords.push('PRIMARY KEY'); - } - if (!$$[$0]['encoding']) { - keywords.push('ENCODING'); - } - if (!$$[$0]['compression']) { - keywords.push('COMPRESSION'); - } - if (!$$[$0]['default']) { - keywords.push('DEFAULT'); - } - if (!$$[$0]['block_size']) { - keywords.push('BLOCK_SIZE'); - } - if (!$$[$0]['null']) { - keywords.push('NOT NULL'); - keywords.push('NULL'); - } - } - if (!$$[$0]['comment']) { - keywords.push('COMMENT'); - if (parser.isHive() && $$[$0-1].toLowerCase() === 'double') { - keywords.push({ value: 'PRECISION', weight: 2 }); - } - } - if (keywords.length > 0) { - this.$.suggestKeywords = keywords; - } - -break; -case 2119: case 2155: case 2161: case 2162: case 2175: case 2178: case 2190: case 2192: case 2592: - - parser.suggestKeywords(parser.getColumnDataTypeKeywords()); - -break; -case 2124: - - this.$ = {}; - this.$[$$[$0]] = true; - -break; -case 2125: - - $$[$0-1][$$[$0]] = true; - -break; -case 2130: -this.$ = 'primary'; -break; -case 2131: -this.$ = 'encoding'; -break; -case 2132: -this.$ = 'compression'; -break; -case 2133: -this.$ = 'default'; -break; -case 2134: -this.$ = 'block_size'; -break; -case 2135: case 2136: -this.$ = 'null'; -break; -case 2137: -this.$ = 'comment'; -break; -case 2139: - - if (parser.isImpala()) { - parser.suggestKeywords(['NULL']); - } - -break; -case 2160: case 2476: case 2487: case 2510: - - parser.suggestKeywords(parser.getTypeKeywords()); - -break; -case 2174: case 2177: - - parser.suggestKeywords(['COMMENT']); - -break; -case 2202: - - parser.suggestKeywords(['CONSTRAINT']); - -break; -case 2203: case 2206: - - parser.suggestKeywords(['FOREIGN KEY']); - -break; -case 2208: - - parser.suggestKeywords(['PRIMARY KEY']); - -break; -case 2212: - - parser.suggestKeywords(['DISABLE NOVALIDATE']); - -break; -case 2213: - - parser.suggestKeywords(['NOVALIDATE']); - -break; -case 2215: case 3104: case 3111: case 3118: - - parser.addTablePrimary($$[$0-4]); - -break; -case 2216: case 2233: case 2235: - - parser.suggestKeywords(['KEY']); - -break; -case 2218: - - parser.suggestKeywords(['REFERENCES']); - -break; -case 2222: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['DISABLE NOVALIDATE']); - -break; -case 2223: - - parser.addTablePrimary($$[$0-3]); - parser.suggestKeywords(['NOVALIDATE']); - -break; -case 2224: - - parser.addTablePrimary($$[$0-5]); - if (!$$[$0-1]) { - parser.suggestKeywords(['NORELY', 'RELY']); - } - -break; -case 2246: - - parser.suggestKeywords(['HASH', 'RANGE']); - -break; -case 2258: case 2263: case 2264: - - if (parser.isImpala()) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 2271: - - if (parser.isImpala()) { - parser.suggestKeywords(['VALUE', 'VALUES']); - } - -break; -case 2273: case 2580: case 3013: - - parser.suggestFunctions(); - -break; -case 2274: - - if ($$[$0].endsWithLessThanOrEqual && parser.isImpala()) { - parser.suggestKeywords(['VALUES']); - } - -break; -case 2275: case 2278: case 2281: - - if (parser.isImpala()) { - parser.suggestKeywords(['<', '<=']); - } - -break; -case 2276: - - if (parser.isImpala()) { - parser.suggestKeywords(['VALUES']); - } - -break; -case 2279: case 2282: - - if (parser.isImpala()) { - parser.suggestFunctions(); - } - -break; -case 2292: - - if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); - } else { - parser.suggestKeywords(['INTO']); - } - -break; -case 2293: - - parser.suggestKeywords(['BUCKETS']); - -break; -case 2314: -this.$ = { suggestKeywords: ['STORED AS DIRECTORIES'] }; -break; -case 2324: - - this.$ = parser.mergeSuggestKeywords($$[$0-1], $$[$0]) - -break; -case 2325: case 2326: - - this.$ = { storedBy: true } - -break; -case 2327: - - if (parser.isHive()) { - parser.suggestKeywords(['AS', 'BY']); - } else { - parser.suggestKeywords(['AS']); - } - -break; -case 2329: - - parser.suggestKeywords(['FORMAT']); - -break; -case 2330: - - if (parser.isHive()) { - parser.suggestKeywords(['DELIMITED', 'SERDE']); - } else { - parser.suggestKeywords(['DELIMITED']); - } - -break; -case 2334: -this.$ = { suggestKeywords: ['STORED AS'] }; -break; -case 2360: - - if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; - } else if ($$[$0-4] && $$[$0-4].suggestKeywords && !$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-4].suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; - } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0-2] && !$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; - } - -break; -case 2366: - - if (!$$[$0-2] && !$$[$0-1]) { - this.$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 2 }, { value: 'LINES TERMINATED BY', weight: 1 }] }; - } else if ($$[$0-2] && $$[$0-2].suggestKeywords && !$$[$0-1]) { - this.$ = { suggestKeywords: parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2).concat(['LINES TERMINATED BY']) }; - } else if (!$$[$0-1]) { - this.$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 1 }] }; - } - -break; -case 2370: -this.$ = { suggestKeywords: ['ESCAPED BY'] }; -break; -case 2372: case 2378: case 2383: case 2387: - - parser.suggestKeywords(['TERMINATED BY']); - -break; -case 2377: - - parser.suggestKeywords(['ITEMS TERMINATED BY']); - -break; -case 2382: - - parser.suggestKeywords(['KEYS TERMINATED BY']); - -break; -case 2391: - - parser.suggestKeywords(['DEFINED AS']); - -break; -case 2397: case 2398: - - parser.suggestKeywords(['SERDEPROPERTIES']); - -break; -case 2408: - - parser.commitLocations(); - -break; -case 2410: case 2427: case 2443: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 2411: - - if (!$$[$0-7]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 2414: - - var keywords = [{value: 'AS', weight: 1 }]; - if (!$$[$0-1]) { - if (parser.isHive()) { - keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); - } - if (!$$[$0-2]) { - keywords.push({ value: 'COMMENT', weight: 3 }); - } - } - parser.suggestKeywords(keywords); - -break; -case 2428: - - if (!$$[$0-6]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 2429: case 2448: - - parser.suggestKeywords(['RETURNS']); - -break; -case 2431: - - parser.suggestKeywords(['SYMBOL']); - -break; -case 2442: - - if (!$$[$0-13]) { - parser.suggestKeywords(['IF NOT EXISTS']); - } - -break; -case 2450: - - if (!$$[$0-1]) { - parser.suggestKeywords([{value: 'INIT_FN', weight: 2 }, {value: 'UPDATE_FN', weight: 1 }]); - } else { - parser.suggestKeywords([{value: 'UPDATE_FN', weight: 1 }]); - } - -break; -case 2451: - - parser.suggestKeywords(['MERGE_FN']); - -break; -case 2452: - - if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'PREPARE_FN', weight: 5 }, {value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); - } else if ($$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{value: 'INTERMEDIATE', weight: 1 }]); - } - -break; -case 2471: - - if (!$$[$0-1]) { - parser.suggestKeywords(['USING']); - } else { - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - } - -break; -case 2477: - - parser.suggestKeywords(['...']); - -break; -case 2512: - - parser.suggestFunctions(); - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - -break; -case 2515: - - parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); - -break; -case 2527: - - if (!$$[$0-1]) { - parser.suggestKeywords(['COMMENT']); - } - -break; -case 2531: case 2533: -this.$ = $$[$0-3]; -break; -case 2541: - - parser.suggestKeywords(['ON TABLE']); - -break; -case 2547: case 2557: - - parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); - -break; -case 2555: - - if (!$$[$0-7] && !$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-6] && !$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-5] && !$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-4] && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if ($$[$0-4] && $$[$0-4].suggestKeywords && !$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-4].suggestKeywords, 4).concat([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); - } else if (!$$[$0-3] && !$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-2] && !$$[$0-1]) { - parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$$[$0-1]) { - parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); - } - -break; -case 2560: - - parser.suggestKeywords(['DEFERRED REBUILD']); - -break; -case 2561: - - parser.suggestKeywords(['REBUILD']); - -break; -case 2606: case 2608: - - parser.addCommonTableExpressions($$[$0-1]); - -break; -case 2632: - - if (parser.isHive()) { - parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'FUNCTION', 'INCREMENTAL STATS', 'ROLE', 'SCHEMA', 'STATS', 'TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['ROLE', 'SCHEMA', 'TABLE', 'VIEW']); - } - -break; -case 2636: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases(); - -break; -case 2637: - - if (parser.isHive() || parser.isImpala()) { - parser.suggestKeywords(['CASCADE', 'RESTRICT']); - } - -break; -case 2639: case 2648: case 2653: - - if (!$$[$0-3]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2646: case 2647: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestDatabases({ appendDot: true }); - -break; -case 2650: - - parser.suggestKeywords(['AGGREGATE']); - -break; -case 2660: case 2665: case 2697: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2661: - - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2672: - - parser.addTablePrimary($$[$0]); - parser.suggestKeywords(['INCREMENTAL']); - -break; -case 2678: case 3271: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['PARTITION']); - -break; -case 2682: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyTables: true }); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 2685: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords(['PURGE']); - } - -break; -case 2690: - - parser.suggestKeywords(['IF EXISTS']); - -break; -case 2696: - - parser.suggestKeywords(['FUNCTION', 'MACRO']); - -break; -case 2700: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IF EXISTS']); - } - parser.suggestTables({ onlyViews: true }); - parser.suggestDatabases({ appendDot: true }); - -break; -case 2701: - - parser.addTablePrimary($$[$0]); - if (!$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2707: - - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - if (parser.isImpala() && !$$[$0-2]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2710: - - parser.addTablePrimary($$[$0-2]); - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 2712: - - parser.addTablePrimary($$[$0-2]); - if (parser.isImpala() && !$$[$0-3]) { - parser.suggestKeywords(['IF EXISTS']); - } - -break; -case 2715: case 2870: case 2875: case 2878: case 2882: case 2890: - - parser.suggestKeywords(['FROM']); - -break; -case 2717: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - parser.suggestKeywords(['WHERE']); - } - -break; -case 2721: - - parser.suggestKeywords(['FROM']); - if (parser.isImpala() && !$$[$0-1]) { - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - } - -break; -case 2724: - - var keywords = [{ value: 'FULL JOIN', weight: 1 }, { value: 'FULL OUTER JOIN', weight: 1 }, { value: 'JOIN', weight: 1 }, { value: 'LEFT JOIN', weight: 1 }, { value: 'LEFT OUTER JOIN', weight: 1 }, { value: 'RIGHT JOIN', weight: 1 }, { value: 'RIGHT OUTER JOIN', weight: 1 }, { value: 'INNER JOIN', weight: 1 }, { value: 'LEFT ANTI JOIN', weight: 1 }, { value: 'LEFT SEMI JOIN', weight: 1 }, { value: 'RIGHT ANTI JOIN', weight: 1 }, { value: 'RIGHT SEMI JOIN', weight: 1 }]; - if (!$$[$0]) { - keywords.push({ value: 'WHERE', weight: 3 }); - } - if ($$[$0-2].suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); - } - if ($$[$0-2].suggestJoins) { - parser.suggestJoins($$[$0-2].suggestJoins); - } - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2)); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 2733: - - parser.suggestKeywords(['TRANSACTIONS']); - -break; -case 2742: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - -break; -case 2745: - - if (!$$[$0-1]) { - parser.suggestKeywords(['ON', 'TO']); - } else { - parser.suggestKeywords(['TO']); - } - -break; -case 2748: case 2768: case 2770: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH GRANT OPTION']); - } - -break; -case 2753: case 2757: - - if (!$$[$0-1]) { - parser.suggestKeywords(['WITH ADMIN OPTION']); - } - -break; -case 2759: case 2883: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); - -break; -case 2760: - - parser.suggestKeywords(['TO GROUP']); - -break; -case 2761: case 2885: case 3284: case 3285: - - parser.suggestKeywords(['GROUP']); - -break; -case 2763: case 2887: - - if ($$[$0-1].isCreate) { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); - } else { - parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); - } - -break; -case 2764: - - if ($$[$0-2].isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - -break; -case 2767: case 2874: case 2891: case 3234: - - parser.suggestKeywords(['ROLE']); - -break; -case 2774: - - parser.suggestKeywords(['DATABASE', 'TABLE']); - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 2790: - - if ($$[$0].toUpperCase() === 'ALL') { - this.$ = { singleAll: true }; - } - -break; -case 2796: case 2797: case 2798: case 2861: - - parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); - -break; -case 2814: -this.$ = { isCreate: true }; -break; -case 2836: - - parser.suggestKeywords(['GRANT OPTION']); - -break; -case 2837: case 2838: case 2842: case 2894: - - parser.suggestKeywords(['OPTION']); - -break; -case 2841: - - parser.suggestKeywords(['ADMIN OPTION']); - -break; -case 2853: - - parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); - -break; -case 2856: - - if (!$$[$0-1]) { - if ($$[$0-2].singleAll) { - parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); - } else { - parser.suggestKeywords(['FROM', 'ON']); - } - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 2859: - - parser.suggestKeywords(['OPTION FOR']); - -break; -case 2860: case 2873: - - parser.suggestKeywords(['FOR']); - -break; -case 2864: - - if (!$$[$0-1]) { - parser.suggestKeywords(['FROM', 'ON']); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 2867: - - if ($$[$0-1].toUpperCase() === 'ADMIN') { - parser.suggestKeywords(['FROM', 'OPTION FOR']); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 2884: - - parser.suggestKeywords(['FROM GROUP']); - -break; -case 2888: - - if ($$[$0-2].isCreate) { - parser.suggestKeywords(['DATABASE', 'SERVER']); - } else { - parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); - } - -break; -case 2905: - - var keywords = []; - if ($$[$0-1].suggestKeywords) { - keywords = parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); - } else { - keywords = ['SELECT']; - } - if ($$[$0-1].addValues) { - keywords.push({ weight: 1.1, value: 'VALUES' }); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - -break; -case 2908: - - if (!$$[$0].keepTables) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - -break; -case 2912: - - parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); - -break; -case 2913: - - if ($$[$0-1].cursorAtEnd) { - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = parser.yy.result.suggestKeywords || []; - if ($$[$0].suggestKeywords) { - keywords = keywords.concat($$[$0].suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - -break; -case 2914: - - if ($$[$0].cursorAtStart) { - parser.checkForSelectListKeywords($$[$0-1].tableExpression); - } - -break; -case 2915: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] } - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['IF NOT EXISTS'] } - } - -break; -case 2916: - - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['STORED AS'] }; - } - -break; -case 2917: - - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; - } else if (!$$[$0]) { - this.$ = { suggestKeywords: ['STORED AS'] }; - } - -break; -case 2918: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1] && !$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'], addValues: true }; - } else if (!$$[$0]) { - this.$ = { addValues: true }; - } - -break; -case 2919: - - parser.suggestKeywords(['OVERWRITE', 'INTO']); - -break; -case 2920: - - if (!$$[$0-1]) { - parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - this.$ = { keepTables: true } - -break; -case 2921: case 2932: - - this.$ = { keepTables: true } - -break; -case 2922: case 2933: case 2934: case 2997: case 2998: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'insert'; - } - -break; -case 2923: case 2949: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - -break; -case 2924: - - parser.suggestKeywords(['DIRECTORY']); - -break; -case 2931: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - this.$ = { keepTables: true } - -break; -case 2944: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); - } else { - parser.suggestKeywords(['SELECT']); - } - -break; -case 2945: - - if ($$[$0-1].cursorAtEnd) { - parser.checkForSelectListKeywords($$[$0-1]); - var keywords = parser.yy.result.suggestKeywords || []; - if ($$[$0].suggestKeywords) { - keywords = keywords.concat($$[$0].suggestKeywords); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - } - -break; -case 2947: case 2948: - - $$[$0-3].owner = 'insert'; - parser.addTablePrimary($$[$0-3]); - -break; -case 2950: case 2987: case 3023: - - parser.suggestKeywords(['INTO']); - -break; -case 2951: case 2988: case 2994: - - if (!$$[$0-1]) { - parser.suggestKeywords(['TABLE']); - } - parser.suggestTables(); - parser.suggestDatabases({ appendDot: true }); - -break; -case 2953: - - $$[$0-1].owner = 'insert'; - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['VALUES']); - -break; -case 2962: - - parser.suggestKeywords(['FORMAT DELIMITED']); - -break; -case 2965: -this.$ = { selectList: $$[$0] }; -break; -case 2966: - - this.$ = $$[$0-1]; - this.$.cursorAtEnd = true; - -break; -case 2967: - - parser.selectListNoTableSuggest($$[$0], $$[$0-2]); - -break; -case 2968: - - var keywords = parser.getSelectListKeywords(); - if (!$$[$0-2] || $$[$0-2] === 'ALL') { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - if (!$$[$0-1] && !$$[$0-2]) { - keywords.push({ value: 'ALL', weight: 2 }); - keywords.push({ value: 'DISTINCT', weight: 2 }); - } - if (parser.isImpala() && !$$[$0-1]) { - keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); - } - parser.suggestKeywords(keywords); - parser.suggestFunctions(); - parser.suggestColumns(); - -break; -case 2976: - - var keywords = $$[$0-2].suggestKeywords && !$$[$0-1] ? parser.createWeightedKeywords($$[$0-2].suggestKeywords, 2) : []; - if (!$$[$0-1]) { - keywords = keywords.concat(['[NOSHUFFLE]', '[SHUFFLE]', 'SELECT', 'VALUES']) - } else { - keywords = keywords.concat(['SELECT']) - } - parser.suggestKeywords(keywords); - -break; -case 2986: - - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - -break; -case 2989: - - if (!$$[$0-3]) { - parser.suggestKeywords(['TABLE']); - } - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - -break; -case 2991: - - $$[$0-1].owner = 'upsert'; - parser.addTablePrimary($$[$0-1]); - if (parser.yy.result.suggestColumns) { - parser.yy.result.suggestColumns.owner = 'upsert'; - } - -break; -case 2992: - - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - if (!$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] }; - } - -break; -case 2993: - - parser.suggestKeywords(['INTO', 'OVERWRITE']); - -break; -case 2995: - - if (!$$[$0-4]) { - parser.suggestKeywords(['TABLE']); - } - $$[$0-2].owner = 'insert'; - parser.addTablePrimary($$[$0-2]); - -break; -case 3020: - - parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'WHEN', weight: 2 }]); - -break; -case 3022: - - $$[$0-6].alias = $$[$0-4]; - parser.addTablePrimary($$[$0-6]); - if ($$[$0-2].subQuery) { - parser.addTablePrimary({ subQueryAlias: $$[$0] }); - } else { - $$[$0-2].alias = $$[$0]; - } - -break; -case 3024: - - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - -break; -case 3026: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['AS T USING']); - -break; -case 3027: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['T USING']); - -break; -case 3028: - - $$[$0-3].alias = $$[$0-1]; - parser.addTablePrimary($$[$0-3]); - parser.suggestKeywords(['USING']); - -break; -case 3029: - - $$[$0-4].alias = $$[$0-2]; - parser.addTablePrimary($$[$0-4]); - parser.suggestDatabases({ appendDot: true }); - parser.suggestTables(); - -break; -case 3030: - - $$[$0-4].alias = $$[$0-2]; - parser.addTablePrimary($$[$0-4]); - -break; -case 3031: - - $$[$0-5].alias = $$[$0-3]; - parser.addTablePrimary($$[$0-5]); - parser.suggestKeywords(['AS S ON']); - -break; -case 3032: - - $$[$0-6].alias = $$[$0-4]; - parser.addTablePrimary($$[$0-6]); - parser.suggestKeywords(['S ON']); - -break; -case 3041: - - if ($$[$0].suggestThenKeywords) { - parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); - } - -break; -case 3042: case 3044: - - if (!$$[$0-1].notPresent) { - parser.suggestKeywords(['WHEN']); - } - -break; -case 3043: - - if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { - var keywords = []; - if (!$$[$0-1].isDelete) { - keywords.push('DELETE'); - } - if (!$$[$0-1].isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$$[$0-1].isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - -break; -case 3045: - - if (!$$[$0-1].notPresent && $$[$0].suggestThenKeywords) { - var keywords = []; - if (!$$[$0-2].isDelete && !$$[$0-1].isDelete) { - keywords.push('DELETE'); - } - if (!$$[$0-2].isInsert && !$$[$0-1].isInsert) { - keywords.push('INSERT VALUES'); - } - if (!$$[$0-2].isUpdate && !$$[$0-1].isUpdate) { - keywords.push('UPDATE SET'); - } - parser.suggestKeywords(keywords); - } - -break; -case 3046: -this.$ = { notPresent: !!$$[$0-4], isDelete: $$[$0].isDelete, isInsert: $$[$0].isInsert, isUpdate: $$[$0].isUpdate }; -break; -case 3047: - - if (!$$[$0-1]) { - parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); - } else { - parser.suggestKeywords(['MATCHED']); - } - -break; -case 3048: - - if (!$$[$0-1]) { - parser.suggestKeywords(['AND', 'THEN']); - } else { - parser.suggestValueExpressionKeywords($$[$0-1], [{ value: 'THEN', weight: 2 }]); - } - -break; -case 3050: -this.$ = { suggestThenKeywords: true }; -break; -case 3055: -this.$ = { isUpdate: true }; -break; -case 3056: -this.$ = { isDelete: true }; -break; -case 3057: -this.$ = { isInsert: true }; -break; -case 3058: - - parser.suggestKeywords(['SET']); - -break; -case 3062: - - if (parser.isHive()) { - parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['DATA INPATH']); - } - -break; -case 3063: - - if (parser.isHive() && !$$[$0-1]) { - parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); - } else { - parser.suggestKeywords(['INPATH']); - } - -break; -case 3065: - - if (!$$[$0-1]) { - parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); - } else { - parser.suggestKeywords(['INTO TABLE']); - } - -break; -case 3066: - - parser.suggestKeywords([ 'TABLE' ]); - -break; -case 3084: - - if (!$$[$0]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); - } else if (!$$[$0].hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - -break; -case 3085: - - if ($$[$0-1].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-1].suggestKeywords, 2).concat(['FROM'])); - } else { - parser.suggestKeywords(['FROM']); - } - -break; -case 3089: - - if (!$$[$0-1]) { - parser.suggestKeywords(['LOCATION']); - } - -break; -case 3090: - - if (!$$[$0-4]) { - parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); - } else if (!$$[$0-4].hasExternal) { - parser.suggestKeywords(['EXTERNAL']); - } - -break; -case 3092: - - if ($$[$0-5].suggestKeywords) { - parser.suggestKeywords(parser.createWeightedKeywords($$[$0-5].suggestKeywords, 2).concat(['FROM'])); - } - -break; -case 3095: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0]) { - this.$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; - } else { - this.$ = { hasExternal: true } - } - -break; -case 3096: - - parser.addTablePrimary($$[$0-1]); - if (!$$[$0]) { - this.$ = { suggestKeywords: ['PARTITION'] }; - } - -break; -case 3105: case 3119: case 3120: - - parser.addTablePrimary($$[$0-9]); - -break; -case 3109: - - parser.addTablePrimary($$[$0-2]); - if (!$$[$0-1]) { - parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); - } else { - parser.suggestKeywords([ 'TO' ]); - } - -break; -case 3112: - - parser.addTablePrimary($$[$0-5]); - parser.suggestKeywords(['FOR replication()']); - -break; -case 3113: - - parser.addTablePrimary($$[$0-6]); - parser.suggestKeywords(['replication()']); - -break; -case 3116: - - parser.addTablePrimary($$[$0-5]); - if (!$$[$0-4]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 3117: - - parser.addTablePrimary($$[$0-10]); - if (!$$[$0-9]) { - parser.suggestKeywords(['PARTITION']); - } - -break; -case 3135: - - parser.suggestKeywords(['ALL', 'NONE']); - -break; -case 3158: - - if (parser.isHive()) { - parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); - } else if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); - } else { - parser.suggestKeywords(['COLUMNS', 'DATABASES', 'TABLES']); - } - -break; -case 3159: - - // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT - if ($$[$0].identifierChain && $$[$0].identifierChain.length === 1 && $$[$0].identifierChain[0].name.toLowerCase() === 'roles') { - parser.suggestKeywords(['CURRENT']); - parser.yy.locations.pop(); - } else { - parser.addTablePrimary($$[$0]); - if (parser.isImpala()) { - parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); - } - } - -break; -case 3160: - - if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'DATABASES', 'FUNCTIONS', 'SCHEMAS', 'TABLES']); - } else if (parser.isHive()) { - parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); - } - -break; -case 3179: case 3209: case 3269: case 3273: case 3275: case 3303: - - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 3183: case 3184: case 3188: case 3189: case 3248: case 3249: - - parser.suggestKeywords(['FROM', 'IN']); - -break; -case 3185: case 3186: case 3187: case 3232: case 3246: - - parser.suggestTables(); - -break; -case 3194: - - if (parser.isImpala()) { - parser.suggestKeywords(['TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['TABLE']); - } - -break; -case 3195: - - if ($$[$0-1].isView && parser.isImpala()) { - parser.suggestTables({ onlyViews: true }); - } else { - parser.suggestTables(); - } - parser.suggestDatabases({ - appendDot: true - }); - -break; -case 3196: - - if (parser.yy.result.suggestTables && $$[$0-1].isView) { - parser.yy.result.suggestTables.onlyViews = true; - } - -break; -case 3197: - - parser.addTablePrimary($$[$0]); - if (parser.isImpala()) { - parser.suggestKeywords(['TABLE', 'VIEW']); - } else { - parser.suggestKeywords(['TABLE']); - } - -break; -case 3199: -this.$ = { isView: true }; -break; -case 3202: case 3203: - - parser.suggestKeywords([ 'ROLES' ]); - -break; -case 3206: case 3300: - - parser.suggestKeywords(['LIKE']); - -break; -case 3213: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['IN']); - -break; -case 3218: case 3221: - - parser.suggestKeywords(['FUNCTIONS']); - -break; -case 3219: case 3222: - - parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); - -break; -case 3220: case 3309: - - if (!$$[$0-1]) { - parser.suggestKeywords(['IN', 'LIKE']); - } else { - parser.suggestKeywords(['LIKE']); - } - -break; -case 3223: - - if (!$$[$0-2]) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else { - parser.suggestKeywords(['LIKE']); - } - -break; -case 3231: - - parser.suggestKeywords(['ALL', 'TABLE']); - parser.suggestTables(); - -break; -case 3251: - - parser.suggestTables({identifierChain: [{name: $$[$0]}]}); - -break; -case 3257: - - parser.suggestTables(); - parser.suggestDatabases({ - appendDot: true - }); - parser.suggestKeywords(['DATABASE', 'SCHEMA']); - -break; -case 3259: - - parser.addTablePrimary($$[$0-1]); - parser.suggestKeywords(['EXTENDED', 'PARTITION']); - -break; -case 3262: - - parser.addTablePrimary($$[$0-2]); - parser.suggestKeywords(['EXTENDED']); - -break; -case 3279: case 3280: case 3281: - - parser.suggestKeywords(['GRANT']); - -break; -case 3282: case 3283: - - parser.suggestKeywords(['ROLE', 'USER']); - -break; -case 3290: case 3299: - - parser.suggestKeywords(['EXTENDED']); - -break; -case 3293: - - if ($$[$0-1]) { - parser.suggestKeywords(['LIKE']); - } else { - parser.suggestKeywords(['FROM', 'IN', 'LIKE']); - } - -break; -case 3295: - - if (parser.isHive()) { - parser.suggestKeywords(['EXTENDED']); - } - -break; -case 3296: - - parser.suggestKeywords(['LIKE']); - -break; -case 3297: - - parser.suggestKeywords(['PARTITION']); - -break; -case 3304: - - parser.addTablePrimary($$[$0]); - -break; -case 3311: - - parser.addTablePrimary($$[$0-3]); - -break; -case 3316: - - if (!$$[$0-1] && !$$[$0-2]) { - parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); - } else if (!$$[$0-1]) { - parser.suggestKeywords(['LIKE']); - } - -break; -case 3320: case 3321: - - parser.addDatabaseLocation(_$[$0], [ { name: $$[$0] } ]); - -break; -case 3332: - - if (parser.isImpala() && !$$[$0-1] && !$$[$0-2]) { - parser.suggestKeywords([{ value: 'FROM', weight: 2 }, { value: 'WHERE', weight: 1 }]); - } else if (parser.isImpala() && !$$[$0-1] && $$[$0-2]) { - var keywords = [{ value: 'FULL JOIN', weight: 2 }, { value: 'FULL OUTER JOIN', weight: 2 }, { value: 'JOIN', weight: 2 }, { value: 'LEFT JOIN', weight: 2 }, { value: 'LEFT OUTER JOIN', weight: 2 }, { value: 'RIGHT JOIN', weight: 2 }, { value: 'RIGHT OUTER JOIN', weight: 2 }, { value: 'INNER JOIN', weight: 2 }, { value: 'LEFT ANTI JOIN', weight: 2 }, { value: 'LEFT SEMI JOIN', weight: 2 }, { value: 'RIGHT ANTI JOIN', weight: 2 }, { value: 'RIGHT SEMI JOIN', weight: 2 }, { value: 'WHERE', weight: 1 }]; - if ($$[$0-2].suggestJoinConditions) { - parser.suggestJoinConditions($$[$0-2].suggestJoinConditions); - } - if ($$[$0-2].suggestJoins) { - parser.suggestJoins($$[$0-2].suggestJoins); - } - if ($$[$0-2].suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($$[$0-2].suggestKeywords, 3)); - } - parser.suggestKeywords(keywords); - } else if (!$$[$0-1]) { - parser.suggestKeywords([ 'WHERE' ]); - } - -break; -case 3333: - - parser.suggestKeywords([ 'SET' ]); - -break; -case 3349: - - parser.suggestKeywords([ '=' ]); - -break; -case 3360: - - if (! parser.yy.cursorFound) { - parser.yy.result.useDatabase = $$[$0]; - } - -break; -} -}, -table: [o($V0,$V1,{3:1,4:2}),{1:[3]},o($V2,$V3,{5:3,9:4,12:5,13:6,14:7,15:8,405:9,406:10,407:11,408:12,409:13,410:14,411:15,412:16,413:17,414:18,415:19,416:20,417:21,418:22,419:23,1119:24,1120:25,1121:26,1122:27,1123:28,1124:29,1125:30,572:31,17:32,564:35,565:36,802:37,803:38,804:39,805:40,806:41,807:42,808:43,925:48,926:49,927:50,928:51,929:52,930:53,931:54,1138:55,1139:56,1140:57,1141:58,1142:59,1143:60,1144:61,1145:62,1146:63,1252:70,1253:71,1254:72,1255:73,1256:74,1257:75,1258:76,1259:77,1260:78,1261:79,1262:80,1263:81,1264:82,1265:83,1266:84,1267:85,1268:86,1269:87,1270:88,1271:89,1308:90,1131:93,1191:94,1132:95,1192:96,1241:97,568:103,820:106,910:107,437:111,1056:112,1057:113,1058:114,1059:115,1155:117,1156:118,1272:120,1193:123,594:124,1210:127,1227:128,1212:139,1217:141,1218:142,25:$V4,29:$V5,57:$V6,58:$V7,73:$V8,78:$V9,79:$Va,96:$Vb,112:$Vc,130:$Vd,144:$Ve,162:$Vf,182:$Vg,218:$Vh,307:$Vi,339:$Vj,352:$Vk,438:$Vl,439:$Vm,440:$Vn,452:$Vo,569:$Vp,570:$Vq,571:$Vr,577:$Vs,760:$Vt,816:$Vu,859:$Vv,921:$Vw,922:$Vx,924:$Vy,1160:$Vz,1184:$VA,1185:$VB,1186:$VC,1187:$VD,1189:$VE,1207:$VF,1221:$VG,1246:$VH,1247:$VI,1273:$VJ,1309:$VK}),{6:[1,145],10:[1,146]},o($V2,[2,6]),o($V2,[2,12]),o($V2,[2,13]),o($V2,[2,14]),{12:147,13:148,14:149,17:32,25:$V4,29:$V5,58:$V7,73:$V8,78:$V9,79:$Va,96:$Vb,112:$Vc,130:$Vd,144:$Ve,182:$Vg,218:$Vh,307:$Vi,339:$Vj,352:$Vk,405:9,406:10,407:11,408:12,409:13,410:14,411:15,412:16,413:17,414:18,415:19,416:20,417:21,418:22,419:23,437:111,438:$Vl,439:$Vm,440:$Vn,452:$Vo,564:35,565:36,568:103,569:$Vp,570:$Vq,571:$Vr,572:31,577:$Vs,594:124,760:$Vt,802:37,803:38,804:39,805:40,806:41,807:42,808:43,816:$Vu,820:106,859:$Vv,910:107,921:$Vw,922:$Vx,924:$Vy,925:48,926:49,927:50,928:51,929:52,930:53,931:54,1056:112,1057:113,1058:114,1059:115,1119:24,1120:25,1121:26,1122:27,1123:28,1124:29,1125:30,1131:93,1132:95,1138:55,1139:56,1140:57,1141:58,1142:59,1143:60,1144:61,1145:62,1146:63,1155:117,1156:118,1160:$Vz,1184:$VA,1185:$VB,1186:$VC,1187:$VD,1189:$VE,1191:94,1192:96,1193:123,1207:$VF,1210:127,1212:139,1217:141,1218:142,1221:$VG,1227:128,1241:97,1246:$VH,1247:$VI,1252:70,1253:71,1254:72,1255:73,1256:74,1257:75,1258:76,1259:77,1260:78,1261:79,1262:80,1263:81,1264:82,1265:83,1266:84,1267:85,1268:86,1269:87,1270:88,1271:89,1272:120,1273:$VJ,1308:90,1309:$VK},o($V2,[2,515]),o($V2,[2,516]),o($V2,[2,517]),o($V2,[2,518]),o($V2,[2,519]),o($V2,[2,520]),o($V2,[2,521]),o($V2,[2,522]),o($V2,[2,523]),o($V2,[2,524]),o($V2,[2,525]),o($V2,[2,526]),o($V2,[2,527]),o($V2,[2,528]),o($V2,[2,529]),o($V2,[2,2594]),o($V2,[2,2595]),o($V2,[2,2596]),o($V2,[2,2597]),o($V2,[2,2598]),o($V2,[2,2599]),o($V2,[2,2600]),o($VL,$VM,{573:150,582:151,584:152,347:$VN}),{307:$Vi,398:$VO,572:154,577:$Vs,594:124,1131:156,1132:157,1184:$VP,1186:$VC,1193:123,1210:127,1212:139,1217:141,1218:142,1221:$VG},o($VQ,[2,171],{161:159,50:[1,161],163:[1,160],164:[1,162]}),o($VQ,[2,168]),o($V2,[2,823]),o($V2,[2,824]),o($V2,[2,1655]),o($V2,[2,1656]),o($V2,[2,1657]),o($V2,[2,1658]),o($V2,[2,1659]),o($V2,[2,1660]),o($V2,[2,1661]),{193:[1,163]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,230:[1,165],402:$VY2,522:164,523:166},{923:[1,305]},{234:[1,307],259:[1,306]},o($V2,[2,2033]),o($V2,[2,2034]),o($V2,[2,2035]),o($V2,[2,2036]),o($V2,[2,2037]),o($V2,[2,2038]),o($V2,[2,2039]),o($V2,[2,2615]),o($V2,[2,2616]),o($V2,[2,2617]),o($V2,[2,2618]),o($V2,[2,2619]),o($V2,[2,2620]),o($V2,[2,2621]),o($V2,[2,2622]),o($V2,[2,2623]),{127:[1,308]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:[1,311],106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,166:$VZ2,186:$V_2,192:$V$2,196:$V03,402:$VY2,439:$V13,523:313,577:$V23,816:$V33,859:$V43,1160:$V53,1164:309,1168:310,1181:312,1183:314,1184:$V63,1185:$V73},{146:[1,326],284:$V83,440:$V93,577:$Va3,816:$Vb3,859:$Vc3,921:$Vd3,1170:327,1186:$Ve3},{24:171,25:$VR,26:$VS,27:[1,339],28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:[1,338],106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,166:[1,340],182:[1,336],186:$V_2,192:$V$2,196:$V03,402:$VY2,439:$V13,523:313,577:$V23,816:$V33,859:$V43,1160:$V53,1164:335,1168:337,1181:312,1183:314,1184:$V63,1185:$V73},{146:[1,341],284:$V83,440:$V93,577:$Va3,816:$Vb3,859:$Vc3,921:$Vd3,1170:342,1186:$Ve3},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:[1,343],106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:346,159:$VW2,160:$VX2,284:[1,345],1251:344},o($V2,[2,3136]),o($V2,[2,3137]),o($V2,[2,3138]),o($V2,[2,3139]),o($V2,[2,3140]),o($V2,[2,3141]),o($V2,[2,3142]),o($V2,[2,3143]),o($V2,[2,3144]),o($V2,[2,3145]),o($V2,[2,3146]),o($V2,[2,3147]),o($V2,[2,3148]),o($V2,[2,3149]),o($V2,[2,3150]),o($V2,[2,3151]),o($V2,[2,3152]),o($V2,[2,3153]),o($V2,[2,3154]),o($V2,[2,3155]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:347,159:$VW2,160:$VX2},{307:[1,348]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,307:[2,2729],398:$Vf3,402:$VY2,522:356,523:166,663:357,698:350,700:351,702:352,703:353,714:354,717:355,1161:349},o($V2,[2,2895]),o($V2,[2,2896]),o($V2,[2,2897]),o($V2,[2,2900]),{44:[1,360],216:[1,361],1242:359},{178:[1,364],193:[1,365],307:[2,3093],1248:362,1249:363},{193:[1,366]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:371,549:370,551:369,1297:367,1301:368},o($Vg3,$Vh3,{578:372,166:$Vi3,284:$Vj3,298:$Vk3}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:378,588:376,590:377},o($Vl3,[2,624],{478:379,448:380,164:[1,382],181:[1,381],195:[1,383],201:$Vm3,296:$Vn3,337:$Vo3}),o($Vl3,$Vp3,{480:387,221:$Vq3,228:$Vr3,296:[1,388]}),{132:$Vs3,193:$Vt3,196:[1,392],201:$Vm3,262:$Vu3,296:$Vn3,337:$Vo3,342:$Vv3,447:393,448:391,912:394,1095:$Vw3},{26:$Vx3,30:[1,430],35:$Vy3,36:$Vz3,40:$VA3,43:$VB3,52:$VC3,54:$VD3,56:[1,429],101:[1,415],102:[1,411],103:$VE3,113:[1,413],126:[1,416],128:[1,431],145:[1,407],188:$VF3,322:[1,418],328:$VG3,339:[1,419],446:427,497:406,759:$VH3,816:[1,420],821:400,826:401,828:402,829:403,830:404,831:405,833:439,841:432,842:412,845:414,846:417,849:426,859:[1,421],871:422,874:425,897:$VI3,899:$VJ3,901:[1,410]},{167:$VK3,286:$VL3,339:[1,442],436:443,901:[1,444]},{99:[1,447]},{181:[1,448]},{324:[1,449]},o($VM3,[2,650],{448:450,490:451,912:452,1099:453,105:$VN3,121:[1,455],132:$Vs3,146:$VO3,156:$VP3,181:[1,458],196:[1,454],201:$Vm3,210:[1,457],229:[1,456],296:$Vn3,337:$Vo3,1095:$Vw3}),o($V2,[2,2418]),o($V2,[2,2419]),o($V2,[2,2420]),o($V2,[2,2421]),{105:$VN3,121:[1,468],132:$Vs3,146:$VO3,156:$VP3,181:[1,472],193:$Vt3,196:[1,467],201:$Vm3,210:[1,471],229:[1,470],234:[1,465],259:[1,464],262:$Vu3,296:$Vn3,337:$Vo3,342:$Vv3,447:466,448:462,912:469,1095:$Vw3,1099:463},o($V2,[2,2640]),o($V2,[2,2641]),{193:$Vt3,262:$Vu3,342:$Vv3,447:473},{38:[1,475],41:[1,476],45:[1,504],64:[1,484],75:[1,489],90:[1,490],105:[1,493],106:[1,496],107:[1,505],119:[1,510],120:[1,499],127:[1,500],142:[1,513],143:[1,480],144:[1,487],146:[1,494],147:[1,495],171:[1,477],174:[1,479],182:[1,486],193:[1,497],195:[1,508],196:$VQ3,197:$VR3,205:[1,501],210:[1,512],215:[1,474],217:[1,482],224:[1,483],230:[2,620],247:[1,491],250:[1,492],256:[1,506],263:[1,511],434:507,439:[1,502],440:[1,503],450:509,453:478,454:481,464:498,476:485,481:488},o($VS3,[2,3358]),o($VS3,[2,3359]),{14:516,17:517,352:$Vk,572:31,577:$Vs},{577:$VT3,1184:$VP,1193:522,1194:518,1195:519,1204:520},{86:[1,524],315:[1,523],1201:$VU3},{315:[1,526]},o($V2,[2,2971]),{324:[1,527]},o($VV3,[2,3077]),o($VV3,[2,3078]),o($VW3,[2,851]),o($VW3,[2,852]),o($VX3,[2,551]),o($VX3,[2,552]),o($VX3,[2,553]),o($VY3,[2,3156]),o($VY3,[2,3157]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,398:$Vf3,402:$VY2,522:356,523:166,601:528,663:357,698:529,700:351,702:352,703:353,714:354,717:355},{267:[1,533],273:[1,532],348:[1,531],577:[2,3003],1213:530},{315:[1,534]},o($VZ3,[2,2982]),o($VZ3,[2,2983]),{315:[1,535]},{315:[1,537],1223:536,1224:[1,538]},{1:[2,1]},o($V0,$V1,{4:539}),o($V2,[2,15]),o($V2,[2,16]),o($V2,[2,17]),o($VL,[2,853]),o($VL,[2,867],{584:540,347:$VN}),o($V_3,[2,869]),o([166,284,298,577],$V1,{4:541}),o($VL,$VM,{582:151,584:152,573:542,347:$VN}),{14:543,17:517,352:$Vk,572:31,577:$Vs},o($V2,[2,2898]),o($V2,[2,2899]),{86:[1,544],315:[1,545],1201:$VU3},o($VQ,[2,167]),o($VQ,[2,172]),o($VQ,[2,173]),o($VQ,[2,174]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:546,523:166},o($V2,$V$3,{446:427,496:547,497:548,188:$VF3,328:$VG3}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,484:549,523:550},o($V04,[2,708],{442:551,207:$V14,281:$V24,395:$V34}),o($V44,[2,758]),{402:$V54,469:$V64},o($V74,[2,164]),o($V74,[2,165]),o($V74,[2,166]),o($V74,[2,31]),o($V74,[2,32]),o($V74,$V84),o($V74,[2,34]),o($V74,[2,35]),o($V74,[2,36]),o($V74,[2,37]),o($V74,[2,38]),o($V74,[2,39]),o($V74,[2,40]),o($V74,[2,41]),o($V74,[2,42]),o($V74,[2,43]),o($V74,[2,44]),o($V74,[2,45]),o($V74,[2,46]),o($V74,[2,47]),o($V74,[2,48]),o($V74,[2,49]),o($V74,[2,50]),o($V74,[2,51]),o($V74,[2,52]),o($V74,[2,53]),o($V74,[2,54]),o($V74,[2,55]),o($V74,[2,56]),o($V74,[2,57]),o($V74,[2,58]),o($V74,[2,59]),o($V74,[2,60]),o($V74,[2,61]),o($V74,[2,62]),o($V74,[2,63]),o($V74,[2,64]),o($V74,[2,65]),o($V74,[2,66]),o($V74,[2,67]),o($V74,[2,68]),o($V74,[2,69]),o($V74,[2,70]),o($V74,[2,71]),o($V74,[2,72]),o($V74,[2,73]),o($V74,[2,74]),o($V74,[2,75]),o($V74,[2,76]),o($V74,[2,77]),o($V74,[2,78]),o($V74,[2,79]),o($V74,[2,80]),o($V74,[2,81]),o($V74,[2,82]),o($V74,[2,83]),o($V74,[2,84]),o($V74,[2,85]),o($V74,[2,86]),o($V74,[2,87]),o($V74,[2,88]),o($V74,[2,89]),o($V74,[2,90]),o($V74,[2,91]),o($V74,[2,92]),o($V74,[2,93]),o($V74,[2,94]),o($V74,[2,95]),o($V74,[2,96]),o($V74,[2,97]),o($V74,[2,98]),o($V74,[2,99]),o($V74,[2,100]),o($V74,[2,101]),o($V74,[2,102]),o($V74,[2,103]),o($V74,[2,104]),o($V74,[2,105]),o($V74,[2,106]),o($V74,[2,107]),o($V74,[2,108]),o($V74,[2,109]),o($V74,[2,110]),o($V74,$V94),o($V74,[2,112]),o($V74,[2,113]),o($V74,[2,114]),o($V74,[2,115]),o($V74,[2,116]),o($V74,[2,117]),o($V74,[2,118]),o($V74,[2,119]),o($V74,[2,120]),o($V74,[2,121]),o($V74,[2,122]),o($V74,[2,123]),o($V74,[2,124]),o($V74,[2,125]),o($V74,[2,126]),o($V74,[2,127]),o($V74,[2,128]),o($V74,[2,129]),o($V74,[2,130]),o($V74,[2,131]),o($V74,[2,132]),o($V74,[2,133]),o($V74,[2,134]),o($V74,[2,135]),o($V74,[2,136]),o($V74,[2,137]),o($V74,[2,138]),o($V74,[2,139]),o($V74,[2,140]),o($V74,[2,141]),o($V74,[2,142]),o($V74,[2,143]),o($V74,[2,144]),o($V74,[2,145]),o($V74,[2,146]),o($V74,[2,147]),o($V74,[2,148]),o($V74,[2,149]),o($V74,[2,150]),o($V74,[2,151]),o($V74,$Va4),o($V74,[2,153]),o($V74,[2,154]),o($V74,[2,155]),o($V74,[2,156]),o($V74,[2,157]),o($V74,[2,158]),o($V74,[2,159]),o($V74,[2,160]),o($V74,[2,161]),o($V74,[2,162]),o($V74,[2,163]),o($V2,[2,2011],{523:166,158:167,24:171,522:557,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,402:$VY2}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:558,523:166},{259:[1,559]},{207:$V14,281:$V24,382:$Vb4,383:$Vc4,395:$V34,442:565,658:561,691:562,692:563,1163:560},{324:$Vd4,394:$Ve4,827:$Vf4,1165:567},{394:$Vg4,827:[1,570]},o([394,827],$V94,{158:167,24:171,523:313,1168:572,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,402:$VY2}),o($Vh4,[2,2790]),o($Vi4,[2,2831]),o($Vh4,$Vj4,{512:573,513:574,398:$Vk4}),o($Vl4,[2,2801]),o($Vl4,[2,2802]),o($Vl4,[2,2803]),o($Vl4,[2,2804]),o($Vl4,[2,2805]),o($Vl4,[2,2806]),o($Vl4,[2,2807]),o($Vl4,[2,2808]),o($Vl4,[2,2809]),o($Vl4,[2,2810]),o($Vl4,$Vm4),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:576},{324:[1,577]},{324:[2,2812]},{324:[2,2813]},{324:[2,2814]},{324:[2,2815]},{324:[2,2816]},{324:[2,2817]},{324:$Vj4,398:$Vk4,512:578,513:574},{307:$Vf4,324:$Vd4,394:$Ve4,1165:579},{157:[1,580]},{307:[1,581],394:$Vg4},o($Vn4,$V94,{158:167,24:171,523:313,1168:582,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,402:$VY2}),o($Vn4,$V84,{157:[1,583]}),o([307,324,394,398],$Vm4,{1188:584,92:[1,585],182:[1,586]}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:587},{324:[1,588]},o($Vo4,$V94,{24:171,158:589,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,166:[1,590],198:[1,591]}),{207:$V14,281:$V24,387:[1,592],395:$V34,442:593},o($V2,[2,3122]),o($Vo4,[2,3123]),o($V2,[2,3360]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:594,523:166},{307:[1,595]},{307:[2,2730]},o($Vp4,[2,1253]),o($Vp4,[2,1255],{599:596,707:597,266:$Vq4,294:$Vr4,308:$Vs4,313:$Vt4,317:$Vu4,318:$Vv4,326:$Vw4,333:$Vx4,338:$Vy4}),o($Vp4,[2,1256]),o($Vz4,[2,1331],{715:607,203:[1,608]}),o($VA4,$VB4,{158:167,24:171,695:609,523:610,436:611,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,167:$VK3,286:$VL3,402:$VY2}),o([6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,184,203,206,231,242,264,265,266,286,294,307,308,309,310,313,317,318,320,324,325,326,333,338,347,351,394,399,402,445,577,653,660,951,1184],[2,1327]),o($Vz4,[2,1329]),o($VC4,$VD4,{663:357,592:612,717:613,725:614,398:$Vf3}),o($VE4,[2,3075],{1243:615,185:[1,616]}),o($VF4,[2,3079]),o($VF4,[2,3080]),{307:$VG4,785:617},{307:[2,3094]},{193:[1,618]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:619,523:166},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:620,523:166},{339:[1,621]},{339:[2,3337]},{339:[2,3339]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,339:[2,765],402:$VY2,523:622},o($VH4,[2,761],{442:623,207:$V14,281:$V24,395:$V34}),o($VI4,$VJ4,{579:624,260:$VK4}),o($VL4,[2,902]),o($VL4,[2,903]),o($VL4,[2,904]),o([307,398,577,1184,1186,1221],[2,889],{394:[1,626]}),o($VM4,[2,891]),{167:$VK3,286:$VL3,436:627},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:628,523:166},o($Vl3,$VN4,{477:629,164:$VO4}),o($VS3,$VN4,{477:631,164:$VO4}),o($Vl3,[2,625]),o($Vl3,[2,626]),o($VP4,[2,569]),o($VP4,[2,570]),o($VP4,[2,571]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:632,523:166},o($Vl3,$Vp3,{480:633,221:$Vq3,228:$Vr3}),o($Vl3,[2,631]),o($Vl3,[2,632]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:634},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:635},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:636,523:166},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:637,523:166},o($VQ4,[2,566]),o($VQ4,[2,567]),o($VQ4,[2,568]),o($VQ4,[2,2522]),o($VQ4,[2,2523]),o($VR4,$VS4,{493:638,38:$VT4,889:$VT4,172:[1,639],311:$VU4}),{827:[1,641]},o($V2,[2,1691]),o($V2,[2,1692]),o($V2,[2,1693]),o($V2,[2,1694]),{26:$Vx3,35:$Vy3,40:$VA3,43:$VB3,52:$VC3,54:$VD3,102:[1,643],103:$VE3,339:[1,645],759:$VH3,821:646,831:642,833:439,841:432,849:644,871:422,874:425,897:$VI3,899:$VJ3},{247:[1,647]},o($VV4,[2,1884]),o($VV4,[2,1885]),{827:[2,1898]},{827:[2,1899]},o($V2,[2,1734]),{291:[1,648]},o($V2,[2,1736]),{90:[1,649]},o($V2,$V$3,{446:427,497:548,496:650,188:$VF3,328:$VG3}),{188:$VF3,328:$VG3,446:427,497:651},{113:[1,652],202:[1,653]},{61:$VW4,74:$VX4,87:[1,655],109:$VY4,110:$VZ4,120:$V_4,212:$V$4,215:[1,656],244:$V05,272:$V15,275:$V25,335:$V35,460:667,465:659,536:658,541:662,543:$V45,847:[1,654],866:657,869:661,898:$V55},o($Vl3,[2,1785],{856:675,215:[1,676]}),o($VR4,$V65,{491:677,172:[1,678],215:[1,679],311:$V75}),o($V2,[2,1805]),o($V2,[2,1806]),{403:$V85,404:$V95,468:682,472:683,474:681},{82:[1,687],83:[1,688],875:686},o($Vl3,$Va5,{876:689,850:[1,690]}),{398:[1,691]},{291:[1,692]},{328:[1,694],890:693},o($Vb5,[2,1907]),o($Vb5,[2,1908]),{38:[1,696],887:695,889:[1,697]},o($Vc5,[2,1900]),o($Vc5,[2,1901]),o($Vd5,[2,1880]),o($Vd5,[2,1881]),o($Ve5,[2,564]),o($Ve5,[2,565]),o($Vf5,[2,1889]),o($Vf5,[2,1886]),o($Vf5,[2,1887]),{120:[1,698]},{14:699,17:517,352:$Vk,572:31,577:$Vs},{827:[1,700]},o($Vg5,[2,549]),o($Vg5,[2,550]),{193:[1,701]},o($V2,[2,1968]),{296:[1,702]},o([6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160],$VS4,{493:703,311:$VU4}),o($Vh5,[2,627],{479:704,178:[1,705],222:[1,706]}),o($Vl3,$VS4,{493:707,311:$VU4}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:708,159:$VW2,160:$VX2},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:709},o($VM3,[2,651],{181:[1,711],187:[1,710]}),o($Vl3,$VS4,{493:712,311:$VU4}),{229:[1,713]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:715,529:714},o($VS3,[2,2535]),o($VS3,[2,2536]),o($VS3,[2,2537]),o($Vl3,$V65,{491:716,311:$V75}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:717,159:$VW2,160:$VX2},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:718,523:166},{259:[1,719]},o($Vl3,$V65,{491:720,311:$V75}),o($Vl3,$V65,{491:721,311:$V75}),{181:[1,723],187:[1,722]},o($Vl3,$V65,{491:724,311:$V75}),o($Vl3,$V65,{491:725,311:$V75}),{229:[1,726]},o($Vl3,$V65,{491:727,311:$V75}),o($Vl3,$V65,{491:728,311:$V75}),{259:[1,729]},{307:$Vi5,312:$Vj5,443:730},o($V2,[2,3191]),{18:[1,735],24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:734,159:$VW2,160:$VX2,507:733},{193:$Vt3,262:$Vu3,342:$Vv3,447:737,1095:[1,738],1290:736},{106:[1,739]},{147:[1,740]},{319:[1,741]},{319:[2,582],403:$V85,468:742},{312:[1,743]},o($V2,[2,3214],{472:744,404:$V95}),{230:[1,745]},o($Vk5,[2,3235],{24:171,1291:746,158:747,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2}),{146:[1,748]},{324:[1,749]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,201:$Vm3,296:$Vn3,337:$Vo3,402:$VY2,448:751,523:371,549:750},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:371,549:752},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:371,549:753},{247:[1,754]},{182:[1,755]},{144:[1,756]},o($V2,[2,3286]),o($V2,[2,3287]),{164:[1,757]},o($Vl5,$Vm5,{495:758,312:$Vn5}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:371,549:760},o($V2,[2,3314]),o($Vo5,[2,3319],{1293:761,307:[1,763],312:[1,762]}),o($Vp5,[2,578]),o($Vp5,[2,579]),{319:[2,580]},{319:[2,581]},{319:[2,583]},{230:[2,621]},{196:$VQ3,197:$VR3,450:764},{324:[2,634]},o($Vq5,[2,602]),o($Vq5,[2,603]),{230:[2,545]},{230:[2,546]},{324:[2,574]},{324:[2,575]},o($V2,[2,2901]),{398:$VO,572:154,577:$Vs},o($V2,[2,2902],{1193:522,1204:765,1184:$VP}),o([6,10,170,176,206,231,242,309,310,320,325,445,653,660],$Vr5,{595:766,605:767,621:768,351:$Vs5}),o($Vt5,[2,2935]),o($Vg3,$Vh3,{578:770,166:$Vi3,284:$Vj3,298:$Vk3}),{577:$VT3,1195:771},o($Vl3,$Vu5,{1199:772,193:$Vv5}),o($Vl3,$Vu5,{1199:774,185:$Vw5,193:$Vv5}),{384:$Vx5,537:776},o($Vl3,[2,2958],{1208:778,342:[1,779]}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:780,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vh6,[2,1378],{602:852,394:[1,853]}),o($Vi6,[2,1246]),{572:854,577:$Vs},{398:$Vj6,1214:855,1225:856},{577:[2,3004]},{577:[2,3005]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:858,523:166},o($Vl3,$Vk6,{1222:859,262:$Vl6}),o($Vl3,$Vk6,{1222:861,262:$Vl6}),o($Vm6,[2,2999]),o($Vm6,[2,3000]),o($V2,$V3,{9:4,12:5,13:6,14:7,15:8,405:9,406:10,407:11,408:12,409:13,410:14,411:15,412:16,413:17,414:18,415:19,416:20,417:21,418:22,419:23,1119:24,1120:25,1121:26,1122:27,1123:28,1124:29,1125:30,572:31,17:32,564:35,565:36,802:37,803:38,804:39,805:40,806:41,807:42,808:43,925:48,926:49,927:50,928:51,929:52,930:53,931:54,1138:55,1139:56,1140:57,1141:58,1142:59,1143:60,1144:61,1145:62,1146:63,1252:70,1253:71,1254:72,1255:73,1256:74,1257:75,1258:76,1259:77,1260:78,1261:79,1262:80,1263:81,1264:82,1265:83,1266:84,1267:85,1268:86,1269:87,1270:88,1271:89,1308:90,1131:93,1191:94,1132:95,1192:96,1241:97,568:103,820:106,910:107,437:111,1056:112,1057:113,1058:114,1059:115,1155:117,1156:118,1272:120,1193:123,594:124,1210:127,1227:128,1212:139,1217:141,1218:142,5:862,25:$V4,29:$V5,57:$V6,58:$V7,73:$V8,78:$V9,79:$Va,96:$Vb,112:$Vc,130:$Vd,144:$Ve,162:$Vf,182:$Vg,218:$Vh,307:$Vi,339:$Vj,352:$Vk,438:$Vl,439:$Vm,440:$Vn,452:$Vo,569:$Vp,570:$Vq,571:$Vr,577:$Vs,760:$Vt,816:$Vu,859:$Vv,921:$Vw,922:$Vx,924:$Vy,1160:$Vz,1184:$VA,1185:$VB,1186:$VC,1187:$VD,1189:$VE,1207:$VF,1221:$VG,1246:$VH,1247:$VI,1273:$VJ,1309:$VK}),o($V_3,[2,870]),{166:$Vi3,284:$Vj3,298:$Vk3,577:$Vh3,578:863},o($VL,[2,854]),{399:[1,864]},o($Vl3,$Vu5,{1199:865,185:$Vw5,193:$Vv5}),o($Vl3,$Vu5,{1199:866,193:$Vv5}),{42:$V$3,188:$VF3,328:$VG3,446:427,496:867,497:548},o($V2,[2,2004]),o([6,10,42,95,267,273,307,311,348,352,398,577,827],[2,663]),o($V2,[2,2005]),o($Vl5,[2,728]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:868},o($Vn6,[2,556]),o($Vn6,[2,557]),o($Vn6,[2,558]),{402:[1,869]},o($V44,[2,760]),o($V2,[2,2012]),o([6,10,264],$Vj4,{513:574,512:870,398:$Vk4}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:871,523:166},o($V2,[2,2732],{394:[1,872]}),o($Vo6,[2,2734]),o($Vp6,[2,1208]),o($Vp6,[2,1209]),o($Vp6,$Vq6,{442:873,207:$V14,281:$V24,395:$V34}),{382:$Vr6,383:[1,875]},{382:[1,876]},{827:[1,877]},{166:$VZ2,186:$V_2,192:$V$2,196:$V03,439:$V13,577:$V23,816:$V33,859:$V43,1160:$V53,1181:878,1183:314,1184:$V63,1185:$V73},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,193:[1,881],296:[1,880],402:$VY2,522:882,523:166,1179:879},{105:$Vs6,131:$Vt6,309:$Vu6,818:884,1166:883},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:888},{394:$Vg4,827:[1,889]},o($Vh4,[2,2799]),o([6,10,188,264,267,273,307,324,328,348,352,394,577,827],[2,692]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,516:890,518:891,523:823},{827:[1,892]},{148:$Vv6,149:$Vw6,262:$Vx6,296:$Vy6,1171:893},{324:[2,2818]},{307:[1,898]},{179:[1,899]},{105:$Vs6,131:$Vt6,309:$Vu6,818:884,1166:900},{307:[1,901],394:$Vg4},{179:[1,902]},{307:[1,903]},{307:[2,2892]},{157:[1,904]},{307:[1,905]},{148:$Vv6,149:$Vw6,262:$Vx6,296:$Vy6,1171:906},o($V2,[2,3132]),o($V2,[2,3133]),o($V2,[2,3134]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:908,159:$VW2,160:$VX2,207:$V14,281:$V24,304:$Vz6,323:$VA6,346:$VB6,382:$Vb4,383:$Vc4,391:$VC6,395:$V34,403:$V85,404:$V95,442:565,468:682,472:683,474:910,547:909,658:914,686:$VD6,691:562,692:563,858:907},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:917,159:$VW2,160:$VX2},o($V2,$Vr5,{621:768,605:918,351:$Vs5}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,398:$Vf3,402:$VY2,522:356,523:166,663:357,698:919,700:351,702:352,703:353,714:354,717:355},o($Vp4,[2,1259],{707:920,266:$Vq4,294:$Vr4,308:$Vs4,313:$Vt4,317:$Vu4,318:$Vv4,326:$Vw4,333:$Vx4,338:$Vy4}),o($VE6,$VF6,{708:921,273:$VG6,279:$VH6}),o($VI6,[2,1278]),{317:[1,924]},{317:[1,925]},{317:[1,926]},{317:[1,927]},{317:[1,928]},{317:[1,929],326:[1,930]},{266:[1,932],313:[1,933],317:[1,931],326:[1,934],338:[1,935]},{266:[1,937],313:[1,938],317:[1,936],326:[1,939],338:[1,940]},o($VA4,$VB4,{158:167,24:171,523:610,436:611,695:941,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,167:$VK3,286:$VL3,402:$VY2}),{398:[1,942]},o($VJ6,$VK6,{716:943,264:$VL6}),o($VA4,[2,1373]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:945},{399:[1,946]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,167:$VK3,286:$VL3,399:$VB4,402:$VY2,436:611,523:610,695:947},{14:955,17:517,352:$Vk,572:31,577:$Vs,727:948,729:949,731:950,733:951,735:952,737:953,739:954},{65:[1,957],238:[1,958],1244:956},o($VE4,[2,3076]),{307:[1,959]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:960,523:166},{188:$VF3,307:$V$3,328:$VG3,446:427,496:961,497:548},{188:$VF3,328:$VG3,446:427,496:962,497:548,827:$V$3},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:812,523:823,553:966,554:967,1239:963,1303:964,1305:965},{339:[2,766]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:968},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,392:$VM6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:971,554:796,580:969,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,694:970,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($VI4,[2,888]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:378,590:973},{398:[1,974]},o($V2,$V$3,{158:167,24:171,446:427,497:548,523:823,557:975,496:976,518:977,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,188:$VF3,328:$VG3,402:$VY2}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,484:978,523:550},o($Vl3,[2,623]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:979,159:$VW2,160:$VX2},o($V2,[2,844]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,484:980,523:550},{339:[1,981]},{324:[1,982]},o([26,30,35,36,40,43,52,54,56,101,102,103,113,126,128,145,188,322,328,339,759,816,859,897,899,901],[2,1877]),o([167,286,339,901],[2,1960]),{188:$VF3,250:[1,984],328:$VG3,446:427,497:983},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:985},{322:[1,986]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:371,549:987},o($V2,[2,1695]),{827:[1,988]},o($Vl3,$Va5,{876:689,850:[1,989]}),{61:$VW4,74:$VX4,109:$VY4,110:$VZ4,120:$V_4,212:$V$4,244:$V05,272:$V15,275:$V25,335:$V35,460:667,465:659,536:658,541:662,543:$V45,866:657,869:661,898:$V55},o($Vf5,$VT4),o($V2,[2,1696]),{398:$Vk4,513:990},o($V2,[2,1737]),o($V2,[2,1738]),o($V2,[2,1739]),o($V2,[2,1740]),o($V2,[2,1741]),{398:[1,992],848:991},{105:$Vs6,131:$Vt6,309:$Vu6,818:993},{259:[1,994]},{31:$VN6,66:$VO6,84:$VP6,88:$VQ6,94:$VR6,108:$VS6,123:$VT6,211:$VU6,240:$VV6,268:$VW6,270:$VX6,271:$VY6,277:$VZ6,867:995,1034:$V_6},o($V2,[2,1798]),{398:$V$6,817:1010},{403:$V85,404:$V95,468:682,472:683,474:1012},{398:$V$6,817:1013},o($V2,$V07,{542:1014,546:1015,352:$V17}),{227:[1,1017]},o($V2,[2,1804]),o($V27,[2,1882]),o($V27,[2,1883]),{384:$Vx5,537:1018},{398:[2,604]},{398:[2,605]},{398:[2,1905]},{398:[2,1906]},{312:[1,1019]},{384:[2,594]},{384:[2,595]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1020,523:823},o($Vl3,[2,1786]),{188:$VF3,250:[1,1022],328:$VG3,446:427,497:1023,894:1021},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1024},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1025,523:823},{303:[1,1026]},o($V37,[2,1831],{872:1027,385:[1,1028]}),o($V47,[2,616]),o($V47,[2,617]),{403:[1,1030],469:[1,1029]},{404:[1,1032],469:[1,1031]},o($V2,[2,1808]),o($V2,[2,640],{487:1033,34:[1,1034]}),o($V2,[2,1903]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1035,523:823},o($Vl3,$V57),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,500:1036,518:1038,523:823,531:1037},{398:$Vk4,513:1039},{352:[1,1040]},{398:[1,1041]},{398:$V67,851:1042},{398:[2,1841]},{398:[2,1842]},{398:$V$6,817:1044},o($V2,[2,1950]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1045},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1046,523:166},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1047},o($V2,[2,2047],{24:171,158:1048,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2}),{193:$Vt3,262:$Vu3,342:$Vv3,447:1049},o($Vh5,[2,628]),o($Vh5,[2,629]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:715,529:1050},o($V2,[2,2534]),{324:[1,1051]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1052,159:$VW2,160:$VX2},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1053,159:$VW2,160:$VX2},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:715,529:1054},o($Vl3,$VS4,{493:1055,311:$VU4}),{167:[1,1056]},o($V77,[2,723],{442:1057,207:$V14,281:$V24,395:$V34}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1058},o($V2,[2,2667]),o($V2,[2,2668]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1059,523:166},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1060,523:166},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1061},o($VS3,$V65,{491:1062,311:$V75}),o($VS3,$V65,{491:1063,311:$V75}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1064,523:166},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:715,529:1065},o($Vl3,$V65,{491:1066,311:$V75}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:715,529:1067},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1068,523:166},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:371,549:1069},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1070},o($Vl3,[2,559]),o($Vl3,[2,560]),o($V2,[2,3192],{207:[1,1071]}),o($V87,[2,678]),o($V87,[2,679]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:371,549:1072},o($Vl3,[2,3198]),o($Vl3,[2,3199]),o($V2,[2,3200]),o($V2,[2,3201]),{403:$V85,468:1073},o($V2,[2,3205]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:371,549:1074},o($V2,[2,3215]),o($Vo5,$Vm5,{495:1075,312:$Vn5}),o($V2,[2,3224],{324:[1,1076]}),o($Vk5,[2,3236]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1077},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1078},o($V2,[2,3252],{446:427,497:1080,164:[1,1079],188:$VF3,328:$VG3}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1081},o($V2,[2,3265],{446:427,497:1082,188:$VF3,328:$VG3}),o($V2,[2,3267]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:371,549:1083},{105:[1,1085],131:[1,1086],467:1084},{231:[1,1087]},{307:[1,1090],312:[1,1091],319:[2,637],449:1089,483:1088},o($V2,[2,3306],{468:1092,319:[1,1093],403:$V85}),{18:[1,1098],24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:[1,1097],484:1094,486:1095,509:1099,510:1096,523:550},o($V2,[2,3310],{398:[1,1100]}),o($V2,[2,3324],{1294:1101,319:[1,1102]}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1103},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1104},{324:[2,633]},o($Vt5,[2,2936]),o($V2,[2,2903]),o($V97,[2,937],{606:1105,622:1106,444:1107,231:[1,1110],309:[1,1108],445:[1,1109]}),o($Va7,[2,933]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1112,554:796,628:1111,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($VI4,$VJ4,{579:1113,260:$VK4}),o([6,10,170,176,206,231,242,309,310,320,325,445,653,660,1184],$Vr5,{605:767,621:768,595:1114,351:$Vs5}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1115,523:166},o($Vl3,[2,2970]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1116,523:166},{51:[1,1117]},o($Vb7,$Vc7,{1200:1118,335:$Vd7}),{786:[1,1120]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1121,523:166},o($Vl3,[2,2959]),{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,350:$Vn7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,666:1136,1228:1122,1233:1137},o($Vx7,[2,1049]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1144,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1145,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1146,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1147,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{398:$Vf3,663:1148},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1149,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,350:$Vy7,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1151,554:796,658:810,661:781,667:1150,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826,798:1152,800:1153},o($Vz7,[2,1182]),o($Vz7,[2,1183],{677:1155,398:$VA7}),{398:$VA7,677:1157},o($Vz7,[2,1186]),o($Vz7,[2,1187]),o($Vz7,[2,1188]),o($Vz7,[2,1203]),o($VB7,[2,1195],{442:1158,207:$V14,281:$V24,395:$V34}),{398:[2,1399]},{398:[2,1400]},{398:[2,1401]},{398:[2,1402]},{398:[2,1403]},{398:[2,1404]},{398:[2,1405]},o($Vz7,[2,1425],{744:1159,746:1160,327:$VC7}),{327:$VC7,746:1162},o($Vz7,[2,1383]),o($Vz7,[2,1384]),o($Vz7,[2,1385]),{207:$V14,281:$V24,382:$Vb4,383:$Vc4,391:$VC6,395:$V34,442:565,547:1163,658:914,686:$VD6,691:562,692:563},o($Vz7,[2,1205]),o($Vz7,[2,1206]),o($VD7,[2,772]),o($VE7,[2,1414]),o($VE7,[2,1415]),o($VE7,[2,1416]),{398:[1,1164]},{398:[1,1165]},{398:[1,1166]},{398:[1,1167]},o($Vz7,[2,1217]),o($Vz7,[2,1218]),o($Vz7,[2,1219]),o($VF7,[2,790],{458:1168,208:$VG7,282:$VH7}),{398:[1,1171]},{398:[1,1172]},{398:[1,1173]},o($Vz7,[2,1222]),o($Vz7,[2,1223]),{398:[2,1534]},{398:[2,1535]},{398:[2,1536]},{398:[2,1537]},{398:[2,1538]},{398:[2,1539]},{398:[2,1540]},{398:[2,1541]},{398:[2,1542]},{398:[2,1543]},{398:[2,1544]},{398:[2,1545]},{398:[2,1546]},{398:[2,1547]},{398:[2,1548]},{398:[2,1549]},{398:[2,1550]},{398:[2,1551]},{398:[2,1552]},{398:[2,1553]},{398:[2,1554]},{398:[2,1555]},{398:[2,1556]},o([6,10,170,176,206,231,242,309,310,320,325,347,351,399,445,577,653,660,951,1184],[2,912],{741:1174,184:[1,1175]}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,398:$Vf3,402:$VY2,522:356,523:166,663:357,698:1176,700:351,702:352,703:353,714:354,717:355},o($V2,$VM,{582:151,584:152,573:1177,347:$VN}),o($V2,[2,2974],{394:[1,1178]}),o($Vo6,[2,3006]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1180,554:796,658:810,661:781,664:1179,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{167:[1,1181]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1182,523:166},o($Vl3,[2,3002]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1183,523:166},o($V2,[2,7]),{572:1184,577:$Vs},o($VL,$VM,{582:151,584:152,573:1185,347:$VN}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1186,523:166},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1187,523:166},{42:[1,1188]},o($V04,[2,709],{524:1189,527:1190,281:$VI7}),o($V44,[2,759]),o($V2,$VK6,{716:1192,264:$VL6}),o($V2,$V$3,{446:427,497:548,496:1193,188:$VF3,328:$VG3}),{207:$V14,281:$V24,382:$Vb4,383:$Vc4,395:$V34,442:565,658:1194,691:562,692:563},o($Vp6,$VJ7,{382:$VK7,383:[1,1196]}),o($Vp6,[2,1213]),{382:[1,1197]},o($Vp6,[2,1214]),{105:$Vs6,131:$Vt6,309:$Vu6,818:884,1166:1198},o($Vh4,[2,2791]),o($VL7,[2,2773]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1199},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1200,523:166},o($VL7,[2,2778]),o($V2,$VM7,{1169:1201,352:$VN7,394:$VO7}),o($VP7,[2,2820]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1204},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1205},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1206},o($Vi4,[2,2832]),{105:$Vs6,131:$Vt6,309:$Vu6,818:884,1166:1207},{394:$VQ7,399:[1,1208]},o($VR7,[2,697]),{231:[1,1210]},{827:[1,1211]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1212},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1213,523:166},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1214},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1215},{105:$Vs6,131:$Vt6,309:$Vu6,818:884,1166:1216},{166:$VZ2,186:$V_2,192:$V$2,196:$V03,439:$V13,577:$V23,816:$V33,859:$V43,1160:$V53,1164:1217,1181:312,1183:314,1184:$V63,1185:$V73},o($V2,[2,2845],{394:$VO7}),{105:$Vs6,131:$Vt6,309:$Vu6,818:884,1166:1218},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:[1,1220],106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:313,1168:1219},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:313,1168:1221},{307:[2,2893]},{231:[1,1222]},{307:[1,1223]},o($V2,[2,3121]),o($V2,[2,3125]),o($V2,[2,3126],{24:171,158:1224,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2}),o($V2,[2,3128]),o($V2,[2,3129]),o($V2,[2,3130]),o($V2,[2,3131]),o($VS7,[2,1200]),{207:$V14,281:$V24,382:$Vb4,383:$Vc4,395:$V34,442:565,658:1225,691:562,692:563},{207:$V14,281:$V24,382:$Vb4,383:$Vc4,395:$V34,442:565,658:1226,691:562,692:563},o($Vo4,[2,3124]),o($V2,[2,2714]),o($V2,$Vr5,{621:768,605:1227,351:$Vs5}),o($VE6,$VF6,{708:1228,273:$VG6,279:$VH6}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,398:$Vf3,402:$VY2,522:356,523:166,663:357,702:1229,714:354,717:355},o($VE6,[2,1267]),o($VE6,[2,1268]),o($VI6,[2,1279]),o($VI6,[2,1280]),o($VI6,[2,1281]),o($VI6,[2,1282]),o($VI6,[2,1283]),o($VI6,[2,1284]),{317:[1,1230]},o($VI6,[2,1286]),{317:[1,1231]},{317:[1,1232]},{317:[1,1233]},{317:[1,1234]},o($VI6,[2,1291]),{317:[1,1235]},{317:[1,1236]},{317:[1,1237]},{317:[1,1238]},o($VJ6,$VK6,{716:1239,264:$VL6}),{32:[1,1240],159:[1,1242],207:$V14,281:$V24,382:[1,1243],395:$V34,442:1244,691:1241},o($VJ6,[2,1321]),{724:[1,1245]},o($VA4,[2,1374]),o($VT7,[2,1352]),{399:[1,1246]},{399:[2,1356]},{399:[2,1358]},{399:[2,1360]},{399:[2,1362]},{399:[2,1364]},{399:[2,1366]},{399:[2,1368]},{399:[2,1370]},{384:$Vx5,537:1247},{384:[2,3081]},{384:[2,3082]},{384:$Vx5,537:1248},{188:$VF3,307:$V$3,328:$VG3,446:427,496:1249,497:548},{307:[2,3096]},{785:1250,827:$VG4},o($VU7,[2,3354],{1298:1251,307:[1,1253],394:$VV7}),o($VW7,[2,3341]),{387:[1,1254]},{387:[2,3351]},o($VX7,[2,769],{442:1255,207:$V14,281:$V24,395:$V34}),o($VH4,[2,762]),o($V_3,[2,864],{581:1256,594:1258,307:$Vi,394:$VY7}),o($VZ7,[2,1231]),o($VZ7,$VB4,{158:167,24:171,523:610,436:611,666:1136,695:1259,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,167:$VK3,233:$Ve7,239:$Vf7,286:$VL3,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,402:$VY2}),o($VZ7,[2,1227]),o($VM4,[2,892]),o($VC4,$VD4,{725:614,592:1260}),o($V2,$V$3,{446:427,497:548,496:1261,442:1262,188:$VF3,207:$V14,281:$V24,328:$VG3,395:$V34}),o($V2,[2,828]),o($V_7,[2,780]),o($V2,[2,829]),o($V2,[2,830]),o($V2,[2,845]),{46:[1,1263],74:$VX4,87:[1,1265],244:$V05,460:667,536:1264},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1266,523:166},o($V$7,$V08,{460:667,535:1267,536:1268,74:$VX4,244:$V05}),{328:[1,1269],823:[1,1270]},{180:$V18,189:$V28,824:1271,825:1272,1006:1273},{303:[1,1276]},o($V2,[2,1690]),{188:$VF3,328:$VG3,446:427,497:1277},o($Vl3,$V57,{851:1278,398:$V67}),{324:[1,1279]},o($V2,[2,1742]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:812,523:823,553:1282,554:967,905:1280,907:1281},o($V2,[2,1743]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1283,523:823},o($V2,[2,1797]),o($V38,[2,2338]),{403:$V85,404:$V95,468:682,472:683,474:1284},o($V38,[2,2340]),o($V38,[2,2341]),o($V38,[2,2342]),o($V38,[2,2343]),o($V38,[2,2344]),o($V38,[2,2345]),o($V38,[2,2346]),o($V38,[2,2347]),o($V38,[2,2348]),o($V38,[2,2349]),o($V38,[2,2350]),o($V38,[2,2351]),o($V2,[2,1799]),{403:$V85,404:$V95,468:682,472:683,474:1287,947:1285,948:1286},o($V2,$V48,{868:1288,1050:1289,352:$V58}),o($V2,[2,1801]),o($V2,[2,1802]),o($V68,[2,754]),{253:[1,1291]},{219:$V78,870:1292},o([6,10,39,120,167,188,212,237,261,275,278,286,328,452,543,946,951],[2,744]),{403:$V85,404:$V95,468:682,472:683,474:1294},{339:[1,1295],859:[1,1296]},o($V2,[2,1918],{895:1297,93:[1,1299],394:[1,1298]}),o($V2,[2,1861],{328:[1,1300],823:[1,1301]}),o($V88,[2,1909]),o($V2,[2,1860]),o($V2,[2,1864]),o([25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,188,250,328,402],[2,653]),o($V2,[2,1834],{873:1302,352:[1,1303]}),{133:[1,1304]},{403:[1,1305]},o($V98,[2,611]),{404:[1,1306]},o($Va8,[2,614]),o($V2,[2,1902]),o($V2,[2,641]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1308,523:823,877:1307},{394:$Vb8,399:[1,1309]},o($Vc8,[2,730]),o($Vc8,[2,737],{387:[1,1311]}),{114:[1,1313],315:[2,2296],1018:1312},{193:[1,1314]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,398:[1,1317],402:$VY2,500:1316,518:1038,523:823,531:1037,892:1315},o($V2,$Vd8,{489:1318,34:$Ve8,104:$Vf8}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1308,523:823,877:1322,970:1321},o($V2,[2,1949]),o($V2,[2,1951],{281:[1,1323]}),o($V2,[2,1963]),{316:[1,1324]},o([6,10,74,244,946],$Vg8,{938:1325,939:1326,943:1327,451:1328,39:$Vh8,452:$Vi8}),o($Vl3,$VS4,{493:1331,311:$VU4}),o($Vj8,[2,2524],{1054:1332,1096:1333,398:[1,1334]}),{193:[1,1335]},{398:[1,1337],1113:1336},{167:[1,1338]},{398:$Vk8,1064:1339},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:715,529:1341},{403:$V85,468:1342},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1343},o($V2,[2,642],{488:1344,34:[1,1345],104:[1,1347],213:[1,1346],254:[1,1348]}),{188:$VF3,328:$VG3,446:427,497:1349},o($V2,[2,2686],{1159:1350,93:[1,1352],330:[1,1351]}),{324:[1,1353]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1354,159:$VW2,160:$VX2},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1355,159:$VW2,160:$VX2},o($V2,[2,2699]),{398:$Vk8,1064:1356},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:715,529:1357},o($V2,[2,2658]),o($V2,$V$3,{446:427,497:548,496:1358,188:$VF3,328:$VG3}),o($V2,[2,3177]),o($V2,[2,3181],{443:1359,307:$Vi5,312:$Vj5}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1360,159:$VW2,160:$VX2,441:[1,1361]},o($V2,[2,3193]),o($V2,[2,3204]),o($V2,$V$3,{446:427,497:548,496:1362,188:$VF3,328:$VG3}),o($V2,[2,3216],{319:[1,1363]}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,166:[1,1364],193:$Vt3,262:$Vu3,342:$Vv3,402:$VY2,447:1366,523:1365},o($V2,[2,3228]),o($V2,[2,3239],{443:1367,307:$Vi5,312:$Vj5}),o($V2,[2,3253]),o($V2,[2,3254],{164:[1,1368]}),o($V2,[2,3256]),o($V2,[2,3266]),o($V2,[2,3268]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1369,159:$VW2,160:$VX2},o($VS3,[2,608]),o($VS3,[2,609]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1370,159:$VW2,160:$VX2},{319:[1,1371]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,484:1372,523:550},o($Vl3,[2,572]),o($Vl3,[2,573]),o($V2,[2,3307]),{403:$V85,468:1373},o($Vl5,[2,660]),o($Vl5,[2,661]),o($Vl5,[2,729]),{402:$V54,469:$V64,471:[1,1374]},o($Vl5,[2,684]),o($Vl5,[2,685]),{403:$V85,404:$V95,468:682,472:683,474:1375},o($V2,[2,3315]),{403:$V85,468:1376},o($Vo5,[2,3320]),o($Vo5,[2,3321]),o($Vl8,[2,1485],{607:1377,623:1378,310:[1,1379]}),o($V97,[2,938]),{291:[1,1380]},{291:[2,561]},{291:[2,562]},{291:[2,563]},o($Va7,[2,934]),o($Va7,[2,1047],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,392:$VM6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:971,554:796,580:1381,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,694:970,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vt5,[2,2941]),o([348,352,398,577],$V$3,{446:427,497:548,496:1382,188:$VF3,328:$VG3}),o([311,348,352,577],$V$3,{446:427,497:548,496:1383,188:$VF3,328:$VG3}),{384:$Vx5,537:1384},o($VC4,$Vm8,{1031:1385,1029:1386,463:1387,116:$Vn8,274:$Vo8}),{63:[1,1390]},{787:[1,1391]},{348:[1,1392]},o($V2,[2,3015]),o([150,298,304,323,346],$Vp8,{662:1393,322:$Vq8}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1395,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1396,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1397,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1398,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{233:$Ve7,239:$Vf7,288:[1,1400],312:[1,1399],319:$Vj7,332:$Vl7,334:$Vm7,666:1401},{398:[1,1402]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1403,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1404,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1405,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1406,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1407,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1408,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vx7,[2,1076]),o($V2,[2,3038],{1233:1409,350:$Vn7}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1410,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1411,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1412,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1413,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1414,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{76:$Vp8,322:$Vq8,662:1415},o($Vr8,[2,1050],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($Vr8,[2,1051],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($Vr8,[2,1052],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($Vs8,[2,1053],{666:1136}),o($Vx7,[2,1059]),{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,399:[1,1416],666:1136},o($Vx7,[2,1078]),{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,350:$Vy7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,666:1136,667:1417,798:1152,800:1153},{301:[1,1419],302:[1,1418],350:$Vy7,800:1420},o($Vt8,[2,1628]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1421,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vz7,[2,1184]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,399:[1,1422],402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1180,554:796,658:810,661:781,664:1423,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vz7,[2,1185]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,392:[1,1424],402:$VY2,518:1425,523:823},o($Vz7,[2,1381]),o($Vz7,[2,1426]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,398:$Vu8,402:$VY2,523:1426,768:1427},o($Vz7,[2,1382]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1429,159:$VW2,160:$VX2},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,399:[1,1430],402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1180,554:796,658:810,661:781,664:1431,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,399:[1,1433],402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1432,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{134:[1,1435],135:[1,1437],136:[1,1438],137:[1,1439],138:[1,1440],139:[1,1441],140:[1,1442],141:[1,1443],369:[1,1436],792:1434},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,399:[1,1445],402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1444,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,209:$Vv8,236:$Vz5,281:$V24,283:$Vw8,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,461:1447,468:820,472:821,504:789,518:812,523:823,533:1446,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vx8,[2,590]),o($Vx8,[2,591]),o($Vy8,$Vh3,{578:1452,166:$Vi3,284:$Vj3,298:$Vk3,392:[1,1450],399:[1,1451]}),o($Vy8,$Vh3,{578:1453,166:$Vi3,284:$Vj3,298:$Vk3,399:[1,1454]}),o([25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,168,207,236,281,285,292,303,304,311,318,321,322,323,346,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,370,371,372,373,374,375,376,377,378,379,380,381,382,383,391,395,396,397,398,399,402,403,404,759,760,791],$Vh3,{578:1455,166:$Vi3,284:$Vj3,298:$Vk3}),o($Vh6,[2,1379]),{132:[1,1456]},o($Vi6,[2,1247]),o($V2,[2,2973]),{398:$Vj6,1225:1457},{394:$Vz8,399:[1,1458]},o($VA8,[2,1167],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1460,159:$VW2,160:$VX2},o($VZ3,$Vj4,{513:574,512:1461,398:$Vk4}),o([188,267,273,328,348,577],$Vj4,{513:574,512:1462,398:$Vk4}),o($V_3,[2,875]),o($VL,[2,855]),o([311,352,577],$V$3,{446:427,497:548,496:1463,188:$VF3,328:$VG3}),o([352,398,577],$V$3,{446:427,497:548,496:1464,188:$VF3,328:$VG3}),{115:[1,1465]},o($V04,[2,710],{527:1466,281:$VI7}),o($VB8,[2,715]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1467},o($V2,[2,2017]),o($V2,[2,2018]),o($Vo6,[2,2735]),o($Vp6,[2,1212]),{382:[1,1468]},o($Vp6,[2,1215]),o($V2,$VC8,{1167:1469,352:$VD8,394:$VO7}),o($VL7,[2,2776]),o($VL7,[2,2777]),o($V2,[2,2737]),{105:$Vs6,131:$Vt6,309:$Vu6,818:1471},{27:[1,1472]},o($VP7,[2,2825]),o($VP7,[2,2826]),o($VP7,[2,2827]),o($V2,$VM7,{1169:1473,352:$VN7,394:$VO7}),o([6,10,36,52,74,113,114,116,120,167,188,190,212,244,247,264,267,273,274,275,286,307,315,324,328,335,348,352,394,398,399,543,577,827,951],[2,694]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1474,523:823},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1475},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:[1,1477],147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1476},o($VL7,[2,2783]),o($VL7,[2,2784]),o($VL7,[2,2785]),o($VL7,[2,2786]),o($V2,[2,2843],{394:$VO7}),{307:$Vf4,324:$Vd4,394:$Ve4,1165:1478},o($V2,[2,2846],{394:$VO7}),{307:[1,1479],394:$Vg4},o($Vn4,$V94,{158:167,24:171,523:313,1168:1480,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,402:$VY2}),o($V2,[2,2849],{394:$Vg4}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1481},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:[1,1483],147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1482},o($V2,[2,3127]),o($VS7,[2,1201]),o($VS7,[2,1202]),o($V2,[2,2720]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,398:$Vf3,402:$VY2,522:356,523:166,663:357,702:1484,714:354,717:355},o($VE8,$VF8,{709:1485,265:$VG8,324:$VH8}),o($VI6,[2,1285]),o($VI6,[2,1287]),o($VI6,[2,1288]),o($VI6,[2,1289]),o($VI6,[2,1290]),o($VI6,[2,1292]),o($VI6,[2,1293]),o($VI6,[2,1294]),o($VI6,[2,1295]),o($VJ6,[2,1320]),{382:[1,1488]},{91:[1,1489],336:[1,1490]},{399:[1,1491]},o($VI8,$Vq6,{442:1492,207:$V14,281:$V24,395:$V34}),{382:$Vr6},{398:[1,1493]},o($VT7,[2,1353]),{86:[1,1495],315:[2,3072],1224:[1,1496],1245:1494},o($V2,$V08,{460:667,536:1268,535:1497,74:$VX4,244:$V05}),{307:[2,3095]},{827:[1,1498]},o($V2,$Vr5,{621:768,605:1499,351:$Vs5}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:812,523:823,553:966,554:967,1303:1500,1305:965},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,398:$Vf3,402:$VY2,522:356,523:166,663:357,698:1501,700:351,702:352,703:353,714:354,717:355},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1503,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826,1306:1502},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,392:[1,1504],402:$VY2,518:1425,523:823},o($V_3,[2,865]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,392:$VM6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:971,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,694:1505,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o([6,10,170,176,206,231,242,309,310,320,325,347,399,445,653,660,951],$Vr5,{605:767,621:768,595:1506,351:$Vs5}),o($VZ7,[2,1226]),{399:[1,1507]},o($V2,[2,827]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1508,523:823},{398:$V$6,817:1509},o($V2,[2,1671]),{105:$Vs6,131:$Vt6,309:$Vu6,818:1510},{95:$V$3,188:$VF3,328:$VG3,446:427,496:1511,497:548},o($VJ8,[2,1920],{446:427,822:1512,902:1513,903:1514,497:1515,188:$VF3,328:$VG3}),o([6,10,39,120,167,188,212,275,286,328,452,543,946,951],[2,743]),{207:$V14,281:$V24,304:$VD5,346:$VJ5,382:$Vb4,383:$Vc4,395:$V34,403:$V85,404:$V95,442:565,468:820,472:821,503:1516,504:1517,658:810,687:795,689:811,691:562,692:563,693:822},{387:[1,1518]},o($V2,[2,1688]),o($V2,[2,1689]),{398:$Vk4,513:1519},{70:[1,1520]},{70:[1,1521]},o([6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,188,250,328,352,402,577],[2,656]),o($V2,[2,1744]),o($V2,$Vd8,{489:1522,34:$Ve8,104:$Vf8}),{398:$VK8,843:1523},{394:[1,1526],399:[1,1525]},o($Vc8,[2,1933]),{387:[1,1527]},{398:[1,1529],860:1528},{85:[1,1530]},{394:[1,1532],399:[1,1531]},o($Vc8,[2,2071]),{387:[1,1533]},o($V2,[2,1800]),o($VL8,[2,2394]),{110:$VM8,272:$VN8},{387:[1,1536]},o($V2,[2,1803]),o([6,10,39,72,74,116,120,167,212,243,244,274,275,286,352,452,543,951],$VO8,{1039:1537,456:1538,59:$VP8,223:$VQ8}),o([6,10,167,286,352,951],[2,751]),{151:[1,1542],152:[1,1544],153:[1,1545],154:[1,1546],452:[1,1543],857:1541},{153:[1,1547]},o($V2,[2,1859]),{188:$VF3,328:$VG3,446:427,497:1548},o($V2,[2,1919]),{207:$V14,281:$V24,304:$VD5,346:$VJ5,382:$Vb4,383:$Vc4,395:$V34,403:$V85,404:$V95,442:565,468:820,472:821,503:1549,504:1517,658:810,687:795,689:811,691:562,692:563,693:822},{387:[1,1550]},o($V2,[2,1807]),{86:[1,1551]},o($V37,[2,1832]),o($V98,[2,610]),o($Va8,[2,613]),o($VR8,[2,1890],{878:1552,900:1553,28:[1,1554],62:[1,1555]}),{53:$VS8,117:$VT8,118:$VU8,124:$VV8,125:$VW8,129:$VX8,168:$VY8,175:$VZ8,251:$V_8,285:$V$8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,321:$V79,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,561:1557,974:1556,983:1558,984:1559,985:1560,986:1561,987:1562,988:1563,989:1564,990:1565},o([6,10,26,35,40,42,43,52,54,74,93,95,102,103,164,188,212,244,267,273,307,311,328,339,348,352,394,398,543,577,759,827,897,899],[2,665]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1038,523:823,531:1589},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1590,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{315:[1,1591]},{291:[1,1592]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:371,549:1593},{394:[1,1595],399:[1,1594]},{394:$Vb8,399:[1,1596]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,500:1597,518:1038,523:823,531:1037},o($V2,[2,1838]),o($V2,[2,648]),o($V2,[2,649]),{394:[1,1599],399:[1,1598]},o($Vc8,[2,2108]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1600},{323:[1,1603],403:$V85,404:$V95,468:682,472:683,474:1602,913:1601},o($V2,[2,2048]),o([6,10,946],$V08,{460:667,536:1268,535:1604,74:$VX4,244:$V05}),o([6,10,36,74,89,113,116,120,167,212,244,258,269,274,275,286,328,335,389,394,399,543,946,951],[2,2058]),{403:$V85,404:$V95,468:682,472:683,474:1605},o($Vd9,[2,576]),o($Vd9,[2,577]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:715,529:1608,949:1606,953:1607},o([120,167,286],$Vg8,{943:1327,451:1328,939:1609,39:$Vh8,452:$Vi8}),o($Vj8,[2,2525]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:812,523:823,553:1611,554:967,1097:1610},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1613,523:166,1100:1612},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1614,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1618,159:$VW2,160:$VX2,399:[1,1615],1115:1616,1117:1617},{403:$V85,468:1619},{255:$Ve9,1065:1620},{53:$VS8,117:$VT8,124:$VV8,125:$VW8,168:$VY8,175:$VZ8,251:$V_8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,399:[1,1622],561:1624,1087:1623},{398:$Vk8,1064:1625},o($V2,[2,2513],{1085:1626,204:[1,1627]}),o($V77,[2,724]),o($V2,[2,2633]),o($V2,[2,643]),o($V2,[2,644]),o($V2,[2,645]),o($V2,[2,646]),o($V2,[2,2669]),o($V2,[2,2680]),o($V2,[2,2687]),o($V2,[2,2688]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1628,523:166},o($V2,[2,2695]),o($V2,[2,2659]),o($V2,[2,2644]),{398:$Vk8,1064:1629},o($V2,[2,2705]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1630},o($V87,[2,680]),o($V87,[2,681]),o($V2,[2,3207]),{403:$V85,404:$V95,468:682,472:683,474:1631},o($V2,[2,3225]),o($V2,[2,3226]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1632},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1633},o($V2,[2,3255]),o($V2,[2,3277]),o($V2,[2,3278]),{403:$V85,468:1634},{319:[2,638]},o($V2,[2,3308]),o($Vl5,[2,688]),{399:[1,1635]},o($V2,[2,3325]),o($Vf9,[2,1490],{608:1636,624:1637,206:[1,1638]}),o($Vl8,[2,1486]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1639,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1641,554:796,630:1640,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o([6,10,170,176,206,231,242,309,310,320,325,351,445,653,660,1184],[2,2965],{394:$VY7}),o($VC4,$Vj4,{513:574,512:1643,348:[1,1642],398:$Vk4}),o($VC4,$VS4,{493:1645,311:$VU4,348:[1,1644]}),o($Vb7,$Vc7,{1200:1646,335:$Vd7}),o($VC4,[2,2917]),o($V38,[2,2335]),{167:$VK3,286:$VL3,436:1647},o($Vg9,$Vh9),o($Vg9,[2,601]),{49:$Vi9,1037:1648},o([6,10,36,39,74,86,89,113,116,120,167,179,188,212,237,244,258,261,269,274,275,278,286,315,328,335,352,452,543,577,946,951,1224],[2,1459]),{398:$Vj9,1206:1650,1209:1651},{150:[1,1656],298:[1,1657],304:[1,1655],323:[1,1653],346:[1,1654]},o([76,150,298,304,323,346],[2,1225]),o($Vk9,[2,1061],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7,391:$Vu7,392:$Vv7,393:$Vw7}),o($Vk9,[2,1062],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7,391:$Vu7,392:$Vv7,393:$Vw7}),o($Vk9,[2,1063],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7,391:$Vu7,392:$Vv7,393:$Vw7}),o($Vk9,[2,1064],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7,391:$Vu7,392:$Vv7,393:$Vw7}),{398:[1,1658]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1659,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vx7,[2,1077]),o($VC4,$VD4,{158:167,24:171,691:562,692:563,442:565,725:614,661:781,504:789,676:790,678:791,679:792,680:794,687:795,554:796,743:804,745:805,747:806,748:807,749:808,658:810,689:811,518:812,762:813,763:814,764:815,468:820,472:821,693:822,523:823,793:826,533:1180,592:1660,664:1661,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,759:$Ve6,760:$Vf6,791:$Vg6}),{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,665:[1,1662],666:1136},o($Vl9,[2,1071],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($Vl9,[2,1072],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($Vs8,[2,1073],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7}),o($Vs8,[2,1074],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7}),o($Vs8,[2,1075],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7}),o($V2,[2,3039],{1233:1663,350:$Vn7}),o($Vs8,[2,1598],{666:1136}),o($Vs8,[2,1599],{666:1136}),o($Vs8,[2,1600],{666:1136}),o($Vs8,[2,1601],{666:1136}),o($Vs8,[2,1602],{666:1136}),{76:[1,1664]},o($Vx7,[2,1060]),o($Vx7,[2,1079]),o($Vx7,[2,1613]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1665,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vt8,[2,1629]),{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,343:[1,1666],385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,666:1136},o($Vz7,$Vm9,{761:1667,458:1668,208:$VG7,282:$VH7}),{394:$Vz8,399:[1,1669]},o($VB7,[2,1196]),o($VD7,[2,773]),o($Vz7,[2,1428]),o($Vz7,[2,1429]),o($Vn9,[2,1436],{770:1670,774:1671,446:1672,188:$VF3,328:$VG3}),o($Vz7,[2,1198]),{327:[2,1420]},{394:$Vz8,399:[1,1673]},{167:$VK3,233:$Ve7,239:$Vf7,286:$VL3,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,436:1674,666:1136},o($Vz7,[2,1496]),{307:[1,1675]},{307:[2,1520]},{307:[2,1521]},{307:[2,1522]},{307:[2,1523]},{307:[2,1524]},{307:[2,1525]},{307:[2,1526]},{307:[2,1527]},{307:[2,1528]},{233:$Ve7,239:$Vf7,288:$Vg7,307:[1,1677],312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,394:[1,1678],666:1136,794:1676},o($Vz7,[2,1558]),{209:$Vv8,233:$Ve7,239:$Vf7,283:$Vw8,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,461:1679,666:1136},o($VF7,[2,792]),o($VF7,[2,596]),o($VF7,[2,597]),{399:[1,1680]},o($VE7,[2,1508]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1180,554:796,658:810,661:781,664:1681,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1682,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($VE7,[2,1574]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,399:[1,1683],402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1180,554:796,658:810,661:781,664:1684,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vo9,[2,1589],{795:1685,326:[1,1686]}),o($Vo6,[2,3007]),o($Vo6,[2,3012]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1687,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{204:[1,1688]},o($VZ3,[2,2986]),o($VZ3,$V$3,{446:427,497:548,496:1689,188:$VF3,328:$VG3}),o($VC4,$VS4,{493:1645,311:$VU4}),o($VC4,$Vj4,{513:574,512:1643,398:$Vk4}),o($Vp9,[2,1994],{914:1690,917:1691,179:[1,1692]}),o($VB8,[2,716]),o($VB8,[2,721]),o($Vp6,[2,1216]),o($V2,[2,2736]),{144:[1,1694],182:[1,1693]},o($VP7,[2,2821]),{157:[1,1695]},o($V2,[2,2738]),o($VR7,[2,698]),o($V2,[2,2739]),o($V2,$VC8,{1167:1696,352:$VD8}),o($V37,$Va4,{158:167,24:171,523:1697,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,402:$VY2}),{307:[1,1698]},{105:$Vs6,131:$Vt6,309:$Vu6,818:884,1166:1699},{307:[1,1700],394:$Vg4},o($V2,[2,2850]),o($V2,[2,2851]),o($V2,$Va4,{158:167,24:171,523:1701,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,402:$VY2}),o($VE8,$VF8,{709:1702,265:$VG8,324:$VH8}),o($VE8,[2,1262]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1703,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{398:[1,1704]},{200:[1,1705]},{399:[1,1706]},{399:[1,1707]},o($Vz4,[2,1335]),o($VI8,$VJ7,{382:$VK7}),{382:[1,1708]},{315:[1,1709]},{315:[2,3073]},{315:[2,3074]},o($V2,[2,3083]),{384:$Vx5,537:1710},o($V2,[2,3327]),o($VW7,[2,3342]),o($VU7,[2,3355]),o($VW7,[2,3347]),o($VW7,[2,3352],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($VX7,[2,770]),o($VZ7,[2,1232]),o($V_3,[2,905]),o($VM4,[2,897]),o($V_7,[2,781]),o($V2,[2,1670]),o($V2,[2,1672]),{95:[1,1711]},o($V2,$Vq9,{540:1712,541:1713,212:$V$4,543:$Vr9}),o($VJ8,[2,1921],{446:427,497:1515,903:1715,188:$VF3,328:$VG3}),o($V$7,[2,1922]),o($V$7,$V08,{460:667,536:1268,535:1716,74:$VX4,244:$V05}),o($V2,[2,1686]),{387:$Vs9,388:$Vt9,389:$Vu9,390:$Vv9,505:1717},{207:$V14,281:$V24,304:$VD5,346:$VJ5,382:$Vb4,383:$Vc4,395:$V34,403:$V85,404:$V95,442:565,468:820,472:821,504:1722,658:810,687:795,689:811,691:562,692:563,693:822},{52:[1,1723]},{398:$Vk4,513:1724},{398:[2,2234]},o($V2,[2,1745]),o($V2,[2,1945],{844:1725,202:[1,1726]}),{398:$Vw9,520:1728,1027:1727},o($V2,[2,1931]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:812,523:823,553:1282,554:967,907:1730},{403:$V85,404:$V95,468:682,472:683,474:1731},o($V2,[2,1770]),{403:$V85,404:$V95,468:682,472:683,474:1734,862:1732,864:1733},{403:$V85,404:$V95,468:682,472:683,474:1735},o([6,10,39,74,116,120,167,212,244,274,275,286,312,335,452,543,951],[2,2070]),{403:$V85,404:$V95,468:682,472:683,474:1287,948:1736},{207:$V14,281:$V24,304:$VD5,346:$VJ5,382:$Vb4,383:$Vc4,395:$V34,403:$V85,404:$V95,442:565,468:820,472:821,504:1737,658:810,687:795,689:811,691:562,692:563,693:822},{398:$V$6,817:1738},{398:$V$6,817:1739},{207:$V14,281:$V24,382:$Vb4,383:$Vc4,391:$VC6,395:$V34,442:565,547:1740,658:914,686:$VD6,691:562,692:563},o([6,10,39,74,116,120,167,212,244,274,275,286,352,452,543,951],$Vx9,{1042:1741,459:1742,72:$Vy9,243:$Vz9}),{122:$VA9,276:$VB9,466:1745},o($VC9,[2,586]),o($VC9,[2,587]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:908,159:$VW2,160:$VX2,207:$V14,281:$V24,304:$Vz6,323:$VA6,346:$VB6,382:$Vb4,383:$Vc4,391:$VC6,395:$V34,403:$V85,404:$V95,442:565,468:682,472:683,474:910,547:909,658:914,686:$VD6,691:562,692:563,858:1748},o($VD9,[2,1780]),o($VD9,[2,1781]),o($VD9,[2,1782]),o($VD9,[2,1783]),o($VD9,[2,1784]),o($V2,[2,1769]),o($V88,[2,1910]),o($V2,[2,1862]),{207:$V14,281:$V24,304:$VD5,346:$VJ5,382:$Vb4,383:$Vc4,395:$V34,403:$V85,404:$V95,442:565,468:820,472:821,504:1749,658:810,687:795,689:811,691:562,692:563,693:822},{120:[1,1750]},o($V2,$Vd8,{489:1751,34:$Ve8,104:$Vf8}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1752,523:823},o($Vl3,[2,1892]),o($Vl3,[2,1893]),o($VE9,[2,2122],{451:1328,975:1753,978:1754,979:1755,981:1756,943:1763,39:$Vh8,151:$VF9,152:$VG9,153:$VH9,154:$VI9,249:$VJ9,322:$VK9,323:$VL9,452:$Vi8}),o($VM9,[2,2140]),o($VM9,[2,2141]),o($VM9,[2,2142]),o($VM9,[2,2143]),o($VM9,[2,2144]),o($VM9,[2,2145]),o($VM9,[2,2146]),o($VM9,[2,2147]),o($VM9,[2,2148]),o($VN9,[2,799]),o($VN9,[2,800]),o($VN9,[2,801]),o($VN9,[2,802]),o($VN9,[2,803]),o($VN9,[2,804]),o($VN9,[2,805]),o($VN9,[2,806]),o($VN9,[2,807]),o($VN9,[2,808]),o($VN9,[2,809]),o($VN9,[2,810]),o($VN9,[2,820],{562:1765,398:[1,1766]}),o($VN9,$VO9,{563:1767,398:$VP9}),o($VN9,$VO9,{563:1769,398:$VP9}),o($VN9,[2,814]),o($VN9,[2,815]),o($VN9,[2,816]),o($VN9,[2,817]),{388:[1,1770]},{388:[1,1771]},{388:[1,1772]},{388:[1,1773]},o($Vc8,[2,731]),o($Vc8,[2,736],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),{382:[1,1774]},{398:[1,1776],1020:1775},o($V2,[2,1843]),{352:[2,1851]},{398:[1,1777]},{352:[2,1852]},{394:$Vb8,399:[1,1778]},o($VQ9,[2,2103]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,172:[1,1783],189:$V28,249:$VJ9,402:$VY2,518:1308,523:823,824:1782,877:1780,971:1779,981:1784,1004:1781,1006:1273},o($V2,[2,1952]),o($V2,[2,1970]),o($V2,[2,1976]),o($V2,[2,1977]),o($V2,[2,2065],{940:1785,945:1786,946:[1,1787]}),o([6,10,28,34,36,39,62,74,89,104,113,116,120,151,152,153,154,167,212,244,249,258,269,274,275,286,322,323,328,335,389,394,399,452,543,946,951],[2,2059]),o($V2,[2,2075],{950:1788,951:[1,1789]}),o([6,10,36,74,89,113,116,120,167,212,244,258,269,274,275,286,328,335,543,951],$Vg8,{943:1327,451:1328,939:1790,39:$Vh8,452:$Vi8}),o($VR9,[2,2095],{967:1791,851:1792,319:[1,1794],398:$V67,969:[1,1793]}),o($Vg9,[2,2402],{1052:1795,120:[1,1796]}),{394:[1,1798],399:[1,1797]},o($Vc8,$Vg8,{943:1327,451:1328,939:1799,39:$Vh8,452:$Vi8}),{398:[1,1801],1101:1800},{398:[2,2539]},o($V2,[2,2577],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($Vy8,[2,2582]),{394:[1,1803],399:[1,1802]},o($Vc8,[2,2585]),{53:$VS8,117:$VT8,118:$VU8,124:$VV8,125:$VW8,129:$VX8,168:$VY8,175:$VZ8,251:$V_8,285:$V$8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,321:$V79,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,561:1557,974:1804,983:1558,984:1559,985:1560,986:1561,987:1562,988:1563,989:1564,990:1565},o($V2,[2,2472]),{74:$VX4,244:$V05,460:667,536:1805},{53:$VS8,117:$VT8,124:$VV8,125:$VW8,168:$VY8,175:$VZ8,251:$V_8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,561:1806},o($VS9,[2,2474]),{280:[1,1809],394:[1,1808],399:[2,2484],1088:1807},o($VT9,[2,2478]),{255:$Ve9,1065:1810},o($V2,[2,2468]),{30:$VU9,60:$VV9,67:$VW9,1092:1811,1093:1812,1094:1813},o($V2,[2,2689]),o($V2,[2,2645]),o($V2,[2,3182]),o($V2,[2,3217]),o($V2,[2,3227]),o($V2,[2,3240]),o($V2,[2,3288],{446:427,497:1817,188:$VF3,328:$VG3}),o($V2,[2,3311]),o($VX9,[2,976],{609:1818,625:1819,325:$VY9}),o($Vf9,[2,1491]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1821},o($Vl8,[2,1487],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($V97,[2,944],{631:1822,634:1824,183:[1,1826],352:[1,1825],394:[1,1823]}),o($VZ9,[2,964],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),{398:$Vj9,1206:1827,1209:1651},o($VC4,[2,2918]),{398:$Vj9,1206:1828,1209:1651},o($VC4,[2,2915]),o($VC4,$Vm8,{1029:1386,463:1387,1031:1829,116:$Vn8,274:$Vo8}),{31:$VN6,66:$VO6,84:$VP6,88:$VQ6,94:$VR6,108:$VS6,123:$VT6,211:$VU6,240:$VV6,268:$VW6,270:$VX6,271:$VY6,277:$VZ6,867:1830,1034:$V_6},o($Vb7,[2,2961]),o($V_9,$VO8,{456:1538,1039:1831,59:$VP8,223:$VQ8}),o($V2,[2,2949]),o($V$9,[2,2955],{394:[1,1832]}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,395:$V34,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,554:796,658:810,661:1834,675:1833,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vx7,[2,1054]),o($Vx7,[2,1055]),o($Vx7,[2,1056]),o($Vx7,[2,1057]),{307:[1,1835]},o($VC4,$VD4,{158:167,24:171,691:562,692:563,442:565,725:614,661:781,504:789,676:790,678:791,679:792,680:794,687:795,554:796,743:804,745:805,747:806,748:807,749:808,658:810,689:811,518:812,762:813,763:814,764:815,468:820,472:821,693:822,523:823,793:826,533:1180,592:1836,664:1837,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,759:$Ve6,760:$Vf6,791:$Vg6}),{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,665:[1,1838],666:1136},{399:[1,1839]},{394:$Vz8,399:[1,1840]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1841,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($V2,[2,3040]),{343:[2,3052],385:[1,1843],1235:1842},{233:$Ve7,239:$Vf7,288:$Vg7,302:[1,1844],312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,666:1136},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1845,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vz7,[2,1409]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,209:$Vv8,236:$Vz5,281:$V24,283:$Vw8,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,461:1847,468:820,472:821,504:789,518:812,523:823,533:1846,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vz7,$Vm9,{458:1668,761:1848,208:$VG7,282:$VH7}),{325:$VY9,399:[2,1442],625:1850,771:1849},o($Vn9,[2,1437]),{291:[1,1851]},{327:[2,1421]},{53:$VS8,117:$VT8,124:$VV8,125:$VW8,168:$VY8,175:$VZ8,251:$V_8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,561:1852},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1853,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1854,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vy8,[2,1571]),o($Vy8,[2,1572]),o($VF7,[2,791]),o($VE7,[2,1507]),{394:$Vz8,399:[1,1855]},{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,399:[1,1856],666:1136},o($VE7,[2,1529]),{394:$Vz8,399:[1,1857]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1859,159:$VW2,160:$VX2,168:$Vy5,285:$VA5,311:$VE5,318:$VF5,321:$VG5,678:1860,757:1858,759:$Ve6,760:$Vf6},o($Vo9,[2,1590]),o($VA8,[2,1168],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,398:[1,1862],402:$VY2,522:1863,523:166,1231:1861},o($VZ3,[2,2992]),o($V0a,[2,1998],{915:1864,918:1865,169:[1,1866]}),o($Vp9,[2,1995]),{38:[1,1867]},{157:[1,1868]},{157:[1,1869]},o($V2,[2,2840]),o($V2,[2,2740]),o($V2,$VC8,{1167:1870,352:$VD8}),{105:$Vs6,131:$Vt6,309:$Vu6,818:884,1166:1871},o($V2,[2,2847],{394:$VO7}),{105:$Vs6,131:$Vt6,309:$Vu6,818:884,1166:1872},o($V2,[2,2852]),o($VE8,[2,1263]),o($VE8,[2,1314],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1874,713:1873},{199:[1,1875]},o($Vz4,[2,1333]),o($Vz4,[2,1334]),{399:[1,1876]},{193:$Vt3,262:$Vu3,342:$Vv3,447:1877},o($V2,[2,3104],{179:[1,1878]}),o($V2,[2,1679]),o($V2,[2,1685]),o($V68,$V07,{546:1015,542:1879,352:$V17}),o($V68,[2,748]),o($V$7,[2,1923]),o($V$7,[2,1930]),{348:[1,1880]},o($V1a,[2,674]),o($V1a,[2,675]),o($V1a,[2,676]),o($V1a,[2,677]),o($V2,[2,1687]),{81:[1,1881]},{190:[1,1882]},o($V2,[2,1735]),o($V2,[2,1946]),{394:[1,1884],399:[1,1883]},o($Vc8,[2,2319]),{207:$V14,281:$V24,304:$VD5,346:$VJ5,382:$Vb4,383:$Vc4,395:$V34,403:$V85,404:$V95,442:565,468:820,472:821,504:1886,521:1885,658:810,687:795,689:811,691:562,692:563,693:822},o($Vc8,[2,1934]),o($Vc8,[2,1939]),{394:[1,1888],399:[1,1887]},o($Vc8,[2,1789]),{387:[1,1889]},o($V38,[2,2339]),o($Vc8,[2,2072]),o($Vc8,[2,2073]),o($VL8,[2,2395]),o($VL8,[2,2396]),o($V68,[2,755]),o($VL8,$V48,{1050:1289,868:1890,352:$V58}),{122:$VA9,276:$VB9,466:1891},o($VC9,[2,592]),o($VC9,[2,593]),{291:[1,1892]},{291:[2,606]},{291:[2,607]},o($V2,[2,1768]),o($V2,[2,1863]),{398:$V$6,817:1893},o($V2,[2,1809]),o($VR8,[2,1891]),o($VE9,[2,2118]),o($VE9,[2,2123],{451:1328,981:1756,943:1763,979:1894,39:$Vh8,151:$VF9,152:$VG9,153:$VH9,154:$VI9,249:$VJ9,322:$VK9,323:$VL9,452:$Vi8}),o($V2a,[2,2124]),o($V2a,[2,2130]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1895,159:$VW2,160:$VX2},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1896,159:$VW2,160:$VX2},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,395:$V34,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,554:796,658:810,661:1897,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{207:$V14,281:$V24,382:$Vb4,383:$Vc4,395:$V34,442:565,658:1898,691:562,692:563},{323:[1,1899]},o($V2a,[2,2136]),o($V2a,[2,2137]),{155:[1,1900]},o($VN9,[2,811]),{382:[1,1901]},o($VN9,[2,812]),{382:[1,1902]},o($VN9,[2,813]),{53:$VS8,117:$VT8,118:$VU8,124:$VV8,125:$VW8,129:$VX8,168:$VY8,175:$VZ8,251:$V_8,285:$V$8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,321:$V79,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,389:[1,1904],561:1557,974:1903,983:1558,984:1559,985:1560,986:1561,987:1562,988:1563,989:1564,990:1565},{53:$VS8,117:$VT8,124:$VV8,125:$VW8,168:$VY8,175:$VZ8,251:$V_8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,389:[1,1906],561:1905},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,389:[1,1908],402:$VY2,523:1910,996:1907,998:1909},{53:$VS8,117:$VT8,118:$VU8,124:$VV8,125:$VW8,129:$VX8,168:$VY8,175:$VZ8,251:$V_8,285:$V$8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,321:$V79,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,389:[1,1912],561:1557,974:1913,983:1558,984:1559,985:1560,986:1561,987:1562,988:1563,989:1564,990:1565,1001:1911},{33:[1,1914]},{315:[2,2297]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1917,523:823,1022:1915,1024:1916},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,500:1918,518:1038,523:823,531:1037},o($Vc8,[2,1855]),{399:[1,1919]},o($Vc8,[2,2109]),{399:[2,2196]},{394:[1,1920],399:[2,2197]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1921},{398:$Vk4,513:1922},o($V2,[2,2054]),o($V2,[2,2066]),{18:[1,1924],46:[1,1923]},o($V2,[2,2074]),{382:[1,1925]},o($V3a,[2,2236],{954:1926,1009:1927,462:1928,89:[1,1930],269:[1,1931],328:[1,1929]}),o($VR9,[2,2092]),o($VR9,[2,2096]),{384:$Vx5,537:1932},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:1933,523:166},{167:$VK3,286:$VL3,436:1934},{398:$V$6,817:1935},o($Vj8,[2,2526]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:812,523:823,553:1936,554:967},o($Vc8,[2,2528]),{167:[1,1937]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:812,523:823,553:1939,554:967,1111:1938},o($Vy8,[2,2583]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:1618,159:$VW2,160:$VX2,1117:1940},o($Vc8,[2,2591]),{261:[1,1942],1066:1941},o([74,244],[2,2486]),{399:[1,1943]},{53:$VS8,117:$VT8,124:$VV8,125:$VW8,168:$VY8,175:$VZ8,251:$V_8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,561:1944},{399:[2,2485]},{74:$VX4,244:$V05,460:667,536:1945},o($V2,[2,2514],{394:[1,1946]}),o($Vo6,[2,2516]),{403:$V85,468:1947},{403:[2,2519]},{403:[2,2520]},{403:[2,2521]},o($V2,[2,3289]),o($V4a,[2,1001],{610:1948,626:1949,647:1950,648:1951,649:1952,170:[1,1953],176:[1,1954],653:$V5a}),o($VX9,[2,977]),{291:[1,1956]},{167:[1,1957]},o($V97,[2,939]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1958,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($V97,[2,945]),{173:[1,1959],191:[1,1960]},{111:[1,1961]},o($V2,[2,2947]),o($V2,[2,2948]),o($VC4,[2,2916]),o($V38,[2,2336]),o($V6a,[2,2375],{1040:1962,37:[1,1963]}),{398:$Vj9,1206:1964,1209:1651},{394:[1,1966],399:[1,1965]},o($Vc8,[2,1180]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1967,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{399:[1,1968]},{394:$Vz8,399:[1,1969]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1970,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vx7,[2,1067]),o($Vx7,[2,1068]),o([6,10,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,159,160,167,170,176,183,184,194,206,209,231,242,246,250,266,283,286,287,288,294,300,301,302,307,308,309,310,313,317,318,320,325,326,331,333,336,338,343,347,350,351,352,385,386,394,399,402,445,571,577,653,660,665,951,1184],[2,1070],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),{343:[1,1971]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1972,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vx7,[2,1614]),o($Vt8,[2,1635],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),{209:$Vv8,233:$Ve7,239:$Vf7,283:$Vw8,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,461:1973,666:1136},o($Vz7,[2,1407]),o($Vz7,[2,1410]),{399:[1,1974]},{250:$V7a,331:$V8a,336:[1,1978],399:[2,1447],775:1975,777:1976,778:1977,788:1979},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1180,554:796,658:810,661:781,664:1982,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{399:[1,1983]},{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,399:[1,1984],666:1136},{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,399:[1,1985],666:1136},o($VE7,[2,1509]),o($VE7,[2,1573]),o($VE7,[2,1530]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,167:$V9a,402:$VY2,523:1986,796:1987},{398:$VA7,677:1989},{398:$VA7,677:1990},{167:[1,1991]},o($VC4,$VD4,{725:614,592:1992}),{167:[2,3034]},o($V2,[2,2002],{916:1993,80:[1,1994]}),o($V0a,[2,1999]),{77:[1,1995]},o($Vp9,[2,1996]),o($V2,[2,2834]),o($V2,[2,2835]),o($V2,[2,2741]),o($V2,[2,2844],{394:$VO7}),o($V2,[2,2848],{394:$VO7}),{394:[1,1997],399:[1,1996]},o($Vc8,[2,1316]),{382:[1,1998]},o($VJ6,[2,1343],{252:[1,1999]}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:2000,523:166},{100:[1,2001]},o($V68,[2,747]),{387:$Vs9,388:$Vt9,389:$Vu9,390:$Vv9,505:2002},o([6,10,394,399],[2,2209]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:2003,523:166},o([6,10,74,116,120,167,202,212,244,274,275,286,335,543,951],[2,2318]),{398:$Vw9,520:2004},{394:[1,2006],399:[1,2005]},o($Vc8,[2,706]),o($V2,[2,1787]),{403:$V85,404:$V95,468:682,472:683,474:1734,864:2007},{403:$V85,404:$V95,468:682,472:683,474:2008},o($VL8,[2,2366]),{291:[1,2009]},{403:$V85,468:2010},o($V2,[2,1835]),o($V2a,[2,2125]),o($V2a,[2,2131]),o($V2a,[2,2132]),o($V2a,[2,2133]),o($V2a,[2,2134]),o($V2a,[2,2135]),o([6,10,28,34,39,62,104,151,152,153,154,249,322,323,394,398,399,452],[2,2232]),{394:[1,2012],399:[1,2011]},{399:[1,2013]},{389:[1,2014]},o($VM9,[2,2154]),{394:[1,2015]},o($VM9,[2,2158]),{389:[1,2016],394:[1,2017]},o($VM9,[2,2164]),o($Vaa,[2,2166]),{1000:[1,2018]},{389:[1,2019],394:[1,2020]},o($VM9,[2,2181]),o($Vaa,[2,2183]),o($Vba,[2,2288]),{394:[1,2022],399:[1,2021]},o($Vc8,[2,2302]),o($Vc8,$Vca,{644:2023,194:$Vda,287:$Vea,300:$Vfa,571:$Vga}),{394:$Vb8,399:[1,2028]},o($VQ9,[2,2104]),{172:[1,2029]},{180:$V18,825:2030},{399:[2,2228]},o($V2,[2,2068],{817:2031,398:$V$6}),o($V2,[2,2069]),o($V2,[2,2076]),o($Vha,[2,2252],{955:2032,1012:2033,258:[1,2034]}),o($V3a,[2,2237]),{291:[1,2035]},{291:[1,2036]},{291:[2,598]},{291:[2,599]},o($VR9,[2,2097]),o($VR9,[2,2098]),{14:2037,17:517,352:$Vk,572:31,577:$Vs},o($Vg9,[2,2403]),o($Vc8,$Vg8,{943:1327,451:1328,939:2038,39:$Vh8,452:$Vi8}),{403:$V85,404:$V95,468:682,472:683,474:2040,1102:2039},{394:[1,2042],399:[1,2041]},o($Vc8,[2,2571]),o($Vc8,[2,2586]),o($V2,[2,2426]),{387:[1,2043]},o($VS9,[2,2475]),o($VT9,[2,2479]),{237:[1,2045],278:[2,2489],1069:2044},{30:$VU9,60:$VV9,67:$VW9,1093:2046,1094:1813},o($Vo6,[2,2518]),o($Via,[2,1032],{611:2047,627:2048,242:[1,2050],320:[1,2049]}),o($V4a,[2,1002]),o($V4a,[2,1003]),o($V4a,[2,1004],{649:2051,653:$V5a}),o($V4a,[2,1006]),{291:[1,2052]},{291:[1,2053]},{291:[1,2054]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:2057,554:796,640:2055,642:2056,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{398:$Vu8,768:2058},o($VZ9,[2,965],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($V97,[2,946]),o($V97,[2,947]),{398:[1,2059]},o($Vja,[2,2380],{1041:2060,321:[1,2061]}),{69:[1,2062]},o($V$9,[2,2956]),o([6,10,350,394],[2,2957]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,395:$V34,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,554:796,658:810,661:2063,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vs8,[2,1058],{666:1136}),o($Vx7,[2,1065]),o($Vx7,[2,1066]),o($Vr8,[2,1069],{666:1136,233:$Ve7,239:$Vf7,312:$Vh7,316:$Vi7,319:$Vj7,332:$Vl7,334:$Vm7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),{1160:[1,2066],1184:[1,2067],1185:[1,2065],1236:2064},{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,343:[2,3053],385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,666:1136},o($Vz7,[2,1406]),o($Vz7,[2,1431]),{399:[2,1443]},{399:[2,1448]},{288:[1,2068],782:[1,2069]},o($Vka,[2,1465]),o($Vka,[2,1466]),o($Vla,[2,1475]),o($Vla,[2,1476]),o($Vn9,[2,1438],{394:$Vz8}),o($Vz7,[2,1495]),o($Vz7,[2,1513]),o($Vz7,[2,1557]),o($Vh6,[2,1579],{796:2070,167:$V9a}),o($Vh6,[2,1580]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:2071},o($Vma,[2,1395]),o($Vma,[2,1396]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:2072,159:$VW2,160:$VX2},{399:[1,2073]},o($V2,[2,1978]),o($V2,[2,2003]),o($V0a,[2,2000]),o($VE8,[2,1315]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:2074},{324:[1,2076],399:[2,1346],722:2075},{398:[1,2077]},o($V2,$V$3,{446:427,497:548,496:2078,188:$VF3,328:$VG3}),{398:[1,2079]},{207:$V14,281:$V24,304:$VD5,346:$VJ5,382:$Vb4,383:$Vc4,395:$V34,403:$V85,404:$V95,442:565,468:820,472:821,504:2080,658:810,687:795,689:811,691:562,692:563,693:822},{398:$Vk4,513:2081},o($Vc8,[2,2320]),o($Vc8,[2,705]),{207:$V14,281:$V24,304:$VD5,346:$VJ5,382:$Vb4,383:$Vc4,395:$V34,403:$V85,404:$V95,442:565,468:820,472:821,504:2082,658:810,687:795,689:811,691:562,692:563,693:822},o($Vc8,[2,1790]),o($Vc8,[2,1795]),{403:$V85,468:2083},o($V_9,[2,2370],{455:2084,55:[1,2085],220:[1,2086]}),o($VN9,[2,821]),{382:[1,2087]},o($VN9,[2,819]),o($VM9,[2,2153]),{53:$VS8,117:$VT8,118:$VU8,124:$VV8,125:$VW8,129:$VX8,168:$VY8,175:$VZ8,251:$V_8,285:$V$8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,321:$V79,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,561:1557,974:2088,983:1558,984:1559,985:1560,986:1561,987:1562,988:1563,989:1564,990:1565},o($VM9,[2,2163]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:1910,998:2089},{53:$VS8,117:$VT8,118:$VU8,124:$VV8,125:$VW8,129:$VX8,168:$VY8,175:$VZ8,251:$V_8,285:$V$8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,321:$V79,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,561:1557,974:2090,983:1558,984:1559,985:1560,986:1561,987:1562,988:1563,989:1564,990:1565},o($VM9,[2,2180]),{53:$VS8,117:$VT8,118:$VU8,124:$VV8,125:$VW8,129:$VX8,168:$VY8,175:$VZ8,251:$V_8,285:$V$8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,321:$V79,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,561:1557,974:2091,983:1558,984:1559,985:1560,986:1561,987:1562,988:1563,989:1564,990:1565},{315:[2,2300]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:1917,523:823,1024:2092},o($Vc8,[2,2308]),o($Vna,[2,993]),o($Vna,[2,994]),o($Vna,[2,995]),o($Vna,[2,996]),o($Vc8,[2,1856]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:2093},{399:[2,2198]},o($V2,[2,2067]),o($Vba,[2,2286],{956:2094,842:2095,36:$Vz3}),o($Vha,[2,2253]),{291:[1,2096]},{398:$V67,851:2097},{232:[1,2099],250:$V7a,331:$V8a,788:2098},o($V2,[2,2409]),o($Vc8,[2,2529]),o($Voa,[2,2558],{1103:2100,352:[1,2101]}),o([6,10,39,68,74,116,120,244,274,275,312,335,352,452],[2,2556]),{167:[2,2569]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:812,523:823,553:2102,554:967},{403:$V85,468:2103},{278:[1,2105],1070:2104},{387:[1,2106]},o($Vo6,[2,2517]),o($Vpa,[2,1042],{612:2107,659:2108,660:[1,2109]}),o($Via,[2,1033]),{160:[1,2111],207:$V14,281:$V24,382:$Vb4,383:$Vc4,395:$V34,442:565,658:2110,691:562,692:563},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:2112,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($V4a,[2,1005]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,516:2113,518:891,523:823},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,516:2114,518:891,523:823},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:2117,523:823,654:2115,656:2116},o([6,10,170,176,242,250,320,331,336,347,399,653,660,951,1184],[2,978],{394:[1,2118]}),o($Vqa,[2,981]),o($Vna,$Vca,{666:1136,644:2119,194:$Vda,233:$Ve7,239:$Vf7,287:$Vea,288:$Vg7,300:$Vfa,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,571:$Vga}),o($Vf9,[2,1492]),o($Vc8,$Vra,{158:167,24:171,518:812,523:823,554:967,636:2120,553:2121,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,398:$Vsa,402:$VY2}),o($Vta,$Vx9,{459:1742,1042:2123,72:$Vy9,243:$Vz9}),{71:[1,2124]},{122:[1,2125]},o($Vc8,[2,1181]),o($V$9,[2,3046]),{339:[1,2126]},o($V$9,[2,3056]),{348:[1,2127]},o($Vua,$Vva,{779:2128}),o($Vua,$Vva,{779:2129}),o($Vh6,[2,1578]),o($Vh6,[2,1591],{394:[1,2130]}),{324:[2,3022]},{167:[2,3033]},o($Vc8,[2,1317]),{399:[1,2131]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:2132,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{382:[1,2133]},o($V2,[2,3061]),{403:$V85,404:$V95,468:682,472:683,474:2134},o($V2,[2,667]),{52:[1,2135]},o($Vc8,[2,707]),o($Vta,[2,2386]),{291:[1,2136]},{291:[2,584]},{291:[2,585]},{399:[1,2137]},{389:[1,2138]},o($Vaa,[2,2167]),o($Vaa,$Vg8,{943:1327,451:1328,939:2139,39:$Vh8,452:$Vi8}),o($Vaa,[2,2184]),o($Vc8,[2,2303]),{180:$V18,825:2140},o($Vwa,[2,2312],{957:2141,1026:2142,113:[1,2143]}),o($Vba,[2,2287]),{398:$Vk4,513:2144},o($V3a,[2,2238]),{398:$Vk4,513:2145},{398:$Vk4,513:2146},o($Vxa,[2,2562],{1104:2147,68:[1,2148]}),{47:[1,2149]},o($Vc8,[2,2572]),o($V2,[2,2488]),{245:[1,2151],1071:2150},{387:[1,2152]},{403:$V85,468:2154,1090:2153},o($Vpa,[2,916]),o($Vpa,[2,1043]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:2155,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Via,[2,1034],{394:[1,2156]}),o($Via,[2,1036],{394:[1,2157]}),o($Via,[2,1038],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($V4a,[2,1012],{394:$VQ7}),o([6,10,242,320,347,399,653,660,951,1184],[2,1016],{394:$VQ7}),o($V4a,[2,1020],{394:[1,2158]}),o($Vya,[2,1023]),o($Vya,$Vca,{644:2159,194:$Vda,287:$Vea,300:$Vfa,571:$Vga}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:2057,554:796,642:2160,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vqa,[2,997],{645:2161,246:[1,2162]}),{394:$Vza,399:[1,2163]},o($Vc8,[2,954]),o($Vc8,$Vra,{158:167,24:171,518:812,523:823,554:967,553:2121,636:2165,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,398:$Vsa,402:$VY2}),o($VAa,[2,2389],{1043:2166,323:[1,2167]}),{122:[1,2168]},{291:[1,2169]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:812,523:823,553:966,554:967,1239:2170,1303:964,1305:965},{398:$Vj9,1206:2171,1209:1651},o($VBa,$VCa,{780:2172,789:2173,790:2174,143:$VDa,174:$VEa,295:$VFa,382:$VGa,782:$VHa}),o($VBa,$VCa,{789:2173,790:2174,780:2180,143:$VDa,174:$VEa,295:$VFa,382:$VGa,782:$VHa}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,523:2181},o($Vz4,[2,1332]),{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7,399:[2,1347],666:1136},{399:[1,2182]},{399:[1,2183]},{81:[1,2184]},{403:$V85,468:2185},o($VN9,[2,822]),o($VM9,[2,2157]),o($Vaa,[2,2173]),{399:[2,2199]},o([6,10,74,120,167,212,244,275,286,543,951],$VIa,{463:1387,958:2186,1028:2187,1029:2188,116:$VJa,274:$Vo8,335:$VKa}),o($Vwa,[2,2313]),{291:[1,2191]},o($Vha,[2,2254]),{398:[1,2193],1010:2192},{247:[1,2194]},o($VLa,[2,2564],{1105:2195,312:[1,2196]}),{398:$V$6,817:2197},{95:[1,2198]},o($VMa,[2,2496],{1072:2199,248:[1,2200]}),{387:[1,2201]},{403:$V85,468:2154,1090:2202},{278:[2,2490]},o([6,10,214,225,235,245,248,257,278],[2,2511]),o($Vpa,[2,1044],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),{207:$V14,281:$V24,382:$Vb4,383:$Vc4,395:$V34,442:565,658:2203,691:562,692:563},{160:[1,2204]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,518:2117,523:823,656:2205},o($Vya,[2,1029]),o($Vqa,[2,982]),o($Vqa,[2,988]),{226:[1,2206],241:[1,2207]},o($V97,[2,950]),o($Vc8,$Vra,{158:167,24:171,518:812,523:823,554:967,553:2121,636:2208,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,159:$VW2,160:$VX2,398:$Vsa,402:$VY2}),{394:$Vza,399:[1,2209]},o($VAa,[2,2360]),{48:[1,2210]},{291:[1,2211]},{403:$V85,468:2212},o($V$9,[2,3055],{394:$VV7}),o($V$9,[2,3057]),{385:$VNa,399:$VOa,781:2213},{329:[1,2215]},{335:[1,2216]},o($VPa,[2,1483]),o($VPa,[2,1484]),{335:[2,1472]},{335:[2,1473]},{335:[2,1474]},{385:$VNa,399:$VOa,781:2217},o($Vh6,[2,1592]),o($VJ6,[2,1344]),o($V2,[2,3105]),o($VQa,[2,2225],{1008:2218,97:[1,2219],98:[1,2220]}),o($V_9,[2,2371]),o([6,10,120,167,212,275,286,543,951],$V08,{460:667,536:1268,535:2221,74:$VX4,244:$V05}),o($VRa,[2,2322]),o($VRa,[2,2323]),{63:[1,2223],227:[1,2224],457:2222},o($Vg9,$Vh9,{291:[1,2225]}),{398:$Vk4,513:2226},o($V3a,[2,2239]),{328:$VSa,823:$VTa,1013:2227,1015:2228},{207:$V14,281:$V24,382:$Vb4,383:$Vc4,395:$V34,442:565,658:2231,691:562,692:563},o([6,10,39,74,120,244,275,452],$VIa,{463:1387,1028:2187,1029:2188,958:2232,116:$VJa,274:$Vo8,335:$VKa}),{193:[1,2233]},o($Vxa,[2,2563]),o($Voa,[2,2559]),o($VUa,[2,2499],{1073:2234,214:[1,2235]}),{387:[1,2236]},{403:$V85,468:2154,1090:2237},{245:[2,2492]},o($Via,[2,1035]),o($Via,[2,1037]),o($Vya,[2,1024]),o($Vqa,[2,998]),o($Vqa,[2,999]),o($Vc8,[2,955]),o($Vc8,[2,956]),{167:[1,2238]},{403:$V85,468:2239},o($V6a,[2,2376]),{399:[2,1449]},{143:$VDa,174:$VEa,295:$VFa,382:$VGa,782:$VHa,789:2241,790:2240},o($VBa,[2,1468]),o($VBa,[2,1469]),{399:[2,1450]},o($VQa,[2,2215]),o($VQa,[2,2226]),o($VQa,[2,2227]),o([6,10,167,212,286,543,951],$VVa,{959:2242,1051:2243,465:2244,120:$V_4,275:$V25}),{49:$Vi9,109:[1,2249],219:$V78,870:2247,1030:2245,1035:2246,1037:2248},o($VWa,[2,588]),o($VWa,[2,589]),{403:$V85,404:$V95,468:682,472:683,474:2250},{324:[1,2251]},{394:[1,2253],399:[1,2252]},o($Vc8,[2,2260]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,348:[1,2255],353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:2254,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{387:[1,2256]},o($V3a,[2,2240]),o([6,10,39,120,275,452],$V08,{460:667,536:1268,535:2257,74:$VX4,244:$V05}),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,402:$VY2,522:2258,523:166},o($VXa,[2,2502],{1074:2259,257:[1,2260]}),{387:[1,2261]},{403:$V85,468:2154,1090:2262},o([6,10,214,225,235,248,257],[2,2494]),{403:$V85,468:2263},o($Vja,[2,2381]),{335:[1,2264]},{306:[1,2265]},o($V68,$Vq9,{541:1713,540:2266,212:$V$4,543:$Vr9}),o($VYa,[2,2400]),{398:$V$6,817:2267},o($VRa,$Vm8,{1029:1386,463:1387,1031:2268,116:$Vn8,274:$Vo8}),o($VL8,[2,2352]),o($VL8,[2,2353]),o($VL8,[2,2356]),{403:$V85,404:$V95,468:682,472:683,474:2269},o($VRa,$V48,{1050:1289,868:2270,886:2271,352:$VZa}),{398:$VK8,843:2273},o($V3a,[2,2257]),{328:$VSa,823:$VTa,1015:2274},{233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:[1,2276],389:$Vs7,390:[1,2277],391:$Vu7,392:$Vv7,393:$Vw7,666:1136,1017:2275},{388:$V_a,390:$V$a,1017:2278},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:2281,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o([6,10,39,452],$VVa,{1051:2243,465:2244,959:2282,120:$V_4,275:$V25}),o($VLa,[2,2565]),o($V0b,[2,2505],{1075:2283,225:[1,2284]}),{387:[1,2285]},{403:$V85,468:2154,1090:2286},o($VMa,[2,2497]),o($VAa,[2,2390]),{399:[2,1478]},{399:[2,1479]},o($V1b,[2,2404],{960:2287,436:2288,167:$VK3,286:$VL3}),o($VYa,[2,2401]),o($VRa,[2,2324]),o($VL8,$V48,{1050:1289,868:2289,886:2290,352:$VZa}),o($VRa,[2,2325]),o($VRa,[2,2326]),{18:[1,2291],110:$VM8,272:$VN8},o($Vwa,[2,2314],{202:[1,2292]}),o($Vc8,[2,2261]),{348:[1,2293]},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,348:$V2b,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1396,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,348:$V3b,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:1398,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:2294,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($Vy8,$V2b),o($Vy8,$V3b),o($Vc8,[2,2270],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($V2,$Vg8,{943:1327,451:1328,939:2295,39:$Vh8,452:$Vi8}),o($V2,[2,2508],{1076:2296,235:[1,2297]}),{387:[1,2298]},{403:$V85,468:2154,1090:2299},o($VUa,[2,2500]),o($V1b,[2,2080]),o($VC4,[2,2408],{1053:2300}),o($VL8,[2,2357]),o($VL8,[2,2358]),o($VL8,[2,2397],{817:2301,398:$V$6}),o($Vwa,[2,2315]),o($Vc8,[2,2269],{1017:2302,388:$V_a,390:$V$a}),o($Vc8,[2,2268],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7}),o($V2,[2,2538]),o($V2,[2,2440]),{53:$VS8,117:$VT8,124:$VV8,125:$VW8,168:$VY8,175:$VZ8,251:$V_8,289:$V09,290:$V19,293:$V29,297:$V39,299:$V49,305:$V59,314:$V69,340:$V89,341:$V99,344:$Va9,345:$Vb9,349:$Vc9,561:2303},{403:$V85,468:2154,1090:2304},o($VXa,[2,2503]),{14:2305,17:517,352:$Vk,572:31,577:$Vs},o($VL8,[2,2398]),{24:171,25:$VR,26:$VS,27:$VT,28:$VU,29:$VV,30:$VW,31:$VX,32:$VY,33:$VZ,34:$V_,35:$V$,36:$V01,37:$V11,38:$V21,39:$V31,40:$V41,41:$V51,42:$V61,43:$V71,44:$V81,45:$V91,46:$Va1,47:$Vb1,48:$Vc1,49:$Vd1,50:$Ve1,51:$Vf1,52:$Vg1,53:$Vh1,54:$Vi1,55:$Vj1,56:$Vk1,57:$Vl1,58:$Vm1,59:$Vn1,60:$Vo1,61:$Vp1,62:$Vq1,63:$Vr1,64:$Vs1,65:$Vt1,66:$Vu1,67:$Vv1,68:$Vw1,69:$Vx1,70:$Vy1,71:$Vz1,72:$VA1,73:$VB1,74:$VC1,75:$VD1,76:$VE1,77:$VF1,78:$VG1,79:$VH1,80:$VI1,81:$VJ1,82:$VK1,83:$VL1,84:$VM1,85:$VN1,86:$VO1,87:$VP1,88:$VQ1,89:$VR1,90:$VS1,91:$VT1,92:$VU1,93:$VV1,94:$VW1,95:$VX1,96:$VY1,97:$VZ1,98:$V_1,99:$V$1,100:$V02,101:$V12,102:$V22,103:$V32,104:$V42,105:$V52,106:$V62,107:$V72,108:$V82,109:$V92,110:$Va2,111:$Vb2,112:$Vc2,113:$Vd2,114:$Ve2,115:$Vf2,116:$Vg2,117:$Vh2,118:$Vi2,119:$Vj2,120:$Vk2,121:$Vl2,122:$Vm2,123:$Vn2,124:$Vo2,125:$Vp2,126:$Vq2,127:$Vr2,128:$Vs2,129:$Vt2,130:$Vu2,131:$Vv2,132:$Vw2,133:$Vx2,134:$Vy2,135:$Vz2,136:$VA2,137:$VB2,138:$VC2,139:$VD2,140:$VE2,141:$VF2,142:$VG2,143:$VH2,144:$VI2,145:$VJ2,146:$VK2,147:$VL2,148:$VM2,149:$VN2,150:$VO2,151:$VP2,152:$VQ2,153:$VR2,154:$VS2,155:$VT2,156:$VU2,157:$VV2,158:167,159:$VW2,160:$VX2,168:$Vy5,207:$V14,236:$Vz5,281:$V24,285:$VA5,292:$VB5,303:$VC5,304:$VD5,311:$VE5,318:$VF5,321:$VG5,322:$VH5,323:$VI5,346:$VJ5,353:$VK5,354:$VL5,355:$VM5,356:$VN5,357:$VO5,358:$VP5,359:$VQ5,360:$VR5,361:$VS5,362:$VT5,363:$VU5,364:$VV5,365:$VW5,366:$VX5,367:$VY5,368:$VZ5,370:$V_5,371:$V$5,372:$V06,373:$V16,374:$V26,375:$V36,376:$V46,377:$V56,378:$V66,379:$V76,380:$V86,381:$V96,382:$Vb4,383:$Vc4,391:$Va6,395:$V34,396:$Vb6,397:$Vc6,398:$Vd6,402:$VY2,403:$V85,404:$V95,442:565,468:820,472:821,504:789,518:812,523:823,533:2306,554:796,658:810,661:781,676:790,678:791,679:792,680:794,687:795,689:811,691:562,692:563,693:822,743:804,745:805,747:806,748:807,749:808,759:$Ve6,760:$Vf6,762:813,763:814,764:815,791:$Vg6,793:826},o($V2,[2,2509]),o($V0b,[2,2506]),o($V1b,[2,2405]),o($Vc8,[2,2267],{666:1136,233:$Ve7,239:$Vf7,288:$Vg7,312:$Vh7,316:$Vi7,319:$Vj7,322:$Vk7,332:$Vl7,334:$Vm7,385:$Vo7,386:$Vp7,387:$Vq7,388:$Vr7,389:$Vs7,390:$Vt7,391:$Vu7,392:$Vv7,393:$Vw7})], -defaultActions: {145:[2,1],328:[2,2812],329:[2,2813],330:[2,2814],331:[2,2815],332:[2,2816],333:[2,2817],350:[2,2730],363:[2,3094],368:[2,3337],369:[2,3339],410:[2,1898],411:[2,1899],504:[2,580],505:[2,581],506:[2,583],507:[2,621],509:[2,634],512:[2,545],513:[2,546],514:[2,574],515:[2,575],532:[2,3004],533:[2,3005],578:[2,2818],585:[2,2892],622:[2,766],668:[2,604],669:[2,605],670:[2,1905],671:[2,1906],673:[2,594],674:[2,595],696:[2,1841],697:[2,1842],764:[2,633],797:[2,1399],798:[2,1400],799:[2,1401],800:[2,1402],801:[2,1403],802:[2,1404],803:[2,1405],829:[2,1534],830:[2,1535],831:[2,1536],832:[2,1537],833:[2,1538],834:[2,1539],835:[2,1540],836:[2,1541],837:[2,1542],838:[2,1543],839:[2,1544],840:[2,1545],841:[2,1546],842:[2,1547],843:[2,1548],844:[2,1549],845:[2,1550],846:[2,1551],847:[2,1552],848:[2,1553],849:[2,1554],850:[2,1555],851:[2,1556],904:[2,2893],948:[2,1356],949:[2,1358],950:[2,1360],951:[2,1362],952:[2,1364],953:[2,1366],954:[2,1368],955:[2,1370],957:[2,3081],958:[2,3082],961:[2,3096],966:[2,3351],1108:[2,561],1109:[2,562],1110:[2,563],1249:[2,3095],1372:[2,638],1430:[2,1420],1435:[2,1520],1436:[2,1521],1437:[2,1522],1438:[2,1523],1439:[2,1524],1440:[2,1525],1441:[2,1526],1442:[2,1527],1443:[2,1528],1495:[2,3073],1496:[2,3074],1521:[2,2234],1594:[2,1851],1596:[2,1852],1613:[2,2539],1673:[2,1421],1746:[2,606],1747:[2,607],1775:[2,2297],1781:[2,2196],1809:[2,2485],1814:[2,2519],1815:[2,2520],1816:[2,2521],1863:[2,3034],1922:[2,2228],1930:[2,598],1931:[2,599],1975:[2,1443],1976:[2,1448],2021:[2,2300],2030:[2,2198],2041:[2,2569],2072:[2,3022],2073:[2,3033],2085:[2,584],2086:[2,585],2140:[2,2199],2153:[2,2490],2177:[2,1472],2178:[2,1473],2179:[2,1474],2202:[2,2492],2213:[2,1449],2217:[2,1450],2264:[2,1478],2265:[2,1479]}, -parseError: function parseError (str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - var error = new Error(str); - error.hash = hash; - throw error; - } -}, -parse: function parse (input) { - var self = this, - stack = [0], - tstack = [], // token stack - vstack = [null], // semantic value stack - lstack = [], // location stack - table = this.table, - yytext = '', - yylineno = 0, - yyleng = 0, - recovering = 0, - TERROR = 2, - EOF = 1; - - var args = lstack.slice.call(arguments, 1); - - //this.reductionCount = this.shiftCount = 0; - - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - // copy state - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - - var ranges = lexer.options && lexer.options.ranges; - - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - - function popStack (n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - -_token_stack: - var lex = function () { - var token; - token = lexer.lex() || EOF; - // if token isn't its numeric value, convert - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - // retreive state number from top of stack - state = stack[stack.length - 1]; - - // use default actions if available - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - // read action for current state and first input - action = table[state] && table[state][symbol]; - } - -_handle_error: - // handle parse error - if (typeof action === 'undefined' || !action.length || !action[0]) { - var error_rule_depth; - var errStr = ''; - - // Return the rule stack depth where the nearest error rule can be found. - // Return FALSE when no error recovery rule was found. - function locateNearestErrorRecoveryRule(state) { - var stack_probe = stack.length - 1; - var depth = 0; - - // try to recover from error - for(;;) { - // check for error recovery rule in this state - if ((TERROR.toString()) in table[state]) { - return depth; - } - if (state === 0 || stack_probe < 2) { - return false; // No suitable error recovery rule available. - } - stack_probe -= 2; // popStack(1): [symbol, action] - state = stack[stack_probe]; - ++depth; - } - } - - if (!recovering) { - // first see if there's any chance at hitting an error recovery rule: - error_rule_depth = locateNearestErrorRecoveryRule(state); - - // Report error - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push("'"+this.terminals_[p]+"'"); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line '+(yylineno+1)+":\n"+lexer.showPosition()+"\nExpecting "+expected.join(', ') + ", got '" + (this.terminals_[symbol] || symbol)+ "'"; - } else { - errStr = 'Parse error on line '+(yylineno+1)+": Unexpected " + - (symbol == EOF ? "end of input" : - ("'"+(this.terminals_[symbol] || symbol)+"'")); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(), - expected: expected, - recoverable: (error_rule_depth !== false) - }); - } else if (preErrorSymbol !== EOF) { - error_rule_depth = locateNearestErrorRecoveryRule(state); - } - - // just recovered from another error - if (recovering == 3) { - if (symbol === EOF || preErrorSymbol === EOF) { - throw new Error(errStr || 'Parsing halted while starting to recover from another error.'); - } - - // discard current lookahead and grab another - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - symbol = lex(); - } - - // try to recover from error - if (error_rule_depth === false) { - throw new Error(errStr || 'Parsing halted. No suitable error recovery rule available.'); - } - popStack(error_rule_depth); - - preErrorSymbol = (symbol == TERROR ? null : symbol); // save the lookahead token - symbol = TERROR; // insert generic error symbol as new lookahead - state = stack[stack.length-1]; - action = table[state] && table[state][TERROR]; - recovering = 3; // allow 3 real symbols to be shifted before reporting a new error - } - - // this shouldn't happen, unless resolve defaults are off - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: '+state+', token: '+symbol); - } - - switch (action[0]) { - case 1: // shift - //this.shiftCount++; - - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); // push state - symbol = null; - if (!preErrorSymbol) { // normal execution/no error - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - // error just occurred, resume old lookahead f/ before error - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - - case 2: - // reduce - //this.reductionCount++; - - len = this.productions_[action[1]][1]; - - // perform semantic action - yyval.$ = vstack[vstack.length-len]; // default to $$ = $1 - // default location, uses first token for firsts, last for lasts - yyval._$ = { - first_line: lstack[lstack.length-(len||1)].first_line, - last_line: lstack[lstack.length-1].last_line, - first_column: lstack[lstack.length-(len||1)].first_column, - last_column: lstack[lstack.length-1].last_column - }; - if (ranges) { - yyval._$.range = [lstack[lstack.length-(len||1)].range[0], lstack[lstack.length-1].range[1]]; - } - r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args)); - - if (typeof r !== 'undefined') { - return r; - } - - // pop off stack - if (len) { - stack = stack.slice(0,-1*len*2); - vstack = vstack.slice(0, -1*len); - lstack = lstack.slice(0, -1*len); - } - - stack.push(this.productions_[action[1]][0]); // push nonterminal (reduce) - vstack.push(yyval.$); - lstack.push(yyval._$); - // goto new state = table[STATE][NONTERMINAL] - newState = table[stack[stack.length-2]][stack[stack.length-1]]; - stack.push(newState); - break; - - case 3: - // accept - return true; - } - - } - - return true; -}}; - -SqlParseSupport.initSyntaxParser(parser); -/* generated by jison-lex 0.3.4 */ -var lexer = (function(){ -var lexer = ({ - -EOF:1, - -parseError:function parseError(str, hash) { - if (this.yy.parser) { - this.yy.parser.parseError(str, hash); - } else { - throw new Error(str); - } - }, - -// resets the lexer, sets new input -setInput:function (input, yy) { - this.yy = yy || this.yy || {}; - this._input = input; - this._more = this._backtrack = this.done = false; - this.yylineno = this.yyleng = 0; - this.yytext = this.matched = this.match = ''; - this.conditionStack = ['INITIAL']; - this.yylloc = { - first_line: 1, - first_column: 0, - last_line: 1, - last_column: 0 - }; - if (this.options.ranges) { - this.yylloc.range = [0,0]; - } - this.offset = 0; - return this; - }, - -// consumes and returns one char from the input -input:function () { - var ch = this._input[0]; - this.yytext += ch; - this.yyleng++; - this.offset++; - this.match += ch; - this.matched += ch; - var lines = ch.match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno++; - this.yylloc.last_line++; - } else { - this.yylloc.last_column++; - } - if (this.options.ranges) { - this.yylloc.range[1]++; - } - - this._input = this._input.slice(1); - return ch; - }, - -// unshifts one char (or a string) into the input -unput:function (ch) { - var len = ch.length; - var lines = ch.split(/(?:\r\n?|\n)/g); - - this._input = ch + this._input; - this.yytext = this.yytext.substr(0, this.yytext.length - len); - //this.yyleng -= len; - this.offset -= len; - var oldLines = this.match.split(/(?:\r\n?|\n)/g); - this.match = this.match.substr(0, this.match.length - 1); - this.matched = this.matched.substr(0, this.matched.length - 1); - - if (lines.length - 1) { - this.yylineno -= lines.length - 1; - } - var r = this.yylloc.range; - - this.yylloc = { - first_line: this.yylloc.first_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.first_column, - last_column: lines ? - (lines.length === oldLines.length ? this.yylloc.first_column : 0) - + oldLines[oldLines.length - lines.length].length - lines[0].length : - this.yylloc.first_column - len - }; - - if (this.options.ranges) { - this.yylloc.range = [r[0], r[0] + this.yyleng - len]; - } - this.yyleng = this.yytext.length; - return this; - }, - -// When called from action, caches matched text and appends it on next action -more:function () { - this._more = true; - return this; - }, - -// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. -reject:function () { - if (this.options.backtrack_lexer) { - this._backtrack = true; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - - } - return this; - }, - -// retain first n characters of the match -less:function (n) { - this.unput(this.match.slice(n)); - }, - -// displays already matched input, i.e. for error messages -pastInput:function () { - var past = this.matched.substr(0, this.matched.length - this.match.length); - return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); - }, - -// displays upcoming input, i.e. for error messages -upcomingInput:function () { - var next = this.match; - if (next.length < 20) { - next += this._input.substr(0, 20-next.length); - } - return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); - }, - -// displays the character position where the lexing error occurred, i.e. for error messages -showPosition:function () { - var pre = this.pastInput(); - var c = new Array(pre.length + 1).join("-"); - return pre + this.upcomingInput() + "\n" + c + "^"; - }, - -// test the lexed token: return FALSE when not a match, otherwise return token -test_match:function(match, indexed_rule) { - var token, - lines, - backup; - - if (this.options.backtrack_lexer) { - // save context - backup = { - yylineno: this.yylineno, - yylloc: { - first_line: this.yylloc.first_line, - last_line: this.last_line, - first_column: this.yylloc.first_column, - last_column: this.yylloc.last_column - }, - yytext: this.yytext, - match: this.match, - matches: this.matches, - matched: this.matched, - yyleng: this.yyleng, - offset: this.offset, - _more: this._more, - _input: this._input, - yy: this.yy, - conditionStack: this.conditionStack.slice(0), - done: this.done - }; - if (this.options.ranges) { - backup.yylloc.range = this.yylloc.range.slice(0); - } - } - - lines = match[0].match(/(?:\r\n?|\n).*/g); - if (lines) { - this.yylineno += lines.length; - } - this.yylloc = { - first_line: this.yylloc.last_line, - last_line: this.yylineno + 1, - first_column: this.yylloc.last_column, - last_column: lines ? - lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : - this.yylloc.last_column + match[0].length - }; - this.yytext += match[0]; - this.match += match[0]; - this.matches = match; - this.yyleng = this.yytext.length; - if (this.options.ranges) { - this.yylloc.range = [this.offset, this.offset += this.yyleng]; - } - this._more = false; - this._backtrack = false; - this._input = this._input.slice(match[0].length); - this.matched += match[0]; - token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); - if (this.done && this._input) { - this.done = false; - } - if (token) { - return token; - } else if (this._backtrack) { - // recover context - for (var k in backup) { - this[k] = backup[k]; - } - return false; // rule action called reject() implying the next rule should be tested instead. - } - return false; - }, - -// return next match in input -next:function () { - if (this.done) { - return this.EOF; - } - if (!this._input) { - this.done = true; - } - - var token, - match, - tempMatch, - index; - if (!this._more) { - this.yytext = ''; - this.match = ''; - } - var rules = this._currentRules(); - for (var i = 0; i < rules.length; i++) { - tempMatch = this._input.match(this.rules[rules[i]]); - if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { - match = tempMatch; - index = i; - if (this.options.backtrack_lexer) { - token = this.test_match(tempMatch, rules[i]); - if (token !== false) { - return token; - } else if (this._backtrack) { - match = false; - continue; // rule action called reject() implying a rule MISmatch. - } else { - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - } else if (!this.options.flex) { - break; - } - } - } - if (match) { - token = this.test_match(match, rules[index]); - if (token !== false) { - return token; - } - // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) - return false; - } - if (this._input === "") { - return this.EOF; - } else { - return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { - text: "", - token: null, - line: this.yylineno - }); - } - }, - -// return next match that has a token -lex:function lex () { - var r = this.next(); - if (r) { - return r; - } else { - return this.lex(); - } - }, - -// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin (condition) { - this.conditionStack.push(condition); - }, - -// pop the previously active lexer condition state off the condition stack -popState:function popState () { - var n = this.conditionStack.length - 1; - if (n > 0) { - return this.conditionStack.pop(); - } else { - return this.conditionStack[0]; - } - }, - -// produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules () { - if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { - return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; - } else { - return this.conditions["INITIAL"].rules; - } - }, - -// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState (n) { - n = this.conditionStack.length - 1 - Math.abs(n || 0); - if (n >= 0) { - return this.conditionStack[n]; - } else { - return "INITIAL"; - } - }, - -// alias for begin(condition) -pushState:function pushState (condition) { - this.begin(condition); - }, - -// return the number of states currently on the stack -stateStackSize:function stateStackSize() { - return this.conditionStack.length; - }, -options: {"case-insensitive":true,"flex":true}, -performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { -var YYSTATE=YY_START; -switch($avoiding_name_collisions) { -case 0: /* skip whitespace */ -break; -case 1: /* skip comments */ -break; -case 2: /* skip comments */ -break; -case 3: parser.yy.partialCursor = false; parser.yy.cursorFound = yy_.yylloc; return 18; -break; -case 4: parser.yy.partialCursor = true; parser.yy.cursorFound = yy_.yylloc; return 441; -break; -case 5: return 166; -break; -case 6: return 285; -break; -case 7: return 167; -break; -case 8: return 163; -break; -case 9: return 168; -break; -case 10: return 169; -break; -case 11: return 850; -break; -case 12: return 171; -break; -case 13: return 172; -break; -case 14: parser.determineCase(yy_.yytext); return 439; -break; -case 15: return 173; -break; -case 16: return 174; -break; -case 17: return 175; -break; -case 18: parser.determineCase(yy_.yytext); return 1160; -break; -case 19: parser.determineCase(yy_.yytext); return 570; -break; -case 20: return 164; -break; -case 21: return 178; -break; -case 22: return 179; -break; -case 23: return 180; -break; -case 24: return 181; -break; -case 25: return 182; -break; -case 26: return 183; -break; -case 27: parser.determineCase(yy_.yytext); return 1247; -break; -case 28: parser.determineCase(yy_.yytext); return 1184; -break; -case 29: return 184; -break; -case 30: return 185; -break; -case 31: return 187; -break; -case 32: return 321; -break; -case 33: return 198; -break; -case 34: return 199; -break; -case 35: return 200; -break; -case 36: return 189; -break; -case 37: return 190; -break; -case 38: return 1187; -break; -case 39: return 191; -break; -case 40: return 193; -break; -case 41: return 124; -break; -case 42: return 131; -break; -case 43: return 204; -break; -case 44: return 205; -break; -case 45: parser.determineCase(yy_.yytext); return 25; -break; -case 46: return 26; -break; -case 47: return 27; -break; -case 48: return 28; -break; -case 49: parser.determineCase(yy_.yytext); return 29; -break; -case 50: return 30; -break; -case 51: return 194; -break; -case 52: return 31; -break; -case 53: return 32; -break; -case 54: return 33; -break; -case 55: return 34; -break; -case 56: return 35; -break; -case 57: return 170; -break; -case 58: return 36; -break; -case 59: return 37; -break; -case 60: return 38; -break; -case 61: return 39; -break; -case 62: return 40; -break; -case 63: return 41; -break; -case 64: return 42; -break; -case 65: return 43; -break; -case 66: return 44; -break; -case 67: return 45; -break; -case 68: return 134; -break; -case 69: return 369; -break; -case 70: return 46; -break; -case 71: return 47; -break; -case 72: return 48; -break; -case 73: return 49; -break; -case 74: return 50; -break; -case 75: return 571; -break; -case 76: this.begin('hdfs'); return 51; -break; -case 77: return 52; -break; -case 78: return 176; -break; -case 79: return 53; -break; -case 80: return 55; -break; -case 81: return 54; -break; -case 82: return 56; -break; -case 83: parser.determineCase(yy_.yytext); return 57; -break; -case 84: parser.determineCase(yy_.yytext); return 58; -break; -case 85: return 59; -break; -case 86: return 60; -break; -case 87: return 61; -break; -case 88: return 62; -break; -case 89: return 63; -break; -case 90: return 195; -break; -case 91: return 181; -break; -case 92: return 64; -break; -case 93: return 135; -break; -case 94: return 68; -break; -case 95: return 196; -break; -case 96: return 197; -break; -case 97: this.begin('hdfs'); return 65; -break; -case 98: return 66; -break; -case 99: return 69; -break; -case 100: return 67; -break; -case 101: return 70; -break; -case 102: return 71; -break; -case 103: return 72; -break; -case 104: parser.determineCase(yy_.yytext); return 73; -break; -case 105: this.begin('hdfs'); return 74; -break; -case 106: return 186; -break; -case 107: return 75; -break; -case 108: return 76; -break; -case 109: return 78; -break; -case 110: return 77; -break; -case 111: return 136; -break; -case 112: return 137; -break; -case 113: return 79; -break; -case 114: return 98; -break; -case 115: return 80; -break; -case 116: return 81; -break; -case 117: return 82; -break; -case 118: return 83; -break; -case 119: return 84; -break; -case 120: return 85; -break; -case 121: return 86; -break; -case 122: this.begin('hdfs'); return 1201; -break; -case 123: return 87; -break; -case 124: return 88; -break; -case 125: return 89; -break; -case 126: return 90; -break; -case 127: return 91; -break; -case 128: return 92; -break; -case 129: return 93; -break; -case 130: return 138; -break; -case 131: return 94; -break; -case 132: return 95; -break; -case 133: parser.determineCase(yy_.yytext); return 96; -break; -case 134: return 97; -break; -case 135: return 99; -break; -case 136: return 100; -break; -case 137: return 101; -break; -case 138: return 102; -break; -case 139: return 103; -break; -case 140: return 104; -break; -case 141: return 105; -break; -case 142: return 106; -break; -case 143: return 139; -break; -case 144: return 201; -break; -case 145: return 107; -break; -case 146: return 108; -break; -case 147: return 109; -break; -case 148: return 110; -break; -case 149: return 111; -break; -case 150: parser.determineCase(yy_.yytext); return 112; -break; -case 151: return 192; -break; -case 152: return 113; -break; -case 153: return 847; -break; -case 154: return 653; -break; -case 155: return 114; -break; -case 156: return 115; -break; -case 157: return 116; -break; -case 158: return 202; -break; -case 159: return 117; -break; -case 160: return 118; -break; -case 161: return 119; -break; -case 162: return 203; -break; -case 163: return 120; -break; -case 164: return 121; -break; -case 165: return 122; -break; -case 166: return 123; -break; -case 167: return 125; -break; -case 168: return 126; -break; -case 169: return 127; -break; -case 170: return 128; -break; -case 171: return 129; -break; -case 172: parser.determineCase(yy_.yytext); return 130; -break; -case 173: return 132; -break; -case 174: return 133; -break; -case 175: return 140; -break; -case 176: return 206; -break; -case 177: return 141; -break; -case 178: return 207; -break; -case 179: return 208; -break; -case 180: return 209; -break; -case 181: return 899; -break; -case 182: return 210; -break; -case 183: return 211; -break; -case 184: return 212; -break; -case 185: return 213; -break; -case 186: return 897; -break; -case 187: return 214; -break; -case 188: return 215; -break; -case 189: return 889; -break; -case 190: parser.determineCase(yy_.yytext); return 452; -break; -case 191: parser.determineCase(yy_.yytext); return 924; -break; -case 192: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('CREATE', yy_.yylloc, yy.lexer.upcomingInput()); return 440; -break; -case 193: return 216; -break; -case 194: return 217; -break; -case 195: return 218; -break; -case 196: return 219; -break; -case 197: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DESCRIBE', yy_.yylloc); return 569; -break; -case 198: return 220; -break; -case 199: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('EXPLAIN', yy_.yylloc); return 162; -break; -case 200: return 222; -break; -case 201: return 221; -break; -case 202: return 223; -break; -case 203: return 898; -break; -case 204: return 224; -break; -case 205: return 225; -break; -case 206: return 226; -break; -case 207: return 227; -break; -case 208: return 228; -break; -case 209: return 229; -break; -case 210: return 230; -break; -case 211: return 231; -break; -case 212: return 232; -break; -case 213: return 233; -break; -case 214: return 234; -break; -case 215: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INSERT', yy_.yylloc); return 1186; -break; -case 216: return 236; -break; -case 217: return 235; -break; -case 218: return 237; -break; -case 219: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('INVALIDATE', yy_.yylloc, yy.lexer.upcomingInput()); return 922; -break; -case 220: this.begin('hdfs'); return 238; -break; -case 221: return 239; -break; -case 222: return 155; -break; -case 223: return 240; -break; -case 224: return 241; -break; -case 225: this.begin('hdfs'); return 969; -break; -case 226: return 242; -break; -case 227: return 243; -break; -case 228: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('LOAD', yy_.yylloc, yy.lexer.upcomingInput()); return 1246; -break; -case 229: this.begin('hdfs'); return 244; -break; -case 230: return 245; -break; -case 231: return 923; -break; -case 232: return 246; -break; -case 233: return 660; -break; -case 234: return 1034; -break; -case 235: return 1224; -break; -case 236: return 268; -break; -case 237: return 269; -break; -case 238: return 247; -break; -case 239: return 248; -break; -case 240: return 249; -break; -case 241: return 270; -break; -case 242: return 250; -break; -case 243: return 251; -break; -case 244: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REFRESH', yy_.yylloc); return 921; -break; -case 245: return 901; -break; -case 246: return 252; -break; -case 247: return 759; -break; -case 248: return 253; -break; -case 249: return 254; -break; -case 250: return 255; -break; -case 251: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('REVOKE', yy_.yylloc); return 1189; -break; -case 252: return 271; -break; -case 253: return 272; -break; -case 254: return 256; -break; -case 255: return 257; -break; -case 256: return 149; -break; -case 257: return 258; -break; -case 258: return 259; -break; -case 259: return 274; -break; -case 260: return 260; -break; -case 261: return 261; -break; -case 262: return 262; -break; -case 263: return 263; -break; -case 264: return 264; -break; -case 265: return 275; -break; -case 266: return 276; -break; -case 267: return 277; -break; -case 268: return 543; -break; -case 269: return 278; -break; -case 270: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('UPSERT', yy_.yylloc); return 1221; -break; -case 271: return 148; -break; -case 272: return 265; -break; -case 273: return 823; -break; -case 274: return 142; -break; -case 275: return 266; -break; -case 276: return 285; -break; -case 277: return 151; -break; -case 278: return 152; -break; -case 279: return 143; -break; -case 280: return 153; -break; -case 281: return 154; -break; -case 282: return 144; -break; -case 283: return 321; -break; -case 284: return 145; -break; -case 285: return 146; -break; -case 286: return 147; -break; -case 287: return 118; -break; -case 288: return 150; -break; -case 289: return 279; -break; -case 290: return 267; -break; -case 291: return 273; -break; -case 292: return 280; -break; -case 293: return 281; -break; -case 294: return 282; -break; -case 295: return 283; -break; -case 296: this.popState(); return 665; -break; -case 297: return 951; -break; -case 298: return 284; -break; -case 299: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('ALTER', yy_.yylloc, yy.lexer.upcomingInput()); return 816; -break; -case 300: return 385; -break; -case 301: return 286; -break; -case 302: return 287; -break; -case 303: this.begin('between'); return 288; -break; -case 304: return 289; -break; -case 305: return 290; -break; -case 306: return 291; -break; -case 307: return 292; -break; -case 308: return 293; -break; -case 309: parser.determineCase(yy_.yytext); return 438; -break; -case 310: return 294; -break; -case 311: return 295; -break; -case 312: return 296; -break; -case 313: return 297; -break; -case 314: return 298; -break; -case 315: return 393; -break; -case 316: return 299; -break; -case 317: return 300; -break; -case 318: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('DROP', yy_.yylloc, yy.lexer.upcomingInput()); return 859; -break; -case 319: return 301; -break; -case 320: return 302; -break; -case 321: parser.yy.correlatedSubQuery = true; return 303; -break; -case 322: return 304; -break; -case 323: return 305; -break; -case 324: return 306; -break; -case 325: parser.determineCase(yy_.yytext); return 307; -break; -case 326: return 308; -break; -case 327: return 309; -break; -case 328: return 310; -break; -case 329: return 311; -break; -case 330: return 312; -break; -case 331: return 313; -break; -case 332: return 1207; -break; -case 333: return 314; -break; -case 334: return 315; -break; -case 335: return 316; -break; -case 336: return 317; -break; -case 337: return 318; -break; -case 338: return 319; -break; -case 339: return 320; -break; -case 340: return 322; -break; -case 341: return 323; -break; -case 342: return 324; -break; -case 343: return 157; -break; -case 344: return 386; -break; -case 345: return 325; -break; -case 346: return 326; -break; -case 347: return 328; -break; -case 348: return 329; -break; -case 349: return 330; -break; -case 350: return 331; -break; -case 351: return 332; -break; -case 352: return 333; -break; -case 353: return 334; -break; -case 354: return 335; -break; -case 355: return 336; -break; -case 356: return 337; -break; -case 357: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SELECT', yy_.yylloc); return 577; -break; -case 358: return 338; -break; -case 359: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SET', yy_.yylloc); return 339; -break; -case 360: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('SHOW', yy_.yylloc); return 1273; -break; -case 361: return 340; -break; -case 362: return 341; -break; -case 363: return 342; -break; -case 364: return 343; -break; -case 365: return 344; -break; -case 366: return 345; -break; -case 367: return 827; -break; -case 368: return 346; -break; -case 369: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('TRUNCATE', yy_.yylloc, yy.lexer.upcomingInput()); return 760; -break; -case 370: return 782; -break; -case 371: parser.determineCase(yy_.yytext); return 1185; -break; -case 372: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('USE', yy_.yylloc); return 1309; -break; -case 373: return 347; -break; -case 374: return 1095; -break; -case 375: return 349; -break; -case 376: return 348; -break; -case 377: return 350; -break; -case 378: return 351; -break; -case 379: parser.determineCase(yy_.yytext); parser.addStatementTypeLocation('WITH', yy_.yylloc); return 352; -break; -case 380: return 327; -break; -case 381: return 156; -break; -case 382: yy.lexer.unput('('); yy_.yytext = 'avg'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 353; -break; -case 383: yy.lexer.unput('('); yy_.yytext = 'cast'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 354; -break; -case 384: yy.lexer.unput('('); yy_.yytext = 'count'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 355; -break; -case 385: yy.lexer.unput('('); yy_.yytext = 'max'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 356; -break; -case 386: yy.lexer.unput('('); yy_.yytext = 'min'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 357; -break; -case 387: yy.lexer.unput('('); yy_.yytext = 'stddev_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 358; -break; -case 388: yy.lexer.unput('('); yy_.yytext = 'stddev_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 359; -break; -case 389: yy.lexer.unput('('); yy_.yytext = 'sum'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 360; -break; -case 390: yy.lexer.unput('('); yy_.yytext = 'variance'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 361; -break; -case 391: yy.lexer.unput('('); yy_.yytext = 'var_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 362; -break; -case 392: yy.lexer.unput('('); yy_.yytext = 'var_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 363; -break; -case 393: yy.lexer.unput('('); yy_.yytext = 'collect_set'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 364; -break; -case 394: yy.lexer.unput('('); yy_.yytext = 'collect_list'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 365; -break; -case 395: yy.lexer.unput('('); yy_.yytext = 'corr'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 366; -break; -case 396: yy.lexer.unput('('); yy_.yytext = 'covar_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 367; -break; -case 397: yy.lexer.unput('('); yy_.yytext = 'covar_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 368; -break; -case 398: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 791; -break; -case 399: yy.lexer.unput('('); yy_.yytext = 'histogram_numeric'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 370; -break; -case 400: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 371; -break; -case 401: yy.lexer.unput('('); yy_.yytext = 'percentile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 372; -break; -case 402: yy.lexer.unput('('); yy_.yytext = 'percentile_approx'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 373; -break; -case 403: yy.lexer.unput('('); yy_.yytext = 'appx_median'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 374; -break; -case 404: yy.lexer.unput('('); yy_.yytext = 'extract'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 375; -break; -case 405: yy.lexer.unput('('); yy_.yytext = 'group_concat'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 376; -break; -case 406: yy.lexer.unput('('); yy_.yytext = 'ndv'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 377; -break; -case 407: yy.lexer.unput('('); yy_.yytext = 'stddev'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 378; -break; -case 408: yy.lexer.unput('('); yy_.yytext = 'variance_pop'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 379; -break; -case 409: yy.lexer.unput('('); yy_.yytext = 'variance_samp'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 380; -break; -case 410: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 411: yy.lexer.unput('('); yy_.yytext = 'dense_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 412: yy.lexer.unput('('); yy_.yytext = 'first_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 413: yy.lexer.unput('('); yy_.yytext = 'lag'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 414: yy.lexer.unput('('); yy_.yytext = 'last_value'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 415: yy.lexer.unput('('); yy_.yytext = 'lead'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 416: yy.lexer.unput('('); yy_.yytext = 'rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 417: yy.lexer.unput('('); yy_.yytext = 'row_number'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 418: yy.lexer.unput('('); yy_.yytext = 'cume_dist'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 419: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 420: yy.lexer.unput('('); yy_.yytext = 'ntile'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 421: yy.lexer.unput('('); yy_.yytext = 'percent_rank'; parser.addFunctionLocation(yy_.yylloc, yy_.yytext); return 381; -break; -case 422: yy.lexer.unput('('); yy_.yytext = 'system'; return 724; -break; -case 423: return 382; -break; -case 424: return 382; -break; -case 425: return 383; -break; -case 426: return 159; -break; -case 427: parser.yy.cursorFound = true; return 18; -break; -case 428: parser.yy.cursorFound = true; return 441; -break; -case 429: return 384; -break; -case 430: parser.addFileLocation(yy_.yylloc, yy_.yytext); return 786; -break; -case 431: this.popState(); return 787; -break; -case 432: return 6; -break; -case 433: return 385; -break; -case 434: return 386; -break; -case 435: return 387; -break; -case 436: return 388; -break; -case 437: return 389; -break; -case 438: return 390; -break; -case 439: return 390; -break; -case 440: return 390; -break; -case 441: return 390; -break; -case 442: return 390; -break; -case 443: return 391; -break; -case 444: return 392; -break; -case 445: return 393; -break; -case 446: return 393; -break; -case 447: return 393; -break; -case 448: return 393; -break; -case 449: return 393; -break; -case 450: return 393; -break; -case 451: return 394; -break; -case 452: return 395; -break; -case 453: return 1000; -break; -case 454: return 10; -break; -case 455: return 396; -break; -case 456: return 397; -break; -case 457: return 398; -break; -case 458: return 399; -break; -case 459: return 400; -break; -case 460: return 401; -break; -case 461: return 160; -break; -case 462: this.begin('backtickedValue'); return 402; -break; -case 463: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '`')) { - return 471; - } - return 469; - -break; -case 464: this.popState(); return 402; -break; -case 465: this.begin('singleQuotedValue'); return 403; -break; -case 466: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '\'')) { - return 471; - } - return 469; - -break; -case 467: this.popState(); return 403; -break; -case 468: this.begin('doubleQuotedValue'); return 404; -break; -case 469: - if (parser.handleQuotedValueWithCursor(this, yy_.yytext, yy_.yylloc, '"')) { - return 471; - } - return 469; - -break; -case 470: this.popState(); return 404; -break; -case 471: return 6; -break; -case 472: /* To prevent console logging of unknown chars */ -break; -case 473: -break; -case 474: -break; -case 475: -break; -case 476: -break; -case 477: -break; -case 478: -break; -case 479: -break; -case 480:console.log(yy_.yytext); -break; -} -}, -rules: [/^(?:\s)/i,/^(?:--.*)/i,/^(?:[\/][*][^*]*[*]+([^\/*][^*]*[*]+)*[\/])/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:ALL)/i,/^(?:ARRAY)/i,/^(?:AS)/i,/^(?:AUTHORIZATION)/i,/^(?:BINARY)/i,/^(?:CACHE)/i,/^(?:COLUMN)/i,/^(?:CONF)/i,/^(?:CONSTRAINT)/i,/^(?:CREATE)/i,/^(?:CUBE)/i,/^(?:CURRENT)/i,/^(?:DATE)/i,/^(?:DELETE)/i,/^(?:DESCRIBE)/i,/^(?:EXTENDED)/i,/^(?:EXTERNAL)/i,/^(?:FOR)/i,/^(?:FOREIGN)/i,/^(?:FUNCTION)/i,/^(?:GRANT)/i,/^(?:GROUPING)/i,/^(?:IMPORT)/i,/^(?:INSERT)/i,/^(?:LATERAL)/i,/^(?:LOCAL)/i,/^(?:MACRO)/i,/^(?:MAP)/i,/^(?:NONE)/i,/^(?:OF)/i,/^(?:OUT)/i,/^(?:PRIMARY)/i,/^(?:REFERENCES)/i,/^(?:REVOKE)/i,/^(?:ROLLUP)/i,/^(?:TABLE)/i,/^(?:TIMESTAMP)/i,/^(?:USER)/i,/^(?:USING)/i,/^(?:VIEWS)/i,/^(?:ABORT)/i,/^(?:ADD)/i,/^(?:ADMIN)/i,/^(?:AFTER)/i,/^(?:ANALYZE)/i,/^(?:ARCHIVE)/i,/^(?:ASC)/i,/^(?:AVRO)/i,/^(?:BUCKET)/i,/^(?:BUCKETS)/i,/^(?:CASCADE)/i,/^(?:CHANGE)/i,/^(?:CLUSTER)/i,/^(?:CLUSTERED)/i,/^(?:COLLECTION)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMPACT)/i,/^(?:COMPACTIONS)/i,/^(?:COMPUTE)/i,/^(?:CONCATENATE)/i,/^(?:DATA)/i,/^(?:DATABASES)/i,/^(?:DAY)/i,/^(?:DAYOFWEEK)/i,/^(?:DBPROPERTIES)/i,/^(?:DEFERRED)/i,/^(?:DEFINED)/i,/^(?:DELIMITED)/i,/^(?:DEPENDENCY)/i,/^(?:DESC)/i,/^(?:DIRECTORY)/i,/^(?:DISABLE)/i,/^(?:DISTRIBUTE)/i,/^(?:DOUBLE\s+PRECISION)/i,/^(?:ESCAPED)/i,/^(?:ENABLE)/i,/^(?:EXCHANGE)/i,/^(?:EXPLAIN)/i,/^(?:EXPORT)/i,/^(?:FIELDS)/i,/^(?:FILE)/i,/^(?:FILEFORMAT)/i,/^(?:FIRST)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FUNCTION)/i,/^(?:FUNCTIONS)/i,/^(?:HOUR)/i,/^(?:IDXPROPERTIES)/i,/^(?:INDEX)/i,/^(?:INDEXES)/i,/^(?:INPATH)/i,/^(?:INPUTFORMAT)/i,/^(?:ITEMS)/i,/^(?:JAR)/i,/^(?:KEY)/i,/^(?:KEYS)/i,/^(?:LINES)/i,/^(?:LOAD)/i,/^(?:LOCATION)/i,/^(?:LOCK)/i,/^(?:LOCKS)/i,/^(?:MATCHED)/i,/^(?:MERGE)/i,/^(?:METADATA)/i,/^(?:MINUTE)/i,/^(?:MONTH)/i,/^(?:MSCK)/i,/^(?:NORELY)/i,/^(?:NOSCAN)/i,/^(?:NOVALIDATE)/i,/^(?:NO_DROP)/i,/^(?:OFFLINE)/i,/^(?:ORC)/i,/^(?:OUTPUTFORMAT)/i,/^(?:OVERWRITE)/i,/^(?:OVERWRITE\s+DIRECTORY)/i,/^(?:OWNER)/i,/^(?:PARQUET)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PERCENT)/i,/^(?:PRIVILEGES)/i,/^(?:PURGE)/i,/^(?:QUARTER)/i,/^(?:RCFILE)/i,/^(?:REBUILD)/i,/^(?:RELOAD)/i,/^(?:RELY)/i,/^(?:REPAIR)/i,/^(?:REPLICATION)/i,/^(?:RECOVER)/i,/^(?:RENAME)/i,/^(?:REPLACE)/i,/^(?:RESTRICT)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:SECOND)/i,/^(?:SCHEMA)/i,/^(?:SCHEMAS)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SETS)/i,/^(?:SHOW)/i,/^(?:SHOW_DATABASE)/i,/^(?:SKEWED)/i,/^(?:SKEWED LOCATION)/i,/^(?:SORT)/i,/^(?:SORTED)/i,/^(?:STATISTICS)/i,/^(?:STORED)/i,/^(?:STORED\s+AS\s+DIRECTORIES)/i,/^(?:STRING)/i,/^(?:STRUCT)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TEMPORARY)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:TINYINT)/i,/^(?:TOUCH)/i,/^(?:TRANSACTIONS)/i,/^(?:UNARCHIVE)/i,/^(?:UNIONTYPE)/i,/^(?:USE)/i,/^(?:VIEW)/i,/^(?:WAIT)/i,/^(?:WEEK)/i,/^(?:WINDOW)/i,/^(?:YEAR)/i,/^(?:\.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:ADD)/i,/^(?:AGGREGATE)/i,/^(?:AVRO)/i,/^(?:CACHED)/i,/^(?:CASCADE)/i,/^(?:CHANGE)/i,/^(?:CLOSE_FN)/i,/^(?:COLUMN)/i,/^(?:COLUMNS)/i,/^(?:COMMENT)/i,/^(?:COMPUTE)/i,/^(?:CREATE)/i,/^(?:DATA)/i,/^(?:DATABASES)/i,/^(?:DELETE)/i,/^(?:DELIMITED)/i,/^(?:DESCRIBE)/i,/^(?:ESCAPED)/i,/^(?:EXPLAIN)/i,/^(?:EXTERNAL)/i,/^(?:EXTENDED)/i,/^(?:FIELDS)/i,/^(?:FILEFORMAT)/i,/^(?:FILES)/i,/^(?:FINALIZE_FN)/i,/^(?:FIRST)/i,/^(?:FORMAT)/i,/^(?:FORMATTED)/i,/^(?:FUNCTION)/i,/^(?:FUNCTIONS)/i,/^(?:GROUP)/i,/^(?:HASH)/i,/^(?:ILIKE)/i,/^(?:INCREMENTAL)/i,/^(?:INSERT)/i,/^(?:INTERVAL)/i,/^(?:INTERMEDIATE)/i,/^(?:INIT_FN)/i,/^(?:INVALIDATE)/i,/^(?:INPATH)/i,/^(?:IREGEXP)/i,/^(?:KEY)/i,/^(?:KUDU)/i,/^(?:LAST)/i,/^(?:LIKE\s+PARQUET)/i,/^(?:LIMIT)/i,/^(?:LINES)/i,/^(?:LOAD)/i,/^(?:LOCATION)/i,/^(?:MERGE_FN)/i,/^(?:METADATA)/i,/^(?:NULLS)/i,/^(?:OFFSET)/i,/^(?:ORC)/i,/^(?:OVERWRITE)/i,/^(?:PARQUET)/i,/^(?:PARTITIONED)/i,/^(?:PARTITIONS)/i,/^(?:PREPARE_FN)/i,/^(?:PRIMARY)/i,/^(?:RCFILE)/i,/^(?:RANGE)/i,/^(?:REAL)/i,/^(?:REFRESH)/i,/^(?:RENAME)/i,/^(?:REPEATABLE)/i,/^(?:REPLACE)/i,/^(?:REPLICATION)/i,/^(?:RESTRICT)/i,/^(?:RETURNS)/i,/^(?:REVOKE)/i,/^(?:SEQUENCEFILE)/i,/^(?:SERDEPROPERTIES)/i,/^(?:SCHEMAS)/i,/^(?:SERIALIZE_FN)/i,/^(?:SERVER)/i,/^(?:SORT)/i,/^(?:STATS)/i,/^(?:STORED)/i,/^(?:STRAIGHT_JOIN)/i,/^(?:SYMBOL)/i,/^(?:TABLE)/i,/^(?:TABLES)/i,/^(?:TABLESAMPLE)/i,/^(?:TBLPROPERTIES)/i,/^(?:TERMINATED)/i,/^(?:TEXTFILE)/i,/^(?:UNCACHED)/i,/^(?:UPDATE_FN)/i,/^(?:UPSERT)/i,/^(?:URI)/i,/^(?:USING)/i,/^(?:PARTITION\s+VALUE\s)/i,/^(?:ANALYTIC)/i,/^(?:ANTI)/i,/^(?:ARRAY)/i,/^(?:BLOCK_SIZE)/i,/^(?:COMPRESSION)/i,/^(?:CURRENT)/i,/^(?:DEFAULT)/i,/^(?:ENCODING)/i,/^(?:GRANT)/i,/^(?:MAP)/i,/^(?:RECOVER)/i,/^(?:ROLE)/i,/^(?:ROLES)/i,/^(?:STRUCT)/i,/^(?:UNKNOWN)/i,/^(?:\[BROADCAST\])/i,/^(?:\[NOSHUFFLE\])/i,/^(?:\[SHUFFLE\])/i,/^(?:\.\.\.)/i,/^(?:\.)/i,/^(?:\[)/i,/^(?:\])/i,/^(?:AND)/i,/^(?:LIFECYCLE)/i,/^(?:ALL)/i,/^(?:ALTER)/i,/^(?:AND)/i,/^(?:AS)/i,/^(?:ASC)/i,/^(?:BETWEEN)/i,/^(?:BIGINT)/i,/^(?:BOOLEAN)/i,/^(?:BY)/i,/^(?:CASE)/i,/^(?:CHAR)/i,/^(?:CREATE)/i,/^(?:CROSS)/i,/^(?:CURRENT)/i,/^(?:DATABASE)/i,/^(?:DECIMAL)/i,/^(?:DISTINCT)/i,/^(?:DIV)/i,/^(?:DOUBLE)/i,/^(?:DESC)/i,/^(?:DROP)/i,/^(?:ELSE)/i,/^(?:END)/i,/^(?:EXISTS)/i,/^(?:FALSE)/i,/^(?:FLOAT)/i,/^(?:FOLLOWING)/i,/^(?:FROM)/i,/^(?:FULL)/i,/^(?:GROUP)/i,/^(?:HAVING)/i,/^(?:IF)/i,/^(?:IN)/i,/^(?:INNER)/i,/^(?:INSERT)/i,/^(?:INT)/i,/^(?:INTO)/i,/^(?:IS)/i,/^(?:JOIN)/i,/^(?:LEFT)/i,/^(?:LIKE)/i,/^(?:LIMIT)/i,/^(?:NOT)/i,/^(?:NULL)/i,/^(?:ON)/i,/^(?:OPTION)/i,/^(?:OR)/i,/^(?:ORDER)/i,/^(?:OUTER)/i,/^(?:PARTITION)/i,/^(?:PRECEDING)/i,/^(?:PURGE)/i,/^(?:RANGE)/i,/^(?:REGEXP)/i,/^(?:RIGHT)/i,/^(?:RLIKE)/i,/^(?:ROW)/i,/^(?:ROWS)/i,/^(?:SCHEMA)/i,/^(?:SELECT)/i,/^(?:SEMI)/i,/^(?:SET)/i,/^(?:SHOW)/i,/^(?:SMALLINT)/i,/^(?:STRING)/i,/^(?:TABLE)/i,/^(?:THEN)/i,/^(?:TIMESTAMP)/i,/^(?:TINYINT)/i,/^(?:TO)/i,/^(?:TRUE)/i,/^(?:TRUNCATE)/i,/^(?:UNBOUNDED)/i,/^(?:UPDATE)/i,/^(?:USE)/i,/^(?:UNION)/i,/^(?:VIEW)/i,/^(?:VARCHAR)/i,/^(?:VALUES)/i,/^(?:WHEN)/i,/^(?:WHERE)/i,/^(?:WITH)/i,/^(?:OVER)/i,/^(?:ROLE)/i,/^(?:AVG\s*\()/i,/^(?:CAST\s*\()/i,/^(?:COUNT\s*\()/i,/^(?:MAX\s*\()/i,/^(?:MIN\s*\()/i,/^(?:STDDEV_POP\s*\()/i,/^(?:STDDEV_SAMP\s*\()/i,/^(?:SUM\s*\()/i,/^(?:VARIANCE\s*\()/i,/^(?:VAR_POP\s*\()/i,/^(?:VAR_SAMP\s*\()/i,/^(?:COLLECT_SET\s*\()/i,/^(?:COLLECT_LIST\s*\()/i,/^(?:CORR\s*\()/i,/^(?:COVAR_POP\s*\()/i,/^(?:COVAR_SAMP\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:HISTOGRAM_NUMERIC\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENTILE\s*\()/i,/^(?:PERCENTILE_APPROX\s*\()/i,/^(?:APPX_MEDIAN\s*\()/i,/^(?:EXTRACT\s*\()/i,/^(?:GROUP_CONCAT\s*\()/i,/^(?:NDV\s*\()/i,/^(?:STDDEV\s*\()/i,/^(?:VARIANCE_POP\s*\()/i,/^(?:VARIANCE_SAMP\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:DENSE_RANK\s*\()/i,/^(?:FIRST_VALUE\s*\()/i,/^(?:LAG\s*\()/i,/^(?:LAST_VALUE\s*\()/i,/^(?:LEAD\s*\()/i,/^(?:RANK\s*\()/i,/^(?:ROW_NUMBER\s*\()/i,/^(?:CUME_DIST\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:NTILE\s*\()/i,/^(?:PERCENT_RANK\s*\()/i,/^(?:SYSTEM\s*\()/i,/^(?:[0-9]+)/i,/^(?:[0-9]+(?:[YSL]|BD)?)/i,/^(?:[0-9]+E)/i,/^(?:[A-Za-z0-9_]+)/i,/^(?:\u2020)/i,/^(?:\u2021)/i,/^(?:\s+['])/i,/^(?:[^'\u2020\u2021]+)/i,/^(?:['])/i,/^(?:$)/i,/^(?:&&)/i,/^(?:\|\|)/i,/^(?:=)/i,/^(?:<)/i,/^(?:>)/i,/^(?:!=)/i,/^(?:<=)/i,/^(?:>=)/i,/^(?:<>)/i,/^(?:<=>)/i,/^(?:-)/i,/^(?:\*)/i,/^(?:\+)/i,/^(?:\/)/i,/^(?:%)/i,/^(?:\|)/i,/^(?:\^)/i,/^(?:&)/i,/^(?:,)/i,/^(?:\.)/i,/^(?::)/i,/^(?:;)/i,/^(?:~)/i,/^(?:!)/i,/^(?:\()/i,/^(?:\))/i,/^(?:\[)/i,/^(?:\])/i,/^(?:\$\{[^}]*\})/i,/^(?:`)/i,/^(?:[^`]+)/i,/^(?:`)/i,/^(?:')/i,/^(?:(?:\\\\|\\[']|[^'])+)/i,/^(?:')/i,/^(?:")/i,/^(?:(?:\\\\|\\["]|[^"])+)/i,/^(?:")/i,/^(?:$)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i,/^(?:.)/i], -conditions: {"hdfs":{"rules":[427,428,429,430,431,432,476],"inclusive":false},"doubleQuotedValue":{"rules":[469,470,479],"inclusive":false},"singleQuotedValue":{"rules":[466,467,478],"inclusive":false},"backtickedValue":{"rules":[463,464,477],"inclusive":false},"between":{"rules":[0,1,2,3,4,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,410,411,412,413,414,415,416,417,423,424,425,426,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,465,468,471,472,473,480],"inclusive":true},"hive":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,410,411,412,413,414,415,416,417,418,419,423,424,425,426,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,465,468,471,472,474,480],"inclusive":true},"impala":{"rules":[0,1,2,3,4,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,420,421,422,423,424,425,426,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,465,468,471,472,475,480],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,410,411,412,413,414,415,416,417,423,424,425,426,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,465,468,471,472,480],"inclusive":true}} -}); -return lexer; -})(); -parser.lexer = lexer; -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); - - -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = sqlSyntaxParser; -exports.Parser = sqlSyntaxParser.Parser; -exports.parse = function () { return sqlSyntaxParser.parse.apply(sqlSyntaxParser, arguments); }; -exports.main = function commonjsMain (args) { - if (!args[1]) { - console.log('Usage: '+args[0]+' FILE'); - process.exit(1); - } - var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); - return exports.parser.parse(source); -}; -if (typeof module !== 'undefined' && require.main === module) { - exports.main(process.argv.slice(1)); -} -} diff --git a/src/jison/autocomplete_footer.jison b/src/jison/autocomplete_footer.jison old mode 100755 new mode 100644 diff --git a/src/jison/autocomplete_header.jison b/src/jison/autocomplete_header.jison old mode 100755 new mode 100644 diff --git a/src/jison/comment.txt b/src/jison/comment.txt deleted file mode 100644 index 1e5d50e..0000000 --- a/src/jison/comment.txt +++ /dev/null @@ -1,10 +0,0 @@ -ColumnIdentifier -UnsignedValueSpecification #各种非负数字和普通字符串常量bool值 -UnsignedLiteral #各种非负数字和普通字符串常量bool值 -ExactNumericLiteral #非负数字和小数 -ApproximateNumericLiteral #带有E的非负数字 -GeneralLiteral #普通字符串常量/bool值 -RegularIdentifier #常规标识符 -RegularOrBacktickedIdentifier #标识符 -NonReservedKeyword #非保留关键字 -ColumnIdentifier #标识符和各种对象数组写法 \ No newline at end of file diff --git a/src/jison/globalSearchParser.jison b/src/jison/globalSearchParser.jison old mode 100755 new mode 100644 diff --git a/src/jison/solrFormulaParser.jison b/src/jison/solrFormulaParser.jison old mode 100755 new mode 100644 diff --git a/src/jison/solrQueryParser.jison b/src/jison/solrQueryParser.jison old mode 100755 new mode 100644 diff --git a/src/jison/sql-autocomplete.sh b/src/jison/sql-autocomplete.sh deleted file mode 100755 index 4795f2e..0000000 --- a/src/jison/sql-autocomplete.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# Licensed to Cloudera, Inc. under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. Cloudera, Inc. licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -echo "Make sure you install jison first (npm install jison -g)" -echo "" -echo "Generating parser..." - -pushd jison - -# For quick version of just SELECT statements without value expressions -# cat autocomplete_header.jison sql_main.jison autocomplete_footer.jison > sqlAutocompleteParser.jison -cat autocomplete_header.jison sql_main.jison sql_valueExpression.jison sql_error.jison sql_alter.jison sql_analyze.jison sql_create.jison sql_drop.jison sql_grant.jison sql_insert.jison sql_load.jison sql_set.jison sql_show.jison sql_update.jison sql_use.jison autocomplete_footer.jison > sqlAutocompleteParser.jison - -echo "Creating SQL autocomplete parser..." -jison sqlAutocompleteParser.jison sql.jisonlex -# grunt uglify:sqlAutocompleteParser -cat sqlParseSupport.js sqlAutocompleteParser.js > ../core/sqlAutoCompleteParser.js -rm sqlAutocompleteParser.jison -rm sqlAutocompleteParser.js - -popd -echo "Done!" diff --git a/src/jison/sql-syntax.sh b/src/jison/sql-syntax.sh deleted file mode 100755 index 7a4365f..0000000 --- a/src/jison/sql-syntax.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# Licensed to Cloudera, Inc. under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. Cloudera, Inc. licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -echo "Make sure you install jison first (npm install jison -g)" -echo "" -echo "Generating parser..." - -pushd jison -# === Syntax parser === -cat syntax_header.jison sql_main.jison sql_valueExpression.jison sql_alter.jison sql_analyze.jison sql_create.jison sql_drop.jison sql_grant.jison sql_insert.jison sql_load.jison sql_set.jison sql_show.jison sql_update.jison sql_use.jison syntax_footer.jison > sqlSyntaxParser.jison - -echo "Creating SQL syntax parser..." -jison sqlSyntaxParser.jison sql.jisonlex -# Workaround for a parser bug where it reports the location of the previous token on error (pull-request submitted for jison) -# We're also adding a ruleId to the parser error composed of the last two stack ID's and used for suppressing errors in the UI -sed -i '' 's/loc: yyloc,/loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join(''),/' sqlSyntaxParser.js -# grunt uglify:sqlSyntaxParser -cat sqlParseSupport.js sqlSyntaxParser.js > ../core/sqlSyntaxParser.js -rm sqlSyntaxParser.jison -rm sqlSyntaxParser.js - -popd -echo "Done!" diff --git a/src/jison/sql.jisonlex b/src/jison/sql.jisonlex old mode 100755 new mode 100644 index 16161f9..8f21751 --- a/src/jison/sql.jisonlex +++ b/src/jison/sql.jisonlex @@ -62,8 +62,10 @@ 'REFERENCES' { return 'REFERENCES'; } 'REVOKE' { return 'REVOKE'; } 'ROLLUP' { return 'ROLLUP'; } +'SYNC' { return 'SYNC'; } 'TABLE' { return 'TABLE'; } 'TIMESTAMP' { return 'TIMESTAMP'; } +'UTC_TIMESTAMP' { return 'UTC_TIMESTAMP'; } 'USER' { return 'USER'; } 'USING' { return 'USING'; } 'VIEWS' { return 'VIEWS'; } @@ -125,6 +127,7 @@ 'INPUTFORMAT' { return 'INPUTFORMAT'; } 'ITEMS' { return 'ITEMS'; } 'JAR' { return 'JAR'; } +'JSONFILE' { return 'JSONFILE'; } 'KEY' { return 'KEY'; } 'KEYS' { return 'KEYS'; } 'LINES' { return 'LINES'; } @@ -193,6 +196,7 @@ 'TEXTFILE' { return 'TEXTFILE'; } 'TINYINT' { return 'TINYINT'; } 'TOUCH' { return 'TOUCH'; } +'TRANSACTIONAL' { return 'TRANSACTIONAL'; } 'TRANSACTIONS' { return 'TRANSACTIONS'; } 'UNARCHIVE' { return 'UNARCHIVE'; } 'UNIONTYPE' { return 'UNIONTYPE'; } @@ -201,6 +205,7 @@ 'WAIT' { return 'WAIT'; } 'WEEK' { return 'WEEK'; } 'WINDOW' { return 'WINDOW'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } 'YEAR' { return 'YEAR'; } '.' { return '.'; } @@ -210,68 +215,228 @@ // Reserved Keywords 'ADD' { return 'ADD'; } 'AGGREGATE' { return 'AGGREGATE'; } +'ALLOCATE' { return 'ALLOCATE'; } +'ANALYTIC' { return 'ANALYTIC'; } +'ANTI' { return 'ANTI'; } +'ANY' { return 'ANY'; } +'ARE' { return 'ARE'; } +'ARRAY_AGG' { return 'ARRAY_AGG'; } +'ARRAY_MAX_CARDINALITY' { return 'ARRAY_MAX_CARDINALITY'; } +'ASENSITIVE' { return 'ASENSITIVE'; } +'ASYMMETRIC' { return 'ASYMMETRIC'; } +'AT' { return 'AT'; } +'ATOMIC' { return 'ATOMIC'; } +'AUTHORIZATION' { return 'AUTHORIZATION'; } 'AVRO' { return 'AVRO'; } +'BEGIN_FRAME' { return 'BEGIN_FRAME'; } +'BEGIN_PARTITION' { return 'BEGIN_PARTITION'; } +'BLOB' { return 'BLOB'; } +'BLOCK_SIZE' { return 'BLOCK_SIZE'; } +'BOTH' { return 'BOTH'; } 'CACHED' { return 'CACHED'; } +'CALLED' { return 'CALLED'; } +'CARDINALITY' { return 'CARDINALITY'; } 'CASCADE' { return 'CASCADE'; } +'CASCADED' { return 'CASCADED'; } 'CHANGE' { return 'CHANGE'; } +'CHARACTER' { return 'CHARACTER'; } +'CLOB' { return 'CLOB'; } 'CLOSE_FN' { return 'CLOSE_FN'; } +'COLLATE' { return 'COLLATE'; } +'COLLECT' { return 'COLLECT'; } 'COLUMN' { return 'COLUMN'; } 'COLUMNS' { return 'COLUMNS'; } 'COMMENT' { parser.determineCase(yytext); return 'COMMENT'; } +'COMMIT' { return 'COMMIT'; } +'COMPRESSION' { return 'COMPRESSION'; } 'COMPUTE' { parser.determineCase(yytext); return 'COMPUTE'; } +'CONDITION' { return 'CONDITION'; } +'CONNECT' { return 'CONNECT'; } +'CONSTRAINT' { return 'CONSTRAINT'; } +'CONTAINS' { return 'CONTAINS'; } +'CONVERT' { return 'CONVERT'; } +'COPY' { return 'COPY'; } +'CORR' { return 'CORR'; } +'CORRESPONDING' { return 'CORRESPONDING'; } +'COVAR_POP' { return 'COVAR_POP'; } +'COVAR_SAMP' { return 'COVAR_SAMP'; } 'CREATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('CREATE', yylloc, yy.lexer.upcomingInput()); return 'CREATE'; } +'CUBE' { return 'CUBE'; } +'CURRENT' { return 'CURRENT'; } +'CURRENT_DATE' { return 'CURRENT_DATE'; } +'CURRENT_DEFAULT_TRANSFORM_GROUP' { return 'CURRENT_DEFAULT_TRANSFORM_GROUP'; } +'CURRENT_PATH' { return 'CURRENT_PATH'; } +'CURRENT_ROLE' { return 'CURRENT_ROLE'; } +'CURRENT_ROW' { return 'CURRENT_ROW'; } +'CURRENT_SCHEMA' { return 'CURRENT_SCHEMA'; } +'CURRENT_TIME' { return 'CURRENT_TIME'; } +'CURRENT_TRANSFORM_GROUP_FOR_TYPE' { return 'CURRENT_TRANSFORM_GROUP_FOR_TYPE'; } +'CURSOR' { return 'CURSOR'; } +'CYCLE' { return 'CYCLE'; } 'DATA' { return 'DATA'; } 'DATABASES' { return 'DATABASES'; } +'DEALLOCATE' { return 'DEALLOCATE'; } +'DEC' { return 'DEC'; } +'DECFLOAT' { return 'DECFLOAT'; } +'DECLARE' { return 'DECLARE'; } +'DEFINE' { return 'DEFINE'; } 'DELETE' { return 'DELETE'; } 'DELIMITED' { return 'DELIMITED'; } +'DEREF' { return 'DEREF'; } 'DESCRIBE' { parser.determineCase(yytext); parser.addStatementTypeLocation('DESCRIBE', yylloc); return 'DESCRIBE'; } +'DETERMINISTIC' { return 'DETERMINISTIC'; } +'DISCONNECT' { return 'DISCONNECT'; } +'DYNAMIC' { return 'DYNAMIC'; } +'EACH' { return 'EACH'; } +'ELEMENT' { return 'ELEMENT'; } +'EMPTY' { return 'EMPTY'; } +'ENCODING' { return 'ENCODING'; } +'END_FRAME' { return 'END_FRAME'; } +'END_PARTITION' { return 'END_PARTITION'; } +'EQUALS' { return 'EQUALS'; } +'ESCAPE' { return 'ESCAPE'; } 'ESCAPED' { return 'ESCAPED'; } +'EVERY' { return 'EVERY'; } +'EXCEPT' { return 'EXCEPT'; } +'EXEC' { return 'EXEC'; } +'EXECUTE' { return 'EXECUTE'; } 'EXPLAIN' { parser.determineCase(yytext); parser.addStatementTypeLocation('EXPLAIN', yylloc); return 'EXPLAIN'; } -'EXTERNAL' { return 'EXTERNAL'; } 'EXTENDED' { return 'EXTENDED'; } +'EXTERNAL' { return 'EXTERNAL'; } +'FETCH' { return 'FETCH'; } 'FIELDS' { return 'FIELDS'; } 'FILEFORMAT' { return 'FILEFORMAT'; } 'FILES' { return 'FILES'; } +'FILTER' { return 'FILTER'; } 'FINALIZE_FN' { return 'FINALIZE_FN'; } 'FIRST' { return 'FIRST'; } +'FOR' { return 'FOR'; } +'FOREIGN' { return 'FOREIGN'; } 'FORMAT' { return 'FORMAT'; } 'FORMATTED' { return 'FORMATTED'; } +'FRAME_ROW' { return 'FRAME_ROW'; } +'FREE' { return 'FREE'; } 'FUNCTION' { return 'FUNCTION'; } 'FUNCTIONS' { return 'FUNCTIONS'; } +'FUSION' { return 'FUSION'; } +'GET' { return 'GET'; } +'GLOBAL' { return 'GLOBAL'; } +'GRANT' { parser.determineCase(yytext); parser.addStatementTypeLocation('GRANT', yylloc); return 'GRANT'; } 'GROUP' { return 'GROUP'; } +'GROUPING' { return 'GROUPING'; } +'GROUPS' { return 'GROUPS'; } 'HASH' { return 'HASH'; } +'HOLD' { return 'HOLD'; } +'IGNORE' { return 'IGNORE'; } 'ILIKE' { return 'ILIKE'; } 'INCREMENTAL' { return 'INCREMENTAL'; } -'INSERT' { parser.determineCase(yytext); parser.addStatementTypeLocation('INSERT', yylloc); return 'INSERT'; } -'INTERVAL' { return 'INTERVAL'; } -'INTERMEDIATE' { return 'INTERMEDIATE'; } +'INDICATOR' { return 'INDICATOR'; } 'INIT_FN' { return 'INIT_FN'; } -'INVALIDATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('INVALIDATE', yylloc, yy.lexer.upcomingInput()); return 'INVALIDATE'; } +'INITIAL' { return 'INITIAL'; } +'INOUT' { return 'INOUT'; } 'INPATH' { this.begin('hdfs'); return 'INPATH'; } +'INSENSITIVE' { return 'INSENSITIVE'; } +'INSERT' { parser.determineCase(yytext); parser.addStatementTypeLocation('INSERT', yylloc); return 'INSERT'; } +'INTERMEDIATE' { return 'INTERMEDIATE'; } +'INTERSECT' { return 'INTERSECT'; } +'INTERSECTION' { return 'INTERSECTION'; } +'INTERVAL' { return 'INTERVAL'; } +'INVALIDATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('INVALIDATE', yylloc, yy.lexer.upcomingInput()); return 'INVALIDATE'; } 'IREGEXP' { return 'IREGEXP'; } +'JSON_ARRAY' { return 'JSON_ARRAY'; } +'JSON_ARRAYAGG' { return 'JSON_ARRAYAGG'; } +'JSON_EXISTS' { return 'JSON_EXISTS'; } +'JSON_OBJECT' { return 'JSON_OBJECT'; } +'JSON_OBJECTAGG' { return 'JSON_OBJECTAGG'; } +'JSON_QUERY' { return 'JSON_QUERY'; } +'JSON_TABLE' { return 'JSON_TABLE'; } +'JSON_TABLE_PRIMITIVE' { return 'JSON_TABLE_PRIMITIVE'; } +'JSON_VALUE' { return 'JSON_VALUE'; } 'KEY' { return 'KEY'; } 'KUDU' { return 'KUDU'; } +'LARGE' { return 'LARGE'; } 'LAST' { return 'LAST'; } +'LATERAL' { return 'LATERAL'; } +'LEADING' { return 'LEADING'; } LIKE\s+PARQUET { this.begin('hdfs'); return 'LIKE_PARQUET'; } +'LIKE_REGEX' { return 'LIKE_REGEX'; } 'LIMIT' { return 'LIMIT'; } 'LINES' { return 'LINES'; } +'LISTAGG' { return 'LISTAGG'; } 'LOAD' { parser.determineCase(yytext); parser.addStatementTypeLocation('LOAD', yylloc, yy.lexer.upcomingInput()); return 'LOAD'; } +'LOCAL' { return 'LOCAL'; } +'LOCALTIMESTAMP' { return 'LOCALTIMESTAMP'; } 'LOCATION' { this.begin('hdfs'); return 'LOCATION'; } +'MATCH' { return 'MATCH'; } +'MATCH_NUMBER' { return 'MATCH_NUMBER'; } +'MATCH_RECOGNIZE' { return 'MATCH_RECOGNIZE'; } +'MATCHES' { return 'MATCHES'; } +'MERGE' { return 'MERGE'; } 'MERGE_FN' { return 'MERGE_FN'; } 'METADATA' { return 'METADATA'; } +'METHOD' { return 'METHOD'; } +'MODIFIES' { return 'MODIFIES'; } +'MULTISET' { return 'MULTISET'; } +'NATIONAL' { return 'NATIONAL'; } +'NATURAL' { return 'NATURAL'; } +'NCHAR' { return 'NCHAR'; } +'NCLOB' { return 'NCLOB'; } +'NO' { return 'NO'; } +'NONE' { return 'NONE'; } +'NORMALIZE' { return 'NORMALIZE'; } +'NTH_VALUE' { return 'NTH_VALUE'; } 'NULLS' { return 'NULLS'; } +'NUMERIC' { return 'NUMERIC'; } +'OCCURRENCES_REGEX' { return 'OCCURRENCES_REGEX'; } +'OCTET_LENGTH' { return 'OCTET_LENGTH'; } +'OF' { return 'OF'; } 'OFFSET' { return 'OFFSET'; } +'OMIT' { return 'OMIT'; } +'ONE' { return 'ONE'; } +'ONLY' { return 'ONLY'; } 'ORC' { return 'ORC'; } +'OUT' { return 'OUT'; } +'OVER' { return 'OVER'; } +'OVERLAPS' { return 'OVERLAPS'; } +'OVERLAY' { return 'OVERLAY'; } 'OVERWRITE' { return 'OVERWRITE'; } 'PARQUET' { return 'PARQUET'; } +PARTITION\s+VALUE\s { return 'PARTITION_VALUE'; } 'PARTITIONED' { return 'PARTITIONED'; } 'PARTITIONS' { return 'PARTITIONS'; } +'PATTERN' { return 'PATTERN'; } +'PER' { return 'PER'; } +'PERCENT' { return 'PERCENT'; } +'PERCENTILE_CONT' { return 'PERCENTILE_CONT'; } +'PERCENTILE_DISC' { return 'PERCENTILE_DISC'; } +'PORTION' { return 'PORTION'; } +'POSITION' { return 'POSITION'; } +'POSITION_REGEX' { return 'POSITION_REGEX'; } +'PRECEDES' { return 'PRECEDES'; } +'PREPARE' { return 'PREPARE'; } 'PREPARE_FN' { return 'PREPARE_FN'; } 'PRIMARY' { return 'PRIMARY'; } -'RCFILE' { return 'RCFILE'; } +'PROCEDURE' { return 'PROCEDURE'; } +'PTF' { return 'PTF'; } 'RANGE' { return 'RANGE'; } +'RCFILE' { return 'RCFILE'; } +'READS' { return 'READS'; } 'REAL' { return 'REAL'; } +'RECOVER' { return 'RECOVER'; } +'RECURSIVE' { return 'RECURSIVE'; } +'REF' { return 'REF'; } +'REFERENCES' { return 'REFERENCES'; } +'REFERENCING' { return 'REFERENCING'; } 'REFRESH' { parser.determineCase(yytext); parser.addStatementTypeLocation('REFRESH', yylloc); return 'REFRESH'; } +'REGR_AVGX' { return 'REGR_AVGX'; } +'REGR_AVGY' { return 'REGR_AVGY'; } +'REGR_COUNT' { return 'REGR_COUNT'; } +'REGR_INTERCEPT' { return 'REGR_INTERCEPT'; } +'REGR_R2REGR_SLOPE' { return 'REGR_R2REGR_SLOPE'; } +'REGR_SXX' { return 'REGR_SXX'; } +'REGR_SXY' { return 'REGR_SXY'; } +'REGR_SYY' { return 'REGR_SYY'; } +'RELEASE' { return 'RELEASE'; } 'RENAME' { return 'RENAME'; } 'REPEATABLE' { return 'REPEATABLE'; } 'REPLACE' { return 'REPLACE'; } @@ -279,45 +444,85 @@ 'RESTRICT' { return 'RESTRICT'; } 'RETURNS' { return 'RETURNS'; } 'REVOKE' { parser.determineCase(yytext); parser.addStatementTypeLocation('REVOKE', yylloc); return 'REVOKE'; } +'ROLE' { return 'ROLE'; } +'ROLES' { return 'ROLES'; } +'ROLLBACK' { return 'ROLLBACK'; } +'ROLLUP' { return 'ROLLUP'; } +'RUNNING' { return 'RUNNING'; } +'SAVEPOINT' { return 'SAVEPOINT'; } +'SCHEMAS' { return 'SCHEMAS'; } +'SCOPE' { return 'SCOPE'; } +'SCROLL' { return 'SCROLL'; } +'SEARCH' { return 'SEARCH'; } +'SEEK' { return 'SEEK'; } +'SENSITIVE' { return 'SENSITIVE'; } 'SEQUENCEFILE' { return 'SEQUENCEFILE'; } 'SERDEPROPERTIES' { return 'SERDEPROPERTIES'; } -'SCHEMAS' { return 'SCHEMAS'; } 'SERIALIZE_FN' { return 'SERIALIZE_FN'; } 'SERVER' { return 'SERVER'; } +'SIMILAR' { return 'SIMILAR'; } +'SKIP' { return 'SKIP'; } +'SOME' { return 'SOME'; } 'SORT' { return 'SORT'; } +'SPECIFIC' { return 'SPECIFIC'; } +'SPECIFICTYPE' { return 'SPECIFICTYPE'; } +'SQLEXCEPTION' { return 'SQLEXCEPTION'; } +'SQLSTATE' { return 'SQLSTATE'; } +'SQLWARNING' { return 'SQLWARNING'; } +'STATIC' { return 'STATIC'; } 'STATS' { return 'STATS'; } 'STORED' { return 'STORED'; } 'STRAIGHT_JOIN' { return 'STRAIGHT_JOIN'; } +'SUBMULTISET' { return 'SUBMULTISET'; } +'SUBSET' { return 'SUBSET'; } +'SUBSTRING_REGEX' { return 'SUBSTRING_REGEX'; } +'SUCCEEDS' { return 'SUCCEEDS'; } 'SYMBOL' { return 'SYMBOL'; } +'SYMMETRIC' { return 'SYMMETRIC'; } +'SYSTEM_TIME' { return 'SYSTEM_TIME'; } +'SYSTEM_USER' { return 'SYSTEM_USER'; } 'TABLE' { return 'TABLE'; } 'TABLES' { return 'TABLES'; } 'TABLESAMPLE' { return 'TABLESAMPLE'; } 'TBLPROPERTIES' { return 'TBLPROPERTIES'; } 'TERMINATED' { return 'TERMINATED'; } 'TEXTFILE' { return 'TEXTFILE'; } +'TIMEZONE_HOUR' { return 'TIMEZONE_HOUR'; } +'TIMEZONE_MINUTE' { return 'TIMEZONE_MINUTE'; } +'TRAILING' { return 'TRAILING'; } +'TRANSLATE_REGEX' { return 'TRANSLATE_REGEX'; } +'TRANSLATION' { return 'TRANSLATION'; } +'TREAT' { return 'TREAT'; } +'TRIGGER' { return 'TRIGGER'; } +'TRIM_ARRAY' { return 'TRIM_ARRAY'; } +'UESCAPE' { return 'UESCAPE'; } 'UNCACHED' { return 'UNCACHED'; } +'UNIQUE' { return 'UNIQUE'; } +'UNKNOWN' { return 'UNKNOWN'; } +'UNNEST' { return 'UNNEST'; } 'UPDATE_FN' { return 'UPDATE_FN'; } 'UPSERT' { parser.determineCase(yytext); parser.addStatementTypeLocation('UPSERT', yylloc); return 'UPSERT'; } 'URI' { return 'URI'; } +'USER' { return 'USER'; } 'USING' { return 'USING'; } -PARTITION\s+VALUE\s { return 'PARTITION_VALUE'; } +'VALUE_OF' { return 'VALUE_OF'; } +'VARBINARY' { return 'VARBINARY'; } +'VARCHAR' { return 'VARCHAR'; } +'VARYING' { return 'VARYING'; } +'VERSIONING' { return 'VERSIONING'; } +'WHENEVER' { return 'WHENEVER'; } +'WIDTH_BUCKET' { return 'WIDTH_BUCKET'; } +'WINDOW' { return 'WINDOW'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } +'WITHIN' { return 'WITHIN'; } +'WITHOUT' { return 'WITHOUT'; } // Non-reserved Keywords -'ANALYTIC' { return 'ANALYTIC'; } -'ANTI' { return 'ANTI'; } 'ARRAY' { return 'ARRAY'; } -'BLOCK_SIZE' { return 'BLOCK_SIZE'; } -'COMPRESSION' { return 'COMPRESSION'; } -'CURRENT' { return 'CURRENT'; } 'DEFAULT' { return 'DEFAULT'; } -'ENCODING' { return 'ENCODING'; } -'GRANT' { return 'GRANT'; } 'MAP' { return 'MAP'; } -'RECOVER' { return 'RECOVER'; } -'ROLE' { return 'ROLE'; } -'ROLES' { return 'ROLES'; } +'OWNER' { return 'OWNER'; } 'STRUCT' { return 'STRUCT'; } -'UNKNOWN' { return 'UNKNOWN'; } \[BROADCAST\] { return 'BROADCAST'; } \[NOSHUFFLE\] { return 'NOSHUFFLE'; } \[SHUFFLE\] { return 'SHUFFLE'; } @@ -330,7 +535,6 @@ 'AND' { this.popState(); return 'BETWEEN_AND'; } // Reserved Keywords -'LIFECYCLE' { return 'LIFECYCLE'; } 'ALL' { return 'ALL'; } 'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } 'AND' { return 'AND'; } diff --git a/src/jison/license.txt b/src/jison/sql/calcite/autocomplete_footer.jison old mode 100755 new mode 100644 similarity index 94% rename from src/jison/license.txt rename to src/jison/sql/calcite/autocomplete_footer.jison index 9ce7cc9..899433d --- a/src/jison/license.txt +++ b/src/jison/sql/calcite/autocomplete_footer.jison @@ -13,3 +13,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. + +%% + +SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/calcite/autocomplete_header.jison b/src/jison/sql/calcite/autocomplete_header.jison new file mode 100644 index 0000000..3b90682 --- /dev/null +++ b/src/jison/sql/calcite/autocomplete_header.jison @@ -0,0 +1,29 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'CURSOR' 'PARTIAL_CURSOR' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlAutocomplete + +%% diff --git a/src/jison/sql/calcite/sql.jisonlex b/src/jison/sql/calcite/sql.jisonlex new file mode 100644 index 0000000..83dbe72 --- /dev/null +++ b/src/jison/sql/calcite/sql.jisonlex @@ -0,0 +1,226 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%options case-insensitive flex +%s between +%x hdfs doubleQuotedValue singleQuotedValue backtickedValue +%% + +\s { /* skip whitespace */ } +'--'.* { /* skip comments */ } +[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } + +'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } +'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } + +'AND' { this.popState(); return 'BETWEEN_AND'; } + +// Reserved Keywords +'ALL' { return 'ALL'; } +'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } +'AND' { return 'AND'; } +'AS' { return 'AS'; } +'ASC' { return 'ASC'; } +'BETWEEN' { this.begin('between'); return 'BETWEEN'; } +'BIGINT' { return 'BIGINT'; } +'BOOLEAN' { return 'BOOLEAN'; } +'BY' { return 'BY'; } +'CASCADE' { return 'CASCADE'; } +'CASE' { return 'CASE'; } +'CHAR' { return 'CHAR'; } +'COMMENT' { return 'COMMENT'; } +'CREATE' { parser.determineCase(yytext); return 'CREATE'; } +'CROSS' { return 'CROSS'; } +'CURRENT' { return 'CURRENT'; } +'DATABASE' { return 'DATABASE'; } +'DECIMAL' { return 'DECIMAL'; } +'DESC' { return 'DESC'; } +'DISTINCT' { return 'DISTINCT'; } +'DIV' { return 'ARITHMETIC_OPERATOR'; } +'DOUBLE' { return 'DOUBLE'; } +'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } +'ELSE' { return 'ELSE'; } +'END' { return 'END'; } +'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } +'FALSE' { return 'FALSE'; } +'FLOAT' { return 'FLOAT'; } +'FOLLOWING' { return 'FOLLOWING'; } +'FROM' { parser.determineCase(yytext); return 'FROM'; } +'FULL' { return 'FULL'; } +'GROUP' { return 'GROUP'; } +'HAVING' { return 'HAVING'; } +'IF' { return 'IF'; } +'IN' { return 'IN'; } +'INNER' { return 'INNER'; } +'INSERT' { return 'INSERT'; } +'INT' { return 'INT'; } +'INTO' { return 'INTO'; } +'IS' { return 'IS'; } +'JOIN' { return 'JOIN'; } +'LEFT' { return 'LEFT'; } +'LIKE' { return 'LIKE'; } +'LIMIT' { return 'LIMIT'; } +'NOT' { return 'NOT'; } +'NULL' { return 'NULL'; } +'ON' { return 'ON'; } +'OPTION' { return 'OPTION'; } +'OR' { return 'OR'; } +'ORDER' { return 'ORDER'; } +'OUTER' { return 'OUTER'; } +'PARTITION' { return 'PARTITION'; } +'PRECEDING' { return 'PRECEDING'; } +'PURGE' { return 'PURGE'; } +'RANGE' { return 'RANGE'; } +'REGEXP' { return 'REGEXP'; } +'RIGHT' { return 'RIGHT'; } +'RLIKE' { return 'RLIKE'; } +'ROW' { return 'ROW'; } +'ROLE' { return 'ROLE'; } +'ROWS' { return 'ROWS'; } +'SCHEMA' { return 'SCHEMA'; } +'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } +'SEMI' { return 'SEMI'; } +'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } +'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } +'SMALLINT' { return 'SMALLINT'; } +'STRING' { return 'STRING'; } +'TABLE' { return 'TABLE'; } +'THEN' { return 'THEN'; } +'TIMESTAMP' { return 'TIMESTAMP'; } +'TINYINT' { return 'TINYINT'; } +'TO' { return 'TO'; } +'TRUE' { return 'TRUE'; } +'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } +'UNBOUNDED' { return 'UNBOUNDED'; } +'UNION' { return 'UNION'; } +'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } +'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } +'VALUES' { return 'VALUES'; } +'VARCHAR' { return 'VARCHAR'; } +'VIEW' { return 'VIEW'; } +'WHEN' { return 'WHEN'; } +'WHERE' { return 'WHERE'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } + +// Non-reserved Keywords +'OVER' { return 'OVER'; } +'ROLE' { return 'ROLE'; } + +// --- UDFs --- +AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } +CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } +COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } +MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } +MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } +STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } +STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } +SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } +VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } +VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } +VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } + +// Analytical functions +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } + +[0-9]+ { return 'UNSIGNED_INTEGER'; } +[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } +[0-9]+E { return 'UNSIGNED_INTEGER_E'; } +[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } + +'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } +'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } +\s+['"] { return 'HDFS_START_QUOTE'; } +[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } +['"] { this.popState(); return 'HDFS_END_QUOTE'; } +<> { return 'EOF'; } + +'&&' { return 'AND'; } +'||' { return 'OR'; } + +'=' { return '='; } +'<' { return '<'; } +'>' { return '>'; } +'!=' { return 'COMPARISON_OPERATOR'; } +'<=' { return 'COMPARISON_OPERATOR'; } +'>=' { return 'COMPARISON_OPERATOR'; } +'<>' { return 'COMPARISON_OPERATOR'; } +'<=>' { return 'COMPARISON_OPERATOR'; } + +'-' { return '-'; } +'*' { return '*'; } +'+' { return 'ARITHMETIC_OPERATOR'; } +'/' { return 'ARITHMETIC_OPERATOR'; } +'%' { return 'ARITHMETIC_OPERATOR'; } +'|' { return 'ARITHMETIC_OPERATOR'; } +'^' { return 'ARITHMETIC_OPERATOR'; } +'&' { return 'ARITHMETIC_OPERATOR'; } + +',' { return ','; } +'.' { return '.'; } +':' { return ':'; } +';' { return ';'; } +'~' { return '~'; } +'!' { return '!'; } + +'(' { return '('; } +')' { return ')'; } +'[' { return '['; } +']' { return ']'; } + +\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } + +\` { this.begin('backtickedValue'); return 'BACKTICK'; } +[^`]+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\` { this.popState(); return 'BACKTICK'; } + +\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } +(?:\\\\|\\[']|[^'])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\' { this.popState(); return 'SINGLE_QUOTE'; } + +\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } +(?:\\\\|\\["]|[^"])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\" { this.popState(); return 'DOUBLE_QUOTE'; } + +<> { return 'EOF'; } + +. { /* To prevent console logging of unknown chars */ } +. { } +. { } +. { } +. { } +. { } diff --git a/src/jison/sql/calcite/sql_alter.jison b/src/jison/sql/calcite/sql_alter.jison new file mode 100644 index 0000000..82acf8f --- /dev/null +++ b/src/jison/sql/calcite/sql_alter.jison @@ -0,0 +1,109 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : AlterStatement + ; + +DataDefinition_EDIT + : AlterStatement_EDIT + ; + +AlterStatement + : AlterTable + | AlterView + ; + +AlterStatement_EDIT + : AlterTable_EDIT + | AlterView_EDIT + | 'ALTER' 'CURSOR' + { + parser.suggestKeywords(['TABLE', 'VIEW']); + } + ; + +AlterTable + : AlterTableLeftSide PartitionSpec + ; + +AlterTable_EDIT + : AlterTableLeftSide_EDIT + | AlterTableLeftSide_EDIT PartitionSpec + | AlterTableLeftSide 'CURSOR' + | AlterTableLeftSide PartitionSpec 'CURSOR' + ; + +AlterTableLeftSide + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterTableLeftSide_EDIT + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'ALTER' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +AlterView + : AlterViewLeftSide 'AS' QuerySpecification + ; + +AlterView_EDIT + : AlterViewLeftSide_EDIT + | AlterViewLeftSide 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | AlterViewLeftSide 'SET' 'CURSOR' + | AlterViewLeftSide 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | AlterViewLeftSide 'AS' QuerySpecification_EDIT + ; + + +AlterViewLeftSide + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterViewLeftSide_EDIT + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'ALTER' 'VIEW' 'CURSOR' + { + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; diff --git a/src/jison/sql/calcite/sql_create.jison b/src/jison/sql/calcite/sql_create.jison new file mode 100644 index 0000000..1329ac6 --- /dev/null +++ b/src/jison/sql/calcite/sql_create.jison @@ -0,0 +1,615 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : CreateStatement + ; + +DataDefinition_EDIT + : CreateStatement_EDIT + ; + +CreateStatement + : DatabaseDefinition + | TableDefinition + | ViewDefinition + | RoleDefinition + ; + +CreateStatement_EDIT + : DatabaseDefinition_EDIT + | TableDefinition_EDIT + | ViewDefinition_EDIT + | 'CREATE' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DatabaseDefinition + : 'CREATE' DatabaseOrSchema OptionalIfNotExists + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT + | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinitionOptionals + : OptionalComment + { + if (!$1) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +DatabaseDefinitionOptionals_EDIT + : OptionalComment_INVALID + ; + +OptionalComment + : + | Comment + ; + +Comment + : 'COMMENT' QuotedValue + ; + +OptionalComment_INVALID + : Comment_INVALID + ; + +Comment_INVALID + : 'COMMENT' SINGLE_QUOTE + | 'COMMENT' DOUBLE_QUOTE + | 'COMMENT' SINGLE_QUOTE VALUE + | 'COMMENT' DOUBLE_QUOTE VALUE + ; + +TableDefinition + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart + ; + +TableDefinition_EDIT + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT + | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT + ; + +TableDefinitionRightPart + : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement + ; + +TableDefinitionRightPart_EDIT + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' + { + var keywords = []; + if (!$1 && !$2) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$2) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + ; + +TableIdentifierAndOptionalColumnSpecification + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } + ; + +TableIdentifierAndOptionalColumnSpecification_EDIT + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT + | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike + ; + +OptionalColumnSpecificationsOrLike + : + | ParenthesizedColumnSpecificationList + | 'LIKE' SchemaQualifiedTableIdentifier -> [] + ; + +OptionalColumnSpecificationsOrLike_EDIT + : ParenthesizedColumnSpecificationList_EDIT + | 'LIKE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LIKE' SchemaQualifiedTableIdentifier_EDIT + ; + +ParenthesizedColumnSpecificationList + : '(' ColumnSpecificationList ')' -> $2 + ; + +ParenthesizedColumnSpecificationList_EDIT + : '(' ColumnSpecificationList_EDIT RightParenthesisOrError + ; + +ColumnSpecificationList + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) + ; + +ColumnSpecificationList_EDIT + : ColumnSpecification_EDIT + | ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecificationList ',' ColumnSpecification_EDIT + | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($1); + } + | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($1); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($3); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($3); + } + ; + +ColumnSpecification + : ColumnIdentifier ColumnDataType OptionalColumnOptions + { + $$ = $1; + $$.type = $2; + var keywords = []; + if (!$3['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +ColumnSpecification_EDIT + : ColumnIdentifier 'CURSOR' OptionalColumnOptions + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions + | ColumnIdentifier ColumnDataType ColumnOptions_EDIT + ; + +OptionalColumnOptions + : -> {} + | ColumnOptions + ; + +ColumnOptions + : ColumnOption + { + $$ = {}; + $$[$1] = true; + } + | ColumnOptions ColumnOption + { + $1[$2] = true; + } + ; + +ColumnOptions_EDIT + : ColumnOption_EDIT + | ColumnOption_EDIT ColumnOptions + | ColumnOptions ColumnOption_EDIT + | ColumnOptions ColumnOption_EDIT ColumnOptions + ; + +ColumnOption + : 'NOT' 'NULL' -> 'null' + | 'NULL' -> 'null' + | Comment -> 'comment' + ; + +ColumnOption_EDIT + : 'NOT' 'CURSOR' + { + parser.suggestKeywords(['NULL']); + } + ; + +ColumnDataType + : PrimitiveType + | ArrayType + | MapType + | StructType + | ArrayType_INVALID + | MapType_INVALID + | StructType_INVALID + ; + +ColumnDataType_EDIT + : ArrayType_EDIT + | MapType_EDIT + | StructType_EDIT + ; + +ArrayType + : 'ARRAY' '<' ColumnDataType '>' + ; + +ArrayType_INVALID + : 'ARRAY' '<' '>' + ; + +ArrayType_EDIT + : 'ARRAY' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError + ; + +MapType + : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' + ; + +MapType_INVALID + : 'MAP' '<' '>' + ; + +MapType_EDIT + : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError + | 'MAP' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'MAP' '<' ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + ; + +StructType + : 'STRUCT' '<' StructDefinitionList '>' + ; + +StructType_INVALID + : 'STRUCT' '<' '>' + ; + +StructType_EDIT + : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError + ; + +StructDefinitionList + : StructDefinition + | StructDefinitionList ',' StructDefinition + ; + +StructDefinitionList_EDIT + : StructDefinition_EDIT + | StructDefinition_EDIT Commas + | StructDefinition_EDIT Commas StructDefinitionList + | StructDefinitionList ',' StructDefinition_EDIT + | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList + ; + +StructDefinition + : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment + ; + +StructDefinition_EDIT + : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | Commas RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + ; + +ColumnDataTypeList + : ColumnDataType + | ColumnDataTypeList ',' ColumnDataType + ; + +ColumnDataTypeList_EDIT + : ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + ; + +ColumnDataTypeListInner_EDIT + : Commas AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas ColumnDataType_EDIT + | AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnDataType_EDIT + ; + +GreaterThanOrError + : '>' + | error + ; + +OptionalPartitionedBy + : + | PartitionedBy + ; + +PartitionedBy + : 'PARTITION' 'BY' RangeClause + ; + +PartitionedBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.suggestKeywords(['RANGE']); + } + | 'PARTITION' 'BY' RangeClause_EDIT + ; + +RangeClause + : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList + ; + +RangeClause_EDIT + : 'RANGE' 'CURSOR' + | 'RANGE' ParenthesizedColumnList_EDIT + | 'RANGE' ParenthesizedColumnList 'CURSOR' + | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT + | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList + ; + +ParenthesizedPartitionValuesList + : '(' PartitionValueList ')' + ; + +ParenthesizedPartitionValuesList_EDIT + : '(' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['PARTITION']); + } + |'(' PartitionValueList_EDIT RightParenthesisOrError + ; + +PartitionValueList + : PartitionValue + | PartitionValueList ',' PartitionValue + ; + +PartitionValueList_EDIT + : PartitionValue_EDIT + | PartitionValueList ',' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' 'CURSOR' ',' PartitionValueList + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' PartitionValue_EDIT + | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList + ; + +PartitionValue + : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' + ; + +PartitionValue_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['VALUE', 'VALUES']); + } + | 'PARTITION' ValueExpression_EDIT + { + if ($2.endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + } + | 'PARTITION' ValueExpression 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + | 'PARTITION' 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + ; + +LessThanOrEqualTo + : '<' + | 'COMPARISON_OPERATOR' // This is fine for autocompletion + ; + +OptionalAsSelectStatement + : + | 'AS' CommitLocations QuerySpecification + ; + +OptionalAsSelectStatement_EDIT + : 'AS' CommitLocations 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'AS' CommitLocations QuerySpecification_EDIT + ; + +CommitLocations + : /* empty */ + { + parser.commitLocations(); + } + ; + +ViewDefinition + : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +ViewDefinition_EDIT + : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' + { + var keywords = [{value: 'AS', weight: 1 }]; + if (!$6) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +OptionalParenthesizedViewColumnList + : + | ParenthesizedViewColumnList + ; + +ParenthesizedViewColumnList + : '(' ViewColumnList ')' + ; + +ParenthesizedViewColumnList_EDIT + : '(' ViewColumnList_EDIT RightParenthesisOrError + { + if (!$2) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +ViewColumnList + : ColumnReference OptionalComment + | ViewColumnList ',' ColumnReference OptionalComment + ; + +ViewColumnList_EDIT + : ColumnReference OptionalComment 'CURSOR' -> $2 + | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 + ; + +RoleDefinition + : 'CREATE' 'ROLE' RegularIdentifier + ; diff --git a/src/jison/sql/calcite/sql_drop.jison b/src/jison/sql/calcite/sql_drop.jison new file mode 100644 index 0000000..0e3aa53 --- /dev/null +++ b/src/jison/sql/calcite/sql_drop.jison @@ -0,0 +1,184 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : DropStatement + ; + +DataDefinition_EDIT + : DropStatement_EDIT + ; + +DropStatement + : DropDatabaseStatement + | DropRoleStatement + | DropTableStatement + | DropViewStatement + | TruncateTableStatement + ; + +DropStatement_EDIT + : DropDatabaseStatement_EDIT + | DropTableStatement_EDIT + | DropViewStatement_EDIT + | TruncateTableStatement_EDIT + | 'DROP' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DropDatabaseStatement + : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade + ; + +DropDatabaseStatement_EDIT + : 'DROP' DatabaseOrSchema OptionalIfExists + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + } + | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CASCADE']); + } + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + ; +DropRoleStatement + : 'DROP' 'ROLE' RegularIdentifier + ; + +DropTableStatement + : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement_EDIT + : 'DROP' 'TABLE' OptionalIfExists_EDIT + | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PURGE']); + } + } + ; + +OptionalPurge + : + | 'PURGE' + ; + +DropViewStatement + : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropViewStatement_EDIT + : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($5); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'VIEW' OptionalIfExists_EDIT + | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +TruncateTableStatement + : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +TruncateTableStatement_EDIT + : 'TRUNCATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($4); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec + ; diff --git a/src/jison/sql/calcite/sql_error.jison b/src/jison/sql/calcite/sql_error.jison new file mode 100644 index 0000000..48b9a4e --- /dev/null +++ b/src/jison/sql/calcite/sql_error.jison @@ -0,0 +1,132 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlStatements + : error + | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? + ; + +SqlStatement_EDIT + : AnyCursor error + { + parser.suggestDdlAndDmlKeywords(); + } + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT + ; + +SelectList_ERROR + : ErrorList + | SelectList ',' ErrorList + | ErrorList ',' SelectList ',' ErrorList + | ErrorList ',' SelectList + | SelectList ',' ErrorList ',' SelectList + ; + +SelectList_ERROR_EDIT + : ErrorList ',' SelectList_EDIT -> $3 + | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 + | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 + | ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | ErrorList ',' SelectList ',' Errors ',' AnyCursor + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + ; + +SetSpecification + : 'SET' SetOption '=' error + ; + +ErrorList + : error + | Errors ',' error + ; + +JoinType_EDIT + : 'FULL' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'LEFT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'RIGHT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$4 && !$5 && !$6 && !$7 + }; + } + | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$6 && !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' + ; + +OptionalSelectConditions_EDIT + : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error + ; diff --git a/src/jison/sql/calcite/sql_insert.jison b/src/jison/sql/calcite/sql_insert.jison new file mode 100644 index 0000000..8b3544e --- /dev/null +++ b/src/jison/sql/calcite/sql_insert.jison @@ -0,0 +1,72 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : InsertStatement + ; + +InsertStatement + : InsertValuesStatement + ; + +DataManipulation_EDIT + : InsertValuesStatement_EDIT + ; + +InsertValuesStatement + : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + ; + +InsertValuesStatement_EDIT + : 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['INTO']); + } + | 'INSERT' 'INTO' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + parser.suggestKeywords(['VALUES']); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList + ; + +InsertValuesList + : ParenthesizedRowValuesList + | RowValuesList ',' ParenthesizedRowValuesList + ; + +ParenthesizedRowValuesList + : '(' InValueList ')' + ; + +OptionalTable + : + | 'TABLE' + ; diff --git a/src/jison/sql/calcite/sql_main.jison b/src/jison/sql/calcite/sql_main.jison new file mode 100644 index 0000000..3aaf9f9 --- /dev/null +++ b/src/jison/sql/calcite/sql_main.jison @@ -0,0 +1,2762 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlSyntax + : NewStatement SqlStatements EOF + ; + +SqlAutocomplete + : NewStatement SqlStatements EOF + { + return parser.yy.result; + } + | NewStatement SqlStatements_EDIT EOF + { + return parser.yy.result; + } + ; + +NewStatement + : /* empty */ + { + parser.prepareNewStatement(); + } + ; + +SqlStatements + : + | SqlStatement + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatements + ; + +SqlStatements_EDIT + : SqlStatement_EDIT + { + parser.addStatementLocation(@1); + } + | SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT + { + parser.addStatementLocation(@4); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@4); + } + ; + +SqlStatement + : DataDefinition + | DataManipulation + | QuerySpecification + ; + +SqlStatement_EDIT + : AnyCursor + { + parser.suggestDdlAndDmlKeywords(); + } + | CommonTableExpression 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | DataDefinition_EDIT + | DataManipulation_EDIT + | QuerySpecification_EDIT + | SetSpecification_EDIT + ; + +NonReservedKeyword + : 'ROLE' + | 'OPTION' + | 'STRUCT' + ; + +RegularIdentifier + : 'REGULAR_IDENTIFIER' + | 'VARIABLE_REFERENCE' + | NonReservedKeyword + ; + +// This is a work-around for error handling when a statement starts with some token that the parser can understand but +// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) +NonStartingToken + : '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '<' + | '=' + | '>' + | '[' + | ']' + | '~' + | 'ALL' + | 'ANALYTIC' + | 'AND' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'AS' + | 'ASC' + | 'AVG' + | 'BACKTICK' + | 'BETWEEN' + | 'BIGINT' + | 'BOOLEAN' + | 'BY' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'COMPARISON_OPERATOR' + | 'COUNT' + | 'CROSS' + | 'CURRENT' + | 'DATABASE' + | 'DECIMAL' + | 'DESC' + | 'DISTINCT' + | 'DOUBLE' + | 'DOUBLE_QUOTE' + | 'ELSE' + | 'END' + | 'EXISTS' + | 'FALSE' + | 'FLOAT' + | 'FOLLOWING' + | 'FROM' + | 'FULL' + | 'GROUP' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'IF' + | 'IN' + | 'INNER' + | 'INT' + | 'INTO' + | 'IS' + | 'JOIN' + | 'LEFT' + | 'LIKE' + | 'LIMIT' + | 'MAP' + | 'MAX' + | 'MIN' + | 'NOT' + | 'NULL' + | 'ON' + | 'OPTION' + | 'OR' + | 'ORDER' + | 'OUTER' + | 'OVER' + | 'PARTITION' + | 'PRECEDING' + | 'PURGE' + | 'RANGE' + | 'REGEXP' + | 'REGULAR_IDENTIFIER' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROW' + | 'ROWS' + | 'SCHEMA' + | 'SEMI' + | 'SET' + | 'SINGLE_QUOTE' + | 'SMALLINT' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STRING' + | 'STRUCT' + | 'SUM' + | 'TABLE' + | 'THEN' + | 'TIMESTAMP' + | 'TINYINT' + | 'TRUE' + | 'UNION' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'WHEN' + | 'WHERE' + ; + +// ===================================== Commonly used constructs ===================================== + +Commas + : ',' + | Commas ',' + ; + +AnyCursor + : 'CURSOR' + | 'PARTIAL_CURSOR' + ; + +FromOrIn + : 'FROM' + | 'IN' + ; + +DatabaseOrSchema + : 'DATABASE' + | 'SCHEMA' + ; + +SingleQuotedValue + : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 + | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' + ; + +SingleQuotedValue_EDIT + : 'SINGLE_QUOTE' 'PARTIAL_VALUE' + ; + +DoubleQuotedValue + : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 + | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' + ; + +DoubleQuotedValue_EDIT + : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' + ; + +QuotedValue + : SingleQuotedValue + | DoubleQuotedValue + ; + +QuotedValue_EDIT + : SingleQuotedValue_EDIT + | DoubleQuotedValue_EDIT + ; + +OptionalFromDatabase + : + | FromOrIn DatabaseIdentifier + ; + +OptionalFromDatabase_EDIT + : FromOrIn DatabaseIdentifier_EDIT + ; + +OptionalCascade + : + | 'CASCADE' + ; + +OptionalIfExists + : + | 'IF' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalIfNotExists + : + | 'IF' 'NOT' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfNotExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['NOT EXISTS']); + } + | 'IF' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalInDatabase + : + | 'IN' DatabaseIdentifier + | 'IN' DatabaseIdentifier_EDIT + ; + +OptionalPartitionSpec + : + | PartitionSpec + ; + +OptionalPartitionSpec_EDIT + : PartitionSpec_EDIT + ; + +PartitionSpec + : 'PARTITION' '(' PartitionSpecList ')' + ; + +PartitionSpec_EDIT + : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +RangePartitionSpec + : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + ; + +RangePartitionSpec_EDIT + : UnsignedValueSpecification 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + ; + +RangePartitionComparisonOperator + : 'COMPARISON_OPERATOR' + | '=' + | '<' + | '>' + ; + +ConfigurationName + : RegularIdentifier + | 'CURSOR' + ; + +PartialBacktickedOrAnyCursor + : AnyCursor + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrCursor + : 'CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrPartialCursor + : 'PARTIAL_CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedIdentifier + : 'BACKTICK' 'PARTIAL_VALUE' + ; + +RightParenthesisOrError + : ')' + | error + ; + +OptionalParenthesizedColumnList + : + | ParenthesizedColumnList + ; + +OptionalParenthesizedColumnList_EDIT + : ParenthesizedColumnList_EDIT + ; + +ParenthesizedColumnList + : '(' ColumnList ')' + ; + +ParenthesizedColumnList_EDIT + : '(' ColumnList_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +ColumnList + : ColumnIdentifier + | ColumnList ',' ColumnIdentifier + ; + +ColumnList_EDIT + : ColumnList ',' AnyCursor + { + parser.suggestColumns(); + } + | ColumnList ',' AnyCursor ',' ColumnList + { + parser.suggestColumns(); + } + ; + +ParenthesizedSimpleValueList + : '(' SimpleValueList ')' + ; + +SimpleValueList + : UnsignedValueSpecification + | SimpleValueList ',' UnsignedValueSpecification + ; + +SchemaQualifiedTableIdentifier + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +SchemaQualifiedTableIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + +SchemaQualifiedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] + ; + +SchemaQualifiedIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + ; + +DatabaseIdentifier + : RegularOrBacktickedIdentifier + ; + +DatabaseIdentifier_EDIT + : PartialBacktickedOrCursor + { + parser.suggestDatabases(); + } + ; + +PartitionSpecList + : PartitionExpression + | PartitionSpecList ',' PartitionExpression + ; + +PartitionSpecList_EDIT + : PartitionExpression_EDIT + | PartitionSpecList ',' PartitionExpression_EDIT + | PartitionExpression_EDIT ',' PartitionSpecList + | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList + ; + +PartitionExpression + : ColumnIdentifier '=' ValueExpression + ; + +PartitionExpression_EDIT + : ColumnIdentifier '=' ValueExpression_EDIT + | ColumnIdentifier '=' AnyCursor + { + parser.valueExpressionSuggest(); + } + | PartialBacktickedIdentifier '=' ValueExpression + { + parser.suggestColumns(); + } + | AnyCursor + { + parser.suggestColumns(); + } + ; + +RegularOrBacktickedIdentifier + : RegularIdentifier + | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 + | 'BACKTICK' 'BACKTICK' -> '' + ; + +// TODO: Same as SchemaQualifiedTableIdentifier? +RegularOrBackTickedSchemaQualifiedName + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +RegularOrBackTickedSchemaQualifiedName_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + + +LocalOrSchemaQualifiedName + : RegularOrBackTickedSchemaQualifiedName + | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } + ; + +LocalOrSchemaQualifiedName_EDIT + : RegularOrBackTickedSchemaQualifiedName_EDIT + | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier + ; + +ColumnReference + : BasicIdentifierChain + { + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnReference_EDIT + : BasicIdentifierChain_EDIT + ; + +BasicIdentifierChain + : ColumnIdentifier + { + $$ = [ $1.identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); + } + | BasicIdentifierChain '.' ColumnIdentifier + { + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $1.push($3.identifier); + parser.addUnknownLocation($3.location, $1.concat()); + } + ; + +// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) +BasicIdentifierChain_EDIT + : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + ; + +DerivedColumnChain + : ColumnIdentifier -> [ $1.identifier ] + | DerivedColumnChain '.' ColumnIdentifier + { + $1.push($3.identifier); + } + ; + +DerivedColumnChain_EDIT + : PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns(); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns({ identifierChain: $1 }); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns({ identifierChain: $1 }); + } + | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns(); + } + ; + +ColumnIdentifier + : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } + ; + +PartialBacktickedIdentifierOrPartialCursor + : PartialBacktickedIdentifier + | 'PARTIAL_CURSOR' + ; + +PrimitiveType + : 'BIGINT' + | 'BOOLEAN' + | 'CHAR' OptionalTypeLength + | 'DECIMAL' OptionalTypePrecision + | 'DOUBLE' + | 'FLOAT' + | 'INT' + | 'SMALLINT' + | 'STRING' + | 'TIMESTAMP' + | 'TINYINT' + | 'VARCHAR' OptionalTypeLength + ; + +OptionalTypeLength + : + | '(' 'UNSIGNED_INTEGER' ')' + ; + +OptionalTypePrecision + : + | '(' 'UNSIGNED_INTEGER' ')' + | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' + ; + +// ===================================== SELECT statement ===================================== + +QuerySpecification + : SelectStatement OptionalUnions -> $1 + | CommonTableExpression SelectStatement OptionalUnions + | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 + ; + +QuerySpecification_EDIT + : SelectStatement_EDIT OptionalUnions + | SelectStatement OptionalUnions_EDIT + | CommonTableExpression '(' QuerySpecification_EDIT ')' + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement_EDIT OptionalUnions + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement OptionalUnions_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT + | CommonTableExpression_EDIT '(' QuerySpecification ')' + | CommonTableExpression_EDIT SelectStatement OptionalUnions + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3 }; + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3, tableExpression: $4 } + } + ; + +OptionalUnions + : + | Unions + ; + +OptionalUnions_EDIT + : Unions_EDIT + ; + +Unions + : UnionClause + | Unions UnionClause + ; + +Unions_EDIT + : UnionClause_EDIT + | Unions UnionClause_EDIT + | UnionClause_EDIT Unions + | Unions UnionClause_EDIT Unions + ; + +UnionClause + : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement + ; + +UnionClause_EDIT + : 'UNION' NewStatement 'CURSOR' + { + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + } + | 'UNION' NewStatement 'CURSOR' SelectStatement + { + parser.suggestKeywords(['ALL', 'DISTINCT']); + } + | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + if ($3.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($4); + } + if ($3.suggestFunctions) { + parser.suggestFunctions(); + } + if ($3.suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($3.suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($3.suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.selectListNoTableSuggest($3, $2); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + } + ; + +CommonTableExpression + : 'WITH' WithQueries -> $2 + ; + +CommonTableExpression_EDIT + : 'WITH' WithQueries_EDIT + ; + +WithQueries + : WithQuery -> [$1] + | WithQueries ',' WithQuery -> $1.concat([$3]) + ; + +WithQueries_EDIT + : WithQuery_EDIT + | WithQueries ',' WithQuery_EDIT + { + parser.addCommonTableExpressions($1); + } + | WithQuery_EDIT ',' WithQueries + | WithQueries ',' WithQuery_EDIT ',' WithQueries + { + parser.addCommonTableExpressions($1); + } + ; + +WithQuery + : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' + { + parser.addCteAliasLocation(@1, $1); + $4.alias = $1; + $$ = $4; + } + ; + +WithQuery_EDIT + : RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError + ; + +OptionalAllOrDistinct + : + | 'ALL' + | 'DISTINCT' + ; + +TableExpression + : FromClause OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + ; + +TableExpression_EDIT + : FromClause_EDIT OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins + { + var keywords = []; + + parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + + if ($1) { + if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); + } + if ($1.tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); + } + if ($1.tableReferenceList.suggestJoins) { + parser.suggestJoins($1.tableReferenceList.suggestJoins); + } + if ($1.tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE') { + keyword.weight = 1.1; + } + }); + + if ($1.tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($1.tableReferenceList); + } + } + } + + if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($3.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); + } + + if ($3.suggestFilters) { + parser.suggestFilters($3.suggestFilters); + } + if ($3.suggestGroupBys) { + parser.suggestGroupBys($3.suggestGroupBys); + } + if ($3.suggestOrderBys) { + parser.suggestOrderBys($3.suggestOrderBys); + } + + if ($3.empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + } + | FromClause OptionalSelectConditions_EDIT OptionalJoins + { + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$2) { + parser.addClauseLocation('whereClause', @1); + parser.addClauseLocation('limitClause', @1); + return; + } + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + var keywords = []; + + if ($2.suggestColRefKeywords) { + parser.suggestColRefKeywords($2.suggestColRefKeywords); + parser.addColRefIfExists($2); + } + + if ($2.suggestKeywords && $2.suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); + } + + if ($2.cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + } + ; + +OptionalJoins + : + | Joins + | Joins_INVALID + ; + +FromClause + : 'FROM' TableReferenceList + { + $$ = { tableReferenceList : $2 } + } + ; + +FromClause_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReferenceList_EDIT + ; + +OptionalSelectConditions + : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$1, $2, $3, $4, $5], + [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true]); + + if (keywords.length > 0) { + $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; + } else { + $$ = {}; + } + + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $5 ? @5 : undefined; + + if (!$1 && !$2 && !$3 && !$4 && !$5) { + $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$2 && !$3 && !$4 && !$5) { + $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$4 && !$5) { + $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + } + | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + } + | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + ; + +OptionalSelectConditions_EDIT + : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$3, $4, $5, $6], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true]); + if ($1.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); + } + $$ = parser.getValueExpressionKeywords($1, keywords); + $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; + if ($1.columnReference) { + $$.columnReference = $1.columnReference; + } + if (!$3) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$3 && !$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$4, $5, $6], + [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true]); + if ($2.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); + } + if ($2.valueExpression) { + $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); + if ($2.valueExpression.columnReference) { + $$.columnReference = $2.valueExpression.columnReference; + } + } else { + $$ = { suggestKeywords: keywords }; + } + $$.cursorAtEnd = !$4 && !$5 && !$6; + if (!$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$5, $6], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; + if (!$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$6], + [{ value: 'LIMIT', weight: 3 }], + [true]); + if ($4.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' + { + $$ = { suggestKeywords: [], cursorAtEnd: true }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = @5; + } + ; + +OptionalWhereClause + : + | WhereClause + ; + +WhereClause + : 'WHERE' SearchCondition -> $2 + ; + +WhereClause_EDIT + : 'WHERE' SearchCondition_EDIT + { + if ($2.suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'WHERE' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OptionalGroupByClause + : + | GroupByClause + ; + +GroupByClause + : 'GROUP' 'BY' GroupByColumnList + { + $$ = { valueExpression: $3 }; + } + ; + +GroupByClause_EDIT + : 'GROUP' 'BY' GroupByColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + | 'GROUP' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +ColumnGroupingSets + : + | ColumnReference + | ColumnGroupingSets ',' ColumnGroupingSets + | '(' ColumnGroupingSets ')' + ; + +ColumnGroupingSets_EDIT + : ColumnGroupingSet_EDIT + | ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSet_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + ; + +GroupByColumnList + : ValueExpression + | GroupByColumnList ',' ValueExpression -> $3 + ; + +GroupByColumnList_EDIT + : ValueExpression_EDIT + | 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + } + | 'CURSOR' ',' GroupByColumnList + { + parser.valueExpressionSuggest(); + } + | ValueExpression_EDIT ',' GroupByColumnList + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList + ; + +GroupByColumnListPartTwo_EDIT + : ValueExpression_EDIT + | AnyCursor ValueExpression + { + parser.valueExpressionSuggest(); + } + | AnyCursor + { + parser.valueExpressionSuggest(); + } + ; + +OptionalOrderByClause + : + | OrderByClause + ; + +OrderByClause + : 'ORDER' 'BY' OrderByColumnList -> $3 + ; + +OrderByClause_EDIT + : 'ORDER' 'BY' OrderByColumnList_EDIT + { + if ($3.emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'ORDER' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OrderByColumnList + : OrderByIdentifier + | OrderByColumnList ',' OrderByIdentifier -> $3 + ; + +OrderByColumnList_EDIT + : OrderByIdentifier_EDIT + | 'CURSOR' OrderByIdentifier + { + $$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } + ; + +OrderByIdentifier + : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) + ; + +OrderByIdentifier_EDIT + : ValueExpression_EDIT OptionalAscOrDesc + { + parser.suggestSelectListAliases(); + } + | AnyCursor OptionalAscOrDesc + { + $$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + ; + +OptionalAscOrDesc + : + { + $$ = { suggestKeywords: ['ASC', 'DESC'] }; + } + | 'ASC' + | 'DESC' + ; + +OptionalLimitClause + : + | LimitClause + ; + +LimitClause + : 'LIMIT' UnsignedNumericLiteral + | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral + | 'LIMIT' 'VARIABLE_REFERENCE' + | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' + ; + +LimitClause_EDIT + : 'LIMIT' 'CURSOR' + ; + +SearchCondition + : ValueExpression + ; + +SearchCondition_EDIT + : ValueExpression_EDIT + ; + +ValueExpression + : NonParenthesizedValueExpressionPrimary + ; + +ValueExpression_EDIT + : NonParenthesizedValueExpressionPrimary_EDIT + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpressionList + : ValueExpression + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression + { + $3.position = $1.position + 1; + $$ = $3; + } + ; + +ValueExpressionList_EDIT + : ValueExpression_EDIT + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT + { + $1.position += 1; + } + | ValueExpression_EDIT ',' ValueExpressionList + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList + { + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList 'CURSOR' ',' ValueExpressionList + { + parser.suggestValueExpressionKeywords($1); + } + | AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | AnyCursor ',' + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | ',' AnyCursor + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + | ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + ; + +InValueList + : NonParenthesizedValueExpressionPrimary + | InValueList ',' NonParenthesizedValueExpressionPrimary + ; + +NonParenthesizedValueExpressionPrimary + : UnsignedValueSpecification + | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart + { + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.expression) { + $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } + } else { + $$ = { function: fn, types: parser.findReturnTypes(fn) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | UserDefinedFunction + | 'NULL' -> { types: [ 'NULL' ] } + ; + +NonParenthesizedValueExpressionPrimary_EDIT + : UnsignedValueSpecification_EDIT + | ColumnOrArbitraryFunctionRef_EDIT + { + if ($1.suggestKeywords) { + $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; + } else { + $$ = { types: ['COLREF'], columnReference: $1 }; + } + } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT + { + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.position) { + parser.applyArgumentTypesToSuggestions(fn, $2.position); + } + $$ = { types: parser.findReturnTypes(fn) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | UserDefinedFunction_EDIT + ; + +ColumnOrArbitraryFunctionRef + : BasicIdentifierChain + { + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; + $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnOrArbitraryFunctionRef_EDIT + : BasicIdentifierChain_EDIT + ; + +SignedInteger + : UnsignedNumericLiteral + | '-' UnsignedNumericLiteral + | '+' UnsignedNumericLiteral + ; + +UnsignedValueSpecification + : UnsignedLiteral + ; + +UnsignedValueSpecification_EDIT + : UnsignedLiteral_EDIT + { + parser.suggestValues($1); + } + ; + +UnsignedLiteral + : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } + | GeneralLiteral + ; + +UnsignedLiteral_EDIT + : GeneralLiteral_EDIT + ; + +UnsignedNumericLiteral + : ExactNumericLiteral + | ApproximateNumericLiteral + ; + +ExactNumericLiteral + : 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' -> $1 + $2 + | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 + | '.' 'UNSIGNED_INTEGER' -> $1 + $2 + ; + +ApproximateNumericLiteral + : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + ; + +GeneralLiteral + : SingleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | DoubleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | TruthValue -> { types: [ 'BOOLEAN' ] } + ; + +GeneralLiteral_EDIT + : SingleQuotedValue_EDIT + { + $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + } + | DoubleQuotedValue_EDIT + { + $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + } + ; + +TruthValue + : 'TRUE' + | 'FALSE' + ; + +OptionalNot + : + | 'NOT' + ; + +SelectSpecification + : ValueExpression OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + $$ = { valueExpression: $1, alias: $2.alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); + } else { + $$ = { valueExpression: $1 } + } + } + | '*' + { + parser.addAsteriskLocation(@1, [{ asterisk: true }]); + $$ = { asterisk: true } + } + ; + +SelectSpecification_EDIT + : ValueExpression_EDIT OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + } + } + + | AnyCursor 'AS' RegularOrBacktickedIdentifier + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(@3, $3, @1); + $$ = { suggestAggregateFunctions: true }; + } + | ValueExpression OptionalCorrelationName_EDIT -> $2 + ; + +SelectList + : SelectSpecification -> [ $1 ] + | SelectList ',' SelectSpecification + { + $1.push($3); + } + ; + +SelectList_EDIT + : SelectSpecification_EDIT + | 'CURSOR' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | 'CURSOR' ',' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectSpecification_EDIT ',' SelectList + | SelectList 'CURSOR' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList 'CURSOR' ',' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList ',' AnyCursor + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' SelectSpecification_EDIT -> $3 + | SelectList ',' AnyCursor SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' AnyCursor ',' + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' -> $3 + | SelectList ',' AnyCursor ',' SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 + ; + +TableReferenceList + : TableReference + | TableReferenceList ',' TableReference -> $3 + ; + +TableReferenceList_EDIT + : TableReference_EDIT + | TableReference_EDIT ',' TableReference + | TableReferenceList ',' TableReference_EDIT + | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList + | TableReferenceList ',' AnyCursor + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TableReference + : TablePrimaryOrJoinedTable + ; + +TableReference_EDIT + : TablePrimaryOrJoinedTable_EDIT + ; + +TablePrimaryOrJoinedTable + : TablePrimary + { + $$ = $1; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + $$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + } + | JoinedTable + ; + +TablePrimaryOrJoinedTable_EDIT + : TablePrimary_EDIT + | JoinedTable_EDIT + ; + +JoinedTable + : TablePrimary Joins -> $2 + ; + +JoinedTable_EDIT + : TablePrimary Joins_EDIT + | TablePrimary_EDIT Joins + ; + +Joins + : JoinType TablePrimary OptionalJoinCondition + { + if ($3 && $3.valueExpression) { + $$ = $3.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($3.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($3.suggestKeywords) { + $$.suggestKeywords = $3.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + | Joins JoinType TablePrimary OptionalJoinCondition + { + if ($4 && $4.valueExpression) { + $$ = $4.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($4.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($4.suggestKeywords) { + $$.suggestKeywords = $4.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + ; + +Joins_INVALID + : JoinType -> { joinType: $1 } + | JoinType Joins -> { joinType: $1 } + ; + +Join_EDIT + : JoinType_EDIT TablePrimary OptionalJoinCondition + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType_EDIT + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType TablePrimary_EDIT OptionalJoinCondition + | JoinType TablePrimary JoinCondition_EDIT + | JoinType 'CURSOR' OptionalJoinCondition + { + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $1, + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + ; + +Joins_EDIT + : Join_EDIT + | Join_EDIT Joins + | Joins Join_EDIT + | Joins Join_EDIT Joins + ; + +JoinType + : 'CROSS' 'JOIN' -> 'CROSS JOIN' + | 'FULL' 'JOIN' -> 'FULL JOIN' + | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' + | 'INNER' 'JOIN' -> 'INNER JOIN' + | 'JOIN' -> 'JOIN' + | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' + | 'LEFT' 'JOIN' -> 'LEFT JOIN' + | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' + | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' + | 'OUTER' 'JOIN' -> 'OUTER JOIN' + | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' + | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' + | 'SEMI' 'JOIN' -> 'SEMI JOIN' + ; + +JoinType_EDIT + : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + ; + +OptionalJoinCondition + : -> { noJoinCondition: true, suggestKeywords: ['ON'] } + | 'ON' ValueExpression -> { valueExpression: $2 } + ; + +UsingColList + : RegularOrBacktickedIdentifier + | UsingColList ',' RegularOrBacktickedIdentifier + ; + +JoinCondition_EDIT + : 'ON' ValueExpression_EDIT + | 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + } + ; + +TablePrimary + : TableOrQueryName OptionalCorrelationName + { + $$ = { + primary: $1 + } + if ($1.identifierChain) { + if ($2) { + $1.alias = $2.alias + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } else if ($2.suggestKeywords) { + keywords = $2.suggestKeywords; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + | DerivedTable OptionalCorrelationName + { + $$ = { + primary: $1 + }; + + if ($2) { + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +TablePrimary_EDIT + : TableOrQueryName_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + } + | DerivedTable_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias); + } + } + | DerivedTable OptionalCorrelationName_EDIT + ; + +TableOrQueryName + : SchemaQualifiedTableIdentifier + ; + +TableOrQueryName_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +DerivedTable + : TableSubQuery + ; + +DerivedTable_EDIT + : TableSubQuery_EDIT + ; + +OptionalOnColumn + : + | 'ON' ValueExpression + ; + +OptionalOnColumn_EDIT + : 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'ON' ValueExpression_EDIT + ; + +PushQueryState + : + { + parser.pushQueryState(); + } + ; + +PopQueryState + : + { + parser.popQueryState(); + } + ; + +TableSubQuery + : '(' TableSubQueryInner ')' -> $2 + | '(' DerivedTable OptionalCorrelationName ')' + { + if ($3) { + $2.alias = $3.alias; + parser.addTablePrimary({ subQueryAlias: $3.alias }); + parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); + } + $$ = $2; + } + ; + +TableSubQuery_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + ; + +TableSubQueryInner + : PushQueryState SubQuery + { + var subQuery = parser.getSubQuery($2); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + $$ = subQuery; + } + ; + +TableSubQueryInner_EDIT + : PushQueryState SubQuery_EDIT PopQueryState + ; + +SubQuery + : QueryExpression + ; + +SubQuery_EDIT + : QueryExpression_EDIT + ; + +QueryExpression + : QueryExpressionBody + ; + +QueryExpression_EDIT + : QueryExpressionBody_EDIT + ; + +QueryExpressionBody + : NonJoinQueryExpression + ; + +QueryExpressionBody_EDIT + : NonJoinQueryExpression_EDIT + ; + +NonJoinQueryExpression + : NonJoinQueryTerm + ; + +NonJoinQueryExpression_EDIT + : NonJoinQueryTerm_EDIT + ; + +NonJoinQueryTerm + : NonJoinQueryPrimary + ; + +NonJoinQueryTerm_EDIT + : NonJoinQueryPrimary_EDIT + ; + +NonJoinQueryPrimary + : SimpleTable + ; + +NonJoinQueryPrimary_EDIT + : SimpleTable_EDIT + ; + +SimpleTable + : QuerySpecification + ; + +SimpleTable_EDIT + : QuerySpecification_EDIT + ; + +OptionalCorrelationName + : + | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } + | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | 'AS' QuotedValue -> { alias: $2, location: @2 } + ; + +OptionalCorrelationName_EDIT + : PartialBacktickedIdentifier + | QuotedValue_EDIT + | 'AS' PartialBacktickedIdentifier + | 'AS' QuotedValue_EDIT + | 'AS' 'CURSOR' + ; + +UserDefinedFunction + : AggregateFunction OptionalOverClause + { + if (!$2) { + $1.suggestKeywords = ['OVER']; + } + } + | AnalyticFunction OverClause + | CastFunction + ; + +UserDefinedFunction_EDIT + : AggregateFunction_EDIT + | AggregateFunction OptionalOverClause_EDIT + | AnalyticFunction_EDIT + | AnalyticFunction_EDIT OverClause + | AnalyticFunction 'CURSOR' + { + parser.suggestKeywords(['OVER']); + } + | AnalyticFunction OverClause_EDIT + | CastFunction_EDIT + ; + +ArbitraryFunction + : RegularIdentifier ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + ; + +ArbitraryFunction_EDIT + : RegularIdentifier ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ArbitraryFunctionName + : 'ARRAY' + | 'IF' + | 'MAP' + | 'TRUNCATE' + ; + +ArbitraryFunctionRightPart + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } + ; + +ArbitraryFunctionRightPart_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { position: 1 } + } + | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 + ; + +AggregateFunction + : CountFunction + | SumFunction + | OtherAggregateFunction + ; + +AggregateFunction_EDIT + : CountFunction_EDIT + | SumFunction_EDIT + | OtherAggregateFunction_EDIT + ; + +AnalyticFunction + : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } + ; + +AnalyticFunction_EDIT + : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError + { + parser.applyArgumentTypesToSuggestions($1, $3.position); + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOverClause + : + | OverClause + ; + +OptionalOverClause_EDIT + : OverClause_EDIT + ; + +OverClause + : 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression + ; + +OverClause_EDIT + : 'OVER' WindowExpression_EDIT + ; + +WindowExpression + : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' + ; + +WindowExpression_EDIT + : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$3 && !$4) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$3) { + parser.suggestKeywords(['PARTITION BY']); + } + } + | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$6) { + parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($4); + } + } + ; + +OptionalPartitionBy + : + | PartitionBy + ; + +PartitionBy + : 'PARTITION' 'BY' ValueExpressionList -> $3 + ; + +PartitionBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'PARTITION' 'BY' ValueExpressionList_EDIT + ; + +OptionalOrderByAndWindow + : + | OrderByClause OptionalWindowSpec + ; + +OptionalOrderByAndWindow_EDIT + : OrderByClause_EDIT + { + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + } + | OrderByClause 'CURSOR' OptionalWindowSpec + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); + } + if (!$3) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + } + | OrderByClause WindowSpec_EDIT + ; + +OptionalWindowSpec + : + | WindowSpec + ; + +WindowSpec + : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + ; + +WindowSpec_EDIT + : RowsOrRange 'CURSOR' + { + parser.suggestKeywords(['BETWEEN']); + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' + { + if (!$4 && !$5) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$5) { + parser.suggestKeywords(['AND']); + } + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT + ; + +PopLexerState + : + { + lexer.popState(); + } + ; + +PushHdfsLexerState + : + { + lexer.begin('hdfs'); + } + ; + +HdfsPath + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' + ; + +HdfsPath_EDIT + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: '' }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: '' }); + } + ; + +RowsOrRange + : 'ROWS' + | 'RANGE' + ; + +OptionalCurrentOrPreceding + : + | IntegerOrUnbounded 'PRECEDING' + | 'CURRENT' 'ROW' + ; + +OptionalCurrentOrPreceding_EDIT + : IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['PRECEDING']); + } + | 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + ; + +OptionalAndFollowing + : + | 'AND' 'CURRENT' 'ROW' + | 'AND' IntegerOrUnbounded 'FOLLOWING' + ; + +OptionalAndFollowing_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + } + | 'AND' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + | 'AND' IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['FOLLOWING']); + } + ; + +IntegerOrUnbounded + : 'UNSIGNED_INTEGER' + | 'UNBOUNDED' + ; + +OptionalHavingClause + : + | HavingClause + ; + +HavingClause + : 'HAVING' ValueExpression + ; + +HavingClause_EDIT + : 'HAVING' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + | 'HAVING' ValueExpression_EDIT + { + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + ; + +CastFunction + : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ')' -> { types: [ 'T' ] } + ; + +CastFunction_EDIT + : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + ; + +CountFunction + : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +CountFunction_EDIT + : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +OtherAggregateFunction_EDIT + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, $4.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction_Type + : 'AVG' + | 'MAX' + | 'MIN' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARIANCE' + ; + +FromOrComma + : 'FROM' + | ',' + ; + +SumFunction + : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } + | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } + ; + +SumFunction_EDIT + : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, 1); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; diff --git a/src/jison/sql/calcite/sql_set.jison b/src/jison/sql/calcite/sql_set.jison new file mode 100644 index 0000000..14cff5c --- /dev/null +++ b/src/jison/sql/calcite/sql_set.jison @@ -0,0 +1,46 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : SetSpecification + ; + +DataDefinition_EDIT + : 'SET' 'CURSOR' + { + parser.suggestSetOptions(); + } + ; + +SetSpecification + : 'SET' SetOption '=' SetValue + | 'SET' 'ALL' + ; + +SetOption + : RegularIdentifier + | SetOption '.' RegularIdentifier + ; + +SetValue + : RegularIdentifier + | SignedInteger + | SignedInteger RegularIdentifier + | QuotedValue + | 'TRUE' + | 'FALSE' + | 'NULL' + ; diff --git a/src/jison/sql/calcite/sql_update.jison b/src/jison/sql/calcite/sql_update.jison new file mode 100644 index 0000000..1091c41 --- /dev/null +++ b/src/jison/sql/calcite/sql_update.jison @@ -0,0 +1,122 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : UpdateStatement + ; + +DataManipulation_EDIT + : UpdateStatement_EDIT + ; + +UpdateStatement + : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + ; + +UpdateStatement_EDIT + : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' + { + parser.suggestKeywords([ 'WHERE' ]); + } + | 'UPDATE' TargetTable 'CURSOR' + { + parser.suggestKeywords([ 'SET' ]); + } + | 'UPDATE' TargetTable_EDIT + | 'UPDATE' TargetTable + | 'UPDATE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TargetTable + : TableName + ; + +TargetTable_EDIT + : TableName_EDIT + ; + +TableName + : LocalOrSchemaQualifiedName + { + parser.addTablePrimary($1); + } + ; + +TableName_EDIT + : LocalOrSchemaQualifiedName_EDIT + ; + +SetClauseList + : SetClause + | SetClauseList ',' SetClause + ; + +SetClauseList_EDIT + : SetClause_EDIT + | SetClauseList ',' SetClause_EDIT + | SetClause_EDIT ',' SetClauseList + | SetClauseList ',' SetClause_EDIT ',' SetClauseList + ; + +SetClause + : SetTarget '=' UpdateSource + ; + +SetClause_EDIT + : SetTarget '=' UpdateSource_EDIT + | SetTarget 'CURSOR' + { + parser.suggestKeywords([ '=' ]); + } + | 'CURSOR' + { + parser.suggestColumns(); + } + ; + +SetTarget + : ColumnReference + ; + +UpdateSource + : ValueExpression + ; + +UpdateSource_EDIT + : ValueExpression_EDIT + ; + +OptionalFromJoinedTable + : + | 'FROM' TableReference -> $2 + ; + +FromJoinedTable_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReference_EDIT + ; diff --git a/src/jison/sql/calcite/sql_use.jison b/src/jison/sql/calcite/sql_use.jison new file mode 100644 index 0000000..c99b2c2 --- /dev/null +++ b/src/jison/sql/calcite/sql_use.jison @@ -0,0 +1,39 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : UseStatement + ; + +DataDefinition_EDIT + : UseStatement_EDIT + ; + +UseStatement + : 'USE' RegularIdentifier + { + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $2; + } + } + ; + +UseStatement_EDIT + : 'USE' 'CURSOR' + { + parser.suggestDatabases(); + } + ; diff --git a/src/jison/sql/calcite/sql_valueExpression.jison b/src/jison/sql/calcite/sql_valueExpression.jison new file mode 100644 index 0000000..3dcc339 --- /dev/null +++ b/src/jison/sql/calcite/sql_valueExpression.jison @@ -0,0 +1,839 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +ValueExpression + : 'NOT' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression -> $2 + | '-' ValueExpression %prec NEGATION + { + // verifyType($2, 'NUMBER'); + $$ = $2; + $2.types = ['NUMBER']; + } + | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | 'NOT' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | '!' AnyCursor + { + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | '~' 'PARTIAL_CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + $$ = { types: [ 'T' ] }; + } + | '-' ValueExpression_EDIT %prec NEGATION + { + if (!$2.typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; + } + | '-' 'PARTIAL_CURSOR' %prec NEGATION + { + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'IS' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' + { + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'NULL' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'FALSE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'TRUE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } + } + ; + +// ------------------ EXISTS and parenthesized ------------------ +ValueExpression + : 'EXISTS' TableSubQuery + { + $$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + } + | '(' ValueExpression ')' -> $2 + ; + +ValueExpression_EDIT + : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } + | '(' ValueExpression_EDIT RightParenthesisOrError + { + $$ = $2; + } + | '(' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['T'], typeSet: true }; + } + ; + +// ------------------ COMPARISON ------------------ + +ValueExpression + : ValueExpression '=' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '<' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '>' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '=' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '<' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '>' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT '=' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '<' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '>' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '=' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression '<' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + } + | ValueExpression '>' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; + } + | ValueExpression '=' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '<' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '>' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + + +// ------------------ IN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT + { + if ($4.inValueEdit) { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + parser.applyTypeToSuggestions($1.types); + } + if ($4.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT + { + if ($3.inValueEdit) { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + } + if ($3.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + ; + +ValueExpressionInSecondPart_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } + | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } + ; + +// ------------------ BETWEEN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($4.types[0] === $6.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($4.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $6.types[0] && !$4.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $4.types[0] && !$6.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $5); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($4, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$3.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $3.types[0] && !$5.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $4); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ BOOLEAN ------------------ + +ValueExpression + : ValueExpression 'OR' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'AND' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' 'OR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'OR' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'OR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'OR' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | 'CURSOR' 'AND' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'AND' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'AND' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'AND' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + +// ------------------ ARITHMETIC ------------------ + +ValueExpression + : ValueExpression '-' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression '*' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '*' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression_EDIT '-' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '*' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '-' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '*' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '-' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression '*' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + ; + +// ------------------ LIKE, RLIKE and REGEXP ------------------ + +ValueExpression + : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } + ; + +LikeRightPart + : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + ; + +LikeRightPart_EDIT + : 'LIKE' ValueExpression_EDIT + | 'RLIKE' ValueExpression_EDIT + | 'REGEXP' ValueExpression_EDIT + | 'LIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'RLIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'REGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | 'CURSOR' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'NOT' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ CASE, WHEN, THEN ------------------ + +ValueExpression + : 'CASE' CaseRightPart -> $2 + | 'CASE' ValueExpression CaseRightPart -> $3 + ; + +ValueExpression_EDIT + : 'CASE' CaseRightPart_EDIT -> $2 + | 'CASE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 + | 'CASE' ValueExpression 'CURSOR' EndOrError + { + parser.suggestValueExpressionKeywords($2, ['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression_EDIT CaseRightPart + { + $$ = $3; + $$.suggestFilters = $2.suggestFilters; + } + | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } + ; + +CaseRightPart + : CaseWhenThenList 'END' -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'END' + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + ; + +CaseRightPart_EDIT + : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['END']); + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'CURSOR' ValueExpression EndOrError + { + if ($4.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'CURSOR' EndOrError + { + if ($3.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + $$.suggestFilters = $3.suggestFilters + } + | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = parser.findCaseType($1); + } + | 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CURSOR' 'ELSE' ValueExpression EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = $3; + } + | 'CURSOR' 'ELSE' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ] }; + } + ; + +EndOrError + : 'END' + | error + ; + +CaseWhenThenList + : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } + | CaseWhenThenList CaseWhenThenListPartTwo + { + $1.caseTypes.push($2); + $$ = { caseTypes: $1.caseTypes, lastType: $2 }; + } + ; + +CaseWhenThenList_EDIT + : CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList + | CaseWhenThenList 'CURSOR' CaseWhenThenList + { + parser.suggestValueExpressionKeywords($1, ['WHEN']); + } + | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 + ; + +CaseWhenThenListPartTwo + : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 + ; + +CaseWhenThenListPartTwo_EDIT + : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } + | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } + | 'CURSOR' ValueExpression 'THEN' + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' ValueExpression 'THEN' ValueExpression + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [$4] }; + } + | 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [$4], suggestFilters: true }; + } + | 'WHEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'CURSOR' ValueExpression + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + ; diff --git a/src/jison/sql/calcite/syntax_footer.jison b/src/jison/sql/calcite/syntax_footer.jison new file mode 100644 index 0000000..ec25eab --- /dev/null +++ b/src/jison/sql/calcite/syntax_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/calcite/syntax_header.jison b/src/jison/sql/calcite/syntax_header.jison new file mode 100644 index 0000000..e2c6815 --- /dev/null +++ b/src/jison/sql/calcite/syntax_header.jison @@ -0,0 +1,28 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlSyntax + +%% diff --git a/src/jison/sql/druid/autocomplete_footer.jison b/src/jison/sql/druid/autocomplete_footer.jison new file mode 100644 index 0000000..899433d --- /dev/null +++ b/src/jison/sql/druid/autocomplete_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/druid/autocomplete_header.jison b/src/jison/sql/druid/autocomplete_header.jison new file mode 100644 index 0000000..3b90682 --- /dev/null +++ b/src/jison/sql/druid/autocomplete_header.jison @@ -0,0 +1,29 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'CURSOR' 'PARTIAL_CURSOR' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlAutocomplete + +%% diff --git a/src/jison/sql/druid/sql.jisonlex b/src/jison/sql/druid/sql.jisonlex new file mode 100644 index 0000000..83dbe72 --- /dev/null +++ b/src/jison/sql/druid/sql.jisonlex @@ -0,0 +1,226 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%options case-insensitive flex +%s between +%x hdfs doubleQuotedValue singleQuotedValue backtickedValue +%% + +\s { /* skip whitespace */ } +'--'.* { /* skip comments */ } +[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } + +'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } +'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } + +'AND' { this.popState(); return 'BETWEEN_AND'; } + +// Reserved Keywords +'ALL' { return 'ALL'; } +'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } +'AND' { return 'AND'; } +'AS' { return 'AS'; } +'ASC' { return 'ASC'; } +'BETWEEN' { this.begin('between'); return 'BETWEEN'; } +'BIGINT' { return 'BIGINT'; } +'BOOLEAN' { return 'BOOLEAN'; } +'BY' { return 'BY'; } +'CASCADE' { return 'CASCADE'; } +'CASE' { return 'CASE'; } +'CHAR' { return 'CHAR'; } +'COMMENT' { return 'COMMENT'; } +'CREATE' { parser.determineCase(yytext); return 'CREATE'; } +'CROSS' { return 'CROSS'; } +'CURRENT' { return 'CURRENT'; } +'DATABASE' { return 'DATABASE'; } +'DECIMAL' { return 'DECIMAL'; } +'DESC' { return 'DESC'; } +'DISTINCT' { return 'DISTINCT'; } +'DIV' { return 'ARITHMETIC_OPERATOR'; } +'DOUBLE' { return 'DOUBLE'; } +'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } +'ELSE' { return 'ELSE'; } +'END' { return 'END'; } +'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } +'FALSE' { return 'FALSE'; } +'FLOAT' { return 'FLOAT'; } +'FOLLOWING' { return 'FOLLOWING'; } +'FROM' { parser.determineCase(yytext); return 'FROM'; } +'FULL' { return 'FULL'; } +'GROUP' { return 'GROUP'; } +'HAVING' { return 'HAVING'; } +'IF' { return 'IF'; } +'IN' { return 'IN'; } +'INNER' { return 'INNER'; } +'INSERT' { return 'INSERT'; } +'INT' { return 'INT'; } +'INTO' { return 'INTO'; } +'IS' { return 'IS'; } +'JOIN' { return 'JOIN'; } +'LEFT' { return 'LEFT'; } +'LIKE' { return 'LIKE'; } +'LIMIT' { return 'LIMIT'; } +'NOT' { return 'NOT'; } +'NULL' { return 'NULL'; } +'ON' { return 'ON'; } +'OPTION' { return 'OPTION'; } +'OR' { return 'OR'; } +'ORDER' { return 'ORDER'; } +'OUTER' { return 'OUTER'; } +'PARTITION' { return 'PARTITION'; } +'PRECEDING' { return 'PRECEDING'; } +'PURGE' { return 'PURGE'; } +'RANGE' { return 'RANGE'; } +'REGEXP' { return 'REGEXP'; } +'RIGHT' { return 'RIGHT'; } +'RLIKE' { return 'RLIKE'; } +'ROW' { return 'ROW'; } +'ROLE' { return 'ROLE'; } +'ROWS' { return 'ROWS'; } +'SCHEMA' { return 'SCHEMA'; } +'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } +'SEMI' { return 'SEMI'; } +'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } +'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } +'SMALLINT' { return 'SMALLINT'; } +'STRING' { return 'STRING'; } +'TABLE' { return 'TABLE'; } +'THEN' { return 'THEN'; } +'TIMESTAMP' { return 'TIMESTAMP'; } +'TINYINT' { return 'TINYINT'; } +'TO' { return 'TO'; } +'TRUE' { return 'TRUE'; } +'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } +'UNBOUNDED' { return 'UNBOUNDED'; } +'UNION' { return 'UNION'; } +'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } +'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } +'VALUES' { return 'VALUES'; } +'VARCHAR' { return 'VARCHAR'; } +'VIEW' { return 'VIEW'; } +'WHEN' { return 'WHEN'; } +'WHERE' { return 'WHERE'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } + +// Non-reserved Keywords +'OVER' { return 'OVER'; } +'ROLE' { return 'ROLE'; } + +// --- UDFs --- +AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } +CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } +COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } +MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } +MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } +STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } +STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } +SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } +VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } +VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } +VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } + +// Analytical functions +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } + +[0-9]+ { return 'UNSIGNED_INTEGER'; } +[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } +[0-9]+E { return 'UNSIGNED_INTEGER_E'; } +[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } + +'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } +'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } +\s+['"] { return 'HDFS_START_QUOTE'; } +[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } +['"] { this.popState(); return 'HDFS_END_QUOTE'; } +<> { return 'EOF'; } + +'&&' { return 'AND'; } +'||' { return 'OR'; } + +'=' { return '='; } +'<' { return '<'; } +'>' { return '>'; } +'!=' { return 'COMPARISON_OPERATOR'; } +'<=' { return 'COMPARISON_OPERATOR'; } +'>=' { return 'COMPARISON_OPERATOR'; } +'<>' { return 'COMPARISON_OPERATOR'; } +'<=>' { return 'COMPARISON_OPERATOR'; } + +'-' { return '-'; } +'*' { return '*'; } +'+' { return 'ARITHMETIC_OPERATOR'; } +'/' { return 'ARITHMETIC_OPERATOR'; } +'%' { return 'ARITHMETIC_OPERATOR'; } +'|' { return 'ARITHMETIC_OPERATOR'; } +'^' { return 'ARITHMETIC_OPERATOR'; } +'&' { return 'ARITHMETIC_OPERATOR'; } + +',' { return ','; } +'.' { return '.'; } +':' { return ':'; } +';' { return ';'; } +'~' { return '~'; } +'!' { return '!'; } + +'(' { return '('; } +')' { return ')'; } +'[' { return '['; } +']' { return ']'; } + +\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } + +\` { this.begin('backtickedValue'); return 'BACKTICK'; } +[^`]+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\` { this.popState(); return 'BACKTICK'; } + +\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } +(?:\\\\|\\[']|[^'])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\' { this.popState(); return 'SINGLE_QUOTE'; } + +\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } +(?:\\\\|\\["]|[^"])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\" { this.popState(); return 'DOUBLE_QUOTE'; } + +<> { return 'EOF'; } + +. { /* To prevent console logging of unknown chars */ } +. { } +. { } +. { } +. { } +. { } diff --git a/src/jison/sql/druid/sql_alter.jison b/src/jison/sql/druid/sql_alter.jison new file mode 100644 index 0000000..82acf8f --- /dev/null +++ b/src/jison/sql/druid/sql_alter.jison @@ -0,0 +1,109 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : AlterStatement + ; + +DataDefinition_EDIT + : AlterStatement_EDIT + ; + +AlterStatement + : AlterTable + | AlterView + ; + +AlterStatement_EDIT + : AlterTable_EDIT + | AlterView_EDIT + | 'ALTER' 'CURSOR' + { + parser.suggestKeywords(['TABLE', 'VIEW']); + } + ; + +AlterTable + : AlterTableLeftSide PartitionSpec + ; + +AlterTable_EDIT + : AlterTableLeftSide_EDIT + | AlterTableLeftSide_EDIT PartitionSpec + | AlterTableLeftSide 'CURSOR' + | AlterTableLeftSide PartitionSpec 'CURSOR' + ; + +AlterTableLeftSide + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterTableLeftSide_EDIT + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'ALTER' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +AlterView + : AlterViewLeftSide 'AS' QuerySpecification + ; + +AlterView_EDIT + : AlterViewLeftSide_EDIT + | AlterViewLeftSide 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | AlterViewLeftSide 'SET' 'CURSOR' + | AlterViewLeftSide 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | AlterViewLeftSide 'AS' QuerySpecification_EDIT + ; + + +AlterViewLeftSide + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterViewLeftSide_EDIT + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'ALTER' 'VIEW' 'CURSOR' + { + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; diff --git a/src/jison/sql/druid/sql_create.jison b/src/jison/sql/druid/sql_create.jison new file mode 100644 index 0000000..1329ac6 --- /dev/null +++ b/src/jison/sql/druid/sql_create.jison @@ -0,0 +1,615 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : CreateStatement + ; + +DataDefinition_EDIT + : CreateStatement_EDIT + ; + +CreateStatement + : DatabaseDefinition + | TableDefinition + | ViewDefinition + | RoleDefinition + ; + +CreateStatement_EDIT + : DatabaseDefinition_EDIT + | TableDefinition_EDIT + | ViewDefinition_EDIT + | 'CREATE' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DatabaseDefinition + : 'CREATE' DatabaseOrSchema OptionalIfNotExists + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT + | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinitionOptionals + : OptionalComment + { + if (!$1) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +DatabaseDefinitionOptionals_EDIT + : OptionalComment_INVALID + ; + +OptionalComment + : + | Comment + ; + +Comment + : 'COMMENT' QuotedValue + ; + +OptionalComment_INVALID + : Comment_INVALID + ; + +Comment_INVALID + : 'COMMENT' SINGLE_QUOTE + | 'COMMENT' DOUBLE_QUOTE + | 'COMMENT' SINGLE_QUOTE VALUE + | 'COMMENT' DOUBLE_QUOTE VALUE + ; + +TableDefinition + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart + ; + +TableDefinition_EDIT + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT + | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT + ; + +TableDefinitionRightPart + : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement + ; + +TableDefinitionRightPart_EDIT + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' + { + var keywords = []; + if (!$1 && !$2) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$2) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + ; + +TableIdentifierAndOptionalColumnSpecification + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } + ; + +TableIdentifierAndOptionalColumnSpecification_EDIT + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT + | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike + ; + +OptionalColumnSpecificationsOrLike + : + | ParenthesizedColumnSpecificationList + | 'LIKE' SchemaQualifiedTableIdentifier -> [] + ; + +OptionalColumnSpecificationsOrLike_EDIT + : ParenthesizedColumnSpecificationList_EDIT + | 'LIKE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LIKE' SchemaQualifiedTableIdentifier_EDIT + ; + +ParenthesizedColumnSpecificationList + : '(' ColumnSpecificationList ')' -> $2 + ; + +ParenthesizedColumnSpecificationList_EDIT + : '(' ColumnSpecificationList_EDIT RightParenthesisOrError + ; + +ColumnSpecificationList + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) + ; + +ColumnSpecificationList_EDIT + : ColumnSpecification_EDIT + | ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecificationList ',' ColumnSpecification_EDIT + | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($1); + } + | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($1); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($3); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($3); + } + ; + +ColumnSpecification + : ColumnIdentifier ColumnDataType OptionalColumnOptions + { + $$ = $1; + $$.type = $2; + var keywords = []; + if (!$3['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +ColumnSpecification_EDIT + : ColumnIdentifier 'CURSOR' OptionalColumnOptions + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions + | ColumnIdentifier ColumnDataType ColumnOptions_EDIT + ; + +OptionalColumnOptions + : -> {} + | ColumnOptions + ; + +ColumnOptions + : ColumnOption + { + $$ = {}; + $$[$1] = true; + } + | ColumnOptions ColumnOption + { + $1[$2] = true; + } + ; + +ColumnOptions_EDIT + : ColumnOption_EDIT + | ColumnOption_EDIT ColumnOptions + | ColumnOptions ColumnOption_EDIT + | ColumnOptions ColumnOption_EDIT ColumnOptions + ; + +ColumnOption + : 'NOT' 'NULL' -> 'null' + | 'NULL' -> 'null' + | Comment -> 'comment' + ; + +ColumnOption_EDIT + : 'NOT' 'CURSOR' + { + parser.suggestKeywords(['NULL']); + } + ; + +ColumnDataType + : PrimitiveType + | ArrayType + | MapType + | StructType + | ArrayType_INVALID + | MapType_INVALID + | StructType_INVALID + ; + +ColumnDataType_EDIT + : ArrayType_EDIT + | MapType_EDIT + | StructType_EDIT + ; + +ArrayType + : 'ARRAY' '<' ColumnDataType '>' + ; + +ArrayType_INVALID + : 'ARRAY' '<' '>' + ; + +ArrayType_EDIT + : 'ARRAY' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError + ; + +MapType + : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' + ; + +MapType_INVALID + : 'MAP' '<' '>' + ; + +MapType_EDIT + : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError + | 'MAP' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'MAP' '<' ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + ; + +StructType + : 'STRUCT' '<' StructDefinitionList '>' + ; + +StructType_INVALID + : 'STRUCT' '<' '>' + ; + +StructType_EDIT + : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError + ; + +StructDefinitionList + : StructDefinition + | StructDefinitionList ',' StructDefinition + ; + +StructDefinitionList_EDIT + : StructDefinition_EDIT + | StructDefinition_EDIT Commas + | StructDefinition_EDIT Commas StructDefinitionList + | StructDefinitionList ',' StructDefinition_EDIT + | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList + ; + +StructDefinition + : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment + ; + +StructDefinition_EDIT + : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | Commas RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + ; + +ColumnDataTypeList + : ColumnDataType + | ColumnDataTypeList ',' ColumnDataType + ; + +ColumnDataTypeList_EDIT + : ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + ; + +ColumnDataTypeListInner_EDIT + : Commas AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas ColumnDataType_EDIT + | AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnDataType_EDIT + ; + +GreaterThanOrError + : '>' + | error + ; + +OptionalPartitionedBy + : + | PartitionedBy + ; + +PartitionedBy + : 'PARTITION' 'BY' RangeClause + ; + +PartitionedBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.suggestKeywords(['RANGE']); + } + | 'PARTITION' 'BY' RangeClause_EDIT + ; + +RangeClause + : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList + ; + +RangeClause_EDIT + : 'RANGE' 'CURSOR' + | 'RANGE' ParenthesizedColumnList_EDIT + | 'RANGE' ParenthesizedColumnList 'CURSOR' + | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT + | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList + ; + +ParenthesizedPartitionValuesList + : '(' PartitionValueList ')' + ; + +ParenthesizedPartitionValuesList_EDIT + : '(' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['PARTITION']); + } + |'(' PartitionValueList_EDIT RightParenthesisOrError + ; + +PartitionValueList + : PartitionValue + | PartitionValueList ',' PartitionValue + ; + +PartitionValueList_EDIT + : PartitionValue_EDIT + | PartitionValueList ',' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' 'CURSOR' ',' PartitionValueList + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' PartitionValue_EDIT + | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList + ; + +PartitionValue + : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' + ; + +PartitionValue_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['VALUE', 'VALUES']); + } + | 'PARTITION' ValueExpression_EDIT + { + if ($2.endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + } + | 'PARTITION' ValueExpression 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + | 'PARTITION' 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + ; + +LessThanOrEqualTo + : '<' + | 'COMPARISON_OPERATOR' // This is fine for autocompletion + ; + +OptionalAsSelectStatement + : + | 'AS' CommitLocations QuerySpecification + ; + +OptionalAsSelectStatement_EDIT + : 'AS' CommitLocations 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'AS' CommitLocations QuerySpecification_EDIT + ; + +CommitLocations + : /* empty */ + { + parser.commitLocations(); + } + ; + +ViewDefinition + : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +ViewDefinition_EDIT + : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' + { + var keywords = [{value: 'AS', weight: 1 }]; + if (!$6) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +OptionalParenthesizedViewColumnList + : + | ParenthesizedViewColumnList + ; + +ParenthesizedViewColumnList + : '(' ViewColumnList ')' + ; + +ParenthesizedViewColumnList_EDIT + : '(' ViewColumnList_EDIT RightParenthesisOrError + { + if (!$2) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +ViewColumnList + : ColumnReference OptionalComment + | ViewColumnList ',' ColumnReference OptionalComment + ; + +ViewColumnList_EDIT + : ColumnReference OptionalComment 'CURSOR' -> $2 + | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 + ; + +RoleDefinition + : 'CREATE' 'ROLE' RegularIdentifier + ; diff --git a/src/jison/sql/druid/sql_drop.jison b/src/jison/sql/druid/sql_drop.jison new file mode 100644 index 0000000..0e3aa53 --- /dev/null +++ b/src/jison/sql/druid/sql_drop.jison @@ -0,0 +1,184 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : DropStatement + ; + +DataDefinition_EDIT + : DropStatement_EDIT + ; + +DropStatement + : DropDatabaseStatement + | DropRoleStatement + | DropTableStatement + | DropViewStatement + | TruncateTableStatement + ; + +DropStatement_EDIT + : DropDatabaseStatement_EDIT + | DropTableStatement_EDIT + | DropViewStatement_EDIT + | TruncateTableStatement_EDIT + | 'DROP' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DropDatabaseStatement + : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade + ; + +DropDatabaseStatement_EDIT + : 'DROP' DatabaseOrSchema OptionalIfExists + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + } + | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CASCADE']); + } + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + ; +DropRoleStatement + : 'DROP' 'ROLE' RegularIdentifier + ; + +DropTableStatement + : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement_EDIT + : 'DROP' 'TABLE' OptionalIfExists_EDIT + | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PURGE']); + } + } + ; + +OptionalPurge + : + | 'PURGE' + ; + +DropViewStatement + : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropViewStatement_EDIT + : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($5); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'VIEW' OptionalIfExists_EDIT + | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +TruncateTableStatement + : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +TruncateTableStatement_EDIT + : 'TRUNCATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($4); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec + ; diff --git a/src/jison/sql/druid/sql_error.jison b/src/jison/sql/druid/sql_error.jison new file mode 100644 index 0000000..48b9a4e --- /dev/null +++ b/src/jison/sql/druid/sql_error.jison @@ -0,0 +1,132 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlStatements + : error + | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? + ; + +SqlStatement_EDIT + : AnyCursor error + { + parser.suggestDdlAndDmlKeywords(); + } + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT + ; + +SelectList_ERROR + : ErrorList + | SelectList ',' ErrorList + | ErrorList ',' SelectList ',' ErrorList + | ErrorList ',' SelectList + | SelectList ',' ErrorList ',' SelectList + ; + +SelectList_ERROR_EDIT + : ErrorList ',' SelectList_EDIT -> $3 + | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 + | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 + | ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | ErrorList ',' SelectList ',' Errors ',' AnyCursor + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + ; + +SetSpecification + : 'SET' SetOption '=' error + ; + +ErrorList + : error + | Errors ',' error + ; + +JoinType_EDIT + : 'FULL' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'LEFT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'RIGHT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$4 && !$5 && !$6 && !$7 + }; + } + | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$6 && !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' + ; + +OptionalSelectConditions_EDIT + : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error + ; diff --git a/src/jison/sql/druid/sql_insert.jison b/src/jison/sql/druid/sql_insert.jison new file mode 100644 index 0000000..8b3544e --- /dev/null +++ b/src/jison/sql/druid/sql_insert.jison @@ -0,0 +1,72 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : InsertStatement + ; + +InsertStatement + : InsertValuesStatement + ; + +DataManipulation_EDIT + : InsertValuesStatement_EDIT + ; + +InsertValuesStatement + : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + ; + +InsertValuesStatement_EDIT + : 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['INTO']); + } + | 'INSERT' 'INTO' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + parser.suggestKeywords(['VALUES']); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList + ; + +InsertValuesList + : ParenthesizedRowValuesList + | RowValuesList ',' ParenthesizedRowValuesList + ; + +ParenthesizedRowValuesList + : '(' InValueList ')' + ; + +OptionalTable + : + | 'TABLE' + ; diff --git a/src/jison/sql/druid/sql_main.jison b/src/jison/sql/druid/sql_main.jison new file mode 100644 index 0000000..3aaf9f9 --- /dev/null +++ b/src/jison/sql/druid/sql_main.jison @@ -0,0 +1,2762 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlSyntax + : NewStatement SqlStatements EOF + ; + +SqlAutocomplete + : NewStatement SqlStatements EOF + { + return parser.yy.result; + } + | NewStatement SqlStatements_EDIT EOF + { + return parser.yy.result; + } + ; + +NewStatement + : /* empty */ + { + parser.prepareNewStatement(); + } + ; + +SqlStatements + : + | SqlStatement + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatements + ; + +SqlStatements_EDIT + : SqlStatement_EDIT + { + parser.addStatementLocation(@1); + } + | SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT + { + parser.addStatementLocation(@4); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@4); + } + ; + +SqlStatement + : DataDefinition + | DataManipulation + | QuerySpecification + ; + +SqlStatement_EDIT + : AnyCursor + { + parser.suggestDdlAndDmlKeywords(); + } + | CommonTableExpression 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | DataDefinition_EDIT + | DataManipulation_EDIT + | QuerySpecification_EDIT + | SetSpecification_EDIT + ; + +NonReservedKeyword + : 'ROLE' + | 'OPTION' + | 'STRUCT' + ; + +RegularIdentifier + : 'REGULAR_IDENTIFIER' + | 'VARIABLE_REFERENCE' + | NonReservedKeyword + ; + +// This is a work-around for error handling when a statement starts with some token that the parser can understand but +// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) +NonStartingToken + : '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '<' + | '=' + | '>' + | '[' + | ']' + | '~' + | 'ALL' + | 'ANALYTIC' + | 'AND' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'AS' + | 'ASC' + | 'AVG' + | 'BACKTICK' + | 'BETWEEN' + | 'BIGINT' + | 'BOOLEAN' + | 'BY' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'COMPARISON_OPERATOR' + | 'COUNT' + | 'CROSS' + | 'CURRENT' + | 'DATABASE' + | 'DECIMAL' + | 'DESC' + | 'DISTINCT' + | 'DOUBLE' + | 'DOUBLE_QUOTE' + | 'ELSE' + | 'END' + | 'EXISTS' + | 'FALSE' + | 'FLOAT' + | 'FOLLOWING' + | 'FROM' + | 'FULL' + | 'GROUP' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'IF' + | 'IN' + | 'INNER' + | 'INT' + | 'INTO' + | 'IS' + | 'JOIN' + | 'LEFT' + | 'LIKE' + | 'LIMIT' + | 'MAP' + | 'MAX' + | 'MIN' + | 'NOT' + | 'NULL' + | 'ON' + | 'OPTION' + | 'OR' + | 'ORDER' + | 'OUTER' + | 'OVER' + | 'PARTITION' + | 'PRECEDING' + | 'PURGE' + | 'RANGE' + | 'REGEXP' + | 'REGULAR_IDENTIFIER' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROW' + | 'ROWS' + | 'SCHEMA' + | 'SEMI' + | 'SET' + | 'SINGLE_QUOTE' + | 'SMALLINT' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STRING' + | 'STRUCT' + | 'SUM' + | 'TABLE' + | 'THEN' + | 'TIMESTAMP' + | 'TINYINT' + | 'TRUE' + | 'UNION' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'WHEN' + | 'WHERE' + ; + +// ===================================== Commonly used constructs ===================================== + +Commas + : ',' + | Commas ',' + ; + +AnyCursor + : 'CURSOR' + | 'PARTIAL_CURSOR' + ; + +FromOrIn + : 'FROM' + | 'IN' + ; + +DatabaseOrSchema + : 'DATABASE' + | 'SCHEMA' + ; + +SingleQuotedValue + : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 + | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' + ; + +SingleQuotedValue_EDIT + : 'SINGLE_QUOTE' 'PARTIAL_VALUE' + ; + +DoubleQuotedValue + : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 + | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' + ; + +DoubleQuotedValue_EDIT + : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' + ; + +QuotedValue + : SingleQuotedValue + | DoubleQuotedValue + ; + +QuotedValue_EDIT + : SingleQuotedValue_EDIT + | DoubleQuotedValue_EDIT + ; + +OptionalFromDatabase + : + | FromOrIn DatabaseIdentifier + ; + +OptionalFromDatabase_EDIT + : FromOrIn DatabaseIdentifier_EDIT + ; + +OptionalCascade + : + | 'CASCADE' + ; + +OptionalIfExists + : + | 'IF' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalIfNotExists + : + | 'IF' 'NOT' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfNotExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['NOT EXISTS']); + } + | 'IF' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalInDatabase + : + | 'IN' DatabaseIdentifier + | 'IN' DatabaseIdentifier_EDIT + ; + +OptionalPartitionSpec + : + | PartitionSpec + ; + +OptionalPartitionSpec_EDIT + : PartitionSpec_EDIT + ; + +PartitionSpec + : 'PARTITION' '(' PartitionSpecList ')' + ; + +PartitionSpec_EDIT + : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +RangePartitionSpec + : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + ; + +RangePartitionSpec_EDIT + : UnsignedValueSpecification 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + ; + +RangePartitionComparisonOperator + : 'COMPARISON_OPERATOR' + | '=' + | '<' + | '>' + ; + +ConfigurationName + : RegularIdentifier + | 'CURSOR' + ; + +PartialBacktickedOrAnyCursor + : AnyCursor + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrCursor + : 'CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrPartialCursor + : 'PARTIAL_CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedIdentifier + : 'BACKTICK' 'PARTIAL_VALUE' + ; + +RightParenthesisOrError + : ')' + | error + ; + +OptionalParenthesizedColumnList + : + | ParenthesizedColumnList + ; + +OptionalParenthesizedColumnList_EDIT + : ParenthesizedColumnList_EDIT + ; + +ParenthesizedColumnList + : '(' ColumnList ')' + ; + +ParenthesizedColumnList_EDIT + : '(' ColumnList_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +ColumnList + : ColumnIdentifier + | ColumnList ',' ColumnIdentifier + ; + +ColumnList_EDIT + : ColumnList ',' AnyCursor + { + parser.suggestColumns(); + } + | ColumnList ',' AnyCursor ',' ColumnList + { + parser.suggestColumns(); + } + ; + +ParenthesizedSimpleValueList + : '(' SimpleValueList ')' + ; + +SimpleValueList + : UnsignedValueSpecification + | SimpleValueList ',' UnsignedValueSpecification + ; + +SchemaQualifiedTableIdentifier + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +SchemaQualifiedTableIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + +SchemaQualifiedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] + ; + +SchemaQualifiedIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + ; + +DatabaseIdentifier + : RegularOrBacktickedIdentifier + ; + +DatabaseIdentifier_EDIT + : PartialBacktickedOrCursor + { + parser.suggestDatabases(); + } + ; + +PartitionSpecList + : PartitionExpression + | PartitionSpecList ',' PartitionExpression + ; + +PartitionSpecList_EDIT + : PartitionExpression_EDIT + | PartitionSpecList ',' PartitionExpression_EDIT + | PartitionExpression_EDIT ',' PartitionSpecList + | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList + ; + +PartitionExpression + : ColumnIdentifier '=' ValueExpression + ; + +PartitionExpression_EDIT + : ColumnIdentifier '=' ValueExpression_EDIT + | ColumnIdentifier '=' AnyCursor + { + parser.valueExpressionSuggest(); + } + | PartialBacktickedIdentifier '=' ValueExpression + { + parser.suggestColumns(); + } + | AnyCursor + { + parser.suggestColumns(); + } + ; + +RegularOrBacktickedIdentifier + : RegularIdentifier + | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 + | 'BACKTICK' 'BACKTICK' -> '' + ; + +// TODO: Same as SchemaQualifiedTableIdentifier? +RegularOrBackTickedSchemaQualifiedName + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +RegularOrBackTickedSchemaQualifiedName_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + + +LocalOrSchemaQualifiedName + : RegularOrBackTickedSchemaQualifiedName + | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } + ; + +LocalOrSchemaQualifiedName_EDIT + : RegularOrBackTickedSchemaQualifiedName_EDIT + | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier + ; + +ColumnReference + : BasicIdentifierChain + { + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnReference_EDIT + : BasicIdentifierChain_EDIT + ; + +BasicIdentifierChain + : ColumnIdentifier + { + $$ = [ $1.identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); + } + | BasicIdentifierChain '.' ColumnIdentifier + { + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $1.push($3.identifier); + parser.addUnknownLocation($3.location, $1.concat()); + } + ; + +// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) +BasicIdentifierChain_EDIT + : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + ; + +DerivedColumnChain + : ColumnIdentifier -> [ $1.identifier ] + | DerivedColumnChain '.' ColumnIdentifier + { + $1.push($3.identifier); + } + ; + +DerivedColumnChain_EDIT + : PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns(); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns({ identifierChain: $1 }); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns({ identifierChain: $1 }); + } + | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns(); + } + ; + +ColumnIdentifier + : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } + ; + +PartialBacktickedIdentifierOrPartialCursor + : PartialBacktickedIdentifier + | 'PARTIAL_CURSOR' + ; + +PrimitiveType + : 'BIGINT' + | 'BOOLEAN' + | 'CHAR' OptionalTypeLength + | 'DECIMAL' OptionalTypePrecision + | 'DOUBLE' + | 'FLOAT' + | 'INT' + | 'SMALLINT' + | 'STRING' + | 'TIMESTAMP' + | 'TINYINT' + | 'VARCHAR' OptionalTypeLength + ; + +OptionalTypeLength + : + | '(' 'UNSIGNED_INTEGER' ')' + ; + +OptionalTypePrecision + : + | '(' 'UNSIGNED_INTEGER' ')' + | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' + ; + +// ===================================== SELECT statement ===================================== + +QuerySpecification + : SelectStatement OptionalUnions -> $1 + | CommonTableExpression SelectStatement OptionalUnions + | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 + ; + +QuerySpecification_EDIT + : SelectStatement_EDIT OptionalUnions + | SelectStatement OptionalUnions_EDIT + | CommonTableExpression '(' QuerySpecification_EDIT ')' + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement_EDIT OptionalUnions + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement OptionalUnions_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT + | CommonTableExpression_EDIT '(' QuerySpecification ')' + | CommonTableExpression_EDIT SelectStatement OptionalUnions + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3 }; + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3, tableExpression: $4 } + } + ; + +OptionalUnions + : + | Unions + ; + +OptionalUnions_EDIT + : Unions_EDIT + ; + +Unions + : UnionClause + | Unions UnionClause + ; + +Unions_EDIT + : UnionClause_EDIT + | Unions UnionClause_EDIT + | UnionClause_EDIT Unions + | Unions UnionClause_EDIT Unions + ; + +UnionClause + : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement + ; + +UnionClause_EDIT + : 'UNION' NewStatement 'CURSOR' + { + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + } + | 'UNION' NewStatement 'CURSOR' SelectStatement + { + parser.suggestKeywords(['ALL', 'DISTINCT']); + } + | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + if ($3.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($4); + } + if ($3.suggestFunctions) { + parser.suggestFunctions(); + } + if ($3.suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($3.suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($3.suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.selectListNoTableSuggest($3, $2); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + } + ; + +CommonTableExpression + : 'WITH' WithQueries -> $2 + ; + +CommonTableExpression_EDIT + : 'WITH' WithQueries_EDIT + ; + +WithQueries + : WithQuery -> [$1] + | WithQueries ',' WithQuery -> $1.concat([$3]) + ; + +WithQueries_EDIT + : WithQuery_EDIT + | WithQueries ',' WithQuery_EDIT + { + parser.addCommonTableExpressions($1); + } + | WithQuery_EDIT ',' WithQueries + | WithQueries ',' WithQuery_EDIT ',' WithQueries + { + parser.addCommonTableExpressions($1); + } + ; + +WithQuery + : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' + { + parser.addCteAliasLocation(@1, $1); + $4.alias = $1; + $$ = $4; + } + ; + +WithQuery_EDIT + : RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError + ; + +OptionalAllOrDistinct + : + | 'ALL' + | 'DISTINCT' + ; + +TableExpression + : FromClause OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + ; + +TableExpression_EDIT + : FromClause_EDIT OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins + { + var keywords = []; + + parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + + if ($1) { + if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); + } + if ($1.tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); + } + if ($1.tableReferenceList.suggestJoins) { + parser.suggestJoins($1.tableReferenceList.suggestJoins); + } + if ($1.tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE') { + keyword.weight = 1.1; + } + }); + + if ($1.tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($1.tableReferenceList); + } + } + } + + if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($3.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); + } + + if ($3.suggestFilters) { + parser.suggestFilters($3.suggestFilters); + } + if ($3.suggestGroupBys) { + parser.suggestGroupBys($3.suggestGroupBys); + } + if ($3.suggestOrderBys) { + parser.suggestOrderBys($3.suggestOrderBys); + } + + if ($3.empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + } + | FromClause OptionalSelectConditions_EDIT OptionalJoins + { + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$2) { + parser.addClauseLocation('whereClause', @1); + parser.addClauseLocation('limitClause', @1); + return; + } + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + var keywords = []; + + if ($2.suggestColRefKeywords) { + parser.suggestColRefKeywords($2.suggestColRefKeywords); + parser.addColRefIfExists($2); + } + + if ($2.suggestKeywords && $2.suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); + } + + if ($2.cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + } + ; + +OptionalJoins + : + | Joins + | Joins_INVALID + ; + +FromClause + : 'FROM' TableReferenceList + { + $$ = { tableReferenceList : $2 } + } + ; + +FromClause_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReferenceList_EDIT + ; + +OptionalSelectConditions + : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$1, $2, $3, $4, $5], + [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true]); + + if (keywords.length > 0) { + $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; + } else { + $$ = {}; + } + + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $5 ? @5 : undefined; + + if (!$1 && !$2 && !$3 && !$4 && !$5) { + $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$2 && !$3 && !$4 && !$5) { + $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$4 && !$5) { + $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + } + | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + } + | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + ; + +OptionalSelectConditions_EDIT + : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$3, $4, $5, $6], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true]); + if ($1.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); + } + $$ = parser.getValueExpressionKeywords($1, keywords); + $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; + if ($1.columnReference) { + $$.columnReference = $1.columnReference; + } + if (!$3) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$3 && !$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$4, $5, $6], + [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true]); + if ($2.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); + } + if ($2.valueExpression) { + $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); + if ($2.valueExpression.columnReference) { + $$.columnReference = $2.valueExpression.columnReference; + } + } else { + $$ = { suggestKeywords: keywords }; + } + $$.cursorAtEnd = !$4 && !$5 && !$6; + if (!$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$5, $6], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; + if (!$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$6], + [{ value: 'LIMIT', weight: 3 }], + [true]); + if ($4.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' + { + $$ = { suggestKeywords: [], cursorAtEnd: true }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = @5; + } + ; + +OptionalWhereClause + : + | WhereClause + ; + +WhereClause + : 'WHERE' SearchCondition -> $2 + ; + +WhereClause_EDIT + : 'WHERE' SearchCondition_EDIT + { + if ($2.suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'WHERE' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OptionalGroupByClause + : + | GroupByClause + ; + +GroupByClause + : 'GROUP' 'BY' GroupByColumnList + { + $$ = { valueExpression: $3 }; + } + ; + +GroupByClause_EDIT + : 'GROUP' 'BY' GroupByColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + | 'GROUP' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +ColumnGroupingSets + : + | ColumnReference + | ColumnGroupingSets ',' ColumnGroupingSets + | '(' ColumnGroupingSets ')' + ; + +ColumnGroupingSets_EDIT + : ColumnGroupingSet_EDIT + | ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSet_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + ; + +GroupByColumnList + : ValueExpression + | GroupByColumnList ',' ValueExpression -> $3 + ; + +GroupByColumnList_EDIT + : ValueExpression_EDIT + | 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + } + | 'CURSOR' ',' GroupByColumnList + { + parser.valueExpressionSuggest(); + } + | ValueExpression_EDIT ',' GroupByColumnList + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList + ; + +GroupByColumnListPartTwo_EDIT + : ValueExpression_EDIT + | AnyCursor ValueExpression + { + parser.valueExpressionSuggest(); + } + | AnyCursor + { + parser.valueExpressionSuggest(); + } + ; + +OptionalOrderByClause + : + | OrderByClause + ; + +OrderByClause + : 'ORDER' 'BY' OrderByColumnList -> $3 + ; + +OrderByClause_EDIT + : 'ORDER' 'BY' OrderByColumnList_EDIT + { + if ($3.emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'ORDER' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OrderByColumnList + : OrderByIdentifier + | OrderByColumnList ',' OrderByIdentifier -> $3 + ; + +OrderByColumnList_EDIT + : OrderByIdentifier_EDIT + | 'CURSOR' OrderByIdentifier + { + $$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } + ; + +OrderByIdentifier + : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) + ; + +OrderByIdentifier_EDIT + : ValueExpression_EDIT OptionalAscOrDesc + { + parser.suggestSelectListAliases(); + } + | AnyCursor OptionalAscOrDesc + { + $$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + ; + +OptionalAscOrDesc + : + { + $$ = { suggestKeywords: ['ASC', 'DESC'] }; + } + | 'ASC' + | 'DESC' + ; + +OptionalLimitClause + : + | LimitClause + ; + +LimitClause + : 'LIMIT' UnsignedNumericLiteral + | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral + | 'LIMIT' 'VARIABLE_REFERENCE' + | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' + ; + +LimitClause_EDIT + : 'LIMIT' 'CURSOR' + ; + +SearchCondition + : ValueExpression + ; + +SearchCondition_EDIT + : ValueExpression_EDIT + ; + +ValueExpression + : NonParenthesizedValueExpressionPrimary + ; + +ValueExpression_EDIT + : NonParenthesizedValueExpressionPrimary_EDIT + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpressionList + : ValueExpression + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression + { + $3.position = $1.position + 1; + $$ = $3; + } + ; + +ValueExpressionList_EDIT + : ValueExpression_EDIT + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT + { + $1.position += 1; + } + | ValueExpression_EDIT ',' ValueExpressionList + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList + { + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList 'CURSOR' ',' ValueExpressionList + { + parser.suggestValueExpressionKeywords($1); + } + | AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | AnyCursor ',' + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | ',' AnyCursor + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + | ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + ; + +InValueList + : NonParenthesizedValueExpressionPrimary + | InValueList ',' NonParenthesizedValueExpressionPrimary + ; + +NonParenthesizedValueExpressionPrimary + : UnsignedValueSpecification + | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart + { + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.expression) { + $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } + } else { + $$ = { function: fn, types: parser.findReturnTypes(fn) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | UserDefinedFunction + | 'NULL' -> { types: [ 'NULL' ] } + ; + +NonParenthesizedValueExpressionPrimary_EDIT + : UnsignedValueSpecification_EDIT + | ColumnOrArbitraryFunctionRef_EDIT + { + if ($1.suggestKeywords) { + $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; + } else { + $$ = { types: ['COLREF'], columnReference: $1 }; + } + } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT + { + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.position) { + parser.applyArgumentTypesToSuggestions(fn, $2.position); + } + $$ = { types: parser.findReturnTypes(fn) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | UserDefinedFunction_EDIT + ; + +ColumnOrArbitraryFunctionRef + : BasicIdentifierChain + { + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; + $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnOrArbitraryFunctionRef_EDIT + : BasicIdentifierChain_EDIT + ; + +SignedInteger + : UnsignedNumericLiteral + | '-' UnsignedNumericLiteral + | '+' UnsignedNumericLiteral + ; + +UnsignedValueSpecification + : UnsignedLiteral + ; + +UnsignedValueSpecification_EDIT + : UnsignedLiteral_EDIT + { + parser.suggestValues($1); + } + ; + +UnsignedLiteral + : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } + | GeneralLiteral + ; + +UnsignedLiteral_EDIT + : GeneralLiteral_EDIT + ; + +UnsignedNumericLiteral + : ExactNumericLiteral + | ApproximateNumericLiteral + ; + +ExactNumericLiteral + : 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' -> $1 + $2 + | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 + | '.' 'UNSIGNED_INTEGER' -> $1 + $2 + ; + +ApproximateNumericLiteral + : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + ; + +GeneralLiteral + : SingleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | DoubleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | TruthValue -> { types: [ 'BOOLEAN' ] } + ; + +GeneralLiteral_EDIT + : SingleQuotedValue_EDIT + { + $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + } + | DoubleQuotedValue_EDIT + { + $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + } + ; + +TruthValue + : 'TRUE' + | 'FALSE' + ; + +OptionalNot + : + | 'NOT' + ; + +SelectSpecification + : ValueExpression OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + $$ = { valueExpression: $1, alias: $2.alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); + } else { + $$ = { valueExpression: $1 } + } + } + | '*' + { + parser.addAsteriskLocation(@1, [{ asterisk: true }]); + $$ = { asterisk: true } + } + ; + +SelectSpecification_EDIT + : ValueExpression_EDIT OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + } + } + + | AnyCursor 'AS' RegularOrBacktickedIdentifier + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(@3, $3, @1); + $$ = { suggestAggregateFunctions: true }; + } + | ValueExpression OptionalCorrelationName_EDIT -> $2 + ; + +SelectList + : SelectSpecification -> [ $1 ] + | SelectList ',' SelectSpecification + { + $1.push($3); + } + ; + +SelectList_EDIT + : SelectSpecification_EDIT + | 'CURSOR' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | 'CURSOR' ',' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectSpecification_EDIT ',' SelectList + | SelectList 'CURSOR' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList 'CURSOR' ',' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList ',' AnyCursor + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' SelectSpecification_EDIT -> $3 + | SelectList ',' AnyCursor SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' AnyCursor ',' + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' -> $3 + | SelectList ',' AnyCursor ',' SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 + ; + +TableReferenceList + : TableReference + | TableReferenceList ',' TableReference -> $3 + ; + +TableReferenceList_EDIT + : TableReference_EDIT + | TableReference_EDIT ',' TableReference + | TableReferenceList ',' TableReference_EDIT + | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList + | TableReferenceList ',' AnyCursor + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TableReference + : TablePrimaryOrJoinedTable + ; + +TableReference_EDIT + : TablePrimaryOrJoinedTable_EDIT + ; + +TablePrimaryOrJoinedTable + : TablePrimary + { + $$ = $1; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + $$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + } + | JoinedTable + ; + +TablePrimaryOrJoinedTable_EDIT + : TablePrimary_EDIT + | JoinedTable_EDIT + ; + +JoinedTable + : TablePrimary Joins -> $2 + ; + +JoinedTable_EDIT + : TablePrimary Joins_EDIT + | TablePrimary_EDIT Joins + ; + +Joins + : JoinType TablePrimary OptionalJoinCondition + { + if ($3 && $3.valueExpression) { + $$ = $3.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($3.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($3.suggestKeywords) { + $$.suggestKeywords = $3.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + | Joins JoinType TablePrimary OptionalJoinCondition + { + if ($4 && $4.valueExpression) { + $$ = $4.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($4.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($4.suggestKeywords) { + $$.suggestKeywords = $4.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + ; + +Joins_INVALID + : JoinType -> { joinType: $1 } + | JoinType Joins -> { joinType: $1 } + ; + +Join_EDIT + : JoinType_EDIT TablePrimary OptionalJoinCondition + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType_EDIT + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType TablePrimary_EDIT OptionalJoinCondition + | JoinType TablePrimary JoinCondition_EDIT + | JoinType 'CURSOR' OptionalJoinCondition + { + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $1, + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + ; + +Joins_EDIT + : Join_EDIT + | Join_EDIT Joins + | Joins Join_EDIT + | Joins Join_EDIT Joins + ; + +JoinType + : 'CROSS' 'JOIN' -> 'CROSS JOIN' + | 'FULL' 'JOIN' -> 'FULL JOIN' + | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' + | 'INNER' 'JOIN' -> 'INNER JOIN' + | 'JOIN' -> 'JOIN' + | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' + | 'LEFT' 'JOIN' -> 'LEFT JOIN' + | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' + | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' + | 'OUTER' 'JOIN' -> 'OUTER JOIN' + | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' + | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' + | 'SEMI' 'JOIN' -> 'SEMI JOIN' + ; + +JoinType_EDIT + : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + ; + +OptionalJoinCondition + : -> { noJoinCondition: true, suggestKeywords: ['ON'] } + | 'ON' ValueExpression -> { valueExpression: $2 } + ; + +UsingColList + : RegularOrBacktickedIdentifier + | UsingColList ',' RegularOrBacktickedIdentifier + ; + +JoinCondition_EDIT + : 'ON' ValueExpression_EDIT + | 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + } + ; + +TablePrimary + : TableOrQueryName OptionalCorrelationName + { + $$ = { + primary: $1 + } + if ($1.identifierChain) { + if ($2) { + $1.alias = $2.alias + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } else if ($2.suggestKeywords) { + keywords = $2.suggestKeywords; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + | DerivedTable OptionalCorrelationName + { + $$ = { + primary: $1 + }; + + if ($2) { + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +TablePrimary_EDIT + : TableOrQueryName_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + } + | DerivedTable_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias); + } + } + | DerivedTable OptionalCorrelationName_EDIT + ; + +TableOrQueryName + : SchemaQualifiedTableIdentifier + ; + +TableOrQueryName_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +DerivedTable + : TableSubQuery + ; + +DerivedTable_EDIT + : TableSubQuery_EDIT + ; + +OptionalOnColumn + : + | 'ON' ValueExpression + ; + +OptionalOnColumn_EDIT + : 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'ON' ValueExpression_EDIT + ; + +PushQueryState + : + { + parser.pushQueryState(); + } + ; + +PopQueryState + : + { + parser.popQueryState(); + } + ; + +TableSubQuery + : '(' TableSubQueryInner ')' -> $2 + | '(' DerivedTable OptionalCorrelationName ')' + { + if ($3) { + $2.alias = $3.alias; + parser.addTablePrimary({ subQueryAlias: $3.alias }); + parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); + } + $$ = $2; + } + ; + +TableSubQuery_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + ; + +TableSubQueryInner + : PushQueryState SubQuery + { + var subQuery = parser.getSubQuery($2); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + $$ = subQuery; + } + ; + +TableSubQueryInner_EDIT + : PushQueryState SubQuery_EDIT PopQueryState + ; + +SubQuery + : QueryExpression + ; + +SubQuery_EDIT + : QueryExpression_EDIT + ; + +QueryExpression + : QueryExpressionBody + ; + +QueryExpression_EDIT + : QueryExpressionBody_EDIT + ; + +QueryExpressionBody + : NonJoinQueryExpression + ; + +QueryExpressionBody_EDIT + : NonJoinQueryExpression_EDIT + ; + +NonJoinQueryExpression + : NonJoinQueryTerm + ; + +NonJoinQueryExpression_EDIT + : NonJoinQueryTerm_EDIT + ; + +NonJoinQueryTerm + : NonJoinQueryPrimary + ; + +NonJoinQueryTerm_EDIT + : NonJoinQueryPrimary_EDIT + ; + +NonJoinQueryPrimary + : SimpleTable + ; + +NonJoinQueryPrimary_EDIT + : SimpleTable_EDIT + ; + +SimpleTable + : QuerySpecification + ; + +SimpleTable_EDIT + : QuerySpecification_EDIT + ; + +OptionalCorrelationName + : + | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } + | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | 'AS' QuotedValue -> { alias: $2, location: @2 } + ; + +OptionalCorrelationName_EDIT + : PartialBacktickedIdentifier + | QuotedValue_EDIT + | 'AS' PartialBacktickedIdentifier + | 'AS' QuotedValue_EDIT + | 'AS' 'CURSOR' + ; + +UserDefinedFunction + : AggregateFunction OptionalOverClause + { + if (!$2) { + $1.suggestKeywords = ['OVER']; + } + } + | AnalyticFunction OverClause + | CastFunction + ; + +UserDefinedFunction_EDIT + : AggregateFunction_EDIT + | AggregateFunction OptionalOverClause_EDIT + | AnalyticFunction_EDIT + | AnalyticFunction_EDIT OverClause + | AnalyticFunction 'CURSOR' + { + parser.suggestKeywords(['OVER']); + } + | AnalyticFunction OverClause_EDIT + | CastFunction_EDIT + ; + +ArbitraryFunction + : RegularIdentifier ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + ; + +ArbitraryFunction_EDIT + : RegularIdentifier ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ArbitraryFunctionName + : 'ARRAY' + | 'IF' + | 'MAP' + | 'TRUNCATE' + ; + +ArbitraryFunctionRightPart + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } + ; + +ArbitraryFunctionRightPart_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { position: 1 } + } + | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 + ; + +AggregateFunction + : CountFunction + | SumFunction + | OtherAggregateFunction + ; + +AggregateFunction_EDIT + : CountFunction_EDIT + | SumFunction_EDIT + | OtherAggregateFunction_EDIT + ; + +AnalyticFunction + : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } + ; + +AnalyticFunction_EDIT + : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError + { + parser.applyArgumentTypesToSuggestions($1, $3.position); + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOverClause + : + | OverClause + ; + +OptionalOverClause_EDIT + : OverClause_EDIT + ; + +OverClause + : 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression + ; + +OverClause_EDIT + : 'OVER' WindowExpression_EDIT + ; + +WindowExpression + : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' + ; + +WindowExpression_EDIT + : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$3 && !$4) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$3) { + parser.suggestKeywords(['PARTITION BY']); + } + } + | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$6) { + parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($4); + } + } + ; + +OptionalPartitionBy + : + | PartitionBy + ; + +PartitionBy + : 'PARTITION' 'BY' ValueExpressionList -> $3 + ; + +PartitionBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'PARTITION' 'BY' ValueExpressionList_EDIT + ; + +OptionalOrderByAndWindow + : + | OrderByClause OptionalWindowSpec + ; + +OptionalOrderByAndWindow_EDIT + : OrderByClause_EDIT + { + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + } + | OrderByClause 'CURSOR' OptionalWindowSpec + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); + } + if (!$3) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + } + | OrderByClause WindowSpec_EDIT + ; + +OptionalWindowSpec + : + | WindowSpec + ; + +WindowSpec + : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + ; + +WindowSpec_EDIT + : RowsOrRange 'CURSOR' + { + parser.suggestKeywords(['BETWEEN']); + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' + { + if (!$4 && !$5) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$5) { + parser.suggestKeywords(['AND']); + } + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT + ; + +PopLexerState + : + { + lexer.popState(); + } + ; + +PushHdfsLexerState + : + { + lexer.begin('hdfs'); + } + ; + +HdfsPath + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' + ; + +HdfsPath_EDIT + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: '' }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: '' }); + } + ; + +RowsOrRange + : 'ROWS' + | 'RANGE' + ; + +OptionalCurrentOrPreceding + : + | IntegerOrUnbounded 'PRECEDING' + | 'CURRENT' 'ROW' + ; + +OptionalCurrentOrPreceding_EDIT + : IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['PRECEDING']); + } + | 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + ; + +OptionalAndFollowing + : + | 'AND' 'CURRENT' 'ROW' + | 'AND' IntegerOrUnbounded 'FOLLOWING' + ; + +OptionalAndFollowing_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + } + | 'AND' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + | 'AND' IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['FOLLOWING']); + } + ; + +IntegerOrUnbounded + : 'UNSIGNED_INTEGER' + | 'UNBOUNDED' + ; + +OptionalHavingClause + : + | HavingClause + ; + +HavingClause + : 'HAVING' ValueExpression + ; + +HavingClause_EDIT + : 'HAVING' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + | 'HAVING' ValueExpression_EDIT + { + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + ; + +CastFunction + : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ')' -> { types: [ 'T' ] } + ; + +CastFunction_EDIT + : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + ; + +CountFunction + : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +CountFunction_EDIT + : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +OtherAggregateFunction_EDIT + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, $4.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction_Type + : 'AVG' + | 'MAX' + | 'MIN' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARIANCE' + ; + +FromOrComma + : 'FROM' + | ',' + ; + +SumFunction + : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } + | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } + ; + +SumFunction_EDIT + : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, 1); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; diff --git a/src/jison/sql/druid/sql_set.jison b/src/jison/sql/druid/sql_set.jison new file mode 100644 index 0000000..14cff5c --- /dev/null +++ b/src/jison/sql/druid/sql_set.jison @@ -0,0 +1,46 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : SetSpecification + ; + +DataDefinition_EDIT + : 'SET' 'CURSOR' + { + parser.suggestSetOptions(); + } + ; + +SetSpecification + : 'SET' SetOption '=' SetValue + | 'SET' 'ALL' + ; + +SetOption + : RegularIdentifier + | SetOption '.' RegularIdentifier + ; + +SetValue + : RegularIdentifier + | SignedInteger + | SignedInteger RegularIdentifier + | QuotedValue + | 'TRUE' + | 'FALSE' + | 'NULL' + ; diff --git a/src/jison/sql/druid/sql_update.jison b/src/jison/sql/druid/sql_update.jison new file mode 100644 index 0000000..1091c41 --- /dev/null +++ b/src/jison/sql/druid/sql_update.jison @@ -0,0 +1,122 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : UpdateStatement + ; + +DataManipulation_EDIT + : UpdateStatement_EDIT + ; + +UpdateStatement + : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + ; + +UpdateStatement_EDIT + : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' + { + parser.suggestKeywords([ 'WHERE' ]); + } + | 'UPDATE' TargetTable 'CURSOR' + { + parser.suggestKeywords([ 'SET' ]); + } + | 'UPDATE' TargetTable_EDIT + | 'UPDATE' TargetTable + | 'UPDATE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TargetTable + : TableName + ; + +TargetTable_EDIT + : TableName_EDIT + ; + +TableName + : LocalOrSchemaQualifiedName + { + parser.addTablePrimary($1); + } + ; + +TableName_EDIT + : LocalOrSchemaQualifiedName_EDIT + ; + +SetClauseList + : SetClause + | SetClauseList ',' SetClause + ; + +SetClauseList_EDIT + : SetClause_EDIT + | SetClauseList ',' SetClause_EDIT + | SetClause_EDIT ',' SetClauseList + | SetClauseList ',' SetClause_EDIT ',' SetClauseList + ; + +SetClause + : SetTarget '=' UpdateSource + ; + +SetClause_EDIT + : SetTarget '=' UpdateSource_EDIT + | SetTarget 'CURSOR' + { + parser.suggestKeywords([ '=' ]); + } + | 'CURSOR' + { + parser.suggestColumns(); + } + ; + +SetTarget + : ColumnReference + ; + +UpdateSource + : ValueExpression + ; + +UpdateSource_EDIT + : ValueExpression_EDIT + ; + +OptionalFromJoinedTable + : + | 'FROM' TableReference -> $2 + ; + +FromJoinedTable_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReference_EDIT + ; diff --git a/src/jison/sql/druid/sql_use.jison b/src/jison/sql/druid/sql_use.jison new file mode 100644 index 0000000..c99b2c2 --- /dev/null +++ b/src/jison/sql/druid/sql_use.jison @@ -0,0 +1,39 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : UseStatement + ; + +DataDefinition_EDIT + : UseStatement_EDIT + ; + +UseStatement + : 'USE' RegularIdentifier + { + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $2; + } + } + ; + +UseStatement_EDIT + : 'USE' 'CURSOR' + { + parser.suggestDatabases(); + } + ; diff --git a/src/jison/sql/druid/sql_valueExpression.jison b/src/jison/sql/druid/sql_valueExpression.jison new file mode 100644 index 0000000..3dcc339 --- /dev/null +++ b/src/jison/sql/druid/sql_valueExpression.jison @@ -0,0 +1,839 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +ValueExpression + : 'NOT' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression -> $2 + | '-' ValueExpression %prec NEGATION + { + // verifyType($2, 'NUMBER'); + $$ = $2; + $2.types = ['NUMBER']; + } + | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | 'NOT' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | '!' AnyCursor + { + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | '~' 'PARTIAL_CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + $$ = { types: [ 'T' ] }; + } + | '-' ValueExpression_EDIT %prec NEGATION + { + if (!$2.typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; + } + | '-' 'PARTIAL_CURSOR' %prec NEGATION + { + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'IS' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' + { + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'NULL' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'FALSE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'TRUE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } + } + ; + +// ------------------ EXISTS and parenthesized ------------------ +ValueExpression + : 'EXISTS' TableSubQuery + { + $$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + } + | '(' ValueExpression ')' -> $2 + ; + +ValueExpression_EDIT + : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } + | '(' ValueExpression_EDIT RightParenthesisOrError + { + $$ = $2; + } + | '(' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['T'], typeSet: true }; + } + ; + +// ------------------ COMPARISON ------------------ + +ValueExpression + : ValueExpression '=' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '<' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '>' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '=' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '<' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '>' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT '=' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '<' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '>' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '=' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression '<' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + } + | ValueExpression '>' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; + } + | ValueExpression '=' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '<' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '>' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + + +// ------------------ IN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT + { + if ($4.inValueEdit) { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + parser.applyTypeToSuggestions($1.types); + } + if ($4.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT + { + if ($3.inValueEdit) { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + } + if ($3.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + ; + +ValueExpressionInSecondPart_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } + | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } + ; + +// ------------------ BETWEEN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($4.types[0] === $6.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($4.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $6.types[0] && !$4.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $4.types[0] && !$6.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $5); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($4, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$3.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $3.types[0] && !$5.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $4); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ BOOLEAN ------------------ + +ValueExpression + : ValueExpression 'OR' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'AND' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' 'OR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'OR' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'OR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'OR' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | 'CURSOR' 'AND' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'AND' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'AND' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'AND' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + +// ------------------ ARITHMETIC ------------------ + +ValueExpression + : ValueExpression '-' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression '*' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '*' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression_EDIT '-' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '*' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '-' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '*' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '-' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression '*' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + ; + +// ------------------ LIKE, RLIKE and REGEXP ------------------ + +ValueExpression + : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } + ; + +LikeRightPart + : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + ; + +LikeRightPart_EDIT + : 'LIKE' ValueExpression_EDIT + | 'RLIKE' ValueExpression_EDIT + | 'REGEXP' ValueExpression_EDIT + | 'LIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'RLIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'REGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | 'CURSOR' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'NOT' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ CASE, WHEN, THEN ------------------ + +ValueExpression + : 'CASE' CaseRightPart -> $2 + | 'CASE' ValueExpression CaseRightPart -> $3 + ; + +ValueExpression_EDIT + : 'CASE' CaseRightPart_EDIT -> $2 + | 'CASE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 + | 'CASE' ValueExpression 'CURSOR' EndOrError + { + parser.suggestValueExpressionKeywords($2, ['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression_EDIT CaseRightPart + { + $$ = $3; + $$.suggestFilters = $2.suggestFilters; + } + | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } + ; + +CaseRightPart + : CaseWhenThenList 'END' -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'END' + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + ; + +CaseRightPart_EDIT + : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['END']); + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'CURSOR' ValueExpression EndOrError + { + if ($4.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'CURSOR' EndOrError + { + if ($3.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + $$.suggestFilters = $3.suggestFilters + } + | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = parser.findCaseType($1); + } + | 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CURSOR' 'ELSE' ValueExpression EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = $3; + } + | 'CURSOR' 'ELSE' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ] }; + } + ; + +EndOrError + : 'END' + | error + ; + +CaseWhenThenList + : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } + | CaseWhenThenList CaseWhenThenListPartTwo + { + $1.caseTypes.push($2); + $$ = { caseTypes: $1.caseTypes, lastType: $2 }; + } + ; + +CaseWhenThenList_EDIT + : CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList + | CaseWhenThenList 'CURSOR' CaseWhenThenList + { + parser.suggestValueExpressionKeywords($1, ['WHEN']); + } + | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 + ; + +CaseWhenThenListPartTwo + : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 + ; + +CaseWhenThenListPartTwo_EDIT + : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } + | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } + | 'CURSOR' ValueExpression 'THEN' + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' ValueExpression 'THEN' ValueExpression + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [$4] }; + } + | 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [$4], suggestFilters: true }; + } + | 'WHEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'CURSOR' ValueExpression + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + ; diff --git a/src/jison/sql/druid/syntax_footer.jison b/src/jison/sql/druid/syntax_footer.jison new file mode 100644 index 0000000..ec25eab --- /dev/null +++ b/src/jison/sql/druid/syntax_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/druid/syntax_header.jison b/src/jison/sql/druid/syntax_header.jison new file mode 100644 index 0000000..e2c6815 --- /dev/null +++ b/src/jison/sql/druid/syntax_header.jison @@ -0,0 +1,28 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlSyntax + +%% diff --git a/src/jison/sql/elasticsearch/autocomplete_footer.jison b/src/jison/sql/elasticsearch/autocomplete_footer.jison new file mode 100644 index 0000000..899433d --- /dev/null +++ b/src/jison/sql/elasticsearch/autocomplete_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/elasticsearch/autocomplete_header.jison b/src/jison/sql/elasticsearch/autocomplete_header.jison new file mode 100644 index 0000000..3b90682 --- /dev/null +++ b/src/jison/sql/elasticsearch/autocomplete_header.jison @@ -0,0 +1,29 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'CURSOR' 'PARTIAL_CURSOR' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlAutocomplete + +%% diff --git a/src/jison/sql/elasticsearch/sql.jisonlex b/src/jison/sql/elasticsearch/sql.jisonlex new file mode 100644 index 0000000..83dbe72 --- /dev/null +++ b/src/jison/sql/elasticsearch/sql.jisonlex @@ -0,0 +1,226 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%options case-insensitive flex +%s between +%x hdfs doubleQuotedValue singleQuotedValue backtickedValue +%% + +\s { /* skip whitespace */ } +'--'.* { /* skip comments */ } +[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } + +'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } +'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } + +'AND' { this.popState(); return 'BETWEEN_AND'; } + +// Reserved Keywords +'ALL' { return 'ALL'; } +'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } +'AND' { return 'AND'; } +'AS' { return 'AS'; } +'ASC' { return 'ASC'; } +'BETWEEN' { this.begin('between'); return 'BETWEEN'; } +'BIGINT' { return 'BIGINT'; } +'BOOLEAN' { return 'BOOLEAN'; } +'BY' { return 'BY'; } +'CASCADE' { return 'CASCADE'; } +'CASE' { return 'CASE'; } +'CHAR' { return 'CHAR'; } +'COMMENT' { return 'COMMENT'; } +'CREATE' { parser.determineCase(yytext); return 'CREATE'; } +'CROSS' { return 'CROSS'; } +'CURRENT' { return 'CURRENT'; } +'DATABASE' { return 'DATABASE'; } +'DECIMAL' { return 'DECIMAL'; } +'DESC' { return 'DESC'; } +'DISTINCT' { return 'DISTINCT'; } +'DIV' { return 'ARITHMETIC_OPERATOR'; } +'DOUBLE' { return 'DOUBLE'; } +'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } +'ELSE' { return 'ELSE'; } +'END' { return 'END'; } +'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } +'FALSE' { return 'FALSE'; } +'FLOAT' { return 'FLOAT'; } +'FOLLOWING' { return 'FOLLOWING'; } +'FROM' { parser.determineCase(yytext); return 'FROM'; } +'FULL' { return 'FULL'; } +'GROUP' { return 'GROUP'; } +'HAVING' { return 'HAVING'; } +'IF' { return 'IF'; } +'IN' { return 'IN'; } +'INNER' { return 'INNER'; } +'INSERT' { return 'INSERT'; } +'INT' { return 'INT'; } +'INTO' { return 'INTO'; } +'IS' { return 'IS'; } +'JOIN' { return 'JOIN'; } +'LEFT' { return 'LEFT'; } +'LIKE' { return 'LIKE'; } +'LIMIT' { return 'LIMIT'; } +'NOT' { return 'NOT'; } +'NULL' { return 'NULL'; } +'ON' { return 'ON'; } +'OPTION' { return 'OPTION'; } +'OR' { return 'OR'; } +'ORDER' { return 'ORDER'; } +'OUTER' { return 'OUTER'; } +'PARTITION' { return 'PARTITION'; } +'PRECEDING' { return 'PRECEDING'; } +'PURGE' { return 'PURGE'; } +'RANGE' { return 'RANGE'; } +'REGEXP' { return 'REGEXP'; } +'RIGHT' { return 'RIGHT'; } +'RLIKE' { return 'RLIKE'; } +'ROW' { return 'ROW'; } +'ROLE' { return 'ROLE'; } +'ROWS' { return 'ROWS'; } +'SCHEMA' { return 'SCHEMA'; } +'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } +'SEMI' { return 'SEMI'; } +'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } +'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } +'SMALLINT' { return 'SMALLINT'; } +'STRING' { return 'STRING'; } +'TABLE' { return 'TABLE'; } +'THEN' { return 'THEN'; } +'TIMESTAMP' { return 'TIMESTAMP'; } +'TINYINT' { return 'TINYINT'; } +'TO' { return 'TO'; } +'TRUE' { return 'TRUE'; } +'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } +'UNBOUNDED' { return 'UNBOUNDED'; } +'UNION' { return 'UNION'; } +'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } +'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } +'VALUES' { return 'VALUES'; } +'VARCHAR' { return 'VARCHAR'; } +'VIEW' { return 'VIEW'; } +'WHEN' { return 'WHEN'; } +'WHERE' { return 'WHERE'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } + +// Non-reserved Keywords +'OVER' { return 'OVER'; } +'ROLE' { return 'ROLE'; } + +// --- UDFs --- +AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } +CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } +COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } +MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } +MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } +STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } +STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } +SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } +VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } +VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } +VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } + +// Analytical functions +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } + +[0-9]+ { return 'UNSIGNED_INTEGER'; } +[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } +[0-9]+E { return 'UNSIGNED_INTEGER_E'; } +[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } + +'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } +'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } +\s+['"] { return 'HDFS_START_QUOTE'; } +[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } +['"] { this.popState(); return 'HDFS_END_QUOTE'; } +<> { return 'EOF'; } + +'&&' { return 'AND'; } +'||' { return 'OR'; } + +'=' { return '='; } +'<' { return '<'; } +'>' { return '>'; } +'!=' { return 'COMPARISON_OPERATOR'; } +'<=' { return 'COMPARISON_OPERATOR'; } +'>=' { return 'COMPARISON_OPERATOR'; } +'<>' { return 'COMPARISON_OPERATOR'; } +'<=>' { return 'COMPARISON_OPERATOR'; } + +'-' { return '-'; } +'*' { return '*'; } +'+' { return 'ARITHMETIC_OPERATOR'; } +'/' { return 'ARITHMETIC_OPERATOR'; } +'%' { return 'ARITHMETIC_OPERATOR'; } +'|' { return 'ARITHMETIC_OPERATOR'; } +'^' { return 'ARITHMETIC_OPERATOR'; } +'&' { return 'ARITHMETIC_OPERATOR'; } + +',' { return ','; } +'.' { return '.'; } +':' { return ':'; } +';' { return ';'; } +'~' { return '~'; } +'!' { return '!'; } + +'(' { return '('; } +')' { return ')'; } +'[' { return '['; } +']' { return ']'; } + +\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } + +\` { this.begin('backtickedValue'); return 'BACKTICK'; } +[^`]+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\` { this.popState(); return 'BACKTICK'; } + +\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } +(?:\\\\|\\[']|[^'])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\' { this.popState(); return 'SINGLE_QUOTE'; } + +\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } +(?:\\\\|\\["]|[^"])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\" { this.popState(); return 'DOUBLE_QUOTE'; } + +<> { return 'EOF'; } + +. { /* To prevent console logging of unknown chars */ } +. { } +. { } +. { } +. { } +. { } diff --git a/src/jison/sql/elasticsearch/sql_alter.jison b/src/jison/sql/elasticsearch/sql_alter.jison new file mode 100644 index 0000000..82acf8f --- /dev/null +++ b/src/jison/sql/elasticsearch/sql_alter.jison @@ -0,0 +1,109 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : AlterStatement + ; + +DataDefinition_EDIT + : AlterStatement_EDIT + ; + +AlterStatement + : AlterTable + | AlterView + ; + +AlterStatement_EDIT + : AlterTable_EDIT + | AlterView_EDIT + | 'ALTER' 'CURSOR' + { + parser.suggestKeywords(['TABLE', 'VIEW']); + } + ; + +AlterTable + : AlterTableLeftSide PartitionSpec + ; + +AlterTable_EDIT + : AlterTableLeftSide_EDIT + | AlterTableLeftSide_EDIT PartitionSpec + | AlterTableLeftSide 'CURSOR' + | AlterTableLeftSide PartitionSpec 'CURSOR' + ; + +AlterTableLeftSide + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterTableLeftSide_EDIT + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'ALTER' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +AlterView + : AlterViewLeftSide 'AS' QuerySpecification + ; + +AlterView_EDIT + : AlterViewLeftSide_EDIT + | AlterViewLeftSide 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | AlterViewLeftSide 'SET' 'CURSOR' + | AlterViewLeftSide 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | AlterViewLeftSide 'AS' QuerySpecification_EDIT + ; + + +AlterViewLeftSide + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterViewLeftSide_EDIT + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'ALTER' 'VIEW' 'CURSOR' + { + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; diff --git a/src/jison/sql/elasticsearch/sql_create.jison b/src/jison/sql/elasticsearch/sql_create.jison new file mode 100644 index 0000000..1329ac6 --- /dev/null +++ b/src/jison/sql/elasticsearch/sql_create.jison @@ -0,0 +1,615 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : CreateStatement + ; + +DataDefinition_EDIT + : CreateStatement_EDIT + ; + +CreateStatement + : DatabaseDefinition + | TableDefinition + | ViewDefinition + | RoleDefinition + ; + +CreateStatement_EDIT + : DatabaseDefinition_EDIT + | TableDefinition_EDIT + | ViewDefinition_EDIT + | 'CREATE' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DatabaseDefinition + : 'CREATE' DatabaseOrSchema OptionalIfNotExists + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT + | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinitionOptionals + : OptionalComment + { + if (!$1) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +DatabaseDefinitionOptionals_EDIT + : OptionalComment_INVALID + ; + +OptionalComment + : + | Comment + ; + +Comment + : 'COMMENT' QuotedValue + ; + +OptionalComment_INVALID + : Comment_INVALID + ; + +Comment_INVALID + : 'COMMENT' SINGLE_QUOTE + | 'COMMENT' DOUBLE_QUOTE + | 'COMMENT' SINGLE_QUOTE VALUE + | 'COMMENT' DOUBLE_QUOTE VALUE + ; + +TableDefinition + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart + ; + +TableDefinition_EDIT + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT + | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT + ; + +TableDefinitionRightPart + : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement + ; + +TableDefinitionRightPart_EDIT + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' + { + var keywords = []; + if (!$1 && !$2) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$2) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + ; + +TableIdentifierAndOptionalColumnSpecification + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } + ; + +TableIdentifierAndOptionalColumnSpecification_EDIT + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT + | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike + ; + +OptionalColumnSpecificationsOrLike + : + | ParenthesizedColumnSpecificationList + | 'LIKE' SchemaQualifiedTableIdentifier -> [] + ; + +OptionalColumnSpecificationsOrLike_EDIT + : ParenthesizedColumnSpecificationList_EDIT + | 'LIKE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LIKE' SchemaQualifiedTableIdentifier_EDIT + ; + +ParenthesizedColumnSpecificationList + : '(' ColumnSpecificationList ')' -> $2 + ; + +ParenthesizedColumnSpecificationList_EDIT + : '(' ColumnSpecificationList_EDIT RightParenthesisOrError + ; + +ColumnSpecificationList + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) + ; + +ColumnSpecificationList_EDIT + : ColumnSpecification_EDIT + | ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecificationList ',' ColumnSpecification_EDIT + | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($1); + } + | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($1); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($3); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($3); + } + ; + +ColumnSpecification + : ColumnIdentifier ColumnDataType OptionalColumnOptions + { + $$ = $1; + $$.type = $2; + var keywords = []; + if (!$3['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +ColumnSpecification_EDIT + : ColumnIdentifier 'CURSOR' OptionalColumnOptions + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions + | ColumnIdentifier ColumnDataType ColumnOptions_EDIT + ; + +OptionalColumnOptions + : -> {} + | ColumnOptions + ; + +ColumnOptions + : ColumnOption + { + $$ = {}; + $$[$1] = true; + } + | ColumnOptions ColumnOption + { + $1[$2] = true; + } + ; + +ColumnOptions_EDIT + : ColumnOption_EDIT + | ColumnOption_EDIT ColumnOptions + | ColumnOptions ColumnOption_EDIT + | ColumnOptions ColumnOption_EDIT ColumnOptions + ; + +ColumnOption + : 'NOT' 'NULL' -> 'null' + | 'NULL' -> 'null' + | Comment -> 'comment' + ; + +ColumnOption_EDIT + : 'NOT' 'CURSOR' + { + parser.suggestKeywords(['NULL']); + } + ; + +ColumnDataType + : PrimitiveType + | ArrayType + | MapType + | StructType + | ArrayType_INVALID + | MapType_INVALID + | StructType_INVALID + ; + +ColumnDataType_EDIT + : ArrayType_EDIT + | MapType_EDIT + | StructType_EDIT + ; + +ArrayType + : 'ARRAY' '<' ColumnDataType '>' + ; + +ArrayType_INVALID + : 'ARRAY' '<' '>' + ; + +ArrayType_EDIT + : 'ARRAY' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError + ; + +MapType + : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' + ; + +MapType_INVALID + : 'MAP' '<' '>' + ; + +MapType_EDIT + : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError + | 'MAP' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'MAP' '<' ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + ; + +StructType + : 'STRUCT' '<' StructDefinitionList '>' + ; + +StructType_INVALID + : 'STRUCT' '<' '>' + ; + +StructType_EDIT + : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError + ; + +StructDefinitionList + : StructDefinition + | StructDefinitionList ',' StructDefinition + ; + +StructDefinitionList_EDIT + : StructDefinition_EDIT + | StructDefinition_EDIT Commas + | StructDefinition_EDIT Commas StructDefinitionList + | StructDefinitionList ',' StructDefinition_EDIT + | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList + ; + +StructDefinition + : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment + ; + +StructDefinition_EDIT + : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | Commas RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + ; + +ColumnDataTypeList + : ColumnDataType + | ColumnDataTypeList ',' ColumnDataType + ; + +ColumnDataTypeList_EDIT + : ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + ; + +ColumnDataTypeListInner_EDIT + : Commas AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas ColumnDataType_EDIT + | AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnDataType_EDIT + ; + +GreaterThanOrError + : '>' + | error + ; + +OptionalPartitionedBy + : + | PartitionedBy + ; + +PartitionedBy + : 'PARTITION' 'BY' RangeClause + ; + +PartitionedBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.suggestKeywords(['RANGE']); + } + | 'PARTITION' 'BY' RangeClause_EDIT + ; + +RangeClause + : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList + ; + +RangeClause_EDIT + : 'RANGE' 'CURSOR' + | 'RANGE' ParenthesizedColumnList_EDIT + | 'RANGE' ParenthesizedColumnList 'CURSOR' + | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT + | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList + ; + +ParenthesizedPartitionValuesList + : '(' PartitionValueList ')' + ; + +ParenthesizedPartitionValuesList_EDIT + : '(' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['PARTITION']); + } + |'(' PartitionValueList_EDIT RightParenthesisOrError + ; + +PartitionValueList + : PartitionValue + | PartitionValueList ',' PartitionValue + ; + +PartitionValueList_EDIT + : PartitionValue_EDIT + | PartitionValueList ',' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' 'CURSOR' ',' PartitionValueList + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' PartitionValue_EDIT + | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList + ; + +PartitionValue + : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' + ; + +PartitionValue_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['VALUE', 'VALUES']); + } + | 'PARTITION' ValueExpression_EDIT + { + if ($2.endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + } + | 'PARTITION' ValueExpression 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + | 'PARTITION' 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + ; + +LessThanOrEqualTo + : '<' + | 'COMPARISON_OPERATOR' // This is fine for autocompletion + ; + +OptionalAsSelectStatement + : + | 'AS' CommitLocations QuerySpecification + ; + +OptionalAsSelectStatement_EDIT + : 'AS' CommitLocations 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'AS' CommitLocations QuerySpecification_EDIT + ; + +CommitLocations + : /* empty */ + { + parser.commitLocations(); + } + ; + +ViewDefinition + : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +ViewDefinition_EDIT + : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' + { + var keywords = [{value: 'AS', weight: 1 }]; + if (!$6) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +OptionalParenthesizedViewColumnList + : + | ParenthesizedViewColumnList + ; + +ParenthesizedViewColumnList + : '(' ViewColumnList ')' + ; + +ParenthesizedViewColumnList_EDIT + : '(' ViewColumnList_EDIT RightParenthesisOrError + { + if (!$2) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +ViewColumnList + : ColumnReference OptionalComment + | ViewColumnList ',' ColumnReference OptionalComment + ; + +ViewColumnList_EDIT + : ColumnReference OptionalComment 'CURSOR' -> $2 + | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 + ; + +RoleDefinition + : 'CREATE' 'ROLE' RegularIdentifier + ; diff --git a/src/jison/sql/elasticsearch/sql_drop.jison b/src/jison/sql/elasticsearch/sql_drop.jison new file mode 100644 index 0000000..0e3aa53 --- /dev/null +++ b/src/jison/sql/elasticsearch/sql_drop.jison @@ -0,0 +1,184 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : DropStatement + ; + +DataDefinition_EDIT + : DropStatement_EDIT + ; + +DropStatement + : DropDatabaseStatement + | DropRoleStatement + | DropTableStatement + | DropViewStatement + | TruncateTableStatement + ; + +DropStatement_EDIT + : DropDatabaseStatement_EDIT + | DropTableStatement_EDIT + | DropViewStatement_EDIT + | TruncateTableStatement_EDIT + | 'DROP' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DropDatabaseStatement + : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade + ; + +DropDatabaseStatement_EDIT + : 'DROP' DatabaseOrSchema OptionalIfExists + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + } + | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CASCADE']); + } + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + ; +DropRoleStatement + : 'DROP' 'ROLE' RegularIdentifier + ; + +DropTableStatement + : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement_EDIT + : 'DROP' 'TABLE' OptionalIfExists_EDIT + | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PURGE']); + } + } + ; + +OptionalPurge + : + | 'PURGE' + ; + +DropViewStatement + : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropViewStatement_EDIT + : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($5); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'VIEW' OptionalIfExists_EDIT + | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +TruncateTableStatement + : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +TruncateTableStatement_EDIT + : 'TRUNCATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($4); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec + ; diff --git a/src/jison/sql/elasticsearch/sql_error.jison b/src/jison/sql/elasticsearch/sql_error.jison new file mode 100644 index 0000000..48b9a4e --- /dev/null +++ b/src/jison/sql/elasticsearch/sql_error.jison @@ -0,0 +1,132 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlStatements + : error + | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? + ; + +SqlStatement_EDIT + : AnyCursor error + { + parser.suggestDdlAndDmlKeywords(); + } + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT + ; + +SelectList_ERROR + : ErrorList + | SelectList ',' ErrorList + | ErrorList ',' SelectList ',' ErrorList + | ErrorList ',' SelectList + | SelectList ',' ErrorList ',' SelectList + ; + +SelectList_ERROR_EDIT + : ErrorList ',' SelectList_EDIT -> $3 + | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 + | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 + | ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | ErrorList ',' SelectList ',' Errors ',' AnyCursor + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + ; + +SetSpecification + : 'SET' SetOption '=' error + ; + +ErrorList + : error + | Errors ',' error + ; + +JoinType_EDIT + : 'FULL' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'LEFT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'RIGHT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$4 && !$5 && !$6 && !$7 + }; + } + | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$6 && !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' + ; + +OptionalSelectConditions_EDIT + : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error + ; diff --git a/src/jison/sql/elasticsearch/sql_insert.jison b/src/jison/sql/elasticsearch/sql_insert.jison new file mode 100644 index 0000000..8b3544e --- /dev/null +++ b/src/jison/sql/elasticsearch/sql_insert.jison @@ -0,0 +1,72 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : InsertStatement + ; + +InsertStatement + : InsertValuesStatement + ; + +DataManipulation_EDIT + : InsertValuesStatement_EDIT + ; + +InsertValuesStatement + : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + ; + +InsertValuesStatement_EDIT + : 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['INTO']); + } + | 'INSERT' 'INTO' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + parser.suggestKeywords(['VALUES']); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList + ; + +InsertValuesList + : ParenthesizedRowValuesList + | RowValuesList ',' ParenthesizedRowValuesList + ; + +ParenthesizedRowValuesList + : '(' InValueList ')' + ; + +OptionalTable + : + | 'TABLE' + ; diff --git a/src/jison/sql/elasticsearch/sql_main.jison b/src/jison/sql/elasticsearch/sql_main.jison new file mode 100644 index 0000000..3aaf9f9 --- /dev/null +++ b/src/jison/sql/elasticsearch/sql_main.jison @@ -0,0 +1,2762 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlSyntax + : NewStatement SqlStatements EOF + ; + +SqlAutocomplete + : NewStatement SqlStatements EOF + { + return parser.yy.result; + } + | NewStatement SqlStatements_EDIT EOF + { + return parser.yy.result; + } + ; + +NewStatement + : /* empty */ + { + parser.prepareNewStatement(); + } + ; + +SqlStatements + : + | SqlStatement + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatements + ; + +SqlStatements_EDIT + : SqlStatement_EDIT + { + parser.addStatementLocation(@1); + } + | SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT + { + parser.addStatementLocation(@4); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@4); + } + ; + +SqlStatement + : DataDefinition + | DataManipulation + | QuerySpecification + ; + +SqlStatement_EDIT + : AnyCursor + { + parser.suggestDdlAndDmlKeywords(); + } + | CommonTableExpression 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | DataDefinition_EDIT + | DataManipulation_EDIT + | QuerySpecification_EDIT + | SetSpecification_EDIT + ; + +NonReservedKeyword + : 'ROLE' + | 'OPTION' + | 'STRUCT' + ; + +RegularIdentifier + : 'REGULAR_IDENTIFIER' + | 'VARIABLE_REFERENCE' + | NonReservedKeyword + ; + +// This is a work-around for error handling when a statement starts with some token that the parser can understand but +// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) +NonStartingToken + : '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '<' + | '=' + | '>' + | '[' + | ']' + | '~' + | 'ALL' + | 'ANALYTIC' + | 'AND' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'AS' + | 'ASC' + | 'AVG' + | 'BACKTICK' + | 'BETWEEN' + | 'BIGINT' + | 'BOOLEAN' + | 'BY' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'COMPARISON_OPERATOR' + | 'COUNT' + | 'CROSS' + | 'CURRENT' + | 'DATABASE' + | 'DECIMAL' + | 'DESC' + | 'DISTINCT' + | 'DOUBLE' + | 'DOUBLE_QUOTE' + | 'ELSE' + | 'END' + | 'EXISTS' + | 'FALSE' + | 'FLOAT' + | 'FOLLOWING' + | 'FROM' + | 'FULL' + | 'GROUP' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'IF' + | 'IN' + | 'INNER' + | 'INT' + | 'INTO' + | 'IS' + | 'JOIN' + | 'LEFT' + | 'LIKE' + | 'LIMIT' + | 'MAP' + | 'MAX' + | 'MIN' + | 'NOT' + | 'NULL' + | 'ON' + | 'OPTION' + | 'OR' + | 'ORDER' + | 'OUTER' + | 'OVER' + | 'PARTITION' + | 'PRECEDING' + | 'PURGE' + | 'RANGE' + | 'REGEXP' + | 'REGULAR_IDENTIFIER' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROW' + | 'ROWS' + | 'SCHEMA' + | 'SEMI' + | 'SET' + | 'SINGLE_QUOTE' + | 'SMALLINT' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STRING' + | 'STRUCT' + | 'SUM' + | 'TABLE' + | 'THEN' + | 'TIMESTAMP' + | 'TINYINT' + | 'TRUE' + | 'UNION' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'WHEN' + | 'WHERE' + ; + +// ===================================== Commonly used constructs ===================================== + +Commas + : ',' + | Commas ',' + ; + +AnyCursor + : 'CURSOR' + | 'PARTIAL_CURSOR' + ; + +FromOrIn + : 'FROM' + | 'IN' + ; + +DatabaseOrSchema + : 'DATABASE' + | 'SCHEMA' + ; + +SingleQuotedValue + : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 + | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' + ; + +SingleQuotedValue_EDIT + : 'SINGLE_QUOTE' 'PARTIAL_VALUE' + ; + +DoubleQuotedValue + : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 + | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' + ; + +DoubleQuotedValue_EDIT + : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' + ; + +QuotedValue + : SingleQuotedValue + | DoubleQuotedValue + ; + +QuotedValue_EDIT + : SingleQuotedValue_EDIT + | DoubleQuotedValue_EDIT + ; + +OptionalFromDatabase + : + | FromOrIn DatabaseIdentifier + ; + +OptionalFromDatabase_EDIT + : FromOrIn DatabaseIdentifier_EDIT + ; + +OptionalCascade + : + | 'CASCADE' + ; + +OptionalIfExists + : + | 'IF' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalIfNotExists + : + | 'IF' 'NOT' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfNotExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['NOT EXISTS']); + } + | 'IF' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalInDatabase + : + | 'IN' DatabaseIdentifier + | 'IN' DatabaseIdentifier_EDIT + ; + +OptionalPartitionSpec + : + | PartitionSpec + ; + +OptionalPartitionSpec_EDIT + : PartitionSpec_EDIT + ; + +PartitionSpec + : 'PARTITION' '(' PartitionSpecList ')' + ; + +PartitionSpec_EDIT + : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +RangePartitionSpec + : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + ; + +RangePartitionSpec_EDIT + : UnsignedValueSpecification 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + ; + +RangePartitionComparisonOperator + : 'COMPARISON_OPERATOR' + | '=' + | '<' + | '>' + ; + +ConfigurationName + : RegularIdentifier + | 'CURSOR' + ; + +PartialBacktickedOrAnyCursor + : AnyCursor + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrCursor + : 'CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrPartialCursor + : 'PARTIAL_CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedIdentifier + : 'BACKTICK' 'PARTIAL_VALUE' + ; + +RightParenthesisOrError + : ')' + | error + ; + +OptionalParenthesizedColumnList + : + | ParenthesizedColumnList + ; + +OptionalParenthesizedColumnList_EDIT + : ParenthesizedColumnList_EDIT + ; + +ParenthesizedColumnList + : '(' ColumnList ')' + ; + +ParenthesizedColumnList_EDIT + : '(' ColumnList_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +ColumnList + : ColumnIdentifier + | ColumnList ',' ColumnIdentifier + ; + +ColumnList_EDIT + : ColumnList ',' AnyCursor + { + parser.suggestColumns(); + } + | ColumnList ',' AnyCursor ',' ColumnList + { + parser.suggestColumns(); + } + ; + +ParenthesizedSimpleValueList + : '(' SimpleValueList ')' + ; + +SimpleValueList + : UnsignedValueSpecification + | SimpleValueList ',' UnsignedValueSpecification + ; + +SchemaQualifiedTableIdentifier + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +SchemaQualifiedTableIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + +SchemaQualifiedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] + ; + +SchemaQualifiedIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + ; + +DatabaseIdentifier + : RegularOrBacktickedIdentifier + ; + +DatabaseIdentifier_EDIT + : PartialBacktickedOrCursor + { + parser.suggestDatabases(); + } + ; + +PartitionSpecList + : PartitionExpression + | PartitionSpecList ',' PartitionExpression + ; + +PartitionSpecList_EDIT + : PartitionExpression_EDIT + | PartitionSpecList ',' PartitionExpression_EDIT + | PartitionExpression_EDIT ',' PartitionSpecList + | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList + ; + +PartitionExpression + : ColumnIdentifier '=' ValueExpression + ; + +PartitionExpression_EDIT + : ColumnIdentifier '=' ValueExpression_EDIT + | ColumnIdentifier '=' AnyCursor + { + parser.valueExpressionSuggest(); + } + | PartialBacktickedIdentifier '=' ValueExpression + { + parser.suggestColumns(); + } + | AnyCursor + { + parser.suggestColumns(); + } + ; + +RegularOrBacktickedIdentifier + : RegularIdentifier + | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 + | 'BACKTICK' 'BACKTICK' -> '' + ; + +// TODO: Same as SchemaQualifiedTableIdentifier? +RegularOrBackTickedSchemaQualifiedName + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +RegularOrBackTickedSchemaQualifiedName_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + + +LocalOrSchemaQualifiedName + : RegularOrBackTickedSchemaQualifiedName + | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } + ; + +LocalOrSchemaQualifiedName_EDIT + : RegularOrBackTickedSchemaQualifiedName_EDIT + | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier + ; + +ColumnReference + : BasicIdentifierChain + { + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnReference_EDIT + : BasicIdentifierChain_EDIT + ; + +BasicIdentifierChain + : ColumnIdentifier + { + $$ = [ $1.identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); + } + | BasicIdentifierChain '.' ColumnIdentifier + { + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $1.push($3.identifier); + parser.addUnknownLocation($3.location, $1.concat()); + } + ; + +// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) +BasicIdentifierChain_EDIT + : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + ; + +DerivedColumnChain + : ColumnIdentifier -> [ $1.identifier ] + | DerivedColumnChain '.' ColumnIdentifier + { + $1.push($3.identifier); + } + ; + +DerivedColumnChain_EDIT + : PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns(); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns({ identifierChain: $1 }); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns({ identifierChain: $1 }); + } + | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns(); + } + ; + +ColumnIdentifier + : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } + ; + +PartialBacktickedIdentifierOrPartialCursor + : PartialBacktickedIdentifier + | 'PARTIAL_CURSOR' + ; + +PrimitiveType + : 'BIGINT' + | 'BOOLEAN' + | 'CHAR' OptionalTypeLength + | 'DECIMAL' OptionalTypePrecision + | 'DOUBLE' + | 'FLOAT' + | 'INT' + | 'SMALLINT' + | 'STRING' + | 'TIMESTAMP' + | 'TINYINT' + | 'VARCHAR' OptionalTypeLength + ; + +OptionalTypeLength + : + | '(' 'UNSIGNED_INTEGER' ')' + ; + +OptionalTypePrecision + : + | '(' 'UNSIGNED_INTEGER' ')' + | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' + ; + +// ===================================== SELECT statement ===================================== + +QuerySpecification + : SelectStatement OptionalUnions -> $1 + | CommonTableExpression SelectStatement OptionalUnions + | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 + ; + +QuerySpecification_EDIT + : SelectStatement_EDIT OptionalUnions + | SelectStatement OptionalUnions_EDIT + | CommonTableExpression '(' QuerySpecification_EDIT ')' + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement_EDIT OptionalUnions + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement OptionalUnions_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT + | CommonTableExpression_EDIT '(' QuerySpecification ')' + | CommonTableExpression_EDIT SelectStatement OptionalUnions + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3 }; + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3, tableExpression: $4 } + } + ; + +OptionalUnions + : + | Unions + ; + +OptionalUnions_EDIT + : Unions_EDIT + ; + +Unions + : UnionClause + | Unions UnionClause + ; + +Unions_EDIT + : UnionClause_EDIT + | Unions UnionClause_EDIT + | UnionClause_EDIT Unions + | Unions UnionClause_EDIT Unions + ; + +UnionClause + : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement + ; + +UnionClause_EDIT + : 'UNION' NewStatement 'CURSOR' + { + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + } + | 'UNION' NewStatement 'CURSOR' SelectStatement + { + parser.suggestKeywords(['ALL', 'DISTINCT']); + } + | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + if ($3.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($4); + } + if ($3.suggestFunctions) { + parser.suggestFunctions(); + } + if ($3.suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($3.suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($3.suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.selectListNoTableSuggest($3, $2); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + } + ; + +CommonTableExpression + : 'WITH' WithQueries -> $2 + ; + +CommonTableExpression_EDIT + : 'WITH' WithQueries_EDIT + ; + +WithQueries + : WithQuery -> [$1] + | WithQueries ',' WithQuery -> $1.concat([$3]) + ; + +WithQueries_EDIT + : WithQuery_EDIT + | WithQueries ',' WithQuery_EDIT + { + parser.addCommonTableExpressions($1); + } + | WithQuery_EDIT ',' WithQueries + | WithQueries ',' WithQuery_EDIT ',' WithQueries + { + parser.addCommonTableExpressions($1); + } + ; + +WithQuery + : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' + { + parser.addCteAliasLocation(@1, $1); + $4.alias = $1; + $$ = $4; + } + ; + +WithQuery_EDIT + : RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError + ; + +OptionalAllOrDistinct + : + | 'ALL' + | 'DISTINCT' + ; + +TableExpression + : FromClause OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + ; + +TableExpression_EDIT + : FromClause_EDIT OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins + { + var keywords = []; + + parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + + if ($1) { + if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); + } + if ($1.tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); + } + if ($1.tableReferenceList.suggestJoins) { + parser.suggestJoins($1.tableReferenceList.suggestJoins); + } + if ($1.tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE') { + keyword.weight = 1.1; + } + }); + + if ($1.tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($1.tableReferenceList); + } + } + } + + if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($3.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); + } + + if ($3.suggestFilters) { + parser.suggestFilters($3.suggestFilters); + } + if ($3.suggestGroupBys) { + parser.suggestGroupBys($3.suggestGroupBys); + } + if ($3.suggestOrderBys) { + parser.suggestOrderBys($3.suggestOrderBys); + } + + if ($3.empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + } + | FromClause OptionalSelectConditions_EDIT OptionalJoins + { + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$2) { + parser.addClauseLocation('whereClause', @1); + parser.addClauseLocation('limitClause', @1); + return; + } + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + var keywords = []; + + if ($2.suggestColRefKeywords) { + parser.suggestColRefKeywords($2.suggestColRefKeywords); + parser.addColRefIfExists($2); + } + + if ($2.suggestKeywords && $2.suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); + } + + if ($2.cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + } + ; + +OptionalJoins + : + | Joins + | Joins_INVALID + ; + +FromClause + : 'FROM' TableReferenceList + { + $$ = { tableReferenceList : $2 } + } + ; + +FromClause_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReferenceList_EDIT + ; + +OptionalSelectConditions + : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$1, $2, $3, $4, $5], + [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true]); + + if (keywords.length > 0) { + $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; + } else { + $$ = {}; + } + + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $5 ? @5 : undefined; + + if (!$1 && !$2 && !$3 && !$4 && !$5) { + $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$2 && !$3 && !$4 && !$5) { + $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$4 && !$5) { + $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + } + | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + } + | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + ; + +OptionalSelectConditions_EDIT + : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$3, $4, $5, $6], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true]); + if ($1.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); + } + $$ = parser.getValueExpressionKeywords($1, keywords); + $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; + if ($1.columnReference) { + $$.columnReference = $1.columnReference; + } + if (!$3) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$3 && !$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$4, $5, $6], + [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true]); + if ($2.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); + } + if ($2.valueExpression) { + $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); + if ($2.valueExpression.columnReference) { + $$.columnReference = $2.valueExpression.columnReference; + } + } else { + $$ = { suggestKeywords: keywords }; + } + $$.cursorAtEnd = !$4 && !$5 && !$6; + if (!$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$5, $6], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; + if (!$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$6], + [{ value: 'LIMIT', weight: 3 }], + [true]); + if ($4.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' + { + $$ = { suggestKeywords: [], cursorAtEnd: true }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = @5; + } + ; + +OptionalWhereClause + : + | WhereClause + ; + +WhereClause + : 'WHERE' SearchCondition -> $2 + ; + +WhereClause_EDIT + : 'WHERE' SearchCondition_EDIT + { + if ($2.suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'WHERE' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OptionalGroupByClause + : + | GroupByClause + ; + +GroupByClause + : 'GROUP' 'BY' GroupByColumnList + { + $$ = { valueExpression: $3 }; + } + ; + +GroupByClause_EDIT + : 'GROUP' 'BY' GroupByColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + | 'GROUP' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +ColumnGroupingSets + : + | ColumnReference + | ColumnGroupingSets ',' ColumnGroupingSets + | '(' ColumnGroupingSets ')' + ; + +ColumnGroupingSets_EDIT + : ColumnGroupingSet_EDIT + | ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSet_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + ; + +GroupByColumnList + : ValueExpression + | GroupByColumnList ',' ValueExpression -> $3 + ; + +GroupByColumnList_EDIT + : ValueExpression_EDIT + | 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + } + | 'CURSOR' ',' GroupByColumnList + { + parser.valueExpressionSuggest(); + } + | ValueExpression_EDIT ',' GroupByColumnList + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList + ; + +GroupByColumnListPartTwo_EDIT + : ValueExpression_EDIT + | AnyCursor ValueExpression + { + parser.valueExpressionSuggest(); + } + | AnyCursor + { + parser.valueExpressionSuggest(); + } + ; + +OptionalOrderByClause + : + | OrderByClause + ; + +OrderByClause + : 'ORDER' 'BY' OrderByColumnList -> $3 + ; + +OrderByClause_EDIT + : 'ORDER' 'BY' OrderByColumnList_EDIT + { + if ($3.emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'ORDER' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OrderByColumnList + : OrderByIdentifier + | OrderByColumnList ',' OrderByIdentifier -> $3 + ; + +OrderByColumnList_EDIT + : OrderByIdentifier_EDIT + | 'CURSOR' OrderByIdentifier + { + $$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } + ; + +OrderByIdentifier + : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) + ; + +OrderByIdentifier_EDIT + : ValueExpression_EDIT OptionalAscOrDesc + { + parser.suggestSelectListAliases(); + } + | AnyCursor OptionalAscOrDesc + { + $$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + ; + +OptionalAscOrDesc + : + { + $$ = { suggestKeywords: ['ASC', 'DESC'] }; + } + | 'ASC' + | 'DESC' + ; + +OptionalLimitClause + : + | LimitClause + ; + +LimitClause + : 'LIMIT' UnsignedNumericLiteral + | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral + | 'LIMIT' 'VARIABLE_REFERENCE' + | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' + ; + +LimitClause_EDIT + : 'LIMIT' 'CURSOR' + ; + +SearchCondition + : ValueExpression + ; + +SearchCondition_EDIT + : ValueExpression_EDIT + ; + +ValueExpression + : NonParenthesizedValueExpressionPrimary + ; + +ValueExpression_EDIT + : NonParenthesizedValueExpressionPrimary_EDIT + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpressionList + : ValueExpression + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression + { + $3.position = $1.position + 1; + $$ = $3; + } + ; + +ValueExpressionList_EDIT + : ValueExpression_EDIT + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT + { + $1.position += 1; + } + | ValueExpression_EDIT ',' ValueExpressionList + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList + { + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList 'CURSOR' ',' ValueExpressionList + { + parser.suggestValueExpressionKeywords($1); + } + | AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | AnyCursor ',' + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | ',' AnyCursor + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + | ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + ; + +InValueList + : NonParenthesizedValueExpressionPrimary + | InValueList ',' NonParenthesizedValueExpressionPrimary + ; + +NonParenthesizedValueExpressionPrimary + : UnsignedValueSpecification + | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart + { + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.expression) { + $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } + } else { + $$ = { function: fn, types: parser.findReturnTypes(fn) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | UserDefinedFunction + | 'NULL' -> { types: [ 'NULL' ] } + ; + +NonParenthesizedValueExpressionPrimary_EDIT + : UnsignedValueSpecification_EDIT + | ColumnOrArbitraryFunctionRef_EDIT + { + if ($1.suggestKeywords) { + $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; + } else { + $$ = { types: ['COLREF'], columnReference: $1 }; + } + } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT + { + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.position) { + parser.applyArgumentTypesToSuggestions(fn, $2.position); + } + $$ = { types: parser.findReturnTypes(fn) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | UserDefinedFunction_EDIT + ; + +ColumnOrArbitraryFunctionRef + : BasicIdentifierChain + { + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; + $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnOrArbitraryFunctionRef_EDIT + : BasicIdentifierChain_EDIT + ; + +SignedInteger + : UnsignedNumericLiteral + | '-' UnsignedNumericLiteral + | '+' UnsignedNumericLiteral + ; + +UnsignedValueSpecification + : UnsignedLiteral + ; + +UnsignedValueSpecification_EDIT + : UnsignedLiteral_EDIT + { + parser.suggestValues($1); + } + ; + +UnsignedLiteral + : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } + | GeneralLiteral + ; + +UnsignedLiteral_EDIT + : GeneralLiteral_EDIT + ; + +UnsignedNumericLiteral + : ExactNumericLiteral + | ApproximateNumericLiteral + ; + +ExactNumericLiteral + : 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' -> $1 + $2 + | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 + | '.' 'UNSIGNED_INTEGER' -> $1 + $2 + ; + +ApproximateNumericLiteral + : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + ; + +GeneralLiteral + : SingleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | DoubleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | TruthValue -> { types: [ 'BOOLEAN' ] } + ; + +GeneralLiteral_EDIT + : SingleQuotedValue_EDIT + { + $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + } + | DoubleQuotedValue_EDIT + { + $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + } + ; + +TruthValue + : 'TRUE' + | 'FALSE' + ; + +OptionalNot + : + | 'NOT' + ; + +SelectSpecification + : ValueExpression OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + $$ = { valueExpression: $1, alias: $2.alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); + } else { + $$ = { valueExpression: $1 } + } + } + | '*' + { + parser.addAsteriskLocation(@1, [{ asterisk: true }]); + $$ = { asterisk: true } + } + ; + +SelectSpecification_EDIT + : ValueExpression_EDIT OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + } + } + + | AnyCursor 'AS' RegularOrBacktickedIdentifier + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(@3, $3, @1); + $$ = { suggestAggregateFunctions: true }; + } + | ValueExpression OptionalCorrelationName_EDIT -> $2 + ; + +SelectList + : SelectSpecification -> [ $1 ] + | SelectList ',' SelectSpecification + { + $1.push($3); + } + ; + +SelectList_EDIT + : SelectSpecification_EDIT + | 'CURSOR' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | 'CURSOR' ',' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectSpecification_EDIT ',' SelectList + | SelectList 'CURSOR' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList 'CURSOR' ',' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList ',' AnyCursor + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' SelectSpecification_EDIT -> $3 + | SelectList ',' AnyCursor SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' AnyCursor ',' + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' -> $3 + | SelectList ',' AnyCursor ',' SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 + ; + +TableReferenceList + : TableReference + | TableReferenceList ',' TableReference -> $3 + ; + +TableReferenceList_EDIT + : TableReference_EDIT + | TableReference_EDIT ',' TableReference + | TableReferenceList ',' TableReference_EDIT + | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList + | TableReferenceList ',' AnyCursor + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TableReference + : TablePrimaryOrJoinedTable + ; + +TableReference_EDIT + : TablePrimaryOrJoinedTable_EDIT + ; + +TablePrimaryOrJoinedTable + : TablePrimary + { + $$ = $1; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + $$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + } + | JoinedTable + ; + +TablePrimaryOrJoinedTable_EDIT + : TablePrimary_EDIT + | JoinedTable_EDIT + ; + +JoinedTable + : TablePrimary Joins -> $2 + ; + +JoinedTable_EDIT + : TablePrimary Joins_EDIT + | TablePrimary_EDIT Joins + ; + +Joins + : JoinType TablePrimary OptionalJoinCondition + { + if ($3 && $3.valueExpression) { + $$ = $3.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($3.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($3.suggestKeywords) { + $$.suggestKeywords = $3.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + | Joins JoinType TablePrimary OptionalJoinCondition + { + if ($4 && $4.valueExpression) { + $$ = $4.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($4.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($4.suggestKeywords) { + $$.suggestKeywords = $4.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + ; + +Joins_INVALID + : JoinType -> { joinType: $1 } + | JoinType Joins -> { joinType: $1 } + ; + +Join_EDIT + : JoinType_EDIT TablePrimary OptionalJoinCondition + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType_EDIT + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType TablePrimary_EDIT OptionalJoinCondition + | JoinType TablePrimary JoinCondition_EDIT + | JoinType 'CURSOR' OptionalJoinCondition + { + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $1, + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + ; + +Joins_EDIT + : Join_EDIT + | Join_EDIT Joins + | Joins Join_EDIT + | Joins Join_EDIT Joins + ; + +JoinType + : 'CROSS' 'JOIN' -> 'CROSS JOIN' + | 'FULL' 'JOIN' -> 'FULL JOIN' + | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' + | 'INNER' 'JOIN' -> 'INNER JOIN' + | 'JOIN' -> 'JOIN' + | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' + | 'LEFT' 'JOIN' -> 'LEFT JOIN' + | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' + | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' + | 'OUTER' 'JOIN' -> 'OUTER JOIN' + | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' + | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' + | 'SEMI' 'JOIN' -> 'SEMI JOIN' + ; + +JoinType_EDIT + : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + ; + +OptionalJoinCondition + : -> { noJoinCondition: true, suggestKeywords: ['ON'] } + | 'ON' ValueExpression -> { valueExpression: $2 } + ; + +UsingColList + : RegularOrBacktickedIdentifier + | UsingColList ',' RegularOrBacktickedIdentifier + ; + +JoinCondition_EDIT + : 'ON' ValueExpression_EDIT + | 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + } + ; + +TablePrimary + : TableOrQueryName OptionalCorrelationName + { + $$ = { + primary: $1 + } + if ($1.identifierChain) { + if ($2) { + $1.alias = $2.alias + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } else if ($2.suggestKeywords) { + keywords = $2.suggestKeywords; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + | DerivedTable OptionalCorrelationName + { + $$ = { + primary: $1 + }; + + if ($2) { + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +TablePrimary_EDIT + : TableOrQueryName_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + } + | DerivedTable_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias); + } + } + | DerivedTable OptionalCorrelationName_EDIT + ; + +TableOrQueryName + : SchemaQualifiedTableIdentifier + ; + +TableOrQueryName_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +DerivedTable + : TableSubQuery + ; + +DerivedTable_EDIT + : TableSubQuery_EDIT + ; + +OptionalOnColumn + : + | 'ON' ValueExpression + ; + +OptionalOnColumn_EDIT + : 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'ON' ValueExpression_EDIT + ; + +PushQueryState + : + { + parser.pushQueryState(); + } + ; + +PopQueryState + : + { + parser.popQueryState(); + } + ; + +TableSubQuery + : '(' TableSubQueryInner ')' -> $2 + | '(' DerivedTable OptionalCorrelationName ')' + { + if ($3) { + $2.alias = $3.alias; + parser.addTablePrimary({ subQueryAlias: $3.alias }); + parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); + } + $$ = $2; + } + ; + +TableSubQuery_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + ; + +TableSubQueryInner + : PushQueryState SubQuery + { + var subQuery = parser.getSubQuery($2); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + $$ = subQuery; + } + ; + +TableSubQueryInner_EDIT + : PushQueryState SubQuery_EDIT PopQueryState + ; + +SubQuery + : QueryExpression + ; + +SubQuery_EDIT + : QueryExpression_EDIT + ; + +QueryExpression + : QueryExpressionBody + ; + +QueryExpression_EDIT + : QueryExpressionBody_EDIT + ; + +QueryExpressionBody + : NonJoinQueryExpression + ; + +QueryExpressionBody_EDIT + : NonJoinQueryExpression_EDIT + ; + +NonJoinQueryExpression + : NonJoinQueryTerm + ; + +NonJoinQueryExpression_EDIT + : NonJoinQueryTerm_EDIT + ; + +NonJoinQueryTerm + : NonJoinQueryPrimary + ; + +NonJoinQueryTerm_EDIT + : NonJoinQueryPrimary_EDIT + ; + +NonJoinQueryPrimary + : SimpleTable + ; + +NonJoinQueryPrimary_EDIT + : SimpleTable_EDIT + ; + +SimpleTable + : QuerySpecification + ; + +SimpleTable_EDIT + : QuerySpecification_EDIT + ; + +OptionalCorrelationName + : + | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } + | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | 'AS' QuotedValue -> { alias: $2, location: @2 } + ; + +OptionalCorrelationName_EDIT + : PartialBacktickedIdentifier + | QuotedValue_EDIT + | 'AS' PartialBacktickedIdentifier + | 'AS' QuotedValue_EDIT + | 'AS' 'CURSOR' + ; + +UserDefinedFunction + : AggregateFunction OptionalOverClause + { + if (!$2) { + $1.suggestKeywords = ['OVER']; + } + } + | AnalyticFunction OverClause + | CastFunction + ; + +UserDefinedFunction_EDIT + : AggregateFunction_EDIT + | AggregateFunction OptionalOverClause_EDIT + | AnalyticFunction_EDIT + | AnalyticFunction_EDIT OverClause + | AnalyticFunction 'CURSOR' + { + parser.suggestKeywords(['OVER']); + } + | AnalyticFunction OverClause_EDIT + | CastFunction_EDIT + ; + +ArbitraryFunction + : RegularIdentifier ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + ; + +ArbitraryFunction_EDIT + : RegularIdentifier ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ArbitraryFunctionName + : 'ARRAY' + | 'IF' + | 'MAP' + | 'TRUNCATE' + ; + +ArbitraryFunctionRightPart + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } + ; + +ArbitraryFunctionRightPart_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { position: 1 } + } + | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 + ; + +AggregateFunction + : CountFunction + | SumFunction + | OtherAggregateFunction + ; + +AggregateFunction_EDIT + : CountFunction_EDIT + | SumFunction_EDIT + | OtherAggregateFunction_EDIT + ; + +AnalyticFunction + : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } + ; + +AnalyticFunction_EDIT + : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError + { + parser.applyArgumentTypesToSuggestions($1, $3.position); + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOverClause + : + | OverClause + ; + +OptionalOverClause_EDIT + : OverClause_EDIT + ; + +OverClause + : 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression + ; + +OverClause_EDIT + : 'OVER' WindowExpression_EDIT + ; + +WindowExpression + : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' + ; + +WindowExpression_EDIT + : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$3 && !$4) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$3) { + parser.suggestKeywords(['PARTITION BY']); + } + } + | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$6) { + parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($4); + } + } + ; + +OptionalPartitionBy + : + | PartitionBy + ; + +PartitionBy + : 'PARTITION' 'BY' ValueExpressionList -> $3 + ; + +PartitionBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'PARTITION' 'BY' ValueExpressionList_EDIT + ; + +OptionalOrderByAndWindow + : + | OrderByClause OptionalWindowSpec + ; + +OptionalOrderByAndWindow_EDIT + : OrderByClause_EDIT + { + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + } + | OrderByClause 'CURSOR' OptionalWindowSpec + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); + } + if (!$3) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + } + | OrderByClause WindowSpec_EDIT + ; + +OptionalWindowSpec + : + | WindowSpec + ; + +WindowSpec + : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + ; + +WindowSpec_EDIT + : RowsOrRange 'CURSOR' + { + parser.suggestKeywords(['BETWEEN']); + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' + { + if (!$4 && !$5) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$5) { + parser.suggestKeywords(['AND']); + } + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT + ; + +PopLexerState + : + { + lexer.popState(); + } + ; + +PushHdfsLexerState + : + { + lexer.begin('hdfs'); + } + ; + +HdfsPath + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' + ; + +HdfsPath_EDIT + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: '' }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: '' }); + } + ; + +RowsOrRange + : 'ROWS' + | 'RANGE' + ; + +OptionalCurrentOrPreceding + : + | IntegerOrUnbounded 'PRECEDING' + | 'CURRENT' 'ROW' + ; + +OptionalCurrentOrPreceding_EDIT + : IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['PRECEDING']); + } + | 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + ; + +OptionalAndFollowing + : + | 'AND' 'CURRENT' 'ROW' + | 'AND' IntegerOrUnbounded 'FOLLOWING' + ; + +OptionalAndFollowing_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + } + | 'AND' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + | 'AND' IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['FOLLOWING']); + } + ; + +IntegerOrUnbounded + : 'UNSIGNED_INTEGER' + | 'UNBOUNDED' + ; + +OptionalHavingClause + : + | HavingClause + ; + +HavingClause + : 'HAVING' ValueExpression + ; + +HavingClause_EDIT + : 'HAVING' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + | 'HAVING' ValueExpression_EDIT + { + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + ; + +CastFunction + : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ')' -> { types: [ 'T' ] } + ; + +CastFunction_EDIT + : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + ; + +CountFunction + : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +CountFunction_EDIT + : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +OtherAggregateFunction_EDIT + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, $4.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction_Type + : 'AVG' + | 'MAX' + | 'MIN' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARIANCE' + ; + +FromOrComma + : 'FROM' + | ',' + ; + +SumFunction + : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } + | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } + ; + +SumFunction_EDIT + : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, 1); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; diff --git a/src/jison/sql/elasticsearch/sql_set.jison b/src/jison/sql/elasticsearch/sql_set.jison new file mode 100644 index 0000000..14cff5c --- /dev/null +++ b/src/jison/sql/elasticsearch/sql_set.jison @@ -0,0 +1,46 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : SetSpecification + ; + +DataDefinition_EDIT + : 'SET' 'CURSOR' + { + parser.suggestSetOptions(); + } + ; + +SetSpecification + : 'SET' SetOption '=' SetValue + | 'SET' 'ALL' + ; + +SetOption + : RegularIdentifier + | SetOption '.' RegularIdentifier + ; + +SetValue + : RegularIdentifier + | SignedInteger + | SignedInteger RegularIdentifier + | QuotedValue + | 'TRUE' + | 'FALSE' + | 'NULL' + ; diff --git a/src/jison/sql/elasticsearch/sql_update.jison b/src/jison/sql/elasticsearch/sql_update.jison new file mode 100644 index 0000000..1091c41 --- /dev/null +++ b/src/jison/sql/elasticsearch/sql_update.jison @@ -0,0 +1,122 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : UpdateStatement + ; + +DataManipulation_EDIT + : UpdateStatement_EDIT + ; + +UpdateStatement + : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + ; + +UpdateStatement_EDIT + : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' + { + parser.suggestKeywords([ 'WHERE' ]); + } + | 'UPDATE' TargetTable 'CURSOR' + { + parser.suggestKeywords([ 'SET' ]); + } + | 'UPDATE' TargetTable_EDIT + | 'UPDATE' TargetTable + | 'UPDATE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TargetTable + : TableName + ; + +TargetTable_EDIT + : TableName_EDIT + ; + +TableName + : LocalOrSchemaQualifiedName + { + parser.addTablePrimary($1); + } + ; + +TableName_EDIT + : LocalOrSchemaQualifiedName_EDIT + ; + +SetClauseList + : SetClause + | SetClauseList ',' SetClause + ; + +SetClauseList_EDIT + : SetClause_EDIT + | SetClauseList ',' SetClause_EDIT + | SetClause_EDIT ',' SetClauseList + | SetClauseList ',' SetClause_EDIT ',' SetClauseList + ; + +SetClause + : SetTarget '=' UpdateSource + ; + +SetClause_EDIT + : SetTarget '=' UpdateSource_EDIT + | SetTarget 'CURSOR' + { + parser.suggestKeywords([ '=' ]); + } + | 'CURSOR' + { + parser.suggestColumns(); + } + ; + +SetTarget + : ColumnReference + ; + +UpdateSource + : ValueExpression + ; + +UpdateSource_EDIT + : ValueExpression_EDIT + ; + +OptionalFromJoinedTable + : + | 'FROM' TableReference -> $2 + ; + +FromJoinedTable_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReference_EDIT + ; diff --git a/src/jison/sql/elasticsearch/sql_use.jison b/src/jison/sql/elasticsearch/sql_use.jison new file mode 100644 index 0000000..c99b2c2 --- /dev/null +++ b/src/jison/sql/elasticsearch/sql_use.jison @@ -0,0 +1,39 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : UseStatement + ; + +DataDefinition_EDIT + : UseStatement_EDIT + ; + +UseStatement + : 'USE' RegularIdentifier + { + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $2; + } + } + ; + +UseStatement_EDIT + : 'USE' 'CURSOR' + { + parser.suggestDatabases(); + } + ; diff --git a/src/jison/sql/elasticsearch/sql_valueExpression.jison b/src/jison/sql/elasticsearch/sql_valueExpression.jison new file mode 100644 index 0000000..3dcc339 --- /dev/null +++ b/src/jison/sql/elasticsearch/sql_valueExpression.jison @@ -0,0 +1,839 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +ValueExpression + : 'NOT' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression -> $2 + | '-' ValueExpression %prec NEGATION + { + // verifyType($2, 'NUMBER'); + $$ = $2; + $2.types = ['NUMBER']; + } + | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | 'NOT' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | '!' AnyCursor + { + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | '~' 'PARTIAL_CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + $$ = { types: [ 'T' ] }; + } + | '-' ValueExpression_EDIT %prec NEGATION + { + if (!$2.typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; + } + | '-' 'PARTIAL_CURSOR' %prec NEGATION + { + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'IS' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' + { + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'NULL' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'FALSE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'TRUE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } + } + ; + +// ------------------ EXISTS and parenthesized ------------------ +ValueExpression + : 'EXISTS' TableSubQuery + { + $$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + } + | '(' ValueExpression ')' -> $2 + ; + +ValueExpression_EDIT + : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } + | '(' ValueExpression_EDIT RightParenthesisOrError + { + $$ = $2; + } + | '(' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['T'], typeSet: true }; + } + ; + +// ------------------ COMPARISON ------------------ + +ValueExpression + : ValueExpression '=' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '<' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '>' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '=' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '<' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '>' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT '=' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '<' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '>' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '=' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression '<' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + } + | ValueExpression '>' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; + } + | ValueExpression '=' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '<' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '>' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + + +// ------------------ IN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT + { + if ($4.inValueEdit) { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + parser.applyTypeToSuggestions($1.types); + } + if ($4.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT + { + if ($3.inValueEdit) { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + } + if ($3.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + ; + +ValueExpressionInSecondPart_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } + | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } + ; + +// ------------------ BETWEEN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($4.types[0] === $6.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($4.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $6.types[0] && !$4.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $4.types[0] && !$6.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $5); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($4, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$3.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $3.types[0] && !$5.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $4); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ BOOLEAN ------------------ + +ValueExpression + : ValueExpression 'OR' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'AND' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' 'OR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'OR' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'OR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'OR' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | 'CURSOR' 'AND' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'AND' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'AND' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'AND' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + +// ------------------ ARITHMETIC ------------------ + +ValueExpression + : ValueExpression '-' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression '*' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '*' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression_EDIT '-' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '*' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '-' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '*' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '-' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression '*' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + ; + +// ------------------ LIKE, RLIKE and REGEXP ------------------ + +ValueExpression + : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } + ; + +LikeRightPart + : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + ; + +LikeRightPart_EDIT + : 'LIKE' ValueExpression_EDIT + | 'RLIKE' ValueExpression_EDIT + | 'REGEXP' ValueExpression_EDIT + | 'LIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'RLIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'REGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | 'CURSOR' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'NOT' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ CASE, WHEN, THEN ------------------ + +ValueExpression + : 'CASE' CaseRightPart -> $2 + | 'CASE' ValueExpression CaseRightPart -> $3 + ; + +ValueExpression_EDIT + : 'CASE' CaseRightPart_EDIT -> $2 + | 'CASE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 + | 'CASE' ValueExpression 'CURSOR' EndOrError + { + parser.suggestValueExpressionKeywords($2, ['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression_EDIT CaseRightPart + { + $$ = $3; + $$.suggestFilters = $2.suggestFilters; + } + | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } + ; + +CaseRightPart + : CaseWhenThenList 'END' -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'END' + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + ; + +CaseRightPart_EDIT + : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['END']); + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'CURSOR' ValueExpression EndOrError + { + if ($4.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'CURSOR' EndOrError + { + if ($3.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + $$.suggestFilters = $3.suggestFilters + } + | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = parser.findCaseType($1); + } + | 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CURSOR' 'ELSE' ValueExpression EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = $3; + } + | 'CURSOR' 'ELSE' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ] }; + } + ; + +EndOrError + : 'END' + | error + ; + +CaseWhenThenList + : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } + | CaseWhenThenList CaseWhenThenListPartTwo + { + $1.caseTypes.push($2); + $$ = { caseTypes: $1.caseTypes, lastType: $2 }; + } + ; + +CaseWhenThenList_EDIT + : CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList + | CaseWhenThenList 'CURSOR' CaseWhenThenList + { + parser.suggestValueExpressionKeywords($1, ['WHEN']); + } + | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 + ; + +CaseWhenThenListPartTwo + : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 + ; + +CaseWhenThenListPartTwo_EDIT + : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } + | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } + | 'CURSOR' ValueExpression 'THEN' + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' ValueExpression 'THEN' ValueExpression + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [$4] }; + } + | 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [$4], suggestFilters: true }; + } + | 'WHEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'CURSOR' ValueExpression + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + ; diff --git a/src/jison/sql/elasticsearch/syntax_footer.jison b/src/jison/sql/elasticsearch/syntax_footer.jison new file mode 100644 index 0000000..ec25eab --- /dev/null +++ b/src/jison/sql/elasticsearch/syntax_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/elasticsearch/syntax_header.jison b/src/jison/sql/elasticsearch/syntax_header.jison new file mode 100644 index 0000000..e2c6815 --- /dev/null +++ b/src/jison/sql/elasticsearch/syntax_header.jison @@ -0,0 +1,28 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlSyntax + +%% diff --git a/src/jison/sql/flink/autocomplete_footer.jison b/src/jison/sql/flink/autocomplete_footer.jison new file mode 100644 index 0000000..899433d --- /dev/null +++ b/src/jison/sql/flink/autocomplete_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/flink/autocomplete_header.jison b/src/jison/sql/flink/autocomplete_header.jison new file mode 100644 index 0000000..3b90682 --- /dev/null +++ b/src/jison/sql/flink/autocomplete_header.jison @@ -0,0 +1,29 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'CURSOR' 'PARTIAL_CURSOR' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlAutocomplete + +%% diff --git a/src/jison/sql/flink/sql.jisonlex b/src/jison/sql/flink/sql.jisonlex new file mode 100644 index 0000000..df00536 --- /dev/null +++ b/src/jison/sql/flink/sql.jisonlex @@ -0,0 +1,279 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%options case-insensitive flex +%s between +%x hdfs doubleQuotedValue singleQuotedValue backtickedValue +%% + +\s { /* skip whitespace */ } +'--'.* { /* skip comments */ } +[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } + +'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } +'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } + +'AND' { this.popState(); return 'BETWEEN_AND'; } + +// Reserved Keywords +'ADVANCE' { return 'ADVANCE'; } +'ANALYZE' { return 'ANALYZE'; } +'AND' { return 'AND'; } +'ARRAY' { return 'ARRAY'; } +'AS' { return 'AS'; } +'AT' { return 'AT'; } +'BEGINNING' { return 'BEGINNING' } +'BETWEEN' { this.begin('between'); return 'BETWEEN'; } +'BIGINT' { return 'BIGINT'; } +'BOOLEAN' { return 'BOOLEAN'; } +'BY' { return 'BY'; } +'CASE' { return 'CASE'; } +'CAST' { return 'CAST'; } +'CATALOG' { return 'CATALOG'; } +'CHANGES' { return 'CHANGES'; } +'COLUMN' { return 'COLUMN'; } +'COLUMNS' { return 'COLUMNS'; } +'CONNECTOR' { return 'CONNECTOR'; } +'CONNECTORS' { return 'CONNECTORS'; } +'CREATE' { parser.determineCase(yytext); return 'CREATE'; } +'DATE' { return 'DATE'; } +'DAY' { return 'DAY'; } +'DECIMAL' { return 'DECIMAL'; } +'DELETE' { return 'DELETE'; } +'DESCRIBE' { return 'DESCRIBE'; } +'DISTINCT' { return 'DISTINCT'; } +'DOUBLE' { return 'DOUBLE'; } +'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } +'ELSE' { return 'ELSE'; } +'EMIT' { return 'EMIT'; } +'END' { return 'END'; } +'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } +'EXPLAIN' { parser.determineCase(yytext); return 'EXPLAIN'; } +'EXPORT' { return 'EXPORT'; } +'EXTENDED' { return 'EXTENDED'; } +'FROM' { parser.determineCase(yytext); return 'FROM'; } +'FULL' { return 'FULL'; } +'FUNCTION' { return 'FUNCTION'; } +'FUNCTIONS' { return 'FUNCTIONS'; } +'GROUP' { return 'GROUP'; } +'HAVING' { return 'HAVING'; } +'HOPPING' { return 'HOPPING'; } +'HOUR' { return 'HOUR'; } +'HOURS' { return 'HOURS'; } +'IF' { return 'IF'; } +'IN' { return 'IN'; } +'INNER' { return 'INNER'; } +'INSERT' { return 'INSERT'; } +'INT' { return 'INT'; } +'INTEGER' { return 'INTEGER'; } +'INTO' { return 'INTO'; } +'IS' { return 'IS'; } +'JOIN' { return 'JOIN'; } +'KEY' { return 'KEY'; } +'LEFT' { return 'LEFT'; } +'LIKE' { return 'LIKE'; } +'LIMIT' { return 'LIMIT'; } +'LIST' { return 'LIST'; } +'LOAD' { return 'LOAD'; } +'MAP' { return 'MAP'; } +'MILLISECOND' { return 'MILLISECOND'; } +'MILLISECONDS' { return 'MILLISECONDS'; } +'MINUTE' { return 'MINUTE'; } +'MINUTES' { return 'MINUTES'; } +'MONTH' { return 'MONTH'; } +'MONTHS' { return 'MONTHS'; } +'NOT' { return 'NOT'; } +'NULL' { return 'NULL'; } +'ON' { return 'ON'; } +'OR' { return 'OR'; } +'OUTER' { return 'OUTER'; } +'PARTITION' { return 'PARTITION'; } +'PARTITIONS' { return 'PARTITIONS'; } +'PRINT' { return 'PRINT'; } +'PROPERTIES' { return 'PROPERTIES'; } +'QUERIES' { return 'QUERIES'; } +'QUERY' { return 'QUERY'; } +'RENAME' { return 'RENAME'; } +'RESET' { return 'RESET'; } +'RIGHT' { return 'RIGHT'; } +'RUN' { return 'RUN'; } +'SAMPLE' { return 'SAMPLE'; } +'SCRIPT' { return 'SCRIPT'; } +'SECOND' { return 'SECOND'; } +'SECOND' { return 'SECOND'; } +'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } +'SESSION' { return 'SESSION'; } +'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } +'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } +'SINK' { return 'SINK'; } +'SOURCE' { return 'SOURCE'; } +'STREAM' { return 'STREAM'; } +'STREAMS' { return 'STREAMS'; } +'STRING' { return 'STRING'; } +'STRUCT' { return 'STRUCT'; } +'TABLE' { return 'TABLE'; } +'TABLES' { return 'TABLES'; } +'TERMINATE' { return 'TERMINATE'; } +'THEN' { return 'THEN'; } +'TIME' { return 'TIME'; } +'TIMESTAMP' { return 'TIMESTAMP'; } +'TO' { return 'TO'; } +'TRUE' { return 'TRUE'; } +'TOPIC' { return 'TOPIC'; } +'TOPICS' { return 'TOPICS'; } +'TUMBLING' { return 'TUMBLING'; } +'TYPE' { return 'TYPE'; } +'TYPES' { return 'TYPES'; } +'UNSET' { return 'UNSET'; } +'VALUES' { return 'VALUES'; } +'VARCHAR' { return 'VARCHAR'; } +'WHEN' { return 'WHEN'; } +'WHERE' { return 'WHERE'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } +'WITHIN' { return 'WITHIN'; } +'YEAR' { return 'YEAR'; } +'YEARS' { return 'YEARS'; } +'ZONE' { return 'ZONE'; } + +// --- UDFs --- +ABS\s*\( { yy.lexer.unput('('); yytext = 'abs'; parser.addFunctionLocation(yylloc, yytext); return 'ABS'; } +ARRAYCONTAINS\s*\( { yy.lexer.unput('('); yytext = 'arraycontains'; parser.addFunctionLocation(yylloc, yytext); return 'ARRAYCONTAINS'; } +CEIL\s*\( { yy.lexer.unput('('); yytext = 'ceil'; parser.addFunctionLocation(yylloc, yytext); return 'CEIL'; } +CONCAT\s*\( { yy.lexer.unput('('); yytext = 'concat'; parser.addFunctionLocation(yylloc, yytext); return 'CONCAT'; } +DATETOSTRING\s*\( { yy.lexer.unput('('); yytext = 'datetostring'; parser.addFunctionLocation(yylloc, yytext); return 'DATETOSTRING'; } +ELT\s*\( { yy.lexer.unput('('); yytext = 'elt'; parser.addFunctionLocation(yylloc, yytext); return 'ELT'; } +EXTRACTJSONFIELD\s*\( { yy.lexer.unput('('); yytext = 'extractjsonfield'; parser.addFunctionLocation(yylloc, yytext); return 'EXTRACTJSONFIELD'; } +FIELD\s*\( { yy.lexer.unput('('); yytext = 'field'; parser.addFunctionLocation(yylloc, yytext); return 'FIELD'; } +FLOOR\s*\( { yy.lexer.unput('('); yytext = 'floor'; parser.addFunctionLocation(yylloc, yytext); return 'FLOOR'; } +GEO_DISTANCE\s*\( { yy.lexer.unput('('); yytext = 'geo_distance'; parser.addFunctionLocation(yylloc, yytext); return 'GEO_DISTANCE'; } +IFNULL\s*\( { yy.lexer.unput('('); yytext = 'ifnull'; parser.addFunctionLocation(yylloc, yytext); return 'IFNULL'; } +LCASE\s*\( { yy.lexer.unput('('); yytext = 'lcase'; parser.addFunctionLocation(yylloc, yytext); return 'LCASE'; } +LEN\s*\( { yy.lexer.unput('('); yytext = 'len'; parser.addFunctionLocation(yylloc, yytext); return 'LEN'; } +MASK\s*\( { yy.lexer.unput('('); yytext = 'msk'; parser.addFunctionLocation(yylloc, yytext); return 'MASK'; } +MASK_KEEP_LEFT\s*\( { yy.lexer.unput('('); yytext = 'mask_keep_left'; parser.addFunctionLocation(yylloc, yytext); return 'MASK_KEEP_LEFT'; } +MASK_KEEP_RIGHT\s*\( { yy.lexer.unput('('); yytext = 'mask_keep_right'; parser.addFunctionLocation(yylloc, yytext); return 'MASK_KEEP_RIGHT'; } +MASK_LEFT\s*\( { yy.lexer.unput('('); yytext = 'mask_left'; parser.addFunctionLocation(yylloc, yytext); return 'MASK_LEFT'; } +MASK_RIGHT\s*\( { yy.lexer.unput('('); yytext = 'mask_right'; parser.addFunctionLocation(yylloc, yytext); return 'MASK_RIGHT'; } +RANDOM\s*\( { yy.lexer.unput('('); yytext = 'random'; parser.addFunctionLocation(yylloc, yytext); return 'RANDOM'; } +ROUND\s*\( { yy.lexer.unput('('); yytext = 'round'; parser.addFunctionLocation(yylloc, yytext); return 'ROUND'; } +SPLIT\s*\( { yy.lexer.unput('('); yytext = 'split'; parser.addFunctionLocation(yylloc, yytext); return 'SPLIT'; } +STRINGTODATE\s*\( { yy.lexer.unput('('); yytext = 'stringtodate'; parser.addFunctionLocation(yylloc, yytext); return 'STRINGTODATE'; } +STRINGTOTIMESTAMP\s*\( { yy.lexer.unput('('); yytext = 'stringtotimestamp'; parser.addFunctionLocation(yylloc, yytext); return 'STRINGTOTIMESTAMP'; } +SUBSTRING\s*\( { yy.lexer.unput('('); yytext = 'substring'; parser.addFunctionLocation(yylloc, yytext); return 'SUBSTRING'; } +TIMESTAMPTOSTRING\s*\( { yy.lexer.unput('('); yytext = 'timestamptostring'; parser.addFunctionLocation(yylloc, yytext); return 'TIMESTAMPTOSTRING'; } +TRIM\s*\( { yy.lexer.unput('('); yytext = 'trim'; parser.addFunctionLocation(yylloc, yytext); return 'TRIM'; } +UCASE\s*\( { yy.lexer.unput('('); yytext = 'ucase'; parser.addFunctionLocation(yylloc, yytext); return 'UCASE'; } +URL_DECODE_PARAM\s*\( { yy.lexer.unput('('); yytext = 'url_decode_param'; parser.addFunctionLocation(yylloc, yytext); return 'URL_DECODE_PARAM'; } +URL_ENCODE_PARAM\s*\( { yy.lexer.unput('('); yytext = 'urel_encode_param'; parser.addFunctionLocation(yylloc, yytext); return 'URL_ENCODE_PARAM'; } +URL_EXTRACT_FRAGMENT\s*\( { yy.lexer.unput('('); yytext = 'url_extract_fragment'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_FRAGMENT'; } +URL_EXTRACT_HOST\s*\( { yy.lexer.unput('('); yytext = 'url_extract_host'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_HOST'; } +URL_EXTRACT_PARAMETER\s*\( { yy.lexer.unput('('); yytext = 'url_extract_parameter'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_PARAMETER'; } +URL_EXTRACT_PATH\s*\( { yy.lexer.unput('('); yytext = 'url_extrct_path'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_PATH'; } +URL_EXTRACT_PORT\s*\( { yy.lexer.unput('('); yytext = 'url_extract_port'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_PORT'; } +URL_EXTRACT_PROTOCOL\s*\( { yy.lexer.unput('('); yytext = 'url_extract_protocol'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_PROTOCOL'; } +URL_EXTRACT_QUERY\s*\( { yy.lexer.unput('('); yytext = 'url_extract_query'; parser.addFunctionLocation(yylloc, yytext); return 'URL_EXTRACT_QUERY'; } + + +// Analytical functions +COLLECT_LIST\s*\( { yy.lexer.unput('('); yytext = 'collect_list'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_LIST'; } +COLLECT_SET\s*\( { yy.lexer.unput('('); yytext = 'collect_set'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_SET'; } +COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } +HISTOGRAM\s*\( { yy.lexer.unput('('); yytext = 'historgram'; parser.addFunctionLocation(yylloc, yytext); return 'HISTOGRAM'; } +MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } +MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } +SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } +TOPK\s*\( { yy.lexer.unput('('); yytext = 'topk'; parser.addFunctionLocation(yylloc, yytext); return 'TOPK'; } +TOPKDISTINCT\s*\( { yy.lexer.unput('('); yytext = 'topkdistinct'; parser.addFunctionLocation(yylloc, yytext); return 'TOPKDISTINCT'; } +WindowStart\s*\( { yy.lexer.unput('('); yytext = 'windowstart'; parser.addFunctionLocation(yylloc, yytext); return 'WindowStart'; } +WindowEnd\s*\( { yy.lexer.unput('('); yytext = 'windowend'; parser.addFunctionLocation(yylloc, yytext); return 'WindowEnd'; } + + +[0-9]+ { return 'UNSIGNED_INTEGER'; } +[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } +[0-9]+E { return 'UNSIGNED_INTEGER_E'; } +[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } + + +'&&' { return 'AND'; } +'||' { return 'OR'; } + +'=' { return '='; } +'<' { return '<'; } +'>' { return '>'; } +'!=' { return 'COMPARISON_OPERATOR'; } +'<=' { return 'COMPARISON_OPERATOR'; } +'>=' { return 'COMPARISON_OPERATOR'; } +'<>' { return 'COMPARISON_OPERATOR'; } +'<=>' { return 'COMPARISON_OPERATOR'; } + +'-' { return '-'; } +'*' { return '*'; } +'+' { return 'ARITHMETIC_OPERATOR'; } +'/' { return 'ARITHMETIC_OPERATOR'; } +'%' { return 'ARITHMETIC_OPERATOR'; } +'|' { return 'ARITHMETIC_OPERATOR'; } +'^' { return 'ARITHMETIC_OPERATOR'; } +'&' { return 'ARITHMETIC_OPERATOR'; } + +',' { return ','; } +'.' { return '.'; } +':' { return ':'; } +';' { return ';'; } +'~' { return '~'; } +'!' { return '!'; } + +'(' { return '('; } +')' { return ')'; } +'[' { return '['; } +']' { return ']'; } + +\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } + +\` { this.begin('backtickedValue'); return 'BACKTICK'; } +[^`]+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\` { this.popState(); return 'BACKTICK'; } + +\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } +(?:\\\\|\\[']|[^'])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\' { this.popState(); return 'SINGLE_QUOTE'; } + +\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } +(?:\\\\|\\["]|[^"])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\" { this.popState(); return 'DOUBLE_QUOTE'; } + +<> { return 'EOF'; } + +. { /* To prevent console logging of unknown chars */ } +. { } +. { } +. { } +. { } +. { } diff --git a/src/jison/sql/flink/sql_create.jison b/src/jison/sql/flink/sql_create.jison new file mode 100644 index 0000000..1329ac6 --- /dev/null +++ b/src/jison/sql/flink/sql_create.jison @@ -0,0 +1,615 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : CreateStatement + ; + +DataDefinition_EDIT + : CreateStatement_EDIT + ; + +CreateStatement + : DatabaseDefinition + | TableDefinition + | ViewDefinition + | RoleDefinition + ; + +CreateStatement_EDIT + : DatabaseDefinition_EDIT + | TableDefinition_EDIT + | ViewDefinition_EDIT + | 'CREATE' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DatabaseDefinition + : 'CREATE' DatabaseOrSchema OptionalIfNotExists + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT + | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinitionOptionals + : OptionalComment + { + if (!$1) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +DatabaseDefinitionOptionals_EDIT + : OptionalComment_INVALID + ; + +OptionalComment + : + | Comment + ; + +Comment + : 'COMMENT' QuotedValue + ; + +OptionalComment_INVALID + : Comment_INVALID + ; + +Comment_INVALID + : 'COMMENT' SINGLE_QUOTE + | 'COMMENT' DOUBLE_QUOTE + | 'COMMENT' SINGLE_QUOTE VALUE + | 'COMMENT' DOUBLE_QUOTE VALUE + ; + +TableDefinition + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart + ; + +TableDefinition_EDIT + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT + | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT + ; + +TableDefinitionRightPart + : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement + ; + +TableDefinitionRightPart_EDIT + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' + { + var keywords = []; + if (!$1 && !$2) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$2) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + ; + +TableIdentifierAndOptionalColumnSpecification + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } + ; + +TableIdentifierAndOptionalColumnSpecification_EDIT + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT + | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike + ; + +OptionalColumnSpecificationsOrLike + : + | ParenthesizedColumnSpecificationList + | 'LIKE' SchemaQualifiedTableIdentifier -> [] + ; + +OptionalColumnSpecificationsOrLike_EDIT + : ParenthesizedColumnSpecificationList_EDIT + | 'LIKE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LIKE' SchemaQualifiedTableIdentifier_EDIT + ; + +ParenthesizedColumnSpecificationList + : '(' ColumnSpecificationList ')' -> $2 + ; + +ParenthesizedColumnSpecificationList_EDIT + : '(' ColumnSpecificationList_EDIT RightParenthesisOrError + ; + +ColumnSpecificationList + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) + ; + +ColumnSpecificationList_EDIT + : ColumnSpecification_EDIT + | ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecificationList ',' ColumnSpecification_EDIT + | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($1); + } + | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($1); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($3); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($3); + } + ; + +ColumnSpecification + : ColumnIdentifier ColumnDataType OptionalColumnOptions + { + $$ = $1; + $$.type = $2; + var keywords = []; + if (!$3['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +ColumnSpecification_EDIT + : ColumnIdentifier 'CURSOR' OptionalColumnOptions + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions + | ColumnIdentifier ColumnDataType ColumnOptions_EDIT + ; + +OptionalColumnOptions + : -> {} + | ColumnOptions + ; + +ColumnOptions + : ColumnOption + { + $$ = {}; + $$[$1] = true; + } + | ColumnOptions ColumnOption + { + $1[$2] = true; + } + ; + +ColumnOptions_EDIT + : ColumnOption_EDIT + | ColumnOption_EDIT ColumnOptions + | ColumnOptions ColumnOption_EDIT + | ColumnOptions ColumnOption_EDIT ColumnOptions + ; + +ColumnOption + : 'NOT' 'NULL' -> 'null' + | 'NULL' -> 'null' + | Comment -> 'comment' + ; + +ColumnOption_EDIT + : 'NOT' 'CURSOR' + { + parser.suggestKeywords(['NULL']); + } + ; + +ColumnDataType + : PrimitiveType + | ArrayType + | MapType + | StructType + | ArrayType_INVALID + | MapType_INVALID + | StructType_INVALID + ; + +ColumnDataType_EDIT + : ArrayType_EDIT + | MapType_EDIT + | StructType_EDIT + ; + +ArrayType + : 'ARRAY' '<' ColumnDataType '>' + ; + +ArrayType_INVALID + : 'ARRAY' '<' '>' + ; + +ArrayType_EDIT + : 'ARRAY' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError + ; + +MapType + : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' + ; + +MapType_INVALID + : 'MAP' '<' '>' + ; + +MapType_EDIT + : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError + | 'MAP' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'MAP' '<' ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + ; + +StructType + : 'STRUCT' '<' StructDefinitionList '>' + ; + +StructType_INVALID + : 'STRUCT' '<' '>' + ; + +StructType_EDIT + : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError + ; + +StructDefinitionList + : StructDefinition + | StructDefinitionList ',' StructDefinition + ; + +StructDefinitionList_EDIT + : StructDefinition_EDIT + | StructDefinition_EDIT Commas + | StructDefinition_EDIT Commas StructDefinitionList + | StructDefinitionList ',' StructDefinition_EDIT + | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList + ; + +StructDefinition + : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment + ; + +StructDefinition_EDIT + : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | Commas RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + ; + +ColumnDataTypeList + : ColumnDataType + | ColumnDataTypeList ',' ColumnDataType + ; + +ColumnDataTypeList_EDIT + : ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + ; + +ColumnDataTypeListInner_EDIT + : Commas AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas ColumnDataType_EDIT + | AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnDataType_EDIT + ; + +GreaterThanOrError + : '>' + | error + ; + +OptionalPartitionedBy + : + | PartitionedBy + ; + +PartitionedBy + : 'PARTITION' 'BY' RangeClause + ; + +PartitionedBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.suggestKeywords(['RANGE']); + } + | 'PARTITION' 'BY' RangeClause_EDIT + ; + +RangeClause + : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList + ; + +RangeClause_EDIT + : 'RANGE' 'CURSOR' + | 'RANGE' ParenthesizedColumnList_EDIT + | 'RANGE' ParenthesizedColumnList 'CURSOR' + | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT + | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList + ; + +ParenthesizedPartitionValuesList + : '(' PartitionValueList ')' + ; + +ParenthesizedPartitionValuesList_EDIT + : '(' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['PARTITION']); + } + |'(' PartitionValueList_EDIT RightParenthesisOrError + ; + +PartitionValueList + : PartitionValue + | PartitionValueList ',' PartitionValue + ; + +PartitionValueList_EDIT + : PartitionValue_EDIT + | PartitionValueList ',' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' 'CURSOR' ',' PartitionValueList + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' PartitionValue_EDIT + | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList + ; + +PartitionValue + : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' + ; + +PartitionValue_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['VALUE', 'VALUES']); + } + | 'PARTITION' ValueExpression_EDIT + { + if ($2.endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + } + | 'PARTITION' ValueExpression 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + | 'PARTITION' 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + ; + +LessThanOrEqualTo + : '<' + | 'COMPARISON_OPERATOR' // This is fine for autocompletion + ; + +OptionalAsSelectStatement + : + | 'AS' CommitLocations QuerySpecification + ; + +OptionalAsSelectStatement_EDIT + : 'AS' CommitLocations 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'AS' CommitLocations QuerySpecification_EDIT + ; + +CommitLocations + : /* empty */ + { + parser.commitLocations(); + } + ; + +ViewDefinition + : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +ViewDefinition_EDIT + : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' + { + var keywords = [{value: 'AS', weight: 1 }]; + if (!$6) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +OptionalParenthesizedViewColumnList + : + | ParenthesizedViewColumnList + ; + +ParenthesizedViewColumnList + : '(' ViewColumnList ')' + ; + +ParenthesizedViewColumnList_EDIT + : '(' ViewColumnList_EDIT RightParenthesisOrError + { + if (!$2) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +ViewColumnList + : ColumnReference OptionalComment + | ViewColumnList ',' ColumnReference OptionalComment + ; + +ViewColumnList_EDIT + : ColumnReference OptionalComment 'CURSOR' -> $2 + | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 + ; + +RoleDefinition + : 'CREATE' 'ROLE' RegularIdentifier + ; diff --git a/src/jison/sql/flink/sql_drop.jison b/src/jison/sql/flink/sql_drop.jison new file mode 100644 index 0000000..0e3aa53 --- /dev/null +++ b/src/jison/sql/flink/sql_drop.jison @@ -0,0 +1,184 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : DropStatement + ; + +DataDefinition_EDIT + : DropStatement_EDIT + ; + +DropStatement + : DropDatabaseStatement + | DropRoleStatement + | DropTableStatement + | DropViewStatement + | TruncateTableStatement + ; + +DropStatement_EDIT + : DropDatabaseStatement_EDIT + | DropTableStatement_EDIT + | DropViewStatement_EDIT + | TruncateTableStatement_EDIT + | 'DROP' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DropDatabaseStatement + : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade + ; + +DropDatabaseStatement_EDIT + : 'DROP' DatabaseOrSchema OptionalIfExists + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + } + | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CASCADE']); + } + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + ; +DropRoleStatement + : 'DROP' 'ROLE' RegularIdentifier + ; + +DropTableStatement + : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement_EDIT + : 'DROP' 'TABLE' OptionalIfExists_EDIT + | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PURGE']); + } + } + ; + +OptionalPurge + : + | 'PURGE' + ; + +DropViewStatement + : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropViewStatement_EDIT + : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($5); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'VIEW' OptionalIfExists_EDIT + | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +TruncateTableStatement + : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +TruncateTableStatement_EDIT + : 'TRUNCATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($4); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec + ; diff --git a/src/jison/sql/flink/sql_error.jison b/src/jison/sql/flink/sql_error.jison new file mode 100644 index 0000000..48b9a4e --- /dev/null +++ b/src/jison/sql/flink/sql_error.jison @@ -0,0 +1,132 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlStatements + : error + | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? + ; + +SqlStatement_EDIT + : AnyCursor error + { + parser.suggestDdlAndDmlKeywords(); + } + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT + ; + +SelectList_ERROR + : ErrorList + | SelectList ',' ErrorList + | ErrorList ',' SelectList ',' ErrorList + | ErrorList ',' SelectList + | SelectList ',' ErrorList ',' SelectList + ; + +SelectList_ERROR_EDIT + : ErrorList ',' SelectList_EDIT -> $3 + | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 + | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 + | ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | ErrorList ',' SelectList ',' Errors ',' AnyCursor + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + ; + +SetSpecification + : 'SET' SetOption '=' error + ; + +ErrorList + : error + | Errors ',' error + ; + +JoinType_EDIT + : 'FULL' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'LEFT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'RIGHT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$4 && !$5 && !$6 && !$7 + }; + } + | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$6 && !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' + ; + +OptionalSelectConditions_EDIT + : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error + ; diff --git a/src/jison/sql/flink/sql_insert.jison b/src/jison/sql/flink/sql_insert.jison new file mode 100644 index 0000000..8b3544e --- /dev/null +++ b/src/jison/sql/flink/sql_insert.jison @@ -0,0 +1,72 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : InsertStatement + ; + +InsertStatement + : InsertValuesStatement + ; + +DataManipulation_EDIT + : InsertValuesStatement_EDIT + ; + +InsertValuesStatement + : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + ; + +InsertValuesStatement_EDIT + : 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['INTO']); + } + | 'INSERT' 'INTO' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + parser.suggestKeywords(['VALUES']); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList + ; + +InsertValuesList + : ParenthesizedRowValuesList + | RowValuesList ',' ParenthesizedRowValuesList + ; + +ParenthesizedRowValuesList + : '(' InValueList ')' + ; + +OptionalTable + : + | 'TABLE' + ; diff --git a/src/jison/sql/flink/sql_list.jison b/src/jison/sql/flink/sql_list.jison new file mode 100644 index 0000000..f153317 --- /dev/null +++ b/src/jison/sql/flink/sql_list.jison @@ -0,0 +1,37 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : 'LIST' ListStatement + ; + +DataDefinition_EDIT + : ListStatement_EDIT + ; + +ListStatement + : 'TABLES' + | 'STREAMS' + | 'TOPICS' + ; + + +ListStatement_EDIT + : 'LIST' 'CURSOR' + { + parser.suggestKeywords(['TABLES', 'STREAMS', 'TOPICS']); + } + ; diff --git a/src/jison/sql/flink/sql_main.jison b/src/jison/sql/flink/sql_main.jison new file mode 100644 index 0000000..0d3fedc --- /dev/null +++ b/src/jison/sql/flink/sql_main.jison @@ -0,0 +1,2762 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlSyntax + : NewStatement SqlStatements EOF + ; + +SqlAutocomplete + : NewStatement SqlStatements EOF + { + return parser.yy.result; + } + | NewStatement SqlStatements_EDIT EOF + { + return parser.yy.result; + } + ; + +NewStatement + : /* empty */ + { + parser.prepareNewStatement(); + } + ; + +SqlStatements + : + | SqlStatement + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatements + ; + +SqlStatements_EDIT + : SqlStatement_EDIT + { + parser.addStatementLocation(@1); + } + | SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT + { + parser.addStatementLocation(@4); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@4); + } + ; + +SqlStatement + : DataDefinition + | DataManipulation + | QuerySpecification + ; + +SqlStatement_EDIT + : AnyCursor + { + parser.suggestDdlAndDmlKeywords(); + } + | CommonTableExpression 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | DataDefinition_EDIT + | DataManipulation_EDIT + | QuerySpecification_EDIT + | SetSpecification_EDIT + ; + +NonReservedKeyword + : 'ROLE' + | 'OPTION' + | 'STRUCT' + ; + +RegularIdentifier + : 'REGULAR_IDENTIFIER' + | 'VARIABLE_REFERENCE' + | NonReservedKeyword + ; + +// This is a work-around for error handling when a statement starts with some token that the parser can understand but +// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) +NonStartingToken + : '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '<' + | '=' + | '>' + | '[' + | ']' + | '~' + | 'ALL' + | 'ANALYTIC' + | 'AND' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'AS' + | 'ASC' + | 'AVG' + | 'BACKTICK' + | 'BETWEEN' + | 'BIGINT' + | 'BOOLEAN' + | 'BY' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'COMPARISON_OPERATOR' + | 'COUNT' + | 'CROSS' + | 'CURRENT' + | 'DATABASE' + | 'DECIMAL' + | 'DESC' + | 'DISTINCT' + | 'DOUBLE' + | 'DOUBLE_QUOTE' + | 'ELSE' + | 'END' + | 'EXISTS' + | 'FALSE' + | 'FLOAT' + | 'FOLLOWING' + | 'FROM' + | 'FULL' + | 'GROUP' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'IF' + | 'IN' + | 'INNER' + | 'INT' + | 'INTO' + | 'IS' + | 'JOIN' + | 'LEFT' + | 'LIKE' + | 'LIMIT' + | 'MAP' + | 'MAX' + | 'MIN' + | 'NOT' + | 'NULL' + | 'ON' + | 'OPTION' + | 'OR' + | 'ORDER' + | 'OUTER' + | 'OVER' + | 'PARTITION' + | 'PRECEDING' + | 'PURGE' + | 'RANGE' + | 'REGEXP' + | 'REGULAR_IDENTIFIER' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROW' + | 'ROWS' + | 'SCHEMA' + | 'SEMI' + | 'SET' + | 'SINGLE_QUOTE' + | 'SMALLINT' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STRING' + | 'STRUCT' + | 'SUM' + | 'TABLE' + | 'THEN' + | 'TIMESTAMP' + | 'TINYINT' + | 'TRUE' + | 'UNION' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'WHEN' + | 'WHERE' + ; + +// ===================================== Commonly used constructs ===================================== + +Commas + : ',' + | Commas ',' + ; + +AnyCursor + : 'CURSOR' + | 'PARTIAL_CURSOR' + ; + +FromOrIn + : 'FROM' + | 'IN' + ; + +DatabaseOrSchema + : 'DATABASE' + | 'SCHEMA' + ; + +SingleQuotedValue + : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 + | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' + ; + +SingleQuotedValue_EDIT + : 'SINGLE_QUOTE' 'PARTIAL_VALUE' + ; + +DoubleQuotedValue + : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 + | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' + ; + +DoubleQuotedValue_EDIT + : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' + ; + +QuotedValue + : SingleQuotedValue + | DoubleQuotedValue + ; + +QuotedValue_EDIT + : SingleQuotedValue_EDIT + | DoubleQuotedValue_EDIT + ; + +OptionalFromDatabase + : + | FromOrIn DatabaseIdentifier + ; + +OptionalFromDatabase_EDIT + : FromOrIn DatabaseIdentifier_EDIT + ; + +OptionalCascade + : + | 'CASCADE' + ; + +OptionalIfExists + : + | 'IF' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalIfNotExists + : + | 'IF' 'NOT' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfNotExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['NOT EXISTS']); + } + | 'IF' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalInDatabase + : + | 'IN' DatabaseIdentifier + | 'IN' DatabaseIdentifier_EDIT + ; + +OptionalPartitionSpec + : + | PartitionSpec + ; + +OptionalPartitionSpec_EDIT + : PartitionSpec_EDIT + ; + +PartitionSpec + : 'PARTITION' '(' PartitionSpecList ')' + ; + +PartitionSpec_EDIT + : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +RangePartitionSpec + : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + ; + +RangePartitionSpec_EDIT + : UnsignedValueSpecification 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + ; + +RangePartitionComparisonOperator + : 'COMPARISON_OPERATOR' + | '=' + | '<' + | '>' + ; + +ConfigurationName + : RegularIdentifier + | 'CURSOR' + ; + +PartialBacktickedOrAnyCursor + : AnyCursor + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrCursor + : 'CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrPartialCursor + : 'PARTIAL_CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedIdentifier + : 'BACKTICK' 'PARTIAL_VALUE' + ; + +RightParenthesisOrError + : ')' + | error + ; + +OptionalParenthesizedColumnList + : + | ParenthesizedColumnList + ; + +OptionalParenthesizedColumnList_EDIT + : ParenthesizedColumnList_EDIT + ; + +ParenthesizedColumnList + : '(' ColumnList ')' + ; + +ParenthesizedColumnList_EDIT + : '(' ColumnList_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +ColumnList + : ColumnIdentifier + | ColumnList ',' ColumnIdentifier + ; + +ColumnList_EDIT + : ColumnList ',' AnyCursor + { + parser.suggestColumns(); + } + | ColumnList ',' AnyCursor ',' ColumnList + { + parser.suggestColumns(); + } + ; + +ParenthesizedSimpleValueList + : '(' SimpleValueList ')' + ; + +SimpleValueList + : UnsignedValueSpecification + | SimpleValueList ',' UnsignedValueSpecification + ; + +SchemaQualifiedTableIdentifier + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +SchemaQualifiedTableIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + +SchemaQualifiedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] + ; + +SchemaQualifiedIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + ; + +DatabaseIdentifier + : RegularOrBacktickedIdentifier + ; + +DatabaseIdentifier_EDIT + : PartialBacktickedOrCursor + { + parser.suggestDatabases(); + } + ; + +PartitionSpecList + : PartitionExpression + | PartitionSpecList ',' PartitionExpression + ; + +PartitionSpecList_EDIT + : PartitionExpression_EDIT + | PartitionSpecList ',' PartitionExpression_EDIT + | PartitionExpression_EDIT ',' PartitionSpecList + | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList + ; + +PartitionExpression + : ColumnIdentifier '=' ValueExpression + ; + +PartitionExpression_EDIT + : ColumnIdentifier '=' ValueExpression_EDIT + | ColumnIdentifier '=' AnyCursor + { + parser.valueExpressionSuggest(); + } + | PartialBacktickedIdentifier '=' ValueExpression + { + parser.suggestColumns(); + } + | AnyCursor + { + parser.suggestColumns(); + } + ; + +RegularOrBacktickedIdentifier + : RegularIdentifier + | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 + | 'BACKTICK' 'BACKTICK' -> '' + ; + +// TODO: Same as SchemaQualifiedTableIdentifier? +RegularOrBackTickedSchemaQualifiedName + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +RegularOrBackTickedSchemaQualifiedName_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + + +LocalOrSchemaQualifiedName + : RegularOrBackTickedSchemaQualifiedName + | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } + ; + +LocalOrSchemaQualifiedName_EDIT + : RegularOrBackTickedSchemaQualifiedName_EDIT + | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier + ; + +ColumnReference + : BasicIdentifierChain + { + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnReference_EDIT + : BasicIdentifierChain_EDIT + ; + +BasicIdentifierChain + : ColumnIdentifier + { + $$ = [ $1.identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); + } + | BasicIdentifierChain '.' ColumnIdentifier + { + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $1.push($3.identifier); + parser.addUnknownLocation($3.location, $1.concat()); + } + ; + +// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) +BasicIdentifierChain_EDIT + : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + ; + +DerivedColumnChain + : ColumnIdentifier -> [ $1.identifier ] + | DerivedColumnChain '.' ColumnIdentifier + { + $1.push($3.identifier); + } + ; + +DerivedColumnChain_EDIT + : PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns(); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns({ identifierChain: $1 }); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns({ identifierChain: $1 }); + } + | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns(); + } + ; + +ColumnIdentifier + : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } + ; + +PartialBacktickedIdentifierOrPartialCursor + : PartialBacktickedIdentifier + | 'PARTIAL_CURSOR' + ; + +PrimitiveType + : 'BIGINT' + | 'BOOLEAN' + | 'CHAR' OptionalTypeLength + | 'DECIMAL' OptionalTypePrecision + | 'DOUBLE' + | 'FLOAT' + | 'INT' + | 'SMALLINT' + | 'STRING' + | 'TIMESTAMP' + | 'TINYINT' + | 'VARCHAR' OptionalTypeLength + ; + +OptionalTypeLength + : + | '(' 'UNSIGNED_INTEGER' ')' + ; + +OptionalTypePrecision + : + | '(' 'UNSIGNED_INTEGER' ')' + | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' + ; + +// ===================================== SELECT statement ===================================== + +QuerySpecification + : SelectStatement OptionalUnions -> $1 + | CommonTableExpression SelectStatement OptionalUnions + | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 + ; + +QuerySpecification_EDIT + : SelectStatement_EDIT OptionalUnions + | SelectStatement OptionalUnions_EDIT + | CommonTableExpression '(' QuerySpecification_EDIT ')' + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement_EDIT OptionalUnions + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement OptionalUnions_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT + | CommonTableExpression_EDIT '(' QuerySpecification ')' + | CommonTableExpression_EDIT SelectStatement OptionalUnions + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3 }; + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3, tableExpression: $4 } + } + ; + +OptionalUnions + : + | Unions + ; + +OptionalUnions_EDIT + : Unions_EDIT + ; + +Unions + : UnionClause + | Unions UnionClause + ; + +Unions_EDIT + : UnionClause_EDIT + | Unions UnionClause_EDIT + | UnionClause_EDIT Unions + | Unions UnionClause_EDIT Unions + ; + +UnionClause + : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement + ; + +UnionClause_EDIT + : 'UNION' NewStatement 'CURSOR' + { + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + } + | 'UNION' NewStatement 'CURSOR' SelectStatement + { + parser.suggestKeywords(['ALL', 'DISTINCT']); + } + | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + if ($3.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($4); + } + if ($3.suggestFunctions) { + parser.suggestFunctions(); + } + if ($3.suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($3.suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($3.suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.selectListNoTableSuggest($3, $2); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + } + ; + +CommonTableExpression + : 'WITH' WithQueries -> $2 + ; + +CommonTableExpression_EDIT + : 'WITH' WithQueries_EDIT + ; + +WithQueries + : WithQuery -> [$1] + | WithQueries ',' WithQuery -> $1.concat([$3]) + ; + +WithQueries_EDIT + : WithQuery_EDIT + | WithQueries ',' WithQuery_EDIT + { + parser.addCommonTableExpressions($1); + } + | WithQuery_EDIT ',' WithQueries + | WithQueries ',' WithQuery_EDIT ',' WithQueries + { + parser.addCommonTableExpressions($1); + } + ; + +WithQuery + : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' + { + parser.addCteAliasLocation(@1, $1); + $4.alias = $1; + $$ = $4; + } + ; + +WithQuery_EDIT + : RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError + ; + +OptionalAllOrDistinct + : + | 'ALL' + | 'DISTINCT' + ; + +TableExpression + : FromClause OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + ; + +TableExpression_EDIT + : FromClause_EDIT OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins + { + var keywords = []; + + parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + + if ($1) { + if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); + } + if ($1.tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); + } + if ($1.tableReferenceList.suggestJoins) { + parser.suggestJoins($1.tableReferenceList.suggestJoins); + } + if ($1.tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE') { + keyword.weight = 1.1; + } + }); + + if ($1.tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($1.tableReferenceList); + } + } + } + + if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($3.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); + } + + if ($3.suggestFilters) { + parser.suggestFilters($3.suggestFilters); + } + if ($3.suggestGroupBys) { + parser.suggestGroupBys($3.suggestGroupBys); + } + if ($3.suggestOrderBys) { + parser.suggestOrderBys($3.suggestOrderBys); + } + + if ($3.empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + } + | FromClause OptionalSelectConditions_EDIT OptionalJoins + { + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$2) { + parser.addClauseLocation('whereClause', @1); + parser.addClauseLocation('limitClause', @1); + return; + } + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + var keywords = []; + + if ($2.suggestColRefKeywords) { + parser.suggestColRefKeywords($2.suggestColRefKeywords); + parser.addColRefIfExists($2); + } + + if ($2.suggestKeywords && $2.suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); + } + + if ($2.cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + } + ; + +OptionalJoins + : + | Joins + | Joins_INVALID + ; + +FromClause + : 'FROM' TableReferenceList + { + $$ = { tableReferenceList : $2 } + } + ; + +FromClause_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReferenceList_EDIT + ; + +OptionalSelectConditions + : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$1, $2, $3, $4, $5], + [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true]); + + if (keywords.length > 0) { + $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; + } else { + $$ = {}; + } + + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $5 ? @5 : undefined; + + if (!$1 && !$2 && !$3 && !$4 && !$5) { + $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$2 && !$3 && !$4 && !$5) { + $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$4 && !$5) { + $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + } + | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + } + | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + ; + +OptionalSelectConditions_EDIT + : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$3, $4, $5, $6], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true]); + if ($1.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); + } + $$ = parser.getValueExpressionKeywords($1, keywords); + $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; + if ($1.columnReference) { + $$.columnReference = $1.columnReference; + } + if (!$3) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$3 && !$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$4, $5, $6], + [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true]); + if ($2.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); + } + if ($2.valueExpression) { + $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); + if ($2.valueExpression.columnReference) { + $$.columnReference = $2.valueExpression.columnReference; + } + } else { + $$ = { suggestKeywords: keywords }; + } + $$.cursorAtEnd = !$4 && !$5 && !$6; + if (!$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$5, $6], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; + if (!$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$6], + [{ value: 'LIMIT', weight: 3 }], + [true]); + if ($4.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' + { + $$ = { suggestKeywords: [], cursorAtEnd: true }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = @5; + } + ; + +OptionalWhereClause + : + | WhereClause + ; + +WhereClause + : 'WHERE' SearchCondition -> $2 + ; + +WhereClause_EDIT + : 'WHERE' SearchCondition_EDIT + { + if ($2.suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'WHERE' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OptionalGroupByClause + : + | GroupByClause + ; + +GroupByClause + : 'GROUP' 'BY' GroupByColumnList + { + $$ = { valueExpression: $3 }; + } + ; + +GroupByClause_EDIT + : 'GROUP' 'BY' GroupByColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + | 'GROUP' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +ColumnGroupingSets + : + | ColumnReference + | ColumnGroupingSets ',' ColumnGroupingSets + | '(' ColumnGroupingSets ')' + ; + +ColumnGroupingSets_EDIT + : ColumnGroupingSet_EDIT + | ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSet_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + ; + +GroupByColumnList + : ValueExpression + | GroupByColumnList ',' ValueExpression -> $3 + ; + +GroupByColumnList_EDIT + : ValueExpression_EDIT + | 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + } + | 'CURSOR' ',' GroupByColumnList + { + parser.valueExpressionSuggest(); + } + | ValueExpression_EDIT ',' GroupByColumnList + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList + ; + +GroupByColumnListPartTwo_EDIT + : ValueExpression_EDIT + | AnyCursor ValueExpression + { + parser.valueExpressionSuggest(); + } + | AnyCursor + { + parser.valueExpressionSuggest(); + } + ; + +OptionalOrderByClause + : + | OrderByClause + ; + +OrderByClause + : 'ORDER' 'BY' OrderByColumnList -> $3 + ; + +OrderByClause_EDIT + : 'ORDER' 'BY' OrderByColumnList_EDIT + { + if ($3.emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'ORDER' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OrderByColumnList + : OrderByIdentifier + | OrderByColumnList ',' OrderByIdentifier -> $3 + ; + +OrderByColumnList_EDIT + : OrderByIdentifier_EDIT + | 'CURSOR' OrderByIdentifier + { + $$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } + ; + +OrderByIdentifier + : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) + ; + +OrderByIdentifier_EDIT + : ValueExpression_EDIT OptionalAscOrDesc + { + parser.suggestSelectListAliases(); + } + | AnyCursor OptionalAscOrDesc + { + $$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + ; + +OptionalAscOrDesc + : + { + $$ = { suggestKeywords: ['ASC', 'DESC'] }; + } + | 'ASC' + | 'DESC' + ; + +OptionalLimitClause + : + | LimitClause + ; + +LimitClause + : 'LIMIT' UnsignedNumericLiteral + | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral + | 'LIMIT' 'VARIABLE_REFERENCE' + | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' + ; + +LimitClause_EDIT + : 'LIMIT' 'CURSOR' + ; + +SearchCondition + : ValueExpression + ; + +SearchCondition_EDIT + : ValueExpression_EDIT + ; + +ValueExpression + : NonParenthesizedValueExpressionPrimary + ; + +ValueExpression_EDIT + : NonParenthesizedValueExpressionPrimary_EDIT + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpressionList + : ValueExpression + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression + { + $3.position = $1.position + 1; + $$ = $3; + } + ; + +ValueExpressionList_EDIT + : ValueExpression_EDIT + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT + { + $1.position += 1; + } + | ValueExpression_EDIT ',' ValueExpressionList + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList + { + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList 'CURSOR' ',' ValueExpressionList + { + parser.suggestValueExpressionKeywords($1); + } + | AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | AnyCursor ',' + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | ',' AnyCursor + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + | ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + ; + +InValueList + : NonParenthesizedValueExpressionPrimary + | InValueList ',' NonParenthesizedValueExpressionPrimary + ; + +NonParenthesizedValueExpressionPrimary + : UnsignedValueSpecification + | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart + { + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.expression) { + $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } + } else { + $$ = { function: fn, types: parser.findReturnTypes(fn) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | UserDefinedFunction + | 'NULL' -> { types: [ 'NULL' ] } + ; + +NonParenthesizedValueExpressionPrimary_EDIT + : UnsignedValueSpecification_EDIT + | ColumnOrArbitraryFunctionRef_EDIT + { + if ($1.suggestKeywords) { + $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; + } else { + $$ = { types: ['COLREF'], columnReference: $1 }; + } + } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT + { + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.position) { + parser.applyArgumentTypesToSuggestions(fn, $2.position); + } + $$ = { types: parser.findReturnTypes(fn) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | UserDefinedFunction_EDIT + ; + +ColumnOrArbitraryFunctionRef + : BasicIdentifierChain + { + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; + $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnOrArbitraryFunctionRef_EDIT + : BasicIdentifierChain_EDIT + ; + +SignedInteger + : UnsignedNumericLiteral + | '-' UnsignedNumericLiteral + | '+' UnsignedNumericLiteral + ; + +UnsignedValueSpecification + : UnsignedLiteral + ; + +UnsignedValueSpecification_EDIT + : UnsignedLiteral_EDIT + { + parser.suggestValues($1); + } + ; + +UnsignedLiteral + : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } + | GeneralLiteral + ; + +UnsignedLiteral_EDIT + : GeneralLiteral_EDIT + ; + +UnsignedNumericLiteral + : ExactNumericLiteral + | ApproximateNumericLiteral + ; + +ExactNumericLiteral + : 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' -> $1 + $2 + | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 + | '.' 'UNSIGNED_INTEGER' -> $1 + $2 + ; + +ApproximateNumericLiteral + : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + ; + +GeneralLiteral + : SingleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | DoubleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | TruthValue -> { types: [ 'BOOLEAN' ] } + ; + +GeneralLiteral_EDIT + : SingleQuotedValue_EDIT + { + $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + } + | DoubleQuotedValue_EDIT + { + $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + } + ; + +TruthValue + : 'TRUE' + | 'FALSE' + ; + +OptionalNot + : + | 'NOT' + ; + +SelectSpecification + : ValueExpression OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + $$ = { valueExpression: $1, alias: $2.alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); + } else { + $$ = { valueExpression: $1 } + } + } + | '*' + { + parser.addAsteriskLocation(@1, [{ asterisk: true }]); + $$ = { asterisk: true } + } + ; + +SelectSpecification_EDIT + : ValueExpression_EDIT OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + } + } + + | AnyCursor 'AS' RegularOrBacktickedIdentifier + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(@3, $3, @1); + $$ = { suggestAggregateFunctions: true }; + } + | ValueExpression OptionalCorrelationName_EDIT -> $2 + ; + +SelectList + : SelectSpecification -> [ $1 ] + | SelectList ',' SelectSpecification + { + $1.push($3); + } + ; + +SelectList_EDIT + : SelectSpecification_EDIT + | 'CURSOR' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | 'CURSOR' ',' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectSpecification_EDIT ',' SelectList + | SelectList 'CURSOR' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList 'CURSOR' ',' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList ',' AnyCursor + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' SelectSpecification_EDIT -> $3 + | SelectList ',' AnyCursor SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' AnyCursor ',' + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' -> $3 + | SelectList ',' AnyCursor ',' SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 + ; + +TableReferenceList + : TableReference + | TableReferenceList ',' TableReference -> $3 + ; + +TableReferenceList_EDIT + : TableReference_EDIT + | TableReference_EDIT ',' TableReference + | TableReferenceList ',' TableReference_EDIT + | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList + | TableReferenceList ',' AnyCursor + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TableReference + : TablePrimaryOrJoinedTable + ; + +TableReference_EDIT + : TablePrimaryOrJoinedTable_EDIT + ; + +TablePrimaryOrJoinedTable + : TablePrimary + { + $$ = $1; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + $$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + } + | JoinedTable + ; + +TablePrimaryOrJoinedTable_EDIT + : TablePrimary_EDIT + | JoinedTable_EDIT + ; + +JoinedTable + : TablePrimary Joins -> $2 + ; + +JoinedTable_EDIT + : TablePrimary Joins_EDIT + | TablePrimary_EDIT Joins + ; + +Joins + : JoinType TablePrimary OptionalJoinCondition + { + if ($3 && $3.valueExpression) { + $$ = $3.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($3.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($3.suggestKeywords) { + $$.suggestKeywords = $3.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + | Joins JoinType TablePrimary OptionalJoinCondition + { + if ($4 && $4.valueExpression) { + $$ = $4.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($4.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($4.suggestKeywords) { + $$.suggestKeywords = $4.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + ; + +Joins_INVALID + : JoinType -> { joinType: $1 } + | JoinType Joins -> { joinType: $1 } + ; + +Join_EDIT + : JoinType_EDIT TablePrimary OptionalJoinCondition + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType_EDIT + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType TablePrimary_EDIT OptionalJoinCondition + | JoinType TablePrimary JoinCondition_EDIT + | JoinType 'CURSOR' OptionalJoinCondition + { + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $1, + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + ; + +Joins_EDIT + : Join_EDIT + | Join_EDIT Joins + | Joins Join_EDIT + | Joins Join_EDIT Joins + ; + +JoinType + : 'CROSS' 'JOIN' -> 'CROSS JOIN' + | 'FULL' 'JOIN' -> 'FULL JOIN' + | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' + | 'INNER' 'JOIN' -> 'INNER JOIN' + | 'JOIN' -> 'JOIN' + | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' + | 'LEFT' 'JOIN' -> 'LEFT JOIN' + | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' + | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' + | 'OUTER' 'JOIN' -> 'OUTER JOIN' + | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' + | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' + | 'SEMI' 'JOIN' -> 'SEMI JOIN' + ; + +JoinType_EDIT + : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + ; + +OptionalJoinCondition + : -> { noJoinCondition: true, suggestKeywords: ['ON'] } + | 'ON' ValueExpression -> { valueExpression: $2 } + ; + +UsingColList + : RegularOrBacktickedIdentifier + | UsingColList ',' RegularOrBacktickedIdentifier + ; + +JoinCondition_EDIT + : 'ON' ValueExpression_EDIT + | 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + } + ; + +TablePrimary + : TableOrQueryName OptionalCorrelationName + { + $$ = { + primary: $1 + } + if ($1.identifierChain) { + if ($2) { + $1.alias = $2.alias + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } else if ($2.suggestKeywords) { + keywords = $2.suggestKeywords; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + | DerivedTable OptionalCorrelationName + { + $$ = { + primary: $1 + }; + + if ($2) { + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +TablePrimary_EDIT + : TableOrQueryName_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + } + | DerivedTable_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias); + } + } + | DerivedTable OptionalCorrelationName_EDIT + ; + +TableOrQueryName + : SchemaQualifiedTableIdentifier + ; + +TableOrQueryName_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +DerivedTable + : TableSubQuery + ; + +DerivedTable_EDIT + : TableSubQuery_EDIT + ; + +OptionalOnColumn + : + | 'ON' ValueExpression + ; + +OptionalOnColumn_EDIT + : 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'ON' ValueExpression_EDIT + ; + +PushQueryState + : + { + parser.pushQueryState(); + } + ; + +PopQueryState + : + { + parser.popQueryState(); + } + ; + +TableSubQuery + : '(' TableSubQueryInner ')' -> $2 + | '(' DerivedTable OptionalCorrelationName ')' + { + if ($3) { + $2.alias = $3.alias; + parser.addTablePrimary({ subQueryAlias: $3.alias }); + parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); + } + $$ = $2; + } + ; + +TableSubQuery_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + ; + +TableSubQueryInner + : PushQueryState SubQuery + { + var subQuery = parser.getSubQuery($2); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + $$ = subQuery; + } + ; + +TableSubQueryInner_EDIT + : PushQueryState SubQuery_EDIT PopQueryState + ; + +SubQuery + : QueryExpression + ; + +SubQuery_EDIT + : QueryExpression_EDIT + ; + +QueryExpression + : QueryExpressionBody + ; + +QueryExpression_EDIT + : QueryExpressionBody_EDIT + ; + +QueryExpressionBody + : NonJoinQueryExpression + ; + +QueryExpressionBody_EDIT + : NonJoinQueryExpression_EDIT + ; + +NonJoinQueryExpression + : NonJoinQueryTerm + ; + +NonJoinQueryExpression_EDIT + : NonJoinQueryTerm_EDIT + ; + +NonJoinQueryTerm + : NonJoinQueryPrimary + ; + +NonJoinQueryTerm_EDIT + : NonJoinQueryPrimary_EDIT + ; + +NonJoinQueryPrimary + : SimpleTable + ; + +NonJoinQueryPrimary_EDIT + : SimpleTable_EDIT + ; + +SimpleTable + : QuerySpecification + ; + +SimpleTable_EDIT + : QuerySpecification_EDIT + ; + +OptionalCorrelationName + : + | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } + | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | 'AS' QuotedValue -> { alias: $2, location: @2 } + ; + +OptionalCorrelationName_EDIT + : PartialBacktickedIdentifier + | QuotedValue_EDIT + | 'AS' PartialBacktickedIdentifier + | 'AS' QuotedValue_EDIT + | 'AS' 'CURSOR' + ; + +UserDefinedFunction + : AggregateFunction OptionalOverClause + { + if (!$2) { + $1.suggestKeywords = ['OVER']; + } + } + | AnalyticFunction OverClause + | CastFunction + ; + +UserDefinedFunction_EDIT + : AggregateFunction_EDIT + | AggregateFunction OptionalOverClause_EDIT + | AnalyticFunction_EDIT + | AnalyticFunction_EDIT OverClause + | AnalyticFunction 'CURSOR' + { + parser.suggestKeywords(['OVER']); + } + | AnalyticFunction OverClause_EDIT + | CastFunction_EDIT + ; + +ArbitraryFunction + : RegularIdentifier ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + ; + +ArbitraryFunction_EDIT + : RegularIdentifier ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ArbitraryFunctionName + : 'ARRAY' + | 'IF' + | 'MAP' + | 'TRUNCATE' + ; + +ArbitraryFunctionRightPart + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } + ; + +ArbitraryFunctionRightPart_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { position: 1 } + } + | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 + ; + +AggregateFunction + : CountFunction + | SumFunction + | OtherAggregateFunction + ; + +AggregateFunction_EDIT + : CountFunction_EDIT + | SumFunction_EDIT + | OtherAggregateFunction_EDIT + ; + +AnalyticFunction + : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } + ; + +AnalyticFunction_EDIT + : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError + { + parser.applyArgumentTypesToSuggestions($1, $3.position); + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOverClause + : + | OverClause + ; + +OptionalOverClause_EDIT + : OverClause_EDIT + ; + +OverClause + : 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression + ; + +OverClause_EDIT + : 'OVER' WindowExpression_EDIT + ; + +WindowExpression + : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' + ; + +WindowExpression_EDIT + : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$3 && !$4) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$3) { + parser.suggestKeywords(['PARTITION BY']); + } + } + | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$6) { + parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($4); + } + } + ; + +OptionalPartitionBy + : + | PartitionBy + ; + +PartitionBy + : 'PARTITION' 'BY' ValueExpressionList -> $3 + ; + +PartitionBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'PARTITION' 'BY' ValueExpressionList_EDIT + ; + +OptionalOrderByAndWindow + : + | OrderByClause OptionalWindowSpec + ; + +OptionalOrderByAndWindow_EDIT + : OrderByClause_EDIT + { + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + } + | OrderByClause 'CURSOR' OptionalWindowSpec + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); + } + if (!$3) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + } + | OrderByClause WindowSpec_EDIT + ; + +OptionalWindowSpec + : + | WindowSpec + ; + +WindowSpec + : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + ; + +WindowSpec_EDIT + : RowsOrRange 'CURSOR' + { + parser.suggestKeywords(['BETWEEN']); + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' + { + if (!$4 && !$5) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$5) { + parser.suggestKeywords(['AND']); + } + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT + ; + +PopLexerState + : + { + lexer.popState(); + } + ; + +PushHdfsLexerState + : + { + lexer.begin('hdfs'); + } + ; + +HdfsPath + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' + ; + +HdfsPath_EDIT + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: '' }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: '' }); + } + ; + +RowsOrRange + : 'ROWS' + | 'RANGE' + ; + +OptionalCurrentOrPreceding + : + | IntegerOrUnbounded 'PRECEDING' + | 'CURRENT' 'ROW' + ; + +OptionalCurrentOrPreceding_EDIT + : IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['PRECEDING']); + } + | 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + ; + +OptionalAndFollowing + : + | 'AND' 'CURRENT' 'ROW' + | 'AND' IntegerOrUnbounded 'FOLLOWING' + ; + +OptionalAndFollowing_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + } + | 'AND' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + | 'AND' IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['FOLLOWING']); + } + ; + +IntegerOrUnbounded + : 'UNSIGNED_INTEGER' + | 'UNBOUNDED' + ; + +OptionalHavingClause + : + | HavingClause + ; + +HavingClause + : 'HAVING' ValueExpression + ; + +HavingClause_EDIT + : 'HAVING' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + | 'HAVING' ValueExpression_EDIT + { + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + ; + +CastFunction + : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ')' -> { types: [ 'T' ] } + ; + +CastFunction_EDIT + : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + ; + +CountFunction + : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +CountFunction_EDIT + : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +OtherAggregateFunction_EDIT + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, $4.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction_Type + : 'AVG' + | 'MAX' + | 'MIN' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARIANCE' + ; + +FromOrComma + : 'FROM' + | ',' + ; + +SumFunction + : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } + | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } + ; + +SumFunction_EDIT + : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, 1); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; diff --git a/src/jison/sql/flink/sql_set.jison b/src/jison/sql/flink/sql_set.jison new file mode 100644 index 0000000..14cff5c --- /dev/null +++ b/src/jison/sql/flink/sql_set.jison @@ -0,0 +1,46 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : SetSpecification + ; + +DataDefinition_EDIT + : 'SET' 'CURSOR' + { + parser.suggestSetOptions(); + } + ; + +SetSpecification + : 'SET' SetOption '=' SetValue + | 'SET' 'ALL' + ; + +SetOption + : RegularIdentifier + | SetOption '.' RegularIdentifier + ; + +SetValue + : RegularIdentifier + | SignedInteger + | SignedInteger RegularIdentifier + | QuotedValue + | 'TRUE' + | 'FALSE' + | 'NULL' + ; diff --git a/src/jison/sql/flink/sql_show.jison b/src/jison/sql/flink/sql_show.jison new file mode 100644 index 0000000..909df5a --- /dev/null +++ b/src/jison/sql/flink/sql_show.jison @@ -0,0 +1,39 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : 'SHOW' ShowStatement + ; + +DataDefinition_EDIT + : ShowStatement_EDIT + ; + +ShowStatement + : 'TABLES' + | 'STREAMS' + | 'TOPICS' + | 'QUERIES' + | 'PROPERTIES' + ; + + +ShowStatement_EDIT + : 'SHOW' 'CURSOR' + { + parser.suggestKeywords(['TABLES', 'STREAMS', 'TOPICS', 'QUERIES', 'PROPERTIES']); + } + ; diff --git a/src/jison/sql/flink/sql_valueExpression.jison b/src/jison/sql/flink/sql_valueExpression.jison new file mode 100644 index 0000000..3dcc339 --- /dev/null +++ b/src/jison/sql/flink/sql_valueExpression.jison @@ -0,0 +1,839 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +ValueExpression + : 'NOT' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression -> $2 + | '-' ValueExpression %prec NEGATION + { + // verifyType($2, 'NUMBER'); + $$ = $2; + $2.types = ['NUMBER']; + } + | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | 'NOT' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | '!' AnyCursor + { + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | '~' 'PARTIAL_CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + $$ = { types: [ 'T' ] }; + } + | '-' ValueExpression_EDIT %prec NEGATION + { + if (!$2.typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; + } + | '-' 'PARTIAL_CURSOR' %prec NEGATION + { + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'IS' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' + { + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'NULL' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'FALSE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'TRUE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } + } + ; + +// ------------------ EXISTS and parenthesized ------------------ +ValueExpression + : 'EXISTS' TableSubQuery + { + $$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + } + | '(' ValueExpression ')' -> $2 + ; + +ValueExpression_EDIT + : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } + | '(' ValueExpression_EDIT RightParenthesisOrError + { + $$ = $2; + } + | '(' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['T'], typeSet: true }; + } + ; + +// ------------------ COMPARISON ------------------ + +ValueExpression + : ValueExpression '=' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '<' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '>' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '=' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '<' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '>' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT '=' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '<' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '>' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '=' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression '<' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + } + | ValueExpression '>' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; + } + | ValueExpression '=' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '<' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '>' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + + +// ------------------ IN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT + { + if ($4.inValueEdit) { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + parser.applyTypeToSuggestions($1.types); + } + if ($4.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT + { + if ($3.inValueEdit) { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + } + if ($3.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + ; + +ValueExpressionInSecondPart_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } + | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } + ; + +// ------------------ BETWEEN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($4.types[0] === $6.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($4.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $6.types[0] && !$4.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $4.types[0] && !$6.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $5); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($4, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$3.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $3.types[0] && !$5.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $4); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ BOOLEAN ------------------ + +ValueExpression + : ValueExpression 'OR' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'AND' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' 'OR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'OR' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'OR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'OR' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | 'CURSOR' 'AND' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'AND' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'AND' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'AND' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + +// ------------------ ARITHMETIC ------------------ + +ValueExpression + : ValueExpression '-' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression '*' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '*' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression_EDIT '-' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '*' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '-' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '*' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '-' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression '*' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + ; + +// ------------------ LIKE, RLIKE and REGEXP ------------------ + +ValueExpression + : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } + ; + +LikeRightPart + : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + ; + +LikeRightPart_EDIT + : 'LIKE' ValueExpression_EDIT + | 'RLIKE' ValueExpression_EDIT + | 'REGEXP' ValueExpression_EDIT + | 'LIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'RLIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'REGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | 'CURSOR' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'NOT' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ CASE, WHEN, THEN ------------------ + +ValueExpression + : 'CASE' CaseRightPart -> $2 + | 'CASE' ValueExpression CaseRightPart -> $3 + ; + +ValueExpression_EDIT + : 'CASE' CaseRightPart_EDIT -> $2 + | 'CASE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 + | 'CASE' ValueExpression 'CURSOR' EndOrError + { + parser.suggestValueExpressionKeywords($2, ['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression_EDIT CaseRightPart + { + $$ = $3; + $$.suggestFilters = $2.suggestFilters; + } + | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } + ; + +CaseRightPart + : CaseWhenThenList 'END' -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'END' + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + ; + +CaseRightPart_EDIT + : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['END']); + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'CURSOR' ValueExpression EndOrError + { + if ($4.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'CURSOR' EndOrError + { + if ($3.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + $$.suggestFilters = $3.suggestFilters + } + | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = parser.findCaseType($1); + } + | 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CURSOR' 'ELSE' ValueExpression EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = $3; + } + | 'CURSOR' 'ELSE' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ] }; + } + ; + +EndOrError + : 'END' + | error + ; + +CaseWhenThenList + : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } + | CaseWhenThenList CaseWhenThenListPartTwo + { + $1.caseTypes.push($2); + $$ = { caseTypes: $1.caseTypes, lastType: $2 }; + } + ; + +CaseWhenThenList_EDIT + : CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList + | CaseWhenThenList 'CURSOR' CaseWhenThenList + { + parser.suggestValueExpressionKeywords($1, ['WHEN']); + } + | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 + ; + +CaseWhenThenListPartTwo + : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 + ; + +CaseWhenThenListPartTwo_EDIT + : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } + | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } + | 'CURSOR' ValueExpression 'THEN' + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' ValueExpression 'THEN' ValueExpression + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [$4] }; + } + | 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [$4], suggestFilters: true }; + } + | 'WHEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'CURSOR' ValueExpression + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + ; diff --git a/src/jison/sql/flink/syntax_footer.jison b/src/jison/sql/flink/syntax_footer.jison new file mode 100644 index 0000000..ec25eab --- /dev/null +++ b/src/jison/sql/flink/syntax_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/flink/syntax_header.jison b/src/jison/sql/flink/syntax_header.jison new file mode 100644 index 0000000..e2c6815 --- /dev/null +++ b/src/jison/sql/flink/syntax_header.jison @@ -0,0 +1,28 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlSyntax + +%% diff --git a/src/jison/sql/generic/autocomplete_footer.jison b/src/jison/sql/generic/autocomplete_footer.jison new file mode 100644 index 0000000..899433d --- /dev/null +++ b/src/jison/sql/generic/autocomplete_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/generic/autocomplete_header.jison b/src/jison/sql/generic/autocomplete_header.jison new file mode 100644 index 0000000..3b90682 --- /dev/null +++ b/src/jison/sql/generic/autocomplete_header.jison @@ -0,0 +1,29 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'CURSOR' 'PARTIAL_CURSOR' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlAutocomplete + +%% diff --git a/src/jison/sql/generic/sql.jisonlex b/src/jison/sql/generic/sql.jisonlex new file mode 100644 index 0000000..83dbe72 --- /dev/null +++ b/src/jison/sql/generic/sql.jisonlex @@ -0,0 +1,226 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%options case-insensitive flex +%s between +%x hdfs doubleQuotedValue singleQuotedValue backtickedValue +%% + +\s { /* skip whitespace */ } +'--'.* { /* skip comments */ } +[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } + +'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } +'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } + +'AND' { this.popState(); return 'BETWEEN_AND'; } + +// Reserved Keywords +'ALL' { return 'ALL'; } +'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } +'AND' { return 'AND'; } +'AS' { return 'AS'; } +'ASC' { return 'ASC'; } +'BETWEEN' { this.begin('between'); return 'BETWEEN'; } +'BIGINT' { return 'BIGINT'; } +'BOOLEAN' { return 'BOOLEAN'; } +'BY' { return 'BY'; } +'CASCADE' { return 'CASCADE'; } +'CASE' { return 'CASE'; } +'CHAR' { return 'CHAR'; } +'COMMENT' { return 'COMMENT'; } +'CREATE' { parser.determineCase(yytext); return 'CREATE'; } +'CROSS' { return 'CROSS'; } +'CURRENT' { return 'CURRENT'; } +'DATABASE' { return 'DATABASE'; } +'DECIMAL' { return 'DECIMAL'; } +'DESC' { return 'DESC'; } +'DISTINCT' { return 'DISTINCT'; } +'DIV' { return 'ARITHMETIC_OPERATOR'; } +'DOUBLE' { return 'DOUBLE'; } +'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } +'ELSE' { return 'ELSE'; } +'END' { return 'END'; } +'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } +'FALSE' { return 'FALSE'; } +'FLOAT' { return 'FLOAT'; } +'FOLLOWING' { return 'FOLLOWING'; } +'FROM' { parser.determineCase(yytext); return 'FROM'; } +'FULL' { return 'FULL'; } +'GROUP' { return 'GROUP'; } +'HAVING' { return 'HAVING'; } +'IF' { return 'IF'; } +'IN' { return 'IN'; } +'INNER' { return 'INNER'; } +'INSERT' { return 'INSERT'; } +'INT' { return 'INT'; } +'INTO' { return 'INTO'; } +'IS' { return 'IS'; } +'JOIN' { return 'JOIN'; } +'LEFT' { return 'LEFT'; } +'LIKE' { return 'LIKE'; } +'LIMIT' { return 'LIMIT'; } +'NOT' { return 'NOT'; } +'NULL' { return 'NULL'; } +'ON' { return 'ON'; } +'OPTION' { return 'OPTION'; } +'OR' { return 'OR'; } +'ORDER' { return 'ORDER'; } +'OUTER' { return 'OUTER'; } +'PARTITION' { return 'PARTITION'; } +'PRECEDING' { return 'PRECEDING'; } +'PURGE' { return 'PURGE'; } +'RANGE' { return 'RANGE'; } +'REGEXP' { return 'REGEXP'; } +'RIGHT' { return 'RIGHT'; } +'RLIKE' { return 'RLIKE'; } +'ROW' { return 'ROW'; } +'ROLE' { return 'ROLE'; } +'ROWS' { return 'ROWS'; } +'SCHEMA' { return 'SCHEMA'; } +'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } +'SEMI' { return 'SEMI'; } +'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } +'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } +'SMALLINT' { return 'SMALLINT'; } +'STRING' { return 'STRING'; } +'TABLE' { return 'TABLE'; } +'THEN' { return 'THEN'; } +'TIMESTAMP' { return 'TIMESTAMP'; } +'TINYINT' { return 'TINYINT'; } +'TO' { return 'TO'; } +'TRUE' { return 'TRUE'; } +'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } +'UNBOUNDED' { return 'UNBOUNDED'; } +'UNION' { return 'UNION'; } +'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } +'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } +'VALUES' { return 'VALUES'; } +'VARCHAR' { return 'VARCHAR'; } +'VIEW' { return 'VIEW'; } +'WHEN' { return 'WHEN'; } +'WHERE' { return 'WHERE'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } + +// Non-reserved Keywords +'OVER' { return 'OVER'; } +'ROLE' { return 'ROLE'; } + +// --- UDFs --- +AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } +CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } +COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } +MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } +MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } +STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } +STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } +SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } +VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } +VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } +VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } + +// Analytical functions +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } + +[0-9]+ { return 'UNSIGNED_INTEGER'; } +[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } +[0-9]+E { return 'UNSIGNED_INTEGER_E'; } +[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } + +'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } +'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } +\s+['"] { return 'HDFS_START_QUOTE'; } +[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } +['"] { this.popState(); return 'HDFS_END_QUOTE'; } +<> { return 'EOF'; } + +'&&' { return 'AND'; } +'||' { return 'OR'; } + +'=' { return '='; } +'<' { return '<'; } +'>' { return '>'; } +'!=' { return 'COMPARISON_OPERATOR'; } +'<=' { return 'COMPARISON_OPERATOR'; } +'>=' { return 'COMPARISON_OPERATOR'; } +'<>' { return 'COMPARISON_OPERATOR'; } +'<=>' { return 'COMPARISON_OPERATOR'; } + +'-' { return '-'; } +'*' { return '*'; } +'+' { return 'ARITHMETIC_OPERATOR'; } +'/' { return 'ARITHMETIC_OPERATOR'; } +'%' { return 'ARITHMETIC_OPERATOR'; } +'|' { return 'ARITHMETIC_OPERATOR'; } +'^' { return 'ARITHMETIC_OPERATOR'; } +'&' { return 'ARITHMETIC_OPERATOR'; } + +',' { return ','; } +'.' { return '.'; } +':' { return ':'; } +';' { return ';'; } +'~' { return '~'; } +'!' { return '!'; } + +'(' { return '('; } +')' { return ')'; } +'[' { return '['; } +']' { return ']'; } + +\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } + +\` { this.begin('backtickedValue'); return 'BACKTICK'; } +[^`]+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\` { this.popState(); return 'BACKTICK'; } + +\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } +(?:\\\\|\\[']|[^'])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\' { this.popState(); return 'SINGLE_QUOTE'; } + +\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } +(?:\\\\|\\["]|[^"])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\" { this.popState(); return 'DOUBLE_QUOTE'; } + +<> { return 'EOF'; } + +. { /* To prevent console logging of unknown chars */ } +. { } +. { } +. { } +. { } +. { } diff --git a/src/jison/sql/generic/sql_alter.jison b/src/jison/sql/generic/sql_alter.jison new file mode 100644 index 0000000..82acf8f --- /dev/null +++ b/src/jison/sql/generic/sql_alter.jison @@ -0,0 +1,109 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : AlterStatement + ; + +DataDefinition_EDIT + : AlterStatement_EDIT + ; + +AlterStatement + : AlterTable + | AlterView + ; + +AlterStatement_EDIT + : AlterTable_EDIT + | AlterView_EDIT + | 'ALTER' 'CURSOR' + { + parser.suggestKeywords(['TABLE', 'VIEW']); + } + ; + +AlterTable + : AlterTableLeftSide PartitionSpec + ; + +AlterTable_EDIT + : AlterTableLeftSide_EDIT + | AlterTableLeftSide_EDIT PartitionSpec + | AlterTableLeftSide 'CURSOR' + | AlterTableLeftSide PartitionSpec 'CURSOR' + ; + +AlterTableLeftSide + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterTableLeftSide_EDIT + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'ALTER' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +AlterView + : AlterViewLeftSide 'AS' QuerySpecification + ; + +AlterView_EDIT + : AlterViewLeftSide_EDIT + | AlterViewLeftSide 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | AlterViewLeftSide 'SET' 'CURSOR' + | AlterViewLeftSide 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | AlterViewLeftSide 'AS' QuerySpecification_EDIT + ; + + +AlterViewLeftSide + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterViewLeftSide_EDIT + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'ALTER' 'VIEW' 'CURSOR' + { + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; diff --git a/src/jison/sql/generic/sql_create.jison b/src/jison/sql/generic/sql_create.jison new file mode 100644 index 0000000..1329ac6 --- /dev/null +++ b/src/jison/sql/generic/sql_create.jison @@ -0,0 +1,615 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : CreateStatement + ; + +DataDefinition_EDIT + : CreateStatement_EDIT + ; + +CreateStatement + : DatabaseDefinition + | TableDefinition + | ViewDefinition + | RoleDefinition + ; + +CreateStatement_EDIT + : DatabaseDefinition_EDIT + | TableDefinition_EDIT + | ViewDefinition_EDIT + | 'CREATE' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DatabaseDefinition + : 'CREATE' DatabaseOrSchema OptionalIfNotExists + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT + | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinitionOptionals + : OptionalComment + { + if (!$1) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +DatabaseDefinitionOptionals_EDIT + : OptionalComment_INVALID + ; + +OptionalComment + : + | Comment + ; + +Comment + : 'COMMENT' QuotedValue + ; + +OptionalComment_INVALID + : Comment_INVALID + ; + +Comment_INVALID + : 'COMMENT' SINGLE_QUOTE + | 'COMMENT' DOUBLE_QUOTE + | 'COMMENT' SINGLE_QUOTE VALUE + | 'COMMENT' DOUBLE_QUOTE VALUE + ; + +TableDefinition + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart + ; + +TableDefinition_EDIT + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT + | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT + ; + +TableDefinitionRightPart + : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement + ; + +TableDefinitionRightPart_EDIT + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' + { + var keywords = []; + if (!$1 && !$2) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$2) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + ; + +TableIdentifierAndOptionalColumnSpecification + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } + ; + +TableIdentifierAndOptionalColumnSpecification_EDIT + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT + | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike + ; + +OptionalColumnSpecificationsOrLike + : + | ParenthesizedColumnSpecificationList + | 'LIKE' SchemaQualifiedTableIdentifier -> [] + ; + +OptionalColumnSpecificationsOrLike_EDIT + : ParenthesizedColumnSpecificationList_EDIT + | 'LIKE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LIKE' SchemaQualifiedTableIdentifier_EDIT + ; + +ParenthesizedColumnSpecificationList + : '(' ColumnSpecificationList ')' -> $2 + ; + +ParenthesizedColumnSpecificationList_EDIT + : '(' ColumnSpecificationList_EDIT RightParenthesisOrError + ; + +ColumnSpecificationList + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) + ; + +ColumnSpecificationList_EDIT + : ColumnSpecification_EDIT + | ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecificationList ',' ColumnSpecification_EDIT + | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($1); + } + | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($1); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($3); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($3); + } + ; + +ColumnSpecification + : ColumnIdentifier ColumnDataType OptionalColumnOptions + { + $$ = $1; + $$.type = $2; + var keywords = []; + if (!$3['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +ColumnSpecification_EDIT + : ColumnIdentifier 'CURSOR' OptionalColumnOptions + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions + | ColumnIdentifier ColumnDataType ColumnOptions_EDIT + ; + +OptionalColumnOptions + : -> {} + | ColumnOptions + ; + +ColumnOptions + : ColumnOption + { + $$ = {}; + $$[$1] = true; + } + | ColumnOptions ColumnOption + { + $1[$2] = true; + } + ; + +ColumnOptions_EDIT + : ColumnOption_EDIT + | ColumnOption_EDIT ColumnOptions + | ColumnOptions ColumnOption_EDIT + | ColumnOptions ColumnOption_EDIT ColumnOptions + ; + +ColumnOption + : 'NOT' 'NULL' -> 'null' + | 'NULL' -> 'null' + | Comment -> 'comment' + ; + +ColumnOption_EDIT + : 'NOT' 'CURSOR' + { + parser.suggestKeywords(['NULL']); + } + ; + +ColumnDataType + : PrimitiveType + | ArrayType + | MapType + | StructType + | ArrayType_INVALID + | MapType_INVALID + | StructType_INVALID + ; + +ColumnDataType_EDIT + : ArrayType_EDIT + | MapType_EDIT + | StructType_EDIT + ; + +ArrayType + : 'ARRAY' '<' ColumnDataType '>' + ; + +ArrayType_INVALID + : 'ARRAY' '<' '>' + ; + +ArrayType_EDIT + : 'ARRAY' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError + ; + +MapType + : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' + ; + +MapType_INVALID + : 'MAP' '<' '>' + ; + +MapType_EDIT + : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError + | 'MAP' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'MAP' '<' ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + ; + +StructType + : 'STRUCT' '<' StructDefinitionList '>' + ; + +StructType_INVALID + : 'STRUCT' '<' '>' + ; + +StructType_EDIT + : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError + ; + +StructDefinitionList + : StructDefinition + | StructDefinitionList ',' StructDefinition + ; + +StructDefinitionList_EDIT + : StructDefinition_EDIT + | StructDefinition_EDIT Commas + | StructDefinition_EDIT Commas StructDefinitionList + | StructDefinitionList ',' StructDefinition_EDIT + | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList + ; + +StructDefinition + : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment + ; + +StructDefinition_EDIT + : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | Commas RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + ; + +ColumnDataTypeList + : ColumnDataType + | ColumnDataTypeList ',' ColumnDataType + ; + +ColumnDataTypeList_EDIT + : ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + ; + +ColumnDataTypeListInner_EDIT + : Commas AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas ColumnDataType_EDIT + | AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnDataType_EDIT + ; + +GreaterThanOrError + : '>' + | error + ; + +OptionalPartitionedBy + : + | PartitionedBy + ; + +PartitionedBy + : 'PARTITION' 'BY' RangeClause + ; + +PartitionedBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.suggestKeywords(['RANGE']); + } + | 'PARTITION' 'BY' RangeClause_EDIT + ; + +RangeClause + : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList + ; + +RangeClause_EDIT + : 'RANGE' 'CURSOR' + | 'RANGE' ParenthesizedColumnList_EDIT + | 'RANGE' ParenthesizedColumnList 'CURSOR' + | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT + | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList + ; + +ParenthesizedPartitionValuesList + : '(' PartitionValueList ')' + ; + +ParenthesizedPartitionValuesList_EDIT + : '(' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['PARTITION']); + } + |'(' PartitionValueList_EDIT RightParenthesisOrError + ; + +PartitionValueList + : PartitionValue + | PartitionValueList ',' PartitionValue + ; + +PartitionValueList_EDIT + : PartitionValue_EDIT + | PartitionValueList ',' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' 'CURSOR' ',' PartitionValueList + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' PartitionValue_EDIT + | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList + ; + +PartitionValue + : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' + ; + +PartitionValue_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['VALUE', 'VALUES']); + } + | 'PARTITION' ValueExpression_EDIT + { + if ($2.endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + } + | 'PARTITION' ValueExpression 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + | 'PARTITION' 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + ; + +LessThanOrEqualTo + : '<' + | 'COMPARISON_OPERATOR' // This is fine for autocompletion + ; + +OptionalAsSelectStatement + : + | 'AS' CommitLocations QuerySpecification + ; + +OptionalAsSelectStatement_EDIT + : 'AS' CommitLocations 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'AS' CommitLocations QuerySpecification_EDIT + ; + +CommitLocations + : /* empty */ + { + parser.commitLocations(); + } + ; + +ViewDefinition + : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +ViewDefinition_EDIT + : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' + { + var keywords = [{value: 'AS', weight: 1 }]; + if (!$6) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +OptionalParenthesizedViewColumnList + : + | ParenthesizedViewColumnList + ; + +ParenthesizedViewColumnList + : '(' ViewColumnList ')' + ; + +ParenthesizedViewColumnList_EDIT + : '(' ViewColumnList_EDIT RightParenthesisOrError + { + if (!$2) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +ViewColumnList + : ColumnReference OptionalComment + | ViewColumnList ',' ColumnReference OptionalComment + ; + +ViewColumnList_EDIT + : ColumnReference OptionalComment 'CURSOR' -> $2 + | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 + ; + +RoleDefinition + : 'CREATE' 'ROLE' RegularIdentifier + ; diff --git a/src/jison/sql/generic/sql_drop.jison b/src/jison/sql/generic/sql_drop.jison new file mode 100644 index 0000000..0e3aa53 --- /dev/null +++ b/src/jison/sql/generic/sql_drop.jison @@ -0,0 +1,184 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : DropStatement + ; + +DataDefinition_EDIT + : DropStatement_EDIT + ; + +DropStatement + : DropDatabaseStatement + | DropRoleStatement + | DropTableStatement + | DropViewStatement + | TruncateTableStatement + ; + +DropStatement_EDIT + : DropDatabaseStatement_EDIT + | DropTableStatement_EDIT + | DropViewStatement_EDIT + | TruncateTableStatement_EDIT + | 'DROP' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DropDatabaseStatement + : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade + ; + +DropDatabaseStatement_EDIT + : 'DROP' DatabaseOrSchema OptionalIfExists + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + } + | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CASCADE']); + } + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + ; +DropRoleStatement + : 'DROP' 'ROLE' RegularIdentifier + ; + +DropTableStatement + : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement_EDIT + : 'DROP' 'TABLE' OptionalIfExists_EDIT + | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PURGE']); + } + } + ; + +OptionalPurge + : + | 'PURGE' + ; + +DropViewStatement + : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropViewStatement_EDIT + : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($5); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'VIEW' OptionalIfExists_EDIT + | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +TruncateTableStatement + : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +TruncateTableStatement_EDIT + : 'TRUNCATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($4); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec + ; diff --git a/src/jison/sql/generic/sql_error.jison b/src/jison/sql/generic/sql_error.jison new file mode 100644 index 0000000..48b9a4e --- /dev/null +++ b/src/jison/sql/generic/sql_error.jison @@ -0,0 +1,132 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlStatements + : error + | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? + ; + +SqlStatement_EDIT + : AnyCursor error + { + parser.suggestDdlAndDmlKeywords(); + } + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT + ; + +SelectList_ERROR + : ErrorList + | SelectList ',' ErrorList + | ErrorList ',' SelectList ',' ErrorList + | ErrorList ',' SelectList + | SelectList ',' ErrorList ',' SelectList + ; + +SelectList_ERROR_EDIT + : ErrorList ',' SelectList_EDIT -> $3 + | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 + | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 + | ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | ErrorList ',' SelectList ',' Errors ',' AnyCursor + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + ; + +SetSpecification + : 'SET' SetOption '=' error + ; + +ErrorList + : error + | Errors ',' error + ; + +JoinType_EDIT + : 'FULL' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'LEFT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'RIGHT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$4 && !$5 && !$6 && !$7 + }; + } + | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$6 && !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' + ; + +OptionalSelectConditions_EDIT + : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error + ; diff --git a/src/jison/sql/generic/sql_insert.jison b/src/jison/sql/generic/sql_insert.jison new file mode 100644 index 0000000..8b3544e --- /dev/null +++ b/src/jison/sql/generic/sql_insert.jison @@ -0,0 +1,72 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : InsertStatement + ; + +InsertStatement + : InsertValuesStatement + ; + +DataManipulation_EDIT + : InsertValuesStatement_EDIT + ; + +InsertValuesStatement + : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + ; + +InsertValuesStatement_EDIT + : 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['INTO']); + } + | 'INSERT' 'INTO' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + parser.suggestKeywords(['VALUES']); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList + ; + +InsertValuesList + : ParenthesizedRowValuesList + | RowValuesList ',' ParenthesizedRowValuesList + ; + +ParenthesizedRowValuesList + : '(' InValueList ')' + ; + +OptionalTable + : + | 'TABLE' + ; diff --git a/src/jison/sql/generic/sql_main.jison b/src/jison/sql/generic/sql_main.jison new file mode 100644 index 0000000..3aaf9f9 --- /dev/null +++ b/src/jison/sql/generic/sql_main.jison @@ -0,0 +1,2762 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlSyntax + : NewStatement SqlStatements EOF + ; + +SqlAutocomplete + : NewStatement SqlStatements EOF + { + return parser.yy.result; + } + | NewStatement SqlStatements_EDIT EOF + { + return parser.yy.result; + } + ; + +NewStatement + : /* empty */ + { + parser.prepareNewStatement(); + } + ; + +SqlStatements + : + | SqlStatement + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatements + ; + +SqlStatements_EDIT + : SqlStatement_EDIT + { + parser.addStatementLocation(@1); + } + | SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT + { + parser.addStatementLocation(@4); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@4); + } + ; + +SqlStatement + : DataDefinition + | DataManipulation + | QuerySpecification + ; + +SqlStatement_EDIT + : AnyCursor + { + parser.suggestDdlAndDmlKeywords(); + } + | CommonTableExpression 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | DataDefinition_EDIT + | DataManipulation_EDIT + | QuerySpecification_EDIT + | SetSpecification_EDIT + ; + +NonReservedKeyword + : 'ROLE' + | 'OPTION' + | 'STRUCT' + ; + +RegularIdentifier + : 'REGULAR_IDENTIFIER' + | 'VARIABLE_REFERENCE' + | NonReservedKeyword + ; + +// This is a work-around for error handling when a statement starts with some token that the parser can understand but +// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) +NonStartingToken + : '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '<' + | '=' + | '>' + | '[' + | ']' + | '~' + | 'ALL' + | 'ANALYTIC' + | 'AND' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'AS' + | 'ASC' + | 'AVG' + | 'BACKTICK' + | 'BETWEEN' + | 'BIGINT' + | 'BOOLEAN' + | 'BY' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'COMPARISON_OPERATOR' + | 'COUNT' + | 'CROSS' + | 'CURRENT' + | 'DATABASE' + | 'DECIMAL' + | 'DESC' + | 'DISTINCT' + | 'DOUBLE' + | 'DOUBLE_QUOTE' + | 'ELSE' + | 'END' + | 'EXISTS' + | 'FALSE' + | 'FLOAT' + | 'FOLLOWING' + | 'FROM' + | 'FULL' + | 'GROUP' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'IF' + | 'IN' + | 'INNER' + | 'INT' + | 'INTO' + | 'IS' + | 'JOIN' + | 'LEFT' + | 'LIKE' + | 'LIMIT' + | 'MAP' + | 'MAX' + | 'MIN' + | 'NOT' + | 'NULL' + | 'ON' + | 'OPTION' + | 'OR' + | 'ORDER' + | 'OUTER' + | 'OVER' + | 'PARTITION' + | 'PRECEDING' + | 'PURGE' + | 'RANGE' + | 'REGEXP' + | 'REGULAR_IDENTIFIER' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROW' + | 'ROWS' + | 'SCHEMA' + | 'SEMI' + | 'SET' + | 'SINGLE_QUOTE' + | 'SMALLINT' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STRING' + | 'STRUCT' + | 'SUM' + | 'TABLE' + | 'THEN' + | 'TIMESTAMP' + | 'TINYINT' + | 'TRUE' + | 'UNION' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'WHEN' + | 'WHERE' + ; + +// ===================================== Commonly used constructs ===================================== + +Commas + : ',' + | Commas ',' + ; + +AnyCursor + : 'CURSOR' + | 'PARTIAL_CURSOR' + ; + +FromOrIn + : 'FROM' + | 'IN' + ; + +DatabaseOrSchema + : 'DATABASE' + | 'SCHEMA' + ; + +SingleQuotedValue + : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 + | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' + ; + +SingleQuotedValue_EDIT + : 'SINGLE_QUOTE' 'PARTIAL_VALUE' + ; + +DoubleQuotedValue + : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 + | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' + ; + +DoubleQuotedValue_EDIT + : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' + ; + +QuotedValue + : SingleQuotedValue + | DoubleQuotedValue + ; + +QuotedValue_EDIT + : SingleQuotedValue_EDIT + | DoubleQuotedValue_EDIT + ; + +OptionalFromDatabase + : + | FromOrIn DatabaseIdentifier + ; + +OptionalFromDatabase_EDIT + : FromOrIn DatabaseIdentifier_EDIT + ; + +OptionalCascade + : + | 'CASCADE' + ; + +OptionalIfExists + : + | 'IF' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalIfNotExists + : + | 'IF' 'NOT' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfNotExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['NOT EXISTS']); + } + | 'IF' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalInDatabase + : + | 'IN' DatabaseIdentifier + | 'IN' DatabaseIdentifier_EDIT + ; + +OptionalPartitionSpec + : + | PartitionSpec + ; + +OptionalPartitionSpec_EDIT + : PartitionSpec_EDIT + ; + +PartitionSpec + : 'PARTITION' '(' PartitionSpecList ')' + ; + +PartitionSpec_EDIT + : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +RangePartitionSpec + : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + ; + +RangePartitionSpec_EDIT + : UnsignedValueSpecification 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + ; + +RangePartitionComparisonOperator + : 'COMPARISON_OPERATOR' + | '=' + | '<' + | '>' + ; + +ConfigurationName + : RegularIdentifier + | 'CURSOR' + ; + +PartialBacktickedOrAnyCursor + : AnyCursor + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrCursor + : 'CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrPartialCursor + : 'PARTIAL_CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedIdentifier + : 'BACKTICK' 'PARTIAL_VALUE' + ; + +RightParenthesisOrError + : ')' + | error + ; + +OptionalParenthesizedColumnList + : + | ParenthesizedColumnList + ; + +OptionalParenthesizedColumnList_EDIT + : ParenthesizedColumnList_EDIT + ; + +ParenthesizedColumnList + : '(' ColumnList ')' + ; + +ParenthesizedColumnList_EDIT + : '(' ColumnList_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +ColumnList + : ColumnIdentifier + | ColumnList ',' ColumnIdentifier + ; + +ColumnList_EDIT + : ColumnList ',' AnyCursor + { + parser.suggestColumns(); + } + | ColumnList ',' AnyCursor ',' ColumnList + { + parser.suggestColumns(); + } + ; + +ParenthesizedSimpleValueList + : '(' SimpleValueList ')' + ; + +SimpleValueList + : UnsignedValueSpecification + | SimpleValueList ',' UnsignedValueSpecification + ; + +SchemaQualifiedTableIdentifier + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +SchemaQualifiedTableIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + +SchemaQualifiedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] + ; + +SchemaQualifiedIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + ; + +DatabaseIdentifier + : RegularOrBacktickedIdentifier + ; + +DatabaseIdentifier_EDIT + : PartialBacktickedOrCursor + { + parser.suggestDatabases(); + } + ; + +PartitionSpecList + : PartitionExpression + | PartitionSpecList ',' PartitionExpression + ; + +PartitionSpecList_EDIT + : PartitionExpression_EDIT + | PartitionSpecList ',' PartitionExpression_EDIT + | PartitionExpression_EDIT ',' PartitionSpecList + | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList + ; + +PartitionExpression + : ColumnIdentifier '=' ValueExpression + ; + +PartitionExpression_EDIT + : ColumnIdentifier '=' ValueExpression_EDIT + | ColumnIdentifier '=' AnyCursor + { + parser.valueExpressionSuggest(); + } + | PartialBacktickedIdentifier '=' ValueExpression + { + parser.suggestColumns(); + } + | AnyCursor + { + parser.suggestColumns(); + } + ; + +RegularOrBacktickedIdentifier + : RegularIdentifier + | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 + | 'BACKTICK' 'BACKTICK' -> '' + ; + +// TODO: Same as SchemaQualifiedTableIdentifier? +RegularOrBackTickedSchemaQualifiedName + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +RegularOrBackTickedSchemaQualifiedName_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + + +LocalOrSchemaQualifiedName + : RegularOrBackTickedSchemaQualifiedName + | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } + ; + +LocalOrSchemaQualifiedName_EDIT + : RegularOrBackTickedSchemaQualifiedName_EDIT + | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier + ; + +ColumnReference + : BasicIdentifierChain + { + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnReference_EDIT + : BasicIdentifierChain_EDIT + ; + +BasicIdentifierChain + : ColumnIdentifier + { + $$ = [ $1.identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); + } + | BasicIdentifierChain '.' ColumnIdentifier + { + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $1.push($3.identifier); + parser.addUnknownLocation($3.location, $1.concat()); + } + ; + +// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) +BasicIdentifierChain_EDIT + : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + ; + +DerivedColumnChain + : ColumnIdentifier -> [ $1.identifier ] + | DerivedColumnChain '.' ColumnIdentifier + { + $1.push($3.identifier); + } + ; + +DerivedColumnChain_EDIT + : PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns(); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns({ identifierChain: $1 }); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns({ identifierChain: $1 }); + } + | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns(); + } + ; + +ColumnIdentifier + : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } + ; + +PartialBacktickedIdentifierOrPartialCursor + : PartialBacktickedIdentifier + | 'PARTIAL_CURSOR' + ; + +PrimitiveType + : 'BIGINT' + | 'BOOLEAN' + | 'CHAR' OptionalTypeLength + | 'DECIMAL' OptionalTypePrecision + | 'DOUBLE' + | 'FLOAT' + | 'INT' + | 'SMALLINT' + | 'STRING' + | 'TIMESTAMP' + | 'TINYINT' + | 'VARCHAR' OptionalTypeLength + ; + +OptionalTypeLength + : + | '(' 'UNSIGNED_INTEGER' ')' + ; + +OptionalTypePrecision + : + | '(' 'UNSIGNED_INTEGER' ')' + | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' + ; + +// ===================================== SELECT statement ===================================== + +QuerySpecification + : SelectStatement OptionalUnions -> $1 + | CommonTableExpression SelectStatement OptionalUnions + | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 + ; + +QuerySpecification_EDIT + : SelectStatement_EDIT OptionalUnions + | SelectStatement OptionalUnions_EDIT + | CommonTableExpression '(' QuerySpecification_EDIT ')' + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement_EDIT OptionalUnions + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement OptionalUnions_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT + | CommonTableExpression_EDIT '(' QuerySpecification ')' + | CommonTableExpression_EDIT SelectStatement OptionalUnions + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3 }; + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3, tableExpression: $4 } + } + ; + +OptionalUnions + : + | Unions + ; + +OptionalUnions_EDIT + : Unions_EDIT + ; + +Unions + : UnionClause + | Unions UnionClause + ; + +Unions_EDIT + : UnionClause_EDIT + | Unions UnionClause_EDIT + | UnionClause_EDIT Unions + | Unions UnionClause_EDIT Unions + ; + +UnionClause + : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement + ; + +UnionClause_EDIT + : 'UNION' NewStatement 'CURSOR' + { + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + } + | 'UNION' NewStatement 'CURSOR' SelectStatement + { + parser.suggestKeywords(['ALL', 'DISTINCT']); + } + | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + if ($3.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($4); + } + if ($3.suggestFunctions) { + parser.suggestFunctions(); + } + if ($3.suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($3.suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($3.suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.selectListNoTableSuggest($3, $2); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + } + ; + +CommonTableExpression + : 'WITH' WithQueries -> $2 + ; + +CommonTableExpression_EDIT + : 'WITH' WithQueries_EDIT + ; + +WithQueries + : WithQuery -> [$1] + | WithQueries ',' WithQuery -> $1.concat([$3]) + ; + +WithQueries_EDIT + : WithQuery_EDIT + | WithQueries ',' WithQuery_EDIT + { + parser.addCommonTableExpressions($1); + } + | WithQuery_EDIT ',' WithQueries + | WithQueries ',' WithQuery_EDIT ',' WithQueries + { + parser.addCommonTableExpressions($1); + } + ; + +WithQuery + : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' + { + parser.addCteAliasLocation(@1, $1); + $4.alias = $1; + $$ = $4; + } + ; + +WithQuery_EDIT + : RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError + ; + +OptionalAllOrDistinct + : + | 'ALL' + | 'DISTINCT' + ; + +TableExpression + : FromClause OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + ; + +TableExpression_EDIT + : FromClause_EDIT OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins + { + var keywords = []; + + parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + + if ($1) { + if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); + } + if ($1.tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); + } + if ($1.tableReferenceList.suggestJoins) { + parser.suggestJoins($1.tableReferenceList.suggestJoins); + } + if ($1.tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE') { + keyword.weight = 1.1; + } + }); + + if ($1.tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($1.tableReferenceList); + } + } + } + + if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($3.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); + } + + if ($3.suggestFilters) { + parser.suggestFilters($3.suggestFilters); + } + if ($3.suggestGroupBys) { + parser.suggestGroupBys($3.suggestGroupBys); + } + if ($3.suggestOrderBys) { + parser.suggestOrderBys($3.suggestOrderBys); + } + + if ($3.empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + } + | FromClause OptionalSelectConditions_EDIT OptionalJoins + { + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$2) { + parser.addClauseLocation('whereClause', @1); + parser.addClauseLocation('limitClause', @1); + return; + } + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + var keywords = []; + + if ($2.suggestColRefKeywords) { + parser.suggestColRefKeywords($2.suggestColRefKeywords); + parser.addColRefIfExists($2); + } + + if ($2.suggestKeywords && $2.suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); + } + + if ($2.cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + } + ; + +OptionalJoins + : + | Joins + | Joins_INVALID + ; + +FromClause + : 'FROM' TableReferenceList + { + $$ = { tableReferenceList : $2 } + } + ; + +FromClause_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReferenceList_EDIT + ; + +OptionalSelectConditions + : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$1, $2, $3, $4, $5], + [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true]); + + if (keywords.length > 0) { + $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; + } else { + $$ = {}; + } + + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $5 ? @5 : undefined; + + if (!$1 && !$2 && !$3 && !$4 && !$5) { + $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$2 && !$3 && !$4 && !$5) { + $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$4 && !$5) { + $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + } + | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + } + | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + ; + +OptionalSelectConditions_EDIT + : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$3, $4, $5, $6], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true]); + if ($1.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); + } + $$ = parser.getValueExpressionKeywords($1, keywords); + $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; + if ($1.columnReference) { + $$.columnReference = $1.columnReference; + } + if (!$3) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$3 && !$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$4, $5, $6], + [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true]); + if ($2.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); + } + if ($2.valueExpression) { + $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); + if ($2.valueExpression.columnReference) { + $$.columnReference = $2.valueExpression.columnReference; + } + } else { + $$ = { suggestKeywords: keywords }; + } + $$.cursorAtEnd = !$4 && !$5 && !$6; + if (!$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$5, $6], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; + if (!$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$6], + [{ value: 'LIMIT', weight: 3 }], + [true]); + if ($4.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' + { + $$ = { suggestKeywords: [], cursorAtEnd: true }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = @5; + } + ; + +OptionalWhereClause + : + | WhereClause + ; + +WhereClause + : 'WHERE' SearchCondition -> $2 + ; + +WhereClause_EDIT + : 'WHERE' SearchCondition_EDIT + { + if ($2.suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'WHERE' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OptionalGroupByClause + : + | GroupByClause + ; + +GroupByClause + : 'GROUP' 'BY' GroupByColumnList + { + $$ = { valueExpression: $3 }; + } + ; + +GroupByClause_EDIT + : 'GROUP' 'BY' GroupByColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + | 'GROUP' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +ColumnGroupingSets + : + | ColumnReference + | ColumnGroupingSets ',' ColumnGroupingSets + | '(' ColumnGroupingSets ')' + ; + +ColumnGroupingSets_EDIT + : ColumnGroupingSet_EDIT + | ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSet_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + ; + +GroupByColumnList + : ValueExpression + | GroupByColumnList ',' ValueExpression -> $3 + ; + +GroupByColumnList_EDIT + : ValueExpression_EDIT + | 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + } + | 'CURSOR' ',' GroupByColumnList + { + parser.valueExpressionSuggest(); + } + | ValueExpression_EDIT ',' GroupByColumnList + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList + ; + +GroupByColumnListPartTwo_EDIT + : ValueExpression_EDIT + | AnyCursor ValueExpression + { + parser.valueExpressionSuggest(); + } + | AnyCursor + { + parser.valueExpressionSuggest(); + } + ; + +OptionalOrderByClause + : + | OrderByClause + ; + +OrderByClause + : 'ORDER' 'BY' OrderByColumnList -> $3 + ; + +OrderByClause_EDIT + : 'ORDER' 'BY' OrderByColumnList_EDIT + { + if ($3.emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'ORDER' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OrderByColumnList + : OrderByIdentifier + | OrderByColumnList ',' OrderByIdentifier -> $3 + ; + +OrderByColumnList_EDIT + : OrderByIdentifier_EDIT + | 'CURSOR' OrderByIdentifier + { + $$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } + ; + +OrderByIdentifier + : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) + ; + +OrderByIdentifier_EDIT + : ValueExpression_EDIT OptionalAscOrDesc + { + parser.suggestSelectListAliases(); + } + | AnyCursor OptionalAscOrDesc + { + $$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + ; + +OptionalAscOrDesc + : + { + $$ = { suggestKeywords: ['ASC', 'DESC'] }; + } + | 'ASC' + | 'DESC' + ; + +OptionalLimitClause + : + | LimitClause + ; + +LimitClause + : 'LIMIT' UnsignedNumericLiteral + | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral + | 'LIMIT' 'VARIABLE_REFERENCE' + | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' + ; + +LimitClause_EDIT + : 'LIMIT' 'CURSOR' + ; + +SearchCondition + : ValueExpression + ; + +SearchCondition_EDIT + : ValueExpression_EDIT + ; + +ValueExpression + : NonParenthesizedValueExpressionPrimary + ; + +ValueExpression_EDIT + : NonParenthesizedValueExpressionPrimary_EDIT + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpressionList + : ValueExpression + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression + { + $3.position = $1.position + 1; + $$ = $3; + } + ; + +ValueExpressionList_EDIT + : ValueExpression_EDIT + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT + { + $1.position += 1; + } + | ValueExpression_EDIT ',' ValueExpressionList + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList + { + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList 'CURSOR' ',' ValueExpressionList + { + parser.suggestValueExpressionKeywords($1); + } + | AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | AnyCursor ',' + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | ',' AnyCursor + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + | ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + ; + +InValueList + : NonParenthesizedValueExpressionPrimary + | InValueList ',' NonParenthesizedValueExpressionPrimary + ; + +NonParenthesizedValueExpressionPrimary + : UnsignedValueSpecification + | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart + { + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.expression) { + $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } + } else { + $$ = { function: fn, types: parser.findReturnTypes(fn) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | UserDefinedFunction + | 'NULL' -> { types: [ 'NULL' ] } + ; + +NonParenthesizedValueExpressionPrimary_EDIT + : UnsignedValueSpecification_EDIT + | ColumnOrArbitraryFunctionRef_EDIT + { + if ($1.suggestKeywords) { + $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; + } else { + $$ = { types: ['COLREF'], columnReference: $1 }; + } + } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT + { + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.position) { + parser.applyArgumentTypesToSuggestions(fn, $2.position); + } + $$ = { types: parser.findReturnTypes(fn) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | UserDefinedFunction_EDIT + ; + +ColumnOrArbitraryFunctionRef + : BasicIdentifierChain + { + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; + $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnOrArbitraryFunctionRef_EDIT + : BasicIdentifierChain_EDIT + ; + +SignedInteger + : UnsignedNumericLiteral + | '-' UnsignedNumericLiteral + | '+' UnsignedNumericLiteral + ; + +UnsignedValueSpecification + : UnsignedLiteral + ; + +UnsignedValueSpecification_EDIT + : UnsignedLiteral_EDIT + { + parser.suggestValues($1); + } + ; + +UnsignedLiteral + : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } + | GeneralLiteral + ; + +UnsignedLiteral_EDIT + : GeneralLiteral_EDIT + ; + +UnsignedNumericLiteral + : ExactNumericLiteral + | ApproximateNumericLiteral + ; + +ExactNumericLiteral + : 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' -> $1 + $2 + | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 + | '.' 'UNSIGNED_INTEGER' -> $1 + $2 + ; + +ApproximateNumericLiteral + : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + ; + +GeneralLiteral + : SingleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | DoubleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | TruthValue -> { types: [ 'BOOLEAN' ] } + ; + +GeneralLiteral_EDIT + : SingleQuotedValue_EDIT + { + $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + } + | DoubleQuotedValue_EDIT + { + $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + } + ; + +TruthValue + : 'TRUE' + | 'FALSE' + ; + +OptionalNot + : + | 'NOT' + ; + +SelectSpecification + : ValueExpression OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + $$ = { valueExpression: $1, alias: $2.alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); + } else { + $$ = { valueExpression: $1 } + } + } + | '*' + { + parser.addAsteriskLocation(@1, [{ asterisk: true }]); + $$ = { asterisk: true } + } + ; + +SelectSpecification_EDIT + : ValueExpression_EDIT OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + } + } + + | AnyCursor 'AS' RegularOrBacktickedIdentifier + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(@3, $3, @1); + $$ = { suggestAggregateFunctions: true }; + } + | ValueExpression OptionalCorrelationName_EDIT -> $2 + ; + +SelectList + : SelectSpecification -> [ $1 ] + | SelectList ',' SelectSpecification + { + $1.push($3); + } + ; + +SelectList_EDIT + : SelectSpecification_EDIT + | 'CURSOR' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | 'CURSOR' ',' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectSpecification_EDIT ',' SelectList + | SelectList 'CURSOR' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList 'CURSOR' ',' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList ',' AnyCursor + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' SelectSpecification_EDIT -> $3 + | SelectList ',' AnyCursor SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' AnyCursor ',' + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' -> $3 + | SelectList ',' AnyCursor ',' SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 + ; + +TableReferenceList + : TableReference + | TableReferenceList ',' TableReference -> $3 + ; + +TableReferenceList_EDIT + : TableReference_EDIT + | TableReference_EDIT ',' TableReference + | TableReferenceList ',' TableReference_EDIT + | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList + | TableReferenceList ',' AnyCursor + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TableReference + : TablePrimaryOrJoinedTable + ; + +TableReference_EDIT + : TablePrimaryOrJoinedTable_EDIT + ; + +TablePrimaryOrJoinedTable + : TablePrimary + { + $$ = $1; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + $$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + } + | JoinedTable + ; + +TablePrimaryOrJoinedTable_EDIT + : TablePrimary_EDIT + | JoinedTable_EDIT + ; + +JoinedTable + : TablePrimary Joins -> $2 + ; + +JoinedTable_EDIT + : TablePrimary Joins_EDIT + | TablePrimary_EDIT Joins + ; + +Joins + : JoinType TablePrimary OptionalJoinCondition + { + if ($3 && $3.valueExpression) { + $$ = $3.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($3.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($3.suggestKeywords) { + $$.suggestKeywords = $3.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + | Joins JoinType TablePrimary OptionalJoinCondition + { + if ($4 && $4.valueExpression) { + $$ = $4.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($4.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($4.suggestKeywords) { + $$.suggestKeywords = $4.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + ; + +Joins_INVALID + : JoinType -> { joinType: $1 } + | JoinType Joins -> { joinType: $1 } + ; + +Join_EDIT + : JoinType_EDIT TablePrimary OptionalJoinCondition + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType_EDIT + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType TablePrimary_EDIT OptionalJoinCondition + | JoinType TablePrimary JoinCondition_EDIT + | JoinType 'CURSOR' OptionalJoinCondition + { + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $1, + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + ; + +Joins_EDIT + : Join_EDIT + | Join_EDIT Joins + | Joins Join_EDIT + | Joins Join_EDIT Joins + ; + +JoinType + : 'CROSS' 'JOIN' -> 'CROSS JOIN' + | 'FULL' 'JOIN' -> 'FULL JOIN' + | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' + | 'INNER' 'JOIN' -> 'INNER JOIN' + | 'JOIN' -> 'JOIN' + | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' + | 'LEFT' 'JOIN' -> 'LEFT JOIN' + | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' + | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' + | 'OUTER' 'JOIN' -> 'OUTER JOIN' + | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' + | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' + | 'SEMI' 'JOIN' -> 'SEMI JOIN' + ; + +JoinType_EDIT + : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + ; + +OptionalJoinCondition + : -> { noJoinCondition: true, suggestKeywords: ['ON'] } + | 'ON' ValueExpression -> { valueExpression: $2 } + ; + +UsingColList + : RegularOrBacktickedIdentifier + | UsingColList ',' RegularOrBacktickedIdentifier + ; + +JoinCondition_EDIT + : 'ON' ValueExpression_EDIT + | 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + } + ; + +TablePrimary + : TableOrQueryName OptionalCorrelationName + { + $$ = { + primary: $1 + } + if ($1.identifierChain) { + if ($2) { + $1.alias = $2.alias + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } else if ($2.suggestKeywords) { + keywords = $2.suggestKeywords; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + | DerivedTable OptionalCorrelationName + { + $$ = { + primary: $1 + }; + + if ($2) { + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +TablePrimary_EDIT + : TableOrQueryName_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + } + | DerivedTable_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias); + } + } + | DerivedTable OptionalCorrelationName_EDIT + ; + +TableOrQueryName + : SchemaQualifiedTableIdentifier + ; + +TableOrQueryName_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +DerivedTable + : TableSubQuery + ; + +DerivedTable_EDIT + : TableSubQuery_EDIT + ; + +OptionalOnColumn + : + | 'ON' ValueExpression + ; + +OptionalOnColumn_EDIT + : 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'ON' ValueExpression_EDIT + ; + +PushQueryState + : + { + parser.pushQueryState(); + } + ; + +PopQueryState + : + { + parser.popQueryState(); + } + ; + +TableSubQuery + : '(' TableSubQueryInner ')' -> $2 + | '(' DerivedTable OptionalCorrelationName ')' + { + if ($3) { + $2.alias = $3.alias; + parser.addTablePrimary({ subQueryAlias: $3.alias }); + parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); + } + $$ = $2; + } + ; + +TableSubQuery_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + ; + +TableSubQueryInner + : PushQueryState SubQuery + { + var subQuery = parser.getSubQuery($2); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + $$ = subQuery; + } + ; + +TableSubQueryInner_EDIT + : PushQueryState SubQuery_EDIT PopQueryState + ; + +SubQuery + : QueryExpression + ; + +SubQuery_EDIT + : QueryExpression_EDIT + ; + +QueryExpression + : QueryExpressionBody + ; + +QueryExpression_EDIT + : QueryExpressionBody_EDIT + ; + +QueryExpressionBody + : NonJoinQueryExpression + ; + +QueryExpressionBody_EDIT + : NonJoinQueryExpression_EDIT + ; + +NonJoinQueryExpression + : NonJoinQueryTerm + ; + +NonJoinQueryExpression_EDIT + : NonJoinQueryTerm_EDIT + ; + +NonJoinQueryTerm + : NonJoinQueryPrimary + ; + +NonJoinQueryTerm_EDIT + : NonJoinQueryPrimary_EDIT + ; + +NonJoinQueryPrimary + : SimpleTable + ; + +NonJoinQueryPrimary_EDIT + : SimpleTable_EDIT + ; + +SimpleTable + : QuerySpecification + ; + +SimpleTable_EDIT + : QuerySpecification_EDIT + ; + +OptionalCorrelationName + : + | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } + | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | 'AS' QuotedValue -> { alias: $2, location: @2 } + ; + +OptionalCorrelationName_EDIT + : PartialBacktickedIdentifier + | QuotedValue_EDIT + | 'AS' PartialBacktickedIdentifier + | 'AS' QuotedValue_EDIT + | 'AS' 'CURSOR' + ; + +UserDefinedFunction + : AggregateFunction OptionalOverClause + { + if (!$2) { + $1.suggestKeywords = ['OVER']; + } + } + | AnalyticFunction OverClause + | CastFunction + ; + +UserDefinedFunction_EDIT + : AggregateFunction_EDIT + | AggregateFunction OptionalOverClause_EDIT + | AnalyticFunction_EDIT + | AnalyticFunction_EDIT OverClause + | AnalyticFunction 'CURSOR' + { + parser.suggestKeywords(['OVER']); + } + | AnalyticFunction OverClause_EDIT + | CastFunction_EDIT + ; + +ArbitraryFunction + : RegularIdentifier ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + ; + +ArbitraryFunction_EDIT + : RegularIdentifier ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ArbitraryFunctionName + : 'ARRAY' + | 'IF' + | 'MAP' + | 'TRUNCATE' + ; + +ArbitraryFunctionRightPart + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } + ; + +ArbitraryFunctionRightPart_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { position: 1 } + } + | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 + ; + +AggregateFunction + : CountFunction + | SumFunction + | OtherAggregateFunction + ; + +AggregateFunction_EDIT + : CountFunction_EDIT + | SumFunction_EDIT + | OtherAggregateFunction_EDIT + ; + +AnalyticFunction + : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } + ; + +AnalyticFunction_EDIT + : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError + { + parser.applyArgumentTypesToSuggestions($1, $3.position); + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOverClause + : + | OverClause + ; + +OptionalOverClause_EDIT + : OverClause_EDIT + ; + +OverClause + : 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression + ; + +OverClause_EDIT + : 'OVER' WindowExpression_EDIT + ; + +WindowExpression + : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' + ; + +WindowExpression_EDIT + : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$3 && !$4) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$3) { + parser.suggestKeywords(['PARTITION BY']); + } + } + | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$6) { + parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($4); + } + } + ; + +OptionalPartitionBy + : + | PartitionBy + ; + +PartitionBy + : 'PARTITION' 'BY' ValueExpressionList -> $3 + ; + +PartitionBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'PARTITION' 'BY' ValueExpressionList_EDIT + ; + +OptionalOrderByAndWindow + : + | OrderByClause OptionalWindowSpec + ; + +OptionalOrderByAndWindow_EDIT + : OrderByClause_EDIT + { + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + } + | OrderByClause 'CURSOR' OptionalWindowSpec + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); + } + if (!$3) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + } + | OrderByClause WindowSpec_EDIT + ; + +OptionalWindowSpec + : + | WindowSpec + ; + +WindowSpec + : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + ; + +WindowSpec_EDIT + : RowsOrRange 'CURSOR' + { + parser.suggestKeywords(['BETWEEN']); + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' + { + if (!$4 && !$5) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$5) { + parser.suggestKeywords(['AND']); + } + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT + ; + +PopLexerState + : + { + lexer.popState(); + } + ; + +PushHdfsLexerState + : + { + lexer.begin('hdfs'); + } + ; + +HdfsPath + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' + ; + +HdfsPath_EDIT + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: '' }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: '' }); + } + ; + +RowsOrRange + : 'ROWS' + | 'RANGE' + ; + +OptionalCurrentOrPreceding + : + | IntegerOrUnbounded 'PRECEDING' + | 'CURRENT' 'ROW' + ; + +OptionalCurrentOrPreceding_EDIT + : IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['PRECEDING']); + } + | 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + ; + +OptionalAndFollowing + : + | 'AND' 'CURRENT' 'ROW' + | 'AND' IntegerOrUnbounded 'FOLLOWING' + ; + +OptionalAndFollowing_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + } + | 'AND' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + | 'AND' IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['FOLLOWING']); + } + ; + +IntegerOrUnbounded + : 'UNSIGNED_INTEGER' + | 'UNBOUNDED' + ; + +OptionalHavingClause + : + | HavingClause + ; + +HavingClause + : 'HAVING' ValueExpression + ; + +HavingClause_EDIT + : 'HAVING' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + | 'HAVING' ValueExpression_EDIT + { + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + ; + +CastFunction + : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ')' -> { types: [ 'T' ] } + ; + +CastFunction_EDIT + : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + ; + +CountFunction + : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +CountFunction_EDIT + : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +OtherAggregateFunction_EDIT + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, $4.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction_Type + : 'AVG' + | 'MAX' + | 'MIN' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARIANCE' + ; + +FromOrComma + : 'FROM' + | ',' + ; + +SumFunction + : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } + | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } + ; + +SumFunction_EDIT + : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, 1); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; diff --git a/src/jison/sql/generic/sql_set.jison b/src/jison/sql/generic/sql_set.jison new file mode 100644 index 0000000..14cff5c --- /dev/null +++ b/src/jison/sql/generic/sql_set.jison @@ -0,0 +1,46 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : SetSpecification + ; + +DataDefinition_EDIT + : 'SET' 'CURSOR' + { + parser.suggestSetOptions(); + } + ; + +SetSpecification + : 'SET' SetOption '=' SetValue + | 'SET' 'ALL' + ; + +SetOption + : RegularIdentifier + | SetOption '.' RegularIdentifier + ; + +SetValue + : RegularIdentifier + | SignedInteger + | SignedInteger RegularIdentifier + | QuotedValue + | 'TRUE' + | 'FALSE' + | 'NULL' + ; diff --git a/src/jison/sql/generic/sql_update.jison b/src/jison/sql/generic/sql_update.jison new file mode 100644 index 0000000..1091c41 --- /dev/null +++ b/src/jison/sql/generic/sql_update.jison @@ -0,0 +1,122 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : UpdateStatement + ; + +DataManipulation_EDIT + : UpdateStatement_EDIT + ; + +UpdateStatement + : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + ; + +UpdateStatement_EDIT + : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' + { + parser.suggestKeywords([ 'WHERE' ]); + } + | 'UPDATE' TargetTable 'CURSOR' + { + parser.suggestKeywords([ 'SET' ]); + } + | 'UPDATE' TargetTable_EDIT + | 'UPDATE' TargetTable + | 'UPDATE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TargetTable + : TableName + ; + +TargetTable_EDIT + : TableName_EDIT + ; + +TableName + : LocalOrSchemaQualifiedName + { + parser.addTablePrimary($1); + } + ; + +TableName_EDIT + : LocalOrSchemaQualifiedName_EDIT + ; + +SetClauseList + : SetClause + | SetClauseList ',' SetClause + ; + +SetClauseList_EDIT + : SetClause_EDIT + | SetClauseList ',' SetClause_EDIT + | SetClause_EDIT ',' SetClauseList + | SetClauseList ',' SetClause_EDIT ',' SetClauseList + ; + +SetClause + : SetTarget '=' UpdateSource + ; + +SetClause_EDIT + : SetTarget '=' UpdateSource_EDIT + | SetTarget 'CURSOR' + { + parser.suggestKeywords([ '=' ]); + } + | 'CURSOR' + { + parser.suggestColumns(); + } + ; + +SetTarget + : ColumnReference + ; + +UpdateSource + : ValueExpression + ; + +UpdateSource_EDIT + : ValueExpression_EDIT + ; + +OptionalFromJoinedTable + : + | 'FROM' TableReference -> $2 + ; + +FromJoinedTable_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReference_EDIT + ; diff --git a/src/jison/sql/generic/sql_use.jison b/src/jison/sql/generic/sql_use.jison new file mode 100644 index 0000000..c99b2c2 --- /dev/null +++ b/src/jison/sql/generic/sql_use.jison @@ -0,0 +1,39 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : UseStatement + ; + +DataDefinition_EDIT + : UseStatement_EDIT + ; + +UseStatement + : 'USE' RegularIdentifier + { + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $2; + } + } + ; + +UseStatement_EDIT + : 'USE' 'CURSOR' + { + parser.suggestDatabases(); + } + ; diff --git a/src/jison/sql/generic/sql_valueExpression.jison b/src/jison/sql/generic/sql_valueExpression.jison new file mode 100644 index 0000000..3dcc339 --- /dev/null +++ b/src/jison/sql/generic/sql_valueExpression.jison @@ -0,0 +1,839 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +ValueExpression + : 'NOT' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression -> $2 + | '-' ValueExpression %prec NEGATION + { + // verifyType($2, 'NUMBER'); + $$ = $2; + $2.types = ['NUMBER']; + } + | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | 'NOT' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | '!' AnyCursor + { + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | '~' 'PARTIAL_CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + $$ = { types: [ 'T' ] }; + } + | '-' ValueExpression_EDIT %prec NEGATION + { + if (!$2.typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; + } + | '-' 'PARTIAL_CURSOR' %prec NEGATION + { + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'IS' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' + { + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'NULL' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'FALSE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'TRUE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } + } + ; + +// ------------------ EXISTS and parenthesized ------------------ +ValueExpression + : 'EXISTS' TableSubQuery + { + $$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + } + | '(' ValueExpression ')' -> $2 + ; + +ValueExpression_EDIT + : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } + | '(' ValueExpression_EDIT RightParenthesisOrError + { + $$ = $2; + } + | '(' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['T'], typeSet: true }; + } + ; + +// ------------------ COMPARISON ------------------ + +ValueExpression + : ValueExpression '=' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '<' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '>' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '=' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '<' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '>' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT '=' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '<' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '>' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '=' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression '<' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + } + | ValueExpression '>' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; + } + | ValueExpression '=' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '<' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '>' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + + +// ------------------ IN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT + { + if ($4.inValueEdit) { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + parser.applyTypeToSuggestions($1.types); + } + if ($4.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT + { + if ($3.inValueEdit) { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + } + if ($3.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + ; + +ValueExpressionInSecondPart_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } + | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } + ; + +// ------------------ BETWEEN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($4.types[0] === $6.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($4.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $6.types[0] && !$4.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $4.types[0] && !$6.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $5); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($4, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$3.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $3.types[0] && !$5.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $4); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ BOOLEAN ------------------ + +ValueExpression + : ValueExpression 'OR' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'AND' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' 'OR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'OR' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'OR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'OR' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | 'CURSOR' 'AND' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'AND' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'AND' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'AND' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + +// ------------------ ARITHMETIC ------------------ + +ValueExpression + : ValueExpression '-' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression '*' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '*' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression_EDIT '-' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '*' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '-' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '*' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '-' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression '*' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + ; + +// ------------------ LIKE, RLIKE and REGEXP ------------------ + +ValueExpression + : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } + ; + +LikeRightPart + : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + ; + +LikeRightPart_EDIT + : 'LIKE' ValueExpression_EDIT + | 'RLIKE' ValueExpression_EDIT + | 'REGEXP' ValueExpression_EDIT + | 'LIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'RLIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'REGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | 'CURSOR' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'NOT' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ CASE, WHEN, THEN ------------------ + +ValueExpression + : 'CASE' CaseRightPart -> $2 + | 'CASE' ValueExpression CaseRightPart -> $3 + ; + +ValueExpression_EDIT + : 'CASE' CaseRightPart_EDIT -> $2 + | 'CASE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 + | 'CASE' ValueExpression 'CURSOR' EndOrError + { + parser.suggestValueExpressionKeywords($2, ['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression_EDIT CaseRightPart + { + $$ = $3; + $$.suggestFilters = $2.suggestFilters; + } + | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } + ; + +CaseRightPart + : CaseWhenThenList 'END' -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'END' + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + ; + +CaseRightPart_EDIT + : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['END']); + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'CURSOR' ValueExpression EndOrError + { + if ($4.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'CURSOR' EndOrError + { + if ($3.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + $$.suggestFilters = $3.suggestFilters + } + | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = parser.findCaseType($1); + } + | 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CURSOR' 'ELSE' ValueExpression EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = $3; + } + | 'CURSOR' 'ELSE' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ] }; + } + ; + +EndOrError + : 'END' + | error + ; + +CaseWhenThenList + : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } + | CaseWhenThenList CaseWhenThenListPartTwo + { + $1.caseTypes.push($2); + $$ = { caseTypes: $1.caseTypes, lastType: $2 }; + } + ; + +CaseWhenThenList_EDIT + : CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList + | CaseWhenThenList 'CURSOR' CaseWhenThenList + { + parser.suggestValueExpressionKeywords($1, ['WHEN']); + } + | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 + ; + +CaseWhenThenListPartTwo + : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 + ; + +CaseWhenThenListPartTwo_EDIT + : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } + | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } + | 'CURSOR' ValueExpression 'THEN' + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' ValueExpression 'THEN' ValueExpression + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [$4] }; + } + | 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [$4], suggestFilters: true }; + } + | 'WHEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'CURSOR' ValueExpression + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + ; diff --git a/src/jison/sql/generic/syntax_footer.jison b/src/jison/sql/generic/syntax_footer.jison new file mode 100644 index 0000000..ec25eab --- /dev/null +++ b/src/jison/sql/generic/syntax_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/generic/syntax_header.jison b/src/jison/sql/generic/syntax_header.jison new file mode 100644 index 0000000..e2c6815 --- /dev/null +++ b/src/jison/sql/generic/syntax_header.jison @@ -0,0 +1,28 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlSyntax + +%% diff --git a/src/jison/sql/hive/autocomplete_footer.jison b/src/jison/sql/hive/autocomplete_footer.jison new file mode 100644 index 0000000..899433d --- /dev/null +++ b/src/jison/sql/hive/autocomplete_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/hive/autocomplete_header.jison b/src/jison/sql/hive/autocomplete_header.jison new file mode 100644 index 0000000..3b90682 --- /dev/null +++ b/src/jison/sql/hive/autocomplete_header.jison @@ -0,0 +1,29 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'CURSOR' 'PARTIAL_CURSOR' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlAutocomplete + +%% diff --git a/src/jison/sql/hive/sql.jisonlex b/src/jison/sql/hive/sql.jisonlex new file mode 100644 index 0000000..8b09c08 --- /dev/null +++ b/src/jison/sql/hive/sql.jisonlex @@ -0,0 +1,419 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%options case-insensitive flex +%s between +%x hdfs doubleQuotedValue singleQuotedValue backtickedValue +%% + +\s { /* skip whitespace */ } +'--'.* { /* skip comments */ } +[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } + +'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } +'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } + +// Reserved Keywords +'ALL' { return 'ALL'; } +'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } +'AND' { return 'AND'; } +'ARRAY' { return 'ARRAY'; } +'AS' { return 'AS'; } +'AUTHORIZATION' { return 'AUTHORIZATION'; } +'BETWEEN' { this.begin('between'); return 'BETWEEN'; } +'BIGINT' { return 'BIGINT'; } +'BINARY' { return 'BINARY'; } +'BOOLEAN' { return 'BOOLEAN'; } +'BY' { return 'BY'; } +'CACHE' { return 'CACHE'; } +'CASE' { return 'CASE'; } +'CHAR' { return 'CHAR'; } +'COLUMN' { return 'COLUMN'; } +'CONF' { return 'CONF'; } +'CONSTRAINT' { return 'CONSTRAINT'; } +'CREATE' { parser.determineCase(yytext); return 'CREATE'; } +'CROSS' { return 'CROSS'; } +'CUBE' { return 'CUBE'; } +'CURRENT' { return 'CURRENT'; } +'DATABASE' { return 'DATABASE'; } +'DATE' { return 'DATE'; } +'DECIMAL' { return 'DECIMAL'; } +'DELETE' { parser.determineCase(yytext); return 'DELETE'; } +'DESCRIBE' { parser.determineCase(yytext); return 'DESCRIBE'; } +'DISTINCT' { return 'DISTINCT'; } +'DIV' { return 'ARITHMETIC_OPERATOR'; } +'DOUBLE' { return 'DOUBLE'; } +'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } +'ELSE' { return 'ELSE'; } +'END' { return 'END'; } +'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } +'EXTENDED' { return 'EXTENDED'; } +'EXTERNAL' { return 'EXTERNAL'; } +'FALSE' { return 'FALSE'; } +'FLOAT' { return 'FLOAT'; } +'FOLLOWING' { return 'FOLLOWING'; } +'FOR' { return 'FOR'; } +'FOREIGN' { return 'FOREIGN'; } +'FROM' { parser.determineCase(yytext); return 'FROM'; } +'FULL' { return 'FULL'; } +'FUNCTION' { return 'FUNCTION'; } +'GRANT' { return 'GRANT'; } +'GROUP' { return 'GROUP'; } +'GROUPING' { return 'GROUPING'; } +'HAVING' { return 'HAVING'; } +'IF' { return 'IF'; } +'IMPORT' { parser.determineCase(yytext); return 'IMPORT'; } +'IN' { return 'IN'; } +'INNER' { return 'INNER'; } +'INSERT' { parser.determineCase(yytext); return 'INSERT'; } +'INT' { return 'INT'; } +'INTEGER' { return 'INTEGER'; } +'INTO' { return 'INTO'; } +'IS' { return 'IS'; } +'JOIN' { return 'JOIN'; } +'LATERAL' { return 'LATERAL'; } +'LEFT' { return 'LEFT'; } +'LIKE' { return 'LIKE'; } +'LIMIT' { return 'LIMIT'; } +'LOCAL' { return 'LOCAL'; } +'LIFECYCLE' { return 'LIFECYCLE'; } +'MACRO' { return 'MACRO'; } +'MAP' { return 'MAP'; } +'NONE' { return 'NONE'; } +'NOT' { return 'NOT'; } +'NULL' { return 'NULL'; } +'NULLS' { return 'NULLS'; } +'OF' { return 'OF'; } +'ON' { return 'ON'; } +'OR' { return 'OR'; } +'ORDER' { return 'ORDER'; } +'OUT' { return 'OUT'; } +'OUTER' { return 'OUTER'; } +'PARTITION' { return 'PARTITION'; } +'PRECEDING' { return 'PRECEDING'; } +'PRECISION' { return 'PRECISION'; } +'PRIMARY' { return 'PRIMARY'; } +'RANGE' { return 'RANGE'; } +'REFERENCES' { return 'REFERENCES'; } +'REGEXP' { return 'REGEXP'; } +'REVOKE' { return 'REVOKE'; } +'RIGHT' { return 'RIGHT'; } +'RLIKE' { return 'RLIKE'; } +'ROLLUP' { return 'ROLLUP'; } +'ROW' { return 'ROW'; } +'ROWS' { return 'ROWS'; } +'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } +'SEMI' { return 'SEMI'; } +'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } +'SMALLINT' { return 'SMALLINT'; } +'SYNC' { return 'SYNC'; } +'TABLE' { return 'TABLE'; } +'THEN' { return 'THEN'; } +'TIMESTAMP' { return 'TIMESTAMP'; } +'TO' { return 'TO'; } +'TRUE' { return 'TRUE'; } +'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } +'UNBOUNDED' { return 'UNBOUNDED'; } +'UNION' { return 'UNION'; } +'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } +'USER' { return 'USER'; } +'USING' { return 'USING'; } +'UTC_TIMESTAMP' { return 'UTC_TIMESTAMP'; } +'VALUES' { return 'VALUES'; } +'VARCHAR' { return 'VARCHAR'; } +'VIEWS' { return 'VIEWS'; } +'WHEN' { return 'WHEN'; } +'WHERE' { return 'WHERE'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } + +// Non-reserved Keywords +'ABORT' { parser.determineCase(yytext); return 'ABORT'; } +'ADD' { return 'ADD'; } +'ADMIN' { return 'ADMIN'; } +'AFTER' { return 'AFTER'; } +'ANALYZE' { parser.determineCase(yytext); return 'ANALYZE'; } +'ARCHIVE' { return 'ARCHIVE'; } +'ASC' { return 'ASC'; } +'AST' { return 'AST'; } +'AVRO' { return 'AVRO'; } +'BUCKET' { return 'BUCKET'; } +'BUCKETS' { return 'BUCKETS'; } +'CASCADE' { return 'CASCADE'; } +'CBO' { return 'CBO'; } +'CHANGE' { return 'CHANGE'; } +'CHECK' { return 'CHECK'; } +'CLUSTER' { return 'CLUSTER'; } +'CLUSTERED' { return 'CLUSTERED'; } +'COLLECTION' { return 'COLLECTION'; } +'COLUMNS' { return 'COLUMNS'; } +'COMMENT' { return 'COMMENT'; } +'COMPACT' { return 'COMPACT'; } +'COMPACTIONS' { return 'COMPACTIONS'; } +'COMPUTE' { return 'COMPUTE'; } +'CONCATENATE' { return 'CONCATENATE'; } +'COST' { return 'COST'; } +'CURRENT_DATE' { return 'CURRENT_DATE'; } +'CURRENT_TIMESTAMP' { return 'CURRENT_TIMESTAMP'; } +'CURRENT_USER' { return 'CURRENT_USER'; } +'DATA' { return 'DATA'; } +'DATABASES' { return 'DATABASES'; } +'DAY' { return 'DAY'; } +'DAYOFWEEK' { return 'DAYOFWEEK'; } +'DBPROPERTIES' { return 'DBPROPERTIES'; } +'DEFAULT' { return 'DEFAULT'; } +'DEFERRED' { return 'DEFERRED'; } +'DEFINED' { return 'DEFINED'; } +'DELIMITED' { return 'DELIMITED'; } +'DEPENDENCY' { return 'DEPENDENCY'; } +'DESC' { return 'DESC'; } +'DETAIL' { return 'DETAIL'; } +'DIRECTORY' { this.begin('hdfs'); return 'DIRECTORY'; } +'DISABLE' { return 'DISABLE'; } +'DISTRIBUTE' { return 'DISTRIBUTE'; } +'DISTRIBUTED' { return 'DISTRIBUTED'; } +DOUBLE\s+PRECISION { return 'DOUBLE_PRECISION'; } +'ENABLE' { return 'ENABLE'; } +'ESCAPED' { return 'ESCAPED'; } +'EXCHANGE' { return 'EXCHANGE'; } +'EXPLAIN' { parser.determineCase(yytext); return 'EXPLAIN'; } +'EXPORT' { parser.determineCase(yytext); return 'EXPORT'; } +'EXPRESSION' { return 'EXPRESSION'; } +'FIELDS' { return 'FIELDS'; } +'FILE' { return 'FILE'; } +'FILEFORMAT' { return 'FILEFORMAT'; } +'FIRST' { return 'FIRST'; } +'FORMAT' { return 'FORMAT'; } +'FORMATTED' { return 'FORMATTED'; } +'FUNCTIONS' { return 'FUNCTIONS'; } +'HOUR' { return 'HOUR'; } +'IDXPROPERTIES' { return 'IDXPROPERTIES'; } +'INDEX' { return 'INDEX'; } +'INDEXES' { return 'INDEXES'; } +'INPATH' { this.begin('hdfs'); return 'INPATH'; } +'INPUTFORMAT' { return 'INPUTFORMAT'; } +'ITEMS' { return 'ITEMS'; } +'JAR' { return 'JAR'; } +'JOINCOST' { return 'JOINCOST'; } +'JSONFILE' { return 'JSONFILE'; } +'KEY' { return 'KEY'; } +'KEYS' { return 'KEYS'; } +'LAST' { return 'LAST'; } +'LINES' { return 'LINES'; } +'LITERAL' { return 'LITERAL'; } +'LOAD' { parser.determineCase(yytext); return 'LOAD'; } +'LOCATION' { this.begin('hdfs'); return 'LOCATION'; } +'LOCK' { return 'LOCK'; } +'LOCKS' { return 'LOCKS'; } +'MATCHED' { return 'MATCHED'; } +'MATERIALIZED' { return 'MATERIALIZED'; } +'MERGE' { return 'MERGE'; } +'METADATA' { return 'METADATA'; } +'MINUTE' { return 'MINUTE'; } +'MONTH' { return 'MONTH'; } +'MSCK' { return 'MSCK'; } +'NO_DROP' { return 'NO_DROP'; } +'NORELY' { return 'NORELY'; } +'NOSCAN' { return 'NOSCAN'; } +'NOVALIDATE' { return 'NOVALIDATE'; } +'OFFLINE' { return 'OFFLINE'; } +'ONLY' { return 'ONLY'; } +'OPERATOR' { return 'OPERATOR'; } +'OPTION' { return 'OPTION'; } +'ORC' { return 'ORC'; } +'OUTPUTFORMAT' { return 'OUTPUTFORMAT'; } +'OVER' { return 'OVER'; } +'OVERWRITE' { return 'OVERWRITE'; } +OVERWRITE\s+DIRECTORY { this.begin('hdfs'); return 'OVERWRITE_DIRECTORY'; } +'OWNER' { return 'OWNER'; } +'PARQUET' { return 'PARQUET'; } +'PARTITIONED' { return 'PARTITIONED'; } +'PARTITIONS' { return 'PARTITIONS'; } +'PERCENT' { return 'PERCENT'; } +'PRIVILEGES' { return 'PRIVILEGES'; } +'PURGE' { return 'PURGE'; } +'QUARTER' { return 'QUARTER'; } +'RCFILE' { return 'RCFILE'; } +'REBUILD' { return 'REBUILD'; } +'RECOVER' { return 'RECOVER'; } +'RELOAD' { parser.determineCase(yytext); return 'RELOAD'; } +'RELY' { return 'RELY'; } +'RENAME' { return 'RENAME'; } +'REPAIR' { return 'REPAIR'; } +'REPLACE' { return 'REPLACE'; } +'REPLICATION' { return 'REPLICATION'; } +'RESTRICT' { return 'RESTRICT'; } +'REWRITE' { return 'REWRITE'; } +'ROLE' { return 'ROLE'; } +'ROLES' { return 'ROLES'; } +'SCHEMA' { return 'SCHEMA'; } +'SCHEMAS' { return 'SCHEMAS'; } +'SECOND' { return 'SECOND'; } +'SEQUENCEFILE' { return 'SEQUENCEFILE'; } +'SERDE' { return 'SERDE'; } +'SERDEPROPERTIES' { return 'SERDEPROPERTIES'; } +'SETS' { return 'SETS'; } +'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } +'SHOW_DATABASE' { return 'SHOW_DATABASE'; } +'SKEWED LOCATION' { return 'SKEWED_LOCATION'; } // Hack to prevent hdfs lexer state +'SKEWED' { return 'SKEWED'; } +'SORT' { return 'SORT'; } +'SORTED' { return 'SORTED'; } +'STATISTICS' { return 'STATISTICS'; } +'STORED' { return 'STORED'; } +STORED\s+AS\s+DIRECTORIES { return 'STORED_AS_DIRECTORIES'; } +'STRING' { return 'STRING'; } +'STRUCT' { return 'STRUCT'; } +'SUMMARY' { return 'SUMMARY'; } +'TABLES' { return 'TABLES'; } +'TABLESAMPLE' { return 'TABLESAMPLE'; } +'TBLPROPERTIES' { return 'TBLPROPERTIES'; } +'TEMPORARY' { return 'TEMPORARY'; } +'TERMINATED' { return 'TERMINATED'; } +'TEXTFILE' { return 'TEXTFILE'; } +'TINYINT' { return 'TINYINT'; } +'TOUCH' { return 'TOUCH'; } +'TRANSACTIONAL' { return 'TRANSACTIONAL'; } +'TRANSACTIONS' { return 'TRANSACTIONS'; } +'UNARCHIVE' { return 'UNARCHIVE'; } +'UNIONTYPE' { return 'UNIONTYPE'; } +'UNIQUE' { return 'UNIQUE'; } +'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } +'VECTORIZATION' { return 'VECTORIZATION'; } +'VIEW' { return 'VIEW'; } +'WAIT' { return 'WAIT'; } +'WEEK' { return 'WEEK'; } +'WINDOW' { return 'WINDOW'; } +'YEAR' { return 'YEAR'; } + +'.' { return '.'; } +'[' { return '['; } +']' { return ']'; } + +'AND' { this.popState(); return 'BETWEEN_AND'; } + +// --- UDFs --- +AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } +CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } +COLLECT_LIST\s*\( { yy.lexer.unput('('); yytext = 'collect_list'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_LIST'; } +COLLECT_SET\s*\( { yy.lexer.unput('('); yytext = 'collect_set'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_SET'; } +CORR\s*\( { yy.lexer.unput('('); yytext = 'corr'; parser.addFunctionLocation(yylloc, yytext); return 'CORR'; } +COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } +COVAR_POP\s*\( { yy.lexer.unput('('); yytext = 'covar_pop'; parser.addFunctionLocation(yylloc, yytext); return 'COVAR_POP'; } +COVAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'covar_samp'; parser.addFunctionLocation(yylloc, yytext); return 'COVAR_SAMP'; } +EXTRACT\s*\( { yy.lexer.unput('('); yytext = 'extract'; parser.addFunctionLocation(yylloc, yytext); return 'EXTRACT'; } +HISTOGRAM_NUMERIC\s*\( { yy.lexer.unput('('); yytext = 'histogram_numeric'; parser.addFunctionLocation(yylloc, yytext); return 'HISTOGRAM_NUMERIC'; } +MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } +MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } +NTILE\s*\( { yy.lexer.unput('('); yytext = 'ntile'; parser.addFunctionLocation(yylloc, yytext); return 'NTILE'; } +PERCENTILE\s*\( { yy.lexer.unput('('); yytext = 'percentile'; parser.addFunctionLocation(yylloc, yytext); return 'PERCENTILE'; } +PERCENTILE_APPROX\s*\( { yy.lexer.unput('('); yytext = 'percentile_approx'; parser.addFunctionLocation(yylloc, yytext); return 'PERCENTILE_APPROX'; } +STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } +STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } +SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } +VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } +VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } +VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } + +// Analytical functions +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +PERCENT_RANK\s*\( { yy.lexer.unput('('); yytext = 'percent_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } + +[0-9]+ { return 'UNSIGNED_INTEGER'; } +[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } +[0-9]+E { return 'UNSIGNED_INTEGER_E'; } +[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } + +'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } +'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } +\s+['"] { return 'HDFS_START_QUOTE'; } +[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } +['"] { this.popState(); return 'HDFS_END_QUOTE'; } +<> { return 'EOF'; } + +'&&' { return 'AND'; } +'||' { return 'OR'; } +'=' { return '='; } +'<' { return '<'; } +'>' { return '>'; } +'!=' { return 'COMPARISON_OPERATOR'; } +'<=' { return 'COMPARISON_OPERATOR'; } +'>=' { return 'COMPARISON_OPERATOR'; } +'<>' { return 'COMPARISON_OPERATOR'; } +'<=>' { return 'COMPARISON_OPERATOR'; } +'-' { return '-'; } +'*' { return '*'; } +'+' { return 'ARITHMETIC_OPERATOR'; } +'/' { return 'ARITHMETIC_OPERATOR'; } +'%' { return 'ARITHMETIC_OPERATOR'; } +'|' { return 'ARITHMETIC_OPERATOR'; } +'^' { return 'ARITHMETIC_OPERATOR'; } +'&' { return 'ARITHMETIC_OPERATOR'; } +',' { return ','; } +'.' { return '.'; } +':' { return ':'; } +';' { return ';'; } +'~' { return '~'; } +'!' { return '!'; } +'(' { return '('; } +')' { return ')'; } +'[' { return '['; } +']' { return ']'; } + +\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } + +\` { this.begin('backtickedValue'); return 'BACKTICK'; } +[^`]+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\` { this.popState(); return 'BACKTICK'; } + +\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } +(?:\\\\|\\[']|[^'])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\' { this.popState(); return 'SINGLE_QUOTE'; } + +\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } +(?:\\\\|\\["]|[^"])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\" { this.popState(); return 'DOUBLE_QUOTE'; } + +<> { return 'EOF'; } + +. { /* To prevent console logging of unknown chars */ } +. { } +. { } +. { } +. { } +. { } diff --git a/src/jison/sql/hive/sql_alter.jison b/src/jison/sql/hive/sql_alter.jison new file mode 100644 index 0000000..4742b61 --- /dev/null +++ b/src/jison/sql/hive/sql_alter.jison @@ -0,0 +1,867 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : AlterStatement + ; + +DataDefinition_EDIT + : AlterStatement_EDIT + ; + +AlterStatement + : AlterDatabase + | AlterIndex + | AlterMaterializedView + | AlterTable + | AlterView + | Msck + | ReloadFunction + ; + +AlterStatement_EDIT + : AlterDatabase_EDIT + | AlterIndex_EDIT + | AlterMaterializedView_EDIT + | AlterTable_EDIT + | AlterView_EDIT + | Msck_EDIT + | ReloadFunction_EDIT + | 'ALTER' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'INDEX', 'MATERIALIZED VIEW', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +AlterDatabase + : 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'DBPROPERTIES' ParenthesizedPropertyAssignmentList + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + ; + +AlterDatabase_EDIT + : 'ALTER' DatabaseOrSchema 'CURSOR' + { + parser.suggestDatabases(); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'CURSOR' + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'CURSOR' + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation_EDIT + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' 'CURSOR' + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification_EDIT + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + ; + +AlterIndex + : 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'REBUILD' + { + parser.addTablePrimary($5); + } + ; + +AlterIndex_EDIT + : 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier_EDIT + | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + { + parser.addTablePrimary($5); + } + | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($5); + if (!$6) { + parser.suggestKeywords(['PARTITION', 'REBUILD']); + } else { + parser.suggestKeywords(['REBUILD']); + } + } + ; + +AlterMaterializedView + : 'ALTER' 'MATERIALIZED' 'VIEW' SchemaQualifiedTableIdentifier EnableOrDisable 'REWRITE' + { + parser.addTablePrimary($4); + } + ; + +AlterMaterializedView_EDIT + : 'ALTER' 'MATERIALIZED' 'CURSOR' + { + parser.suggestKeywords(['VIEW']); + } + | 'ALTER' 'MATERIALIZED' 'VIEW' 'CURSOR' + { + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'ALTER' 'MATERIALIZED' 'VIEW' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'ALTER' 'MATERIALIZED' 'VIEW' SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($4); + parser.suggestKeywords(['DISABLE REWRITE', 'ENABLE REWRITE']); + } + | 'ALTER' 'MATERIALIZED' 'VIEW' SchemaQualifiedTableIdentifier EnableOrDisable 'CURSOR' + { + parser.addTablePrimary($4); + parser.suggestKeywords(['REWRITE']); + } + ; + +AlterTable + : AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs + | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier PrimaryKeySpecification + | AlterTableLeftSide 'ADD' TableConstraint + | AlterTableLeftSide 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName + | AlterTableLeftSide ClusteredBy + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories + | AlterTableLeftSide ExchangeSpecification + | AlterTableLeftSide 'RECOVER' 'PARTITIONS' + | AlterTableLeftSide 'TOUCH' OptionalPartitionSpec + | AlterTableLeftSide ArchiveOrUnArchive PartitionSpec + | AlterTableLeftSide 'NOT' 'SKEWED' + | AlterTableLeftSide 'NOT' 'STORED_AS_DIRECTORIES' + | AlterTableLeftSide 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList + | AlterTableLeftSide 'SET' 'OWNER' PrincipalSpecification + | AlterTableLeftSide PartitionSpec 'RENAME' 'TO' PartitionSpec + | AlterTableLeftSide PartitionSpec 'CHANGE' 'COLUMN' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict + | AlterTableLeftSide DropOperations + | AlterTableLeftSide OptionalPartitionOperations + | AlterTableLeftSide PartitionSpec OptionalPartitionOperations + ; + +AlterTable_EDIT + : AlterTableLeftSide_EDIT + | AlterTableLeftSide_EDIT 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs + | AlterTableLeftSide_EDIT TableConstraint + | AlterTableLeftSide_EDIT 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName + | AlterTableLeftSide_EDIT ClusteredBy + | AlterTableLeftSide_EDIT 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories + | AlterTableLeftSide_EDIT ExchangeSpecification + | AlterTableLeftSide_EDIT 'RECOVER' 'PARTITIONS' + | AlterTableLeftSide_EDIT 'TOUCH' OptionalPartitionSpec + | AlterTableLeftSide_EDIT ArchiveOrUnArchive PartitionSpec + | AlterTableLeftSide_EDIT 'NOT' 'SKEWED' + | AlterTableLeftSide_EDIT 'NOT' 'STORED_AS_DIRECTORIES' + | AlterTableLeftSide_EDIT 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList + | AlterTableLeftSide_EDIT 'SET' 'OWNER' PrincipalSpecification + | AlterTableLeftSide_EDIT PartitionSpec 'RENAME' 'TO' PartitionSpec + | AlterTableLeftSide_EDIT PartitionSpec 'CHANGE' 'COLUMN' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict + | AlterTableLeftSide_EDIT DropOperations + | AlterTableLeftSide_EDIT OptionalPartitionOperations + | AlterTableLeftSide_EDIT PartitionSpec OptionalPartitionOperations + | AlterTableLeftSide 'ADD' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); + } else { + parser.suggestKeywords(['PARTITION']); + } + } + | AlterTableLeftSide 'REPLACE' 'CURSOR' + { + parser.suggestKeywords(['COLUMNS']); + } + | AlterTableLeftSide 'ADD' OptionalIfNotExists_EDIT + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec HdfsLocation_EDIT OptionalPartitionSpecs + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs_EDIT + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs 'CURSOR' + { + if (!$5 && !$6) { + parser.suggestKeywords(['LOCATION', 'PARTITION']); + } else if ($6 && $6.suggestKeywords) { + var keywords = parser.createWeightedKeywords($6.suggestKeywords, 2); + keywords.push({ value: 'PARTITION', weight: 1 }); + parser.suggestKeywords(keywords); + } else { + parser.suggestKeywords(['PARTITION']); + } + } + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec_EDIT OptionalHdfsLocation OptionalPartitionSpecs + | AlterTableLeftSide 'ADD' 'CONSTRAINT' 'CURSOR' + | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'PRIMARY KEY', 'UNIQUE']); + } + | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier PrimaryKeySpecification_EDIT + | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification_EDIT + | AlterTableLeftSide ArchiveOrUnArchive 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | AlterTableLeftSide ArchiveOrUnArchive PartitionSpec_EDIT + | AlterTableLeftSide ClusteredBy_EDIT + | AlterTableLeftSide ExchangeSpecification_EDIT + | AlterTableLeftSide 'NOT' 'CURSOR' + { + parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); + } + | AlterTableLeftSide 'NOT' 'STORED' 'CURSOR' + { + parser.suggestKeywords(['AS DIRECTORIES']); + } + | AlterTableLeftSide 'NOT' 'STORED' 'AS' 'CURSOR' + { + parser.suggestKeywords(['DIRECTORIES']); + } + | AlterTableLeftSide PartitionSpec 'RENAME' 'CURSOR' + { + parser.suggestKeywords(['TO PARTITION']); + } + | AlterTableLeftSide PartitionSpec 'RENAME' 'TO' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | AlterTableLeftSide 'RECOVER' 'CURSOR' + { + parser.suggestKeywords(['PARTITIONS']); + } + | AlterTableLeftSide 'SET' 'SKEWED' 'CURSOR' + { + parser.suggestKeywords(['LOCATION']); + } + | AlterTableLeftSide 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList_EDIT + | AlterTableLeftSide 'SKEWED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | AlterTableLeftSide 'SET' 'OWNER' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | AlterTableLeftSide 'SET' 'OWNER' PrincipalSpecification_EDIT + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList_EDIT + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList_EDIT 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories 'CURSOR' + { + if (!$7) { + parser.suggestKeywords(['STORED AS DIRECTORIES']); + } + } + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories_EDIT + | AlterTableLeftSide 'TOUCH' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | AlterTableLeftSide 'TOUCH' OptionalPartitionSpec_EDIT + | AlterTableLeftSide OptionalPartitionOperations_EDIT + | AlterTableLeftSide DropOperations_EDIT + | AlterTableLeftSide 'CURSOR' + { + parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', + 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', + 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', + 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', + 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); + } + | AlterTableLeftSide PartitionSpec 'CURSOR' + { + parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', + 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', + 'SET SERDE', 'SET SERDEPROPERTIES']); + } + | AlterTableLeftSide PartitionSpec AddOrReplace 'CURSOR' + { + parser.suggestKeywords(['COLUMNS']); + } + | AlterTableLeftSide PartitionSpec 'SET' 'CURSOR' + { + parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); + } + | AlterTableLeftSide 'SET' 'CURSOR' + { + parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); + } + | AlterTableLeftSide PartitionSpec OptionalPartitionOperations_EDIT + | AlterTableLeftSide 'RENAME' 'CURSOR' + { + parser.suggestKeywords(['TO']); + } + | AlterTableLeftSide 'RENAME' 'TO' 'CURSOR' + { + parser.suggestDatabases({ appendDot: true }); + } + ; + +ParenthesizedStatsList + : '(' StatsList ')' + ; + +ParenthesizedStatsList_EDIT + : '(' StatsList_EDIT RightParenthesisOrError + ; + +StatsList + : StatsAssignment + | StatsList ',' StatsAssignment + ; + +StatsList_EDIT + : StatsAssignment_EDIT + | StatsList ',' StatsAssignment_EDIT + | StatsList ',' StatsAssignment_EDIT ',' StatsList + | StatsAssignment_EDIT ',' StatsList + ; + +StatsAssignment + : QuotedValue '=' QuotedValue + ; + +StatsAssignment_EDIT + : 'CURSOR' + { + parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); + } + ; + +OptionalPartitionOperations + : 'SET' 'FILEFORMAT' FileFormat + | 'SET' HdfsLocation + | 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties + | 'SET' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList + | AddReplaceColumns + | 'CONCATENATE' + | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties + | EnableOrDisable NoDropOrOffline + | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst OptionalCascadeOrRestrict + { + parser.addColumnLocation($3.location, [ $3.identifier ]); + } + ; + +OptionalPartitionOperations_EDIT + : AddReplaceColumns_EDIT + | 'CHANGE' OptionalColumn 'CURSOR' + { + if (!$2) { + parser.suggestKeywords(['COLUMN']); + } + parser.suggestColumns(); + } + | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification_EDIT OptionalAfterOrFirst OptionalCascadeOrRestrict + { + parser.addColumnLocation($3.location, [ $3.identifier ]); + } + | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst OptionalCascadeOrRestrict 'CURSOR' + { + if (!$5 && !$6) { + if ($4.suggestKeywords) { + var keywords = parser.createWeightedKeywords($4.suggestKeywords, 3); + keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); + parser.suggestKeywords(keywords); + } else { + parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); + } + } else if ($5 && !$6) { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + parser.addColumnLocation($3.location, [ $3.identifier ]); + } + | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst_EDIT OptionalCascadeOrRestrict + { + parser.addColumnLocation($3.location, [ $3.identifier ]); + } + | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties 'CURSOR' + { + if (!$3 && !$4) { + parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); + } else if (!$4) { + parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); + } + } + | 'COMPACT' QuotedValue AndWait_EDIT OptionalWithOverwriteTblProperties + | 'COMPACT' QuotedValue OptionalAndWait WithOverwriteTblProperties_EDIT + | EnableOrDisable 'CURSOR' + { + parser.suggestKeywords(['NO_DROP', 'OFFLINE']); + } + | EnableOrDisable NoDropOrOffline_EDIT + | 'SET' 'FILEFORMAT' 'CURSOR' + { + parser.suggestFileFormats(); + } + | 'SET' HdfsLocation_EDIT + | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['WITH SERDEPROPERTIES']); + } + } + | 'SET' 'SERDE' QuotedValue WithSerdeproperties_EDIT + ; + +OptionalAndWait + : + | 'AND' 'WAIT' + ; + +AndWait_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['WAIT']); + } + ; + +OptionalWithOverwriteTblProperties + : + | 'WITH' 'OVERWRITE' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +WithOverwriteTblProperties_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); + } + | 'WITH' 'OVERWRITE' 'CURSOR' + { + parser.suggestKeywords(['TBLPROPERTIES']); + } + ; + +AddReplaceColumns + : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict + ; + +AddReplaceColumns_EDIT + : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList_EDIT OptionalCascadeOrRestrict + | AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + } + ; + +ExchangeSpecification + : 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName + ; + +ExchangeSpecification_EDIT + : 'EXCHANGE' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | 'EXCHANGE' ExchangePartitionSpec 'CURSOR' + { + parser.suggestKeywords(['WITH TABLE']); + } + | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName_EDIT + | 'EXCHANGE' ExchangePartitionSpec_EDIT + | 'EXCHANGE' ExchangePartitionSpec_EDIT 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName + ; + +ExchangePartitionSpec + : 'PARTITION' '(' OneOrMorePartitionSpecLists ')' + | 'PARTITION' '(' PartitionSpecList ')' + ; + +ExchangePartitionSpec_EDIT + : 'PARTITION' '(' OneOrMorePartitionSpecLists_EDIT RightParenthesisOrError + | 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +OneOrMorePartitionSpecLists + : '(' PartitionSpecList ')' + | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList ')' + ; + +OneOrMorePartitionSpecLists_EDIT + : '(' PartitionSpecList_EDIT RightParenthesisOrError + | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +DropOperations + : 'DROP' OptionalIfExists OneOrMorePartitionSpecs OptionalPurge + | 'DROP' 'CONSTRAINT' RegularOrBacktickedIdentifier + ; + +DropOperations_EDIT + : 'DROP' OptionalIfExists 'CURSOR' + { + if (!$2) { + parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); + } else { + parser.suggestKeywords(['PARTITION']); + } + } + | 'DROP' OptionalIfExists OneOrMorePartitionSpecs_EDIT OptionalPurge + | 'DROP' OptionalIfExists OneOrMorePartitionSpecs OptionalPurge 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['PURGE']); + } + } + | 'DROP' 'CONSTRAINT' 'CURSOR' + | 'DROP' OptionalIfExists_EDIT + | 'DROP' ColumnIdentifier_EDIT + ; + +AlterTableLeftSide + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterTableLeftSide_EDIT + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'ALTER' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +AddOrReplace + : 'ADD' + | 'REPLACE' + ; + +OptionalAfterOrFirst + : + | AfterOrFirst ColumnIdentifier + ; + +AfterOrFirst + : 'AFTER' + | 'FIRST' + ; + +OptionalAfterOrFirst_EDIT + : AfterOrFirst 'CURSOR' + { + parser.suggestColumns(); + } + | AfterOrFirst ColumnIdentifier_EDIT + ; + +OptionalColumn + : + | 'COLUMN' + ; + +EnableOrDisable + : 'ENABLE' + | 'DISABLE' + ; + +NoDropOrOffline + : 'NO_DROP' OptionalCascade + | 'OFFLINE' + ; + +NoDropOrOffline_EDIT + : 'NO_DROP' OptionalCascade 'CURSOR' + { + if (!$2) { + parser.suggestKeywords(['CASCADE']); + } + } + ; + +ArchiveOrUnArchive + : 'ARCHIVE' + | 'UNARCHIVE' + ; + +OneOrMorePartitionSpecs + : PartitionSpec + | OneOrMorePartitionSpecs ',' PartitionSpec + ; + +OneOrMorePartitionSpecs_EDIT + : PartitionSpec_EDIT + | OneOrMorePartitionSpecs ',' AnyCursor + { + parser.suggestKeywords(['PARTITION']); + } + | OneOrMorePartitionSpecs ',' AnyCursor ',' OneOrMorePartitionSpecs + { + parser.suggestKeywords(['PARTITION']); + } + | AnyCursor ',' OneOrMorePartitionSpecs + { + parser.suggestKeywords(['PARTITION']); + } + | OneOrMorePartitionSpecs ',' PartitionSpec_EDIT + | PartitionSpec_EDIT ',' OneOrMorePartitionSpecs + | OneOrMorePartitionSpecs ',' PartitionSpec_EDIT ',' OneOrMorePartitionSpecs + ; + +OptionalPartitionSpecs + : + | PartitionSpecWithLocationList + ; + +PartitionSpecWithLocationList + : PartitionSpecWithLocation + | PartitionSpecWithLocationList PartitionSpecWithLocation -> $2 + ; + +OptionalPartitionSpecs_EDIT + : PartitionSpecWithLocation_EDIT + | PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList + | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT + | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList + ; + +PartitionSpecWithLocation_EDIT + : PartitionSpec HdfsLocation_EDIT + | PartitionSpec_EDIT OptionalHdfsLocation + ; + +PartitionSpecWithLocation + : PartitionSpec OptionalHdfsLocation + { + if (!$2) { + $$ = { suggestKeywords: ['LOCATION'] }; + } + } + ; + +ParenthesizedSkewedLocationList + : '(' SkewedLocationList ')' + ; + +ParenthesizedSkewedLocationList_EDIT + : '(' SkewedLocationList_EDIT RightParenthesisOrError + ; + +SkewedLocationList + : SkewedLocation + | SkewedLocationList ',' SkewedLocation + ; + +SkewedLocationList_EDIT + : SkewedLocation_EDIT + | SkewedLocationList ',' SkewedLocation_EDIT + | SkewedLocationList ',' SkewedLocation_EDIT ',' SkewedLocationList + | SkewedLocation_EDIT ',' SkewedLocationList + ; + +SkewedLocation + : ColumnReference '=' QuotedValue + ; + +SkewedLocation_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + | AnyCursor '=' QuotedValue + { + parser.suggestColumns(); + } + | ColumnReference_EDIT '=' QuotedValue + | ColumnReferences '=' QuotedValue + ; + +OptionalStoredAsDirectories + : + | 'STORED_AS_DIRECTORIES' + ; + +OptionalStoredAsDirectories_EDIT + : 'STORED' 'CURSOR' + { + parser.suggestKeywords(['AS DIRECTORIES']); + } + | 'STORED' 'AS' 'CURSOR' + { + parser.suggestKeywords(['DIRECTORIES']); + } + ; + +AlterView + : AlterViewLeftSide 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + | AlterViewLeftSide 'AS' QuerySpecification + ; + +AlterView_EDIT + : AlterViewLeftSide_EDIT + | AlterViewLeftSide 'CURSOR' + { + parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); + } + | AlterViewLeftSide 'SET' 'CURSOR' + { + parser.suggestKeywords(['TBLPROPERTIES']); + } + | AlterViewLeftSide 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | AlterViewLeftSide 'AS' QuerySpecification_EDIT + ; + + +AlterViewLeftSide + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterViewLeftSide_EDIT + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'ALTER' 'VIEW' 'CURSOR' + { + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +Msck + : 'MSCK' OptionalRepair 'TABLE' SchemaQualifiedTableIdentifier OptionalAddDropSyncPartitions + { + parser.addTablePrimary($4); + } + ; + +Msck_EDIT + : 'MSCK' OptionalRepair 'CURSOR' + { + if (!$2) { + parser.suggestKeywords(['TABLE', 'REPAIR TABLE']); + } else { + parser.suggestKeywords(['TABLE']); + } + } + | 'MSCK' OptionalRepair 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'MSCK' OptionalRepair 'TABLE' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'MSCK' OptionalRepair 'TABLE' SchemaQualifiedTableIdentifier AddDropSyncPartitions_EDIT + { + parser.addTablePrimary($4); + } + | 'MSCK' OptionalRepair 'TABLE' SchemaQualifiedTableIdentifier OptionalAddDropSyncPartitions 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['ADD PARTITIONS', 'DROP PARTITIONS', 'SYNC PARTITIONS']); + } + } + ; + +OptionalRepair + : + | 'REPAIR' + ; + +OptionalAddDropSyncPartitions + : + | AddDropOrSync 'PARTITIONS' + ; + +AddDropSyncPartitions_EDIT + : AddDropOrSync 'CURSOR' + { + parser.suggestKeywords(['PARTITIONS']); + } + ; + +AddDropOrSync + : 'ADD' + | 'DROP' + | 'SYNC' + ; + +ReloadFunction + : 'RELOAD' 'FUNCTION' + ; + +ReloadFunction_EDIT + : 'RELOAD' 'CURSOR' + { + parser.suggestKeywords(['FUNCTION']); + } + ; + +NullableComment + : QuotedValue + | 'NULL' + ; diff --git a/src/jison/sql/hive/sql_analyze.jison b/src/jison/sql/hive/sql_analyze.jison new file mode 100644 index 0000000..caf2937 --- /dev/null +++ b/src/jison/sql/hive/sql_analyze.jison @@ -0,0 +1,236 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : AnalyzeStatement + ; + +DataDefinition_EDIT + : AnalyzeStatement_EDIT + ; + +SqlStatement + : ExplainClause DataDefinition + | ExplainClause DataManipulation + | ExplainClause QuerySpecification + ; + +SqlStatement_EDIT + : ExplainClause_EDIT + | ExplainClause DataDefinition_EDIT + | ExplainClause DataManipulation_EDIT + | ExplainClause QuerySpecification_EDIT + | ExplainClause_EDIT DataDefinition + | ExplainClause_EDIT DataManipulation + | ExplainClause_EDIT QuerySpecification + ; + +AnalyzeStatement + : 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan + { + parser.addTablePrimary($3); + } + ; + +AnalyzeStatement_EDIT + : 'ANALYZE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'ANALYZE' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + { + parser.addTablePrimary($3); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($3); + if (!$4) { + parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); + } else { + parser.suggestKeywords(['COMPUTE STATISTICS']); + } + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['STATISTICS']); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' 'CURSOR' OptionalForColumns OptionalCacheMetadata OptionalNoscan + { + parser.addTablePrimary($3); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$8, $9, $10], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' ForColumns 'CURSOR' OptionalCacheMetadata OptionalNoscan + { + parser.addTablePrimary($3); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$9, $10], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns CacheMetadata 'CURSOR' OptionalNoscan + { + parser.addTablePrimary($3); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$10], [{ value: 'NOSCAN', weight: 1 }])); + } + | 'ANALYZE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.suggestKeywords(['TABLE']); + parser.addTablePrimary($3); + } + | 'ANALYZE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan + { + parser.suggestKeywords(['TABLE']); + parser.addTablePrimary($3); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' ForColumns_EDIT OptionalCacheMetadata OptionalNoscan + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns CacheMetadata_EDIT OptionalNoscan + ; + +OptionalForColumns + : + | ForColumns + ; + +ForColumns + : 'FOR' 'COLUMNS' + ; + +ForColumns_EDIT + : 'FOR' 'CURSOR' + { + parser.suggestKeywords(['COLUMNS']); + } + ; + +OptionalCacheMetadata + : + | CacheMetadata + ; + +CacheMetadata + : 'CACHE' 'METADATA' + ; + +CacheMetadata_EDIT + : 'CACHE' 'CURSOR' + { + parser.suggestKeywords(['METADATA']); + } + ; + +OptionalNoscan + : + | 'NOSCAN' + ; + +ExplainClause + : 'EXPLAIN' OptionalExplainTypes + ; + +ExplainClause_EDIT + : 'EXPLAIN' OptionalExplainTypes 'CURSOR' + { + if (!$2) { + parser.suggestDdlAndDmlKeywords([ + { value: 'AST', weight: 2 }, + { value: 'AUTHORIZATION', weight: 2 }, + { value: 'CBO', weight: 2 }, + { value: 'DEPENDENCY', weight: 2 }, + { value: 'EXTENDED', weight: 2 }, + { value: 'FORMATTED CBO', weight: 2 }, + { value: 'LOCKS', weight: 2 }, + { value: 'VECTORIZATION', weight: 2 } + ]); + } else if ($2 && $2.suggestKeywords) { + parser.suggestDdlAndDmlKeywords($2.suggestKeywords); + } else { + parser.suggestDdlAndDmlKeywords(); + } + } + | 'EXPLAIN' 'FORMATTED' 'CURSOR' + { + parser.suggestKeywords(['CBO']); + } + ; + +OptionalExplainTypes + : + | 'AST' + | 'AUTHORIZATION' + | 'FORMATTED' 'CBO' OptionalCostOrJoincost + { + if (!$3) { + $$ = { suggestKeywords: ['COST', 'JOINCOST'] }; + } + } + | 'CBO' OptionalCostOrJoincost + { + if (!$2) { + $$ = { suggestKeywords: ['COST', 'JOINCOST'] }; + } + } + | 'DEPENDENCY' + | 'EXTENDED' + | 'LOCKS' + | 'VECTORIZATION' OptionalOnly OptionalVectorizationTypes + { + var keywords = []; + if (!$3) { + keywords = keywords.concat([ + { weight: 1, value: 'DETAIL' }, + { weight: 1, value: 'EXPRESSION' }, + { weight: 1, value: 'OPERATOR' }, + { weight: 1, value: 'SUMMARY' } + ]); + } + if (!$2) { + keywords.push({ weight: 2, value: 'ONLY' }); + } + if (keywords.length) { + $$ = { suggestKeywords: keywords }; + } + } + ; + +OptionalCostOrJoincost + : + | 'COST' + | 'JOINCOST' + ; + +OptionalOnly + : + | 'ONLY' + ; + +OptionalVectorizationTypes + : + | 'DETAIL' + | 'EXPRESSION' + | 'OPERATOR' + | 'SUMMARY' + ; diff --git a/src/jison/sql/hive/sql_create.jison b/src/jison/sql/hive/sql_create.jison new file mode 100644 index 0000000..55f196a --- /dev/null +++ b/src/jison/sql/hive/sql_create.jison @@ -0,0 +1,1629 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : CreateStatement + ; + +DataDefinition_EDIT + : CreateStatement_EDIT + ; + +CreateStatement + : DatabaseDefinition + | TableDefinition + | ViewDefinition + | MaterializedViewDefinition + | RoleDefinition + | FunctionDefinition + | IndexDefinition + | MacroDefinition + ; + +CreateStatement_EDIT + : DatabaseDefinition_EDIT + | TableDefinition_EDIT + | ViewDefinition_EDIT + | MaterializedViewDefinition_EDIT + | FunctionDefinition_EDIT + | IndexDefinition_EDIT + | MacroDefinition_EDIT + | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'CURSOR' + { + if ($4) { + parser.suggestKeywords(['TABLE']); + } else { + if ($2 && !$3) { + parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); + } else if (!$2 && !$3) { + parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'TRANSACTIONAL TABLE', 'VIEW']); + } else if ($3) { + parser.suggestKeywords(['TABLE']); + } + } + } + ; + +DatabaseDefinition + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT + | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinitionOptionals + : OptionalComment OptionalHdfsLocation OptionalDbProperties + { + var keywords = []; + if (!$3) { + keywords.push('WITH DBPROPERTIES'); + } + if (!$2 && !$3) { + keywords.push('LOCATION'); + } + if (!$1 && !$2 && !$3) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + ; + +DatabaseDefinitionOptionals_EDIT + : OptionalComment_INVALID OptionalHdfsLocation OptionalDbProperties + | OptionalComment HdfsLocation_EDIT OptionalDbProperties + ; + +OptionalComment + : + | Comment + ; + +Comment + : 'COMMENT' QuotedValue + ; + +OptionalComment_INVALID + : Comment_INVALID + ; + +Comment_INVALID + : 'COMMENT' SINGLE_QUOTE + | 'COMMENT' DOUBLE_QUOTE + | 'COMMENT' SINGLE_QUOTE VALUE + | 'COMMENT' DOUBLE_QUOTE VALUE + ; + + +OptionalDbProperties + : + | DbProperties + ; + +DbProperties + : 'WITH' 'DBPROPERTIES' ParenthesizedPropertyAssignmentList + | 'WITH' 'DBPROPERTIES' + | 'WITH' 'CURSOR' + { + parser.suggestKeywords(['DBPROPERTIES']); + } + ; + +ParenthesizedPropertyAssignmentList + : '(' PropertyAssignmentList ')' + ; + +PropertyAssignmentList + : PropertyAssignment + | PropertyAssignmentList ',' PropertyAssignment + ; + +PropertyAssignment + : QuotedValue '=' UnsignedValueSpecification + ; + +TableDefinition + : 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart LifeCyclePart + ; + +TableDefinition_EDIT + : 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT + | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists_EDIT + ; + +TableDefinitionRightPart + : TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + ; + +TableDefinitionRightPart_EDIT + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment PartitionedBy_EDIT + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + ClusteredBy_EDIT OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy SkewedBy_EDIT OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy RowFormat_EDIT OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat StoredAsOrBy_EDIT + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + WithSerdeproperties_EDIT OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties HdfsLocation_EDIT OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties AsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties 'CURSOR' + { + var keywords = []; + if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'COMMENT', weight: 10 }); + } + if (!$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'PARTITIONED BY', weight: 9 }); + } + if (!$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'CLUSTERED BY', weight: 8 }); + } + if (!$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'SKEWED BY', weight: 7 }); + } else if ($5 && $5.suggestKeywords && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 7)); // Get the last optional from SKEWED BY + } + if (!$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'ROW FORMAT', weight: 6 }); + } else if ($6 && $6.suggestKeywords && !$7 && !$8 && !$9 && !$10) { + keywords = keywords.concat(parser.createWeightedKeywords($6.suggestKeywords, 6)); + } + if (!$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'STORED AS', weight: 5 }); + keywords.push({ value: 'STORED BY', weight: 5 }); + } else if ($7 && $7.storedBy && !$8 && !$9 && !$10) { + keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 4 }); + } + if (!$9 && !$10) { + keywords.push({ value: 'LOCATION', weight: 3 }); + } + if (!$10) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + parser.suggestKeywords(keywords); + } + ; + +TableIdentifierAndOptionalColumnSpecification + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } + ; + +TableIdentifierAndOptionalColumnSpecification_EDIT + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT + | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike + ; + +OptionalColumnSpecificationsOrLike + : + | ParenthesizedColumnSpecificationList + | 'LIKE' SchemaQualifiedTableIdentifier -> [] + ; + +OptionalColumnSpecificationsOrLike_EDIT + : ParenthesizedColumnSpecificationList_EDIT + | 'LIKE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LIKE' SchemaQualifiedTableIdentifier_EDIT + ; + +ParenthesizedColumnSpecificationList + : '(' ColumnSpecificationList ')' -> $2 + | '(' ColumnSpecificationList ',' TableConstraints ')' -> $2 + ; + +ParenthesizedColumnSpecificationList_EDIT + : '(' ColumnSpecificationList_EDIT RightParenthesisOrError + | '(' ColumnSpecificationList ',' TableConstraints_EDIT RightParenthesisOrError + | '(' ColumnSpecificationList ',' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); + } + ; + +ColumnSpecificationList + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) + ; + +ColumnSpecificationList_EDIT + : ColumnSpecification_EDIT + | ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecificationList ',' ColumnSpecification_EDIT + | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($1); + } + | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($1); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($3); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($3); + } + ; + +ColumnSpecification + : ColumnIdentifier ColumnDataType OptionalColumnOptions OptionalComment + { + $$ = $1; + $$.type = $2; + var keywords = []; + if (!$4) { + keywords = keywords.concat([ + { value: 'COMMENT', weight: 1 }, + { value: 'CHECK', weight: 2 }, + { value: 'PRIMARY KEY', weight: 2 }, + { value: 'UNIQUE', weight: 2 }, + { value: 'NOT NULL', weight: 2 }, + { value: 'DEFAULT', weight: 2 } + ]); + if (!$3 && $2.toLowerCase() === 'double') { + keywords.push({ value: 'PRECISION', weight: 3 }); + } else if ($3 && $3.suggestKeywords) { + keywords = keywords.concat($3.suggestKeywords) + } + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +ColumnSpecification_EDIT + : ColumnIdentifier 'CURSOR' OptionalColumnOptions OptionalComment + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions OptionalComment + ; + +OptionalColumnOptions + : + | ColumnOptions + ; + +ColumnOptions + : ColumnOption + | ColumnOptions ColumnOption + ; + +ColumnOption + : 'PRIMARY' 'KEY' ColumnOptionOptionals -> $3 + | 'PRIMARY' -> { suggestKeywords: [{ value: 'KEY', weight: 3 }] } + | 'UNIQUE' ColumnOptionOptionals -> $2 + | 'NOT' 'NULL' ColumnOptionOptionals -> $3 + | 'NOT' -> { suggestKeywords: [{ value: 'NULL', weight: 3 }] } + | 'DEFAULT' DefaultValue ColumnOptionOptionals -> $3 + | 'CHECK' '(' ValueExpression ')' ColumnOptionOptionals -> $5 + | 'DEFAULT' + { + $$ = { + suggestKeywords: [ + { value: 'LITERAL', weight: 3 }, + { value: 'CURRENT_USER()', weight: 3 }, + { value: 'CURRENT_DATE()', weight: 3 }, + { value: 'CURRENT_TIMESTAMP()', weight: 3 }, + { value: 'NULL', weight: 3 } + ] + } + } + ; + +ColumnOptionOptionals + : OptionalEnableOrDisable OptionalNovalidate OptionalRelyOrNorely + { + var keywords = []; + if (!$3) { + keywords.push({ value: 'RELY', weight: 3 }); + keywords.push({ value: 'NORELY', weight: 3 }); + if (!$2) { + keywords.push({ value: 'NOVALIDATE', weight: 3 }); + if (!$1) { + keywords.push({ value: 'RELY', weight: 3 }); + keywords.push({ value: 'NORELY', weight: 3 }); + } + } + } + if (keywords.length) { + $$ = { suggestKeywords: keywords }; + } + } + ; + +DefaultValue + : 'LITERAL' + | 'CURRENT_USER' '(' ')' + | 'CURRENT_DATE' '(' ')' + | 'CURRENT_TIMESTAMP' '(' ')' + | 'NULL' + ; + +OptionalEnableOrDisable + : + | 'ENABLE' + | 'DISABLE' + ; + +OptionalDisable + : + | 'DISABLE' + ; + +OptionalNovalidate + : + | 'NOVALIDATE' + ; + +ColumnDataType + : PrimitiveType + | ArrayType + | MapType + | StructType + | UnionType + | ArrayType_INVALID + | MapType_INVALID + | StructType_INVALID + | UnionType_INVALID + ; + +ColumnDataType_EDIT + : ArrayType_EDIT + | MapType_EDIT + | StructType_EDIT + | UnionType_EDIT + ; + +ArrayType + : 'ARRAY' '<' ColumnDataType '>' + ; + +ArrayType_INVALID + : 'ARRAY' '<' '>' + ; + +ArrayType_EDIT + : 'ARRAY' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError + ; + +MapType + : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' + ; + +MapType_INVALID + : 'MAP' '<' '>' + ; + +MapType_EDIT + : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError + | 'MAP' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'MAP' '<' ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + ; + +StructType + : 'STRUCT' '<' StructDefinitionList '>' + ; + +StructType_INVALID + : 'STRUCT' '<' '>' + ; + +StructType_EDIT + : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError + ; + +StructDefinitionList + : StructDefinition + | StructDefinitionList ',' StructDefinition + ; + +StructDefinitionList_EDIT + : StructDefinition_EDIT + | StructDefinition_EDIT Commas + | StructDefinition_EDIT Commas StructDefinitionList + | StructDefinitionList ',' StructDefinition_EDIT + | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList + ; + +StructDefinition + : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment + ; + +StructDefinition_EDIT + : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | Commas RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + ; + +UnionType + : 'UNIONTYPE' '<' ColumnDataTypeList '>' + ; + +UnionType_INVALID + : 'UNIONTYPE' '<' '>' + ; + +UnionType_EDIT + : 'UNIONTYPE' '<' ColumnDataTypeList_EDIT GreaterThanOrError + ; + +ColumnDataTypeList + : ColumnDataType + | ColumnDataTypeList ',' ColumnDataType + ; + +ColumnDataTypeList_EDIT + : ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + ; + +ColumnDataTypeListInner_EDIT + : Commas AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas ColumnDataType_EDIT + | AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnDataType_EDIT + ; + +GreaterThanOrError + : '>' + | error + ; + +TableConstraints + : PrimaryKeySpecification + | ConstraintList + | PrimaryKeySpecification ',' ConstraintList + ; + +TableConstraints_EDIT + : PrimaryKeySpecification_EDIT + | PrimaryKeySpecification ',' 'CURSOR' + { + parser.suggestKeywords(['CONSTRAINT']); + } + | ConstraintList_EDIT + | PrimaryKeySpecification ',' ConstraintList_EDIT + | PrimaryKeySpecification_EDIT ',' ConstraintList + ; + +ConstraintList + : TableConstraint + | ConstraintList ',' TableConstraint + ; + +ConstraintList_EDIT + : TableConstraint_EDIT + | ConstraintList ',' TableConstraint_EDIT + ; + +TableConstraint + : TableConstraintLeftPart OptionalDisable OptionalNovalidate OptionalRelyOrNorely + ; + +TableConstraint_EDIT + : TableConstraintLeftPart_EDIT OptionalDisable OptionalNovalidate OptionalRelyOrNorely + | TableConstraintLeftPart OptionalDisable OptionalNovalidate OptionalRelyOrNorely 'CURSOR' + { + parser.suggestKeywordsForOptionalsLR([$4, $3, $2], [ + [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], + { value: 'NOVALIDATE', weight: 2 }, + { value: 'DISABLE', weight: 3 } + ]); + } + ; + +TableConstraintLeftPart + : 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification + | 'CONSTRAINT' RegularOrBacktickedIdentifier 'CHECK' '(' ValueExpression ')' + | 'CONSTRAINT' RegularOrBacktickedIdentifier 'UNIQUE' ParenthesizedColumnList + ; + +TableConstraintLeftPart_EDIT + : 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CHECK', 'FOREIGN KEY', 'UNIQUE']); + } + | 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification_EDIT + ; +PrimaryKeySpecification + : PrimaryKey ParenthesizedColumnList OptionalDisable OptionalNovalidate OptionalRelyOrNorely + ; + +PrimaryKeySpecification_EDIT + : PrimaryKey_EDIT + | PrimaryKey ParenthesizedColumnList_EDIT + | PrimaryKey ParenthesizedColumnList OptionalDisable OptionalNovalidate OptionalRelyOrNorely 'CURSOR' + { + parser.suggestKeywordsForOptionalsLR([$5, $4, $3], [ + [{ value: 'RELY', weight: 1 }, { value: 'NORELY', weight: 1 }], + { value: 'NOVALIDATE', weight: 2 }, + { value: 'DISABLE', weight: 1 }]); + } + ; + +ForeignKeySpecification + : 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList + { + parser.addTablePrimary($5); + } + ; + +ForeignKeySpecification_EDIT + : 'FOREIGN' 'CURSOR' + { + parser.suggestKeywords(['KEY']); + } + | 'FOREIGN' 'KEY' ParenthesizedColumnList_EDIT + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'CURSOR' + { + parser.suggestKeywords(['REFERENCES']); + } + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier_EDIT + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList_EDIT + { + parser.addTablePrimary($5); + } + ; + +OptionalRelyOrNorely + : + | 'RELY' + | 'NORELY' + ; + +PrimaryKey + : 'PRIMARY' 'KEY' + ; + +PrimaryKey_EDIT + : 'PRIMARY' 'CURSOR' + { + parser.suggestKeywords(['KEY']); + } + ; + +OptionalPartitionedBy + : + | PartitionedBy + ; + +PartitionedBy + : 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList + ; + +PartitionedBy_EDIT + : 'PARTITIONED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITIONED' 'CURSOR' ParenthesizedColumnSpecificationList + { + parser.suggestKeywords(['BY']); + } + | 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList_EDIT + | 'PARTITIONED' ParenthesizedColumnSpecificationList_EDIT + | 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.suggestKeywords(['HASH', 'RANGE']); + } + ; + +OptionalPartitionedOn + : + | PartitionedOn + ; + +PartitionedOn + : 'PARTITIONED' 'ON' ParenthesizedColumnList + ; + +PartitionedOn_EDIT + : 'PARTITIONED' 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | 'PARTITIONED' 'ON' ParenthesizedColumnList_EDIT + ; + +LessThanOrEqualTo + : '<' + | 'COMPARISON_OPERATOR' // This is fine for autocompletion + ; + +OptionalClusteredBy + : + | ClusteredBy + ; + +ClusteredBy + : 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' + ; + +ClusteredBy_EDIT + : 'CLUSTERED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'CLUSTERED' 'BY' ParenthesizedColumnList_EDIT OptionalSortedBy + | 'CLUSTERED' 'BY' ParenthesizedColumnList_EDIT OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' + | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'CURSOR' + { + if (!$4) { + parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); + } else { + parser.suggestKeywords(['INTO']); + } + } + | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'CURSOR' + { + parser.suggestKeywords(['BUCKETS']); + } + | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy_EDIT 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' + | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy_EDIT + ; + +OptionalClusteredOrDistributedOn + : + | ClusteredOn + | DistributedOn SortedOn + ; + +ClusteredOrDistributedOn_EDIT + : ClusteredOn_EDIT + | DistributedOn_EDIT + | DistributedOn 'CURSOR' + { + parser.suggestKeywords(['SORTED ON']); + } + | DistributedOn SortedOn_EDIT + ; + +ClusteredOn + : 'CLUSTERED' 'ON' ParenthesizedColumnList + ; + +ClusteredOn_EDIT + : 'CLUSTERED' 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | 'CLUSTERED' 'ON' ParenthesizedColumnList_EDIT + ; + +DistributedOn + : 'DISTRIBUTED' 'ON' ParenthesizedColumnList + ; + +DistributedOn_EDIT + : 'DISTRIBUTED' 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | 'DISTRIBUTED' 'ON' ParenthesizedColumnList_EDIT + ; + +SortedOn + : 'SORTED' 'ON' ParenthesizedColumnList + ; + +SortedOn_EDIT + : 'SORTED' 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | 'SORTED' 'ON' ParenthesizedColumnList_EDIT + ; + +OptionalSortedBy + : + | 'SORTED' 'BY' ParenthesizedSortList + ; + +OptionalSortedBy_EDIT + : 'SORTED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'SORTED' 'BY' ParenthesizedSortList_EDIT + ; + +ParenthesizedSortList + : '(' SortList ')' + ; + +ParenthesizedSortList_EDIT + : '(' SortList_EDIT RightParenthesisOrError + ; + +SortList + : SortIdentifier + | SortList ',' SortIdentifier + ; + +SortList_EDIT + : SortIdentifier_EDIT + | SortIdentifier_EDIT ',' SortList + | SortList ',' SortIdentifier_EDIT + | SortList ',' SortIdentifier_EDIT ',' SortList + ; + +SortIdentifier + : ColumnIdentifier OptionalAscOrDesc + ; + +SortIdentifier_EDIT + : ColumnIdentifier OptionalAscOrDesc 'CURSOR' + { + parser.checkForKeywords($2); + } + | ColumnIdentifier_EDIT OptionalAscOrDesc + | AnyCursor OptionalAscOrDesc + { + parser.suggestColumns(); + } + ; + +OptionalSkewedBy + : + | SkewedBy + ; + +SkewedBy + : 'SKEWED' 'BY' ParenthesizedColumnList ON ParenthesizedSkewedValueList -> { suggestKeywords: ['STORED AS DIRECTORIES'] } + | 'SKEWED' 'BY' ParenthesizedColumnList ON ParenthesizedSkewedValueList 'STORED_AS_DIRECTORIES' // Hack otherwise ambiguous with OptionalStoredAsOrBy + ; + +SkewedBy_EDIT + : 'SKEWED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'SKEWED' 'BY' ParenthesizedColumnList 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + ; + +ParenthesizedSkewedValueList + : '(' SkewedValueList ')' + ; + +SkewedValueList + : ParenthesizedSimpleValueList + | SkewedValueList ',' ParenthesizedSimpleValueList + ; + +OptionalRowFormat + : + | RowFormat + ; + +RowFormat + : 'ROW' 'FORMAT' RowFormatSpec + { + $$ = $3 + } + ; + +RowFormat_EDIT + : 'ROW' 'CURSOR' + { + parser.suggestKeywords(['FORMAT']); + } + | 'ROW' 'FORMAT' 'CURSOR' + { + parser.suggestKeywords(['DELIMITED', 'SERDE']); + } + | 'ROW' 'FORMAT' RowFormatSpec_EDIT + ; + +OptionalStoredAsOrBy + : + | StoredAsOrBy + ; + +StoredAsOrBy + : StoredAs + | 'STORED' 'BY' QuotedValue + { + $$ = { storedBy: true } + } + ; + +StoredAsOrBy_EDIT + : 'STORED' 'CURSOR' + { + parser.suggestKeywords(['AS', 'BY']); + } + | StoredAs_EDIT + ; + +OptionalStoredAs + : -> { suggestKeywords: ['STORED AS'] } + | StoredAs + ; + +StoredAs + : 'STORED' 'AS' FileFormat + ; + +StoredAs_EDIT + : 'STORED' 'AS' 'CURSOR' + { + parser.suggestFileFormats(); + } + ; + +FileFormat + : 'AVRO' + | 'INPUTFORMAT' QuotedValue 'OUTPUTFORMAT' QuotedValue + | 'JSONFILE' + | 'ORC' + | 'PARQUET' + | 'RCFILE' + | 'SEQUENCEFILE' + | 'TEXTFILE' + ; + +RowFormatSpec + : DelimitedRowFormat + | 'SERDE' QuotedValue + ; + +RowFormatSpec_EDIT + : DelimitedRowFormat_EDIT + ; + +DelimitedRowFormat + : 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy OptionalLinesTerminatedBy OptionalNullDefinedAs + { + if (!$2 && !$3 && !$4 && !$5 && !$6) { + $$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; + } else if ($2 && $2.suggestKeywords && !$3 && !$4 && !$5 && !$6) { + $$ = { suggestKeywords: parser.createWeightedKeywords($2.suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; + } else if (!$3 && !$4 && !$5 && !$6) { + $$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$4 && !$5 && !$6) { + $$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$5 && !$6) { + $$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$6) { + $$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; + } + } + ; + +DelimitedRowFormat_EDIT + : 'DELIMITED' OptionalFieldsTerminatedBy_EDIT OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy + OptionalLinesTerminatedBy OptionalNullDefinedAs + | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy_EDIT OptionalMapKeysTerminatedBy + OptionalLinesTerminatedBy OptionalNullDefinedAs + | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy_EDIT + OptionalLinesTerminatedBy OptionalNullDefinedAs + | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy + OptionalLinesTerminatedBy_EDIT OptionalNullDefinedAs + | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy + OptionalLinesTerminatedBy OptionalNullDefinedAs_EDIT + ; + +OptionalFieldsTerminatedBy + : + | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue -> { suggestKeywords: ['ESCAPED BY'] } + | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'BY' SingleQuotedValue + ; + +OptionalFieldsTerminatedBy_EDIT + : 'FIELDS' 'CURSOR' + { + parser.suggestKeywords(['TERMINATED BY']); + } + | 'FIELDS' 'TERMINATED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + ; + +OptionalCollectionItemsTerminatedBy + : + | 'COLLECTION' 'ITEMS' 'TERMINATED' 'BY' SingleQuotedValue + ; + +OptionalCollectionItemsTerminatedBy_EDIT + : 'COLLECTION' 'CURSOR' + { + parser.suggestKeywords(['ITEMS TERMINATED BY']); + } + | 'COLLECTION' 'ITEMS' 'CURSOR' + { + parser.suggestKeywords(['TERMINATED BY']); + } + | 'COLLECTION' 'ITEMS' 'TERMINATED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + ; + +OptionalMapKeysTerminatedBy + : + | 'MAP' 'KEYS' 'TERMINATED' 'BY' SingleQuotedValue + ; + +OptionalMapKeysTerminatedBy_EDIT + : 'MAP' 'CURSOR' + { + parser.suggestKeywords(['KEYS TERMINATED BY']); + } + | 'MAP' 'KEYS' 'CURSOR' + { + parser.suggestKeywords(['TERMINATED BY']); + } + | 'MAP' 'KEYS' 'TERMINATED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + ; + +OptionalLinesTerminatedBy + : + | 'LINES' 'TERMINATED' 'BY' SingleQuotedValue + ; + +OptionalLinesTerminatedBy_EDIT + : 'LINES' 'CURSOR' + { + parser.suggestKeywords(['TERMINATED BY']); + } + | 'LINES' 'TERMINATED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + ; + +OptionalNullDefinedAs + : + | 'NULL' 'DEFINED' 'AS' SingleQuotedValue + ; + +OptionalNullDefinedAs_EDIT + : 'NULL' 'CURSOR' + { + parser.suggestKeywords(['DEFINED AS']); + } + | 'NULL' 'DEFINED' 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + ; + +OptionalWithSerdeproperties + : + | WithSerdeproperties + ; + +WithSerdeproperties + :'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +WithSerdeproperties_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['SERDEPROPERTIES']); + } + | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList + { + parser.suggestKeywords(['SERDEPROPERTIES']); + } + ; + +OptionalTblproperties + : + | TblProperties + ; + +TblProperties + : 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +OptionalAsSelectStatement + : + | AsSelectStatement + ; + +AsSelectStatement + : 'AS' CommitLocations QuerySpecification + ; + +AsSelectStatement_EDIT + : 'AS' CommitLocations 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'AS' CommitLocations QuerySpecification_EDIT + ; + +CommitLocations + : /* empty */ + { + parser.commitLocations(); + } + ; + +MaterializedViewDefinition + : 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier + OptionalDisableRewrite OptionalComment OptionalPartitionedOn OptionalClusteredOrDistributedOn + OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties + AsSelectStatement + ; + +MaterializedViewDefinition_EDIT + : 'CREATE' 'MATERIALIZED' 'CURSOR' + { + parser.suggestKeywords(['VIEW']); + } + | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment + OptionalPartitionedOn OptionalClusteredOrDistributedOn OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties 'CURSOR' + { + parser.suggestKeywordsForOptionalsLR([undefined, $12, $11, $10, $9, $8, $7, $6, $5], [ + { value: 'AS SELECT', weight: 1 }, + { value: 'TBLPROPERTIES', weight: 2 }, + { value: 'LOCATION', weight: 3 }, + [{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }], + [{ value: 'CLUSTERED ON', weight: 5 }, { value: 'DISTRIBUTED ON', weight: 5 }], + { value: 'PARTITIONED ON', weight: 6 }, + { value: 'COMMENT', weight: 7 }, + { value: 'DISABLE REWRITE', weight: 8 } + ]); + } + | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier DisableRewrite_EDIT OptionalComment + OptionalPartitionedOn OptionalClusteredOrDistributedOn OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties + | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment + PartitionedOn_EDIT OptionalClusteredOrDistributedOn OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties + | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment + OptionalPartitionedOn ClusteredOrDistributedOn_EDIT OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties + | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment + OptionalPartitionedOn OptionalClusteredOrDistributedOn RowFormat_EDIT OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties + | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment + OptionalPartitionedOn OptionalClusteredOrDistributedOn OptionalRowFormat StoredAsOrBy_EDIT OptionalHdfsLocation + OptionalTblproperties + | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment + OptionalPartitionedOn OptionalClusteredOrDistributedOn OptionalRowFormat OptionalStoredAsOrBy HdfsLocation_EDIT + OptionalTblproperties + | 'CREATE' 'MATERIALIZED' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalDisableRewrite OptionalComment + OptionalPartitionedOn OptionalClusteredOrDistributedOn OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties AsSelectStatement_EDIT + ; + + +OptionalDisableRewrite + : + | 'DISABLE' 'REWRITE' + ; + +DisableRewrite_EDIT + : 'DISABLE' 'CURSOR' + { + parser.suggestKeywords(['REWRITE']); + } + ; + +ViewDefinition + : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification + ; + +ViewDefinition_EDIT + : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment OptionalTblproperties + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'CURSOR' + { + var keywords = [{value: 'AS', weight: 1 }]; + if (!$7) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + if (!$6) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + } + parser.suggestKeywords(keywords); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification + ; + +FunctionDefinition + : TemporaryFunction + ; + +FunctionDefinition_EDIT + : TemporaryFunction_EDIT + ; + +FunctionDefinition + : 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing + ; + +FunctionDefinition_EDIT + : 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing_EDIT + | 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['USING']); + } else { + parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); + } + } + ; + +TemporaryFunction + : 'CREATE' 'TEMPORARY' 'FUNCTION' RegularIdentifier 'AS' SingleQuotedValue + ; + +TemporaryFunction_EDIT + : 'CREATE' 'TEMPORARY' 'FUNCTION' RegularIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + ; + +FunctionReference + : SingleQuotedValue + ; + +FunctionReference_EDIT + : SingleQuotedValue_EDIT + { + parser.suggestFunctions(); + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + ; + +OptionalUsing + : + | 'USING' OneOrMoreFunctionResources + ; + +OptionalUsing_EDIT + : 'USING' 'CURSOR' + { + parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); + } + ; + +OneOrMoreFunctionResources + : FunctionResource + | OneOrMoreFunctionResources ',' FunctionResource + ; + +FunctionResource + : FunctionResourceType SingleQuotedValue + ; + +FunctionResourceType + : 'ARCHIVE' + | 'FILE' + | 'JAR' + ; + +OptionalParenthesizedViewColumnList + : + | ParenthesizedViewColumnList + ; + +ParenthesizedViewColumnList + : '(' ViewColumnList ')' + ; + +ParenthesizedViewColumnList_EDIT + : '(' ViewColumnList_EDIT RightParenthesisOrError + { + if (!$2) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +ViewColumnList + : ColumnReference OptionalComment + | ViewColumnList ',' ColumnReference OptionalComment + ; + +ViewColumnList_EDIT + : ColumnReference OptionalComment 'CURSOR' -> $2 + | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 + ; + +RoleDefinition + : 'CREATE' 'ROLE' RegularIdentifier + ; + +IndexDefinition + : 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat + OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment + ; + +IndexDefinition_EDIT + : 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['ON TABLE']); + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' 'CURSOR' + { + parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType_EDIT OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild_EDIT OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable_EDIT OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable RowFormat_EDIT OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat StoredAsOrBy_EDIT OptionalHdfsLocation + OptionalTblproperties OptionalComment + { + if ($13 && parser.yy.result.suggestKeywords && parser.yy.result.suggestKeywords.length === 2) { + parser.suggestKeywords(['AS']); + } + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy HdfsLocation_EDIT + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment 'CURSOR' + { + if (!$10 && !$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$12 && !$13 && !$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$13 && !$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if ($13 && $13.suggestKeywords && !$14 && !$15 && !$16) { + parser.suggestKeywords(parser.createWeightedKeywords($13.suggestKeywords, 5).concat([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); + } else if (!$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$16 && !$17) { + parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$17) { + parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); + } + } + ; + +ExistingTable + : SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($1); + } + ; + +ExistingTable_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +IndexType + : QuotedValue + ; + +IndexType_EDIT + : QuotedValue_EDIT + { + parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); + } + ; + +OptionalWithDeferredRebuild + : + | 'WITH' 'DEFERRED' 'REBUILD' + ; + +OptionalWithDeferredRebuild_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['DEFERRED REBUILD']); + } + | 'WITH' 'DEFERRED' 'CURSOR' + { + parser.suggestKeywords(['REBUILD']); + } + ; + +OptionalIdxProperties + : + | 'IDXPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +OptionalInTable + : + | 'IN' 'TABLE' SchemaQualifiedTableIdentifier + ; + +OptionalInTable_EDIT + : 'IN' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'IN' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'IN' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + ; + + +ParenthesizedIndexColumnList + : '(' IndexColumnList ')' + ; + +ParenthesizedIndexColumnList_EDIT + : '(' IndexColumnList_EDIT RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +IndexColumnList + : ColumnReference + | IndexColumnList ',' ColumnReference + ; + +IndexColumnList_EDIT + : AnyCursor + | IndexColumnList ',' AnyCursor + | AnyCursor ',' IndexColumnList + | IndexColumnList ',' AnyCursor ',' IndexColumnList + ; + +MacroDefinition + : 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments ValueExpression + ; + +MacroDefinition_EDIT + : 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments_EDIT + | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments_EDIT ValueExpression + | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments 'CURSOR' + { + parser.suggestFunctions(); + } + | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments ValueExpression_EDIT + ; + +MacroArguments + : '(' ')' + | '(' MacroArgumentList ')' + ; + +MacroArguments_EDIT + : '(' MacroArgumentList_EDIT RightParenthesisOrError + ; + + +MacroArgumentList + : MacroArgument + | MacroArgumentList ',' MacroArgument + ; + +MacroArgumentList_EDIT + : MacroArgument_EDIT + | MacroArgumentList ',' MacroArgument_EDIT + | MacroArgument_EDIT ',' MacroArgumentList + | MacroArgumentList ',' MacroArgument_EDIT ',' MacroArgumentList + ; + +MacroArgument + : RegularIdentifier ColumnDataType + ; + +MacroArgument_EDIT + : RegularIdentifier 'CURSOR' + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularIdentifier ColumnDataType_EDIT + ; +LifeCyclePart +: +| 'LIFECYCLE' 'UNSIGNED_INTEGER' +; \ No newline at end of file diff --git a/src/jison/sql/hive/sql_drop.jison b/src/jison/sql/hive/sql_drop.jison new file mode 100644 index 0000000..5e3a2ba --- /dev/null +++ b/src/jison/sql/hive/sql_drop.jison @@ -0,0 +1,348 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : DropStatement + | AbortStatement + ; + +DataDefinition_EDIT + : DropStatement_EDIT + | AbortStatement_EDIT + ; + +DataManipulation + : DeleteStatement + ; + +DataManipulation_EDIT + : DeleteStatement_EDIT + ; + +DropStatement + : DropDatabaseStatement + | DropFunctionStatement + | DropRoleStatement + | DropTableStatement + | DropIndexStatement + | DropMacroStatement + | DropMaterializedViewStatement + | DropViewStatement + | TruncateTableStatement + ; + +DropStatement_EDIT + : DropDatabaseStatement_EDIT + | DropFunctionStatement_EDIT + | DropTableStatement_EDIT + | DropIndexStatement_EDIT + | DropMacroStatement_EDIT + | DropMaterializedViewStatement_EDIT + | DropViewStatement_EDIT + | TruncateTableStatement_EDIT + | 'DROP' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'MATERIALIZED VIEW', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); + } + ; + +DropDatabaseStatement + : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascadeOrRestrict + ; + +DropDatabaseStatement_EDIT + : 'DROP' DatabaseOrSchema OptionalIfExists + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + } + | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascadeOrRestrict + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascadeOrRestrict + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + ; + +DropFunctionStatement + : 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier + | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists RegularIdentifier + ; + +DropFunctionStatement_EDIT + : 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'FUNCTION' OptionalIfExists_EDIT + | 'DROP' 'FUNCTION' OptionalIfExists_EDIT SchemaQualifiedIdentifier + | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT + | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists_EDIT + ; + +DropRoleStatement + : 'DROP' 'ROLE' RegularIdentifier + ; + +DropTableStatement + : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement_EDIT + : 'DROP' 'TABLE' OptionalIfExists_EDIT + | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PURGE']); + } + } + ; + +OptionalPurge + : + | 'PURGE' + ; + +DropIndexStatement + : 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($6); + } + ; + +DropIndexStatement_EDIT + : 'DROP' 'INDEX' OptionalIfExists 'CURSOR' + { + parser.suggestKeywords(['IF EXISTS']); + } + | 'DROP' 'INDEX' OptionalIfExists_EDIT + | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier_EDIT + ; + +DropMacroStatement + : 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists RegularIdentifier + ; + +DropMacroStatement_EDIT + : 'DROP' 'TEMPORARY' 'CURSOR' + { + parser.suggestKeywords(['FUNCTION', 'MACRO']); + } + | 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists_EDIT + ; + + +DropMaterializedViewStatement + : 'DROP' 'MATERIALIZED' 'VIEW' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropMaterializedViewStatement_EDIT + : 'DROP' 'MATERIALIZED' 'CURSOR' + { + parser.suggestKeywords(['VIEW']); + } + | 'DROP' 'MATERIALIZED' 'VIEW' 'CURSOR' + { + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'MATERIALIZED' VIEW SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +DropViewStatement + : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropViewStatement_EDIT + : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($5); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'VIEW' OptionalIfExists_EDIT + | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +TruncateTableStatement + : 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($3); + } + ; + +TruncateTableStatement_EDIT + : 'TRUNCATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'TRUNCATE' 'TABLE' 'CURSOR' OptionalPartitionSpec + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($3); + if (!$4) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + { + parser.addTablePrimary($3); + } + | 'TRUNCATE' 'TABLE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($4); + } + ; + +DeleteStatement + : 'DELETE' 'FROM' SchemaQualifiedTableIdentifier OptionalWhereClause + { + parser.addTablePrimary($3); + } + ; + +DeleteStatement_EDIT + : 'DELETE' 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + | 'DELETE' 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier 'CURSOR' OptionalWhereClause + { + parser.addTablePrimary($3); + if (!$5) { + parser.suggestKeywords(['WHERE']); + } + } + | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier_EDIT OptionalWhereClause + | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier WhereClause_EDIT + { + parser.addTablePrimary($3); + } + ; + +AbortStatement + : 'ABORT' 'TRANSACTIONS' TransactionIdList + ; + +AbortStatement_EDIT + : 'ABORT' 'CURSOR' + { + parser.suggestKeywords(['TRANSACTIONS']); + } + ; + +TransactionIdList + : UnsignedNumericLiteral + | TransactionIdList ',' UnsignedNumericLiteral + ; diff --git a/src/jison/sql/hive/sql_error.jison b/src/jison/sql/hive/sql_error.jison new file mode 100644 index 0000000..0a623b3 --- /dev/null +++ b/src/jison/sql/hive/sql_error.jison @@ -0,0 +1,169 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlStatements + : error + | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? + ; + +SqlStatement_EDIT + : AnyCursor error + { + parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); + } + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT + ; + +SelectList_ERROR + : ErrorList + | SelectList ',' ErrorList + | ErrorList ',' SelectList ',' ErrorList + | ErrorList ',' SelectList + | SelectList ',' ErrorList ',' SelectList + ; + +SelectList_ERROR_EDIT + : ErrorList ',' SelectList_EDIT -> $3 + | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 + | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 + | ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | ErrorList ',' SelectList ',' Errors ',' AnyCursor + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + ; + +SetSpecification + : 'SET' SetOption '=' error + ; + +ErrorList + : error + | Errors ',' error + ; + +LateralView + : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier 'AS' error -> { } + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction error -> { } + | 'LATERAL' 'VIEW' OptionalOuter error -> { } + | 'LATERAL' error -> { } + ; + +JoinType_EDIT + : 'FULL' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'LEFT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN', 'SEMI JOIN']); + } + | 'RIGHT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7, $8, $9], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true, true, true]), + cursorAtEnd: !$4 && !$5 && !$6 && !$7 && !$8 && !$9 + }; + } + | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7, $8, $9], [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$6 && !$7 && !$8 && !$9 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error 'CURSOR' OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$7, $8, $9], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true]), + cursorAtEnd: !$7 && !$8 && !$9 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error 'CURSOR' OptionalClusterOrDistributeBy OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$8, $9], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$8 && !$9 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy error 'CURSOR' OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$9], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$9 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause error 'CURSOR' + { + $$ = { + suggestKeywords: [], + cursorAtEnd: true + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT + | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause HavingClause error WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error ClusterOrDistributeBy_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error OptionalClusterOrDistributeBy LimitClause_EDIT + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error + ; diff --git a/src/jison/sql/hive/sql_grant.jison b/src/jison/sql/hive/sql_grant.jison new file mode 100644 index 0000000..36974db --- /dev/null +++ b/src/jison/sql/hive/sql_grant.jison @@ -0,0 +1,378 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : GrantStatement + | RevokeStatement + ; + +DataDefinition_EDIT + : GrantStatement_EDIT + | RevokeStatement_EDIT + ; + +GrantStatement + : 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList OptionalWithGrantOption + | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption + | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption + ; + +GrantStatement_EDIT + : 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); + } + | 'GRANT' PrivilegeTypeList_EDIT OptionalOnSpecification + | 'GRANT' PrivilegeTypeList OnSpecification_EDIT + | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['ON', 'TO']); + } else { + parser.suggestKeywords(['TO']); + } + } + | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList_EDIT + | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList OptionalWithGrantOption 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['WITH GRANT OPTION']); + } + } + | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList WithGrantOption_EDIT + | 'GRANT' UserOrRoleList 'CURSOR' + { + parser.suggestKeywords(['TO']); + } + | 'GRANT' UserOrRoleList 'TO' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList_EDIT + | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption 'CURSOR' + { + if (!$5) { + parser.suggestKeywords(['WITH ADMIN OPTION']); + } + } + | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList WithAdminOption_EDIT + | 'GRANT' 'ROLE' UserOrRoleList 'TO' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList_EDIT + | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['WITH ADMIN OPTION']); + } + } + | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList WithAdminOption_EDIT + ; + +OptionalOnSpecification + : + | 'ON' ObjectSpecification + ; + +OnSpecification_EDIT + : 'ON' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'TABLE']); + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'ON' ObjectSpecification_EDIT + ; + +ObjectSpecification + : 'DATABASE' RegularOrBacktickedIdentifier + | 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($2); + } + | SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($1); + } + ; + +ObjectSpecification_EDIT + : 'DATABASE' 'CURSOR' + { + parser.suggestDatabases(); + } + | 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'TABLE' SchemaQualifiedTableIdentifier_EDIT + | SchemaQualifiedTableIdentifier_EDIT + ; + +PrivilegeTypeList + : PrivilegeTypeWithOptionalColumn + { + if ($1.toUpperCase() === 'ALL') { + $$ = { singleAll: true }; + } + } + | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn + ; + +PrivilegeTypeList_EDIT + : PrivilegeTypeWithOptionalColumn_EDIT + | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn_EDIT + | PrivilegeTypeWithOptionalColumn_EDIT ',' PrivilegeTypeList + | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn_EDIT ',' PrivilegeTypeList + | 'CURSOR' ',' PrivilegeTypeList + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); + } + | PrivilegeTypeList ',' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); + } + | PrivilegeTypeList ',' 'CURSOR' ',' PrivilegeTypeList + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); + } + ; + +PrivilegeTypeWithOptionalColumn + : PrivilegeType OptionalParenthesizedColumnList + ; + +PrivilegeTypeWithOptionalColumn_EDIT + : PrivilegeType ParenthesizedColumnList_EDIT + ; + +PrivilegeType + : 'ALL' + | 'ALTER' + | 'CREATE' + | 'DELETE' + | 'DROP' + | 'INDEX' + | 'INSERT' + | 'LOCK' + | 'SELECT' + | 'SHOW_DATABASE' + | 'UPDATE' + ; + +PrincipalSpecificationList + : PrincipalSpecification + | PrincipalSpecificationList ',' PrincipalSpecification + ; + +PrincipalSpecificationList_EDIT + : PrincipalSpecificationList ',' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'CURSOR' ',' PrincipalSpecificationList + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | PrincipalSpecificationList ',' 'CURSOR' ',' PrincipalSpecificationList + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + ; + +PrincipalSpecification + : 'USER' RegularOrBacktickedIdentifier + | 'GROUP' RegularOrBacktickedIdentifier + | 'ROLE' RegularOrBacktickedIdentifier + ; + +PrincipalSpecification_EDIT + : 'USER' 'CURSOR' + | 'GROUP' 'CURSOR' + | 'ROLE' 'CURSOR' + ; + +UserOrRoleList + : RegularOrBacktickedIdentifier + | UserOrRoleList ',' RegularOrBacktickedIdentifier + ; + +OptionalWithGrantOption + : + | 'WITH' 'GRANT' 'OPTION' + ; + +WithGrantOption_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['GRANT OPTION']); + } + | 'WITH' 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['OPTION']); + } + ; + +OptionalWithAdminOption + : + | 'WITH' 'ADMIN' 'OPTION' + ; + +WithAdminOption_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['ADMIN OPTION']); + } + | 'WITH' 'ADMIN' 'CURSOR' + { + parser.suggestKeywords(['OPTION']); + } + ; + +RevokeStatement + : 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList + | 'REVOKE' UserOrRoleList 'FROM' PrincipalSpecificationList + | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' PrincipalSpecificationList + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList + | 'REVOKE' 'ALL' PrivilegesOrGrantOption 'FROM' UserOrRoleList + ; + +RevokeStatement_EDIT + : 'REVOKE' 'CURSOR' + { + parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); + } + | 'REVOKE' PrivilegeTypeList_EDIT + | 'REVOKE' PrivilegeTypeList OnSpecification_EDIT + | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'CURSOR' + { + if (!$3) { + if ($2.singleAll) { + parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); + } else { + parser.suggestKeywords(['FROM', 'ON']); + } + } else { + parser.suggestKeywords(['FROM']); + } + } + | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList_EDIT + | 'REVOKE' 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['OPTION FOR']); + } + | 'REVOKE' 'GRANT' 'OPTION' 'CURSOR' + { + parser.suggestKeywords(['FOR']); + } + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); + } + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList_EDIT + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OnSpecification_EDIT + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['FROM', 'ON']); + } else { + parser.suggestKeywords(['FROM']); + } + } + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList_EDIT + | 'REVOKE' UserOrRoleList 'CURSOR' + { + if ($2.toUpperCase() === 'ADMIN') { + parser.suggestKeywords(['FROM', 'OPTION FOR']); + } else { + parser.suggestKeywords(['FROM']); + } + } + | 'REVOKE' UserOrRoleList 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT + | 'REVOKE' 'ROLE' UserOrRoleList 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT + + | 'REVOKE' 'ADMIN' 'OPTION' 'CURSOR' + { + parser.suggestKeywords(['FOR']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'CURSOR' + { + parser.suggestKeywords(['ROLE']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT + | 'REVOKE' 'ALL' PrivilegesOrGrantOption_EDIT + | 'REVOKE' 'ALL' PrivilegesOrGrantOption 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + ; + +PrivilegesOrGrantOption + : 'PRIVILEGES' + | 'GRANT' 'OPTION' + ; + +PrivilegesOrGrantOption_EDIT + : 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['OPTION']); + } + ; diff --git a/src/jison/sql/hive/sql_insert.jison b/src/jison/sql/hive/sql_insert.jison new file mode 100644 index 0000000..15c483f --- /dev/null +++ b/src/jison/sql/hive/sql_insert.jison @@ -0,0 +1,536 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : InsertStatement + | CommonTableExpression InsertStatement + | MergeStatement + ; + +DataManipulation_EDIT + : InsertStatement_EDIT + | CommonTableExpression InsertStatement_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT InsertStatement + | MergeStatement_EDIT + ; + +InsertStatement + : InsertWithoutQuery + | InsertWithoutQuery QuerySpecification + | FromClause Inserts + | FromClause SelectWithoutTableExpression OptionalSelectConditions + ; + +InsertStatement_EDIT + : InsertWithoutQuery_EDIT + | InsertWithoutQuery 'CURSOR' + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); + } else { + keywords = ['SELECT']; + } + if ($1.addValues) { + keywords.push({ weight: 1.1, value: 'VALUES' }); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + | InsertWithoutQuery_EDIT QuerySpecification + | InsertWithoutQuery QuerySpecification_EDIT + | FromClause Inserts_EDIT + { + if (!$2.keepTables) { + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + } + } + | FromClause_EDIT + | FromClause_EDIT Inserts + | FromClause_EDIT SelectWithoutTableExpression OptionalSelectConditions + | FromClause 'CURSOR' + { + parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); + } + | FromClause SelectWithoutTableExpression_EDIT OptionalSelectConditions + { + if ($2.cursorAtEnd) { + parser.checkForSelectListKeywords($2); + var keywords = parser.yy.result.suggestKeywords || []; + if ($3.suggestKeywords) { + keywords = keywords.concat($3.suggestKeywords); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + } + | FromClause SelectWithoutTableExpression OptionalSelectConditions_EDIT + { + if ($3.cursorAtStart) { + parser.checkForSelectListKeywords($2.tableExpression); + } + } + ; + +InsertWithoutQuery + : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec 'VALUES' InsertValuesList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalIfNotExists + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (!$5 && !$6) { + $$ = { suggestKeywords: ['PARTITION'] } + } else if (!$6) { + $$ = { suggestKeywords: ['IF NOT EXISTS'] } + } + } + | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs + { + if (!$6 && !$7) { + $$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; + } else if (!$7) { + $$ = { suggestKeywords: ['STORED AS'] }; + } + } + | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs + { + if (!$4 && !$5) { + $$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; + } else if (!$5) { + $$ = { suggestKeywords: ['STORED AS'] }; + } + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalParenthesizedColumnList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (!$5 && !$6) { + $$ = { suggestKeywords: ['PARTITION'], addValues: true }; + } else if (!$6) { + $$ = { addValues: true }; + } + } + ; + +InsertWithoutQuery_EDIT + : 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['OVERWRITE', 'INTO']); + } + | 'INSERT' 'OVERWRITE' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + $$ = { keepTables: true } + } + | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalParenthesizedColumnList + { + $$ = { keepTables: true } + } + | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalIfNotExists + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + } + | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalIfNotExists_EDIT + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + | 'INSERT' 'OVERWRITE' 'LOCAL' 'CURSOR' + { + parser.suggestKeywords(['DIRECTORY']); + } + | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath_EDIT OptionalInsertRowFormat OptionalStoredAs + | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat_EDIT OptionalStoredAs + | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs_EDIT + | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath_EDIT OptionalInsertRowFormat OptionalStoredAs // DIRECTORY is a non-reserved keyword + | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat_EDIT OptionalStoredAs + | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs_EDIT + | 'INSERT' 'INTO' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + $$ = { keepTables: true } + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalParenthesizedColumnList + { + $$ = { keepTables: true } + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalParenthesizedColumnList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalParenthesizedColumnList_EDIT + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + } + ; + +Inserts + : GenericInsert + | Inserts GenericInsert + ; + +Inserts_EDIT + : GenericInsert_EDIT + | Inserts GenericInsert_EDIT + | GenericInsert_EDIT Inserts + | Inserts GenericInsert_EDIT Inserts + ; + +// TODO: Verify unions in insert +GenericInsert + : InsertWithoutQuery SelectWithoutTableExpression OptionalSelectConditions + ; + +GenericInsert_EDIT + : InsertWithoutQuery_EDIT + | InsertWithoutQuery_EDIT SelectWithoutTableExpression OptionalSelectConditions + | InsertWithoutQuery 'CURSOR' + { + if ($1.suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($1.suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); + } else { + parser.suggestKeywords(['SELECT']); + } + } + | InsertWithoutQuery SelectWithoutTableExpression_EDIT OptionalSelectConditions + { + if ($2.cursorAtEnd) { + parser.checkForSelectListKeywords($2); + var keywords = parser.yy.result.suggestKeywords || []; + if ($3.suggestKeywords) { + keywords = keywords.concat($3.suggestKeywords); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + } + | InsertWithoutQuery SelectWithoutTableExpression OptionalSelectConditions_EDIT + ; + +InsertValuesList + : ParenthesizedRowValuesList + | RowValuesList ',' ParenthesizedRowValuesList + ; + +ParenthesizedRowValuesList + : '(' InValueList ')' + ; + +OptionalTable + : + | 'TABLE' + ; + +OptionalInsertRowFormat + : + | 'ROW' 'FORMAT' DelimitedRowFormat + ; + +OptionalInsertRowFormat_EDIT + : 'ROW' 'CURSOR' + { + parser.suggestKeywords(['FORMAT DELIMITED']); + } + | 'ROW' 'FORMAT' 'CURSOR' + { + parser.suggestKeywords(['DELIMITED']); + } + | 'ROW' 'FORMAT' DelimitedRowFormat_EDIT + ; + +SelectWithoutTableExpression + : 'SELECT' OptionalAllOrDistinct SelectList -> { selectList: $3 } + ; + +SelectWithoutTableExpression_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + $$ = $3; + $$.cursorAtEnd = true; + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns(); + } + ; + +MergeStatement + : MergeStatementLeftPart 'ON' ValueExpression WhenList + ; + +MergeStatement_EDIT + : MergeStatementLeftPart_EDIT + | MergeStatementLeftPart 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | MergeStatementLeftPart 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | MergeStatementLeftPart 'ON' ValueExpression_EDIT + | MergeStatementLeftPart 'ON' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, [{ value: 'WHEN', weight: 2 }]); + } + | MergeStatementLeftPart 'ON' ValueExpression WhenList_EDIT + ; + +MergeStatementLeftPart + : 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'AS' RegularIdentifier + { + $3.alias = $5; + parser.addTablePrimary($3); + if ($7.subQuery) { + parser.addTablePrimary({ subQueryAlias: $9 }); + } else { + $7.alias = $9; + } + } + ; + +MergeStatementLeftPart_EDIT + : 'MERGE' 'CURSOR' + { + parser.suggestKeywords(['INTO']); + } + | 'MERGE' 'INTO' 'CURSOR' + { + parser.suggestDatabases({ appendDot: true }); + parser.suggestTables(); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier_EDIT + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['AS T USING']); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['T USING']); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'CURSOR' + { + $3.alias = $5; + parser.addTablePrimary($3); + parser.suggestKeywords(['USING']); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' 'CURSOR' + { + $3.alias = $5; + parser.addTablePrimary($3); + parser.suggestDatabases({ appendDot: true }); + parser.suggestTables(); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource_EDIT + { + $3.alias = $5; + parser.addTablePrimary($3); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'CURSOR' + { + $3.alias = $5; + parser.addTablePrimary($3); + parser.suggestKeywords(['AS S ON']); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'AS' 'CURSOR' + { + $3.alias = $5; + parser.addTablePrimary($3); + parser.suggestKeywords(['S ON']); + } + ; + +MergeSource + : '(' TableSubQueryInner ')' -> $2 + | SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($1); + } + ; + +MergeSource_EDIT + : '(' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | '(' TableSubQueryInner_EDIT RightParenthesisOrError + | SchemaQualifiedTableIdentifier_EDIT + ; + +WhenList + : WhenClause + | WhenClause WhenClause + | WhenClause WhenClause WhenClause + ; + +WhenList_EDIT + : WhenClause_EDIT + { + if ($1.suggestThenKeywords) { + parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); + } + } + | WhenClause 'CURSOR' + { + if (!$1.notPresent) { + parser.suggestKeywords(['WHEN']); + } + } + | WhenClause WhenClause_EDIT + { + if (!$1.notPresent && $2.suggestThenKeywords) { + var keywords = []; + if (!$1.isDelete) { + keywords.push('DELETE'); + } + if (!$1.isInsert) { + keywords.push('INSERT VALUES'); + } + if (!$1.isUpdate) { + keywords.push('UPDATE SET'); + } + parser.suggestKeywords(keywords); + } + } + | WhenClause WhenClause 'CURSOR' + { + if (!$2.notPresent) { + parser.suggestKeywords(['WHEN']); + } + } + | WhenClause WhenClause WhenClause_EDIT + { + if (!$2.notPresent && $3.suggestThenKeywords) { + var keywords = []; + if (!$1.isDelete && !$2.isDelete) { + keywords.push('DELETE'); + } + if (!$1.isInsert && !$2.isInsert) { + keywords.push('INSERT VALUES'); + } + if (!$1.isUpdate && !$2.isUpdate) { + keywords.push('UPDATE SET'); + } + parser.suggestKeywords(keywords); + } + } + ; + +WhenClause + : 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' UpdateDeleteOrInsert -> { notPresent: !!$2, isDelete: $6.isDelete, isInsert: $6.isInsert, isUpdate: $6.isUpdate } + ; + +WhenClause_EDIT + : 'WHEN' OptionalNot 'CURSOR' + { + if (!$2) { + parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); + } else { + parser.suggestKeywords(['MATCHED']); + } + } + | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['AND', 'THEN']); + } else { + parser.suggestValueExpressionKeywords($4, [{ value: 'THEN', weight: 2 }]); + } + } + | 'WHEN' OptionalNot 'MATCHED' MatchCondition_EDIT + | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' 'CURSOR' -> { suggestThenKeywords: true } + | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' UpdateDeleteOrInsert_EDIT + ; + +OptionalMatchCondition + : + | 'AND' ValueExpression -> $2 + ; + +MatchCondition_EDIT + : 'AND' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + ; + +UpdateDeleteOrInsert + : 'UPDATE' 'SET' SetClauseList -> { isUpdate: true } + | 'DELETE' -> { isDelete: true } + | 'INSERT' 'VALUES' InsertValuesList -> { isInsert: true } + ; + +UpdateDeleteOrInsert_EDIT + : 'UPDATE' 'CURSOR' + { + parser.suggestKeywords(['SET']); + } + | 'UPDATE' 'SET' SetClauseList_EDIT + | 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + ; diff --git a/src/jison/sql/hive/sql_load.jison b/src/jison/sql/hive/sql_load.jison new file mode 100644 index 0000000..8ca41b0 --- /dev/null +++ b/src/jison/sql/hive/sql_load.jison @@ -0,0 +1,293 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : LoadStatement + | ImportStatement + | ExportStatement + ; + +DataManipulation_EDIT + : LoadStatement_EDIT + | ImportStatement_EDIT + | ExportStatement_EDIT + ; + +LoadStatement + : 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalInputFormat + { + parser.addTablePrimary($9); + } + ; + +LoadStatement_EDIT + : 'LOAD' 'CURSOR' + { + parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); + } + | 'LOAD' 'DATA' OptionalLocal 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); + } else { + parser.suggestKeywords(['INPATH']); + } + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath_EDIT OptionalOverwrite + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); + } else { + parser.suggestKeywords(['INTO TABLE']); + } + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'CURSOR' + { + parser.suggestKeywords([ 'TABLE' ]); + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalInputFormat + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalInputFormat 'CURSOR' + { + parser.addTablePrimary($9); + if (!$10 && !$11) { + parser.suggestKeywords(['INPUTFORMAT', 'PARTITION']); + } else if ($10 && !$11) { + parser.suggestKeywords(['INPUTFORMAT']); + } + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalInputFormat + { + parser.addTablePrimary($9); + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec InputFormat_EDIT + { + parser.addTablePrimary($9); + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath_EDIT OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalInputFormat + { + parser.addTablePrimary($9); + } + ; + +OptionalOverwrite + : + | 'OVERWRITE' + ; + +OptionalLocal + : + | 'LOCAL' + ; + +OptionalInputFormat + : + | InputFormat + ; + +InputFormat + : 'INPUTFORMAT' QuotedValue 'SERDE' QuotedValue + ; + +InputFormat_EDIT + : 'INPUTFORMAT' QuotedValue 'CURSOR' + { + parser.suggestKeywords(['SERDE']); + } + ; + +ImportStatement + : 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation + ; + +ImportStatement_EDIT + : 'IMPORT' 'CURSOR' OptionalTableWithPartition + { + if (!$3) { + parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); + } else if (!$3.hasExternal) { + parser.suggestKeywords(['EXTERNAL']); + } + } + | 'IMPORT' TableWithPartition 'CURSOR' + { + if ($2.suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['FROM'])); + } else { + parser.suggestKeywords(['FROM']); + } + } + | 'IMPORT' TableWithPartition_EDIT + | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath_EDIT OptionalHdfsLocation + | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath HdfsLocation_EDIT + | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['LOCATION']); + } + } + | 'IMPORT' 'CURSOR' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation + { + if (!$3) { + parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); + } else if (!$3.hasExternal) { + parser.suggestKeywords(['EXTERNAL']); + } + } +| 'IMPORT' TableWithPartition_EDIT PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation + | 'IMPORT' TableWithPartition 'CURSOR' PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation + { + if ($2.suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['FROM'])); + } + } + ; + +OptionalTableWithPartition + : + | TableWithPartition + ; + +TableWithPartition + : 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($3); + if (!$4) { + $$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; + } else { + $$ = { hasExternal: true } + } + } + | 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($2); + if (!$3) { + $$ = { suggestKeywords: ['PARTITION'] }; + } + } + ; + +TableWithPartition_EDIT + : 'EXTERNAL' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'EXTERNAL' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT + { + parser.addTablePrimary($3); + } + | 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + + | 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT + { + parser.addTablePrimary($3); + } + ; + +ExportStatement + : 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath + { + parser.addTablePrimary($3); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' + { + parser.addTablePrimary($3); + } + ; + +ExportStatement_EDIT + : 'EXPORT' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'EXPORT' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($3); + if (!$4) { + parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); + } else { + parser.suggestKeywords([ 'TO' ]); + } + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT + { + parser.addTablePrimary($3); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath_EDIT + { + parser.addTablePrimary($3); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['FOR replication()']); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['replication()']); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' PushHdfsLexerState 'TO' HdfsPath + { + parser.addTablePrimary($3); + if (!$4) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' + { + parser.addTablePrimary($3); + if (!$4) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT PushHdfsLexerState 'TO' HdfsPath + { + parser.addTablePrimary($3); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' + { + parser.addTablePrimary($3); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath_EDIT 'FOR' 'REPLICATION' '(' QuotedValue ')' + { + parser.addTablePrimary($3); + } + ; diff --git a/src/jison/sql/hive/sql_main.jison b/src/jison/sql/hive/sql_main.jison new file mode 100644 index 0000000..8cfc554 --- /dev/null +++ b/src/jison/sql/hive/sql_main.jison @@ -0,0 +1,3683 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlSyntax + : NewStatement SqlStatements EOF + ; + +SqlAutocomplete + : NewStatement SqlStatements EOF + { + return parser.yy.result; + } + | NewStatement SqlStatements_EDIT EOF + { + return parser.yy.result; + } + ; + +NewStatement + : /* empty */ + { + parser.prepareNewStatement(); + } + ; + +SqlStatements + : + | SqlStatement + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatements + ; + +SqlStatements_EDIT + : SqlStatement_EDIT + { + parser.addStatementLocation(@1); + } + | SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT + { + parser.addStatementLocation(@4); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@4); + } + ; + +SqlStatement + : DataDefinition + | DataManipulation + | QuerySpecification + ; + +SqlStatement_EDIT + : AnyCursor + { + parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); + } + | CommonTableExpression 'CURSOR' + { + parser.suggestKeywords(['INSERT', 'SELECT']); + } + | DataDefinition_EDIT + | DataManipulation_EDIT + | QuerySpecification_EDIT + | SetSpecification_EDIT + ; + +NonReservedKeyword + : 'ABORT' + | 'ADD' + | 'ADMIN' + | 'AFTER' + | 'ANALYZE' + | 'ARCHIVE' + | 'AST' + | 'AVRO' + | 'BUCKET' + | 'BUCKETS' + | 'CASCADE' + | 'CBO' + | 'CHANGE' + | 'CHECK' + | 'CLUSTERED' + | 'COLLECTION' + | 'COLUMNS' + | 'COMMENT' + | 'COMPACT' + | 'COMPACTIONS' + | 'COMPUTE' + | 'CONCATENATE' + | 'COST' + | 'CURRENT_DATE' + | 'CURRENT_TIMESTAMP' + | 'CURRENT_USER' + | 'DATA' + | 'DATABASES' + | 'DAY' + | 'DAYOFWEEK' + | 'DBPROPERTIES' + | 'DEFAULT' + | 'DEFERRED' + | 'DEFINED' + | 'DELIMITED' + | 'DEPENDENCY' + | 'DETAIL' + | 'DIRECTORY' + | 'DISABLE' + | 'DISTRIBUTED' + | 'DOUBLE_PRECISION' + | 'ENABLE' + | 'ESCAPED' + | 'EXCHANGE' + | 'EXPLAIN' + | 'EXPORT' + | 'EXPRESSION' + | 'FIELDS' + | 'FILE' + | 'FILEFORMAT' + | 'FIRST' + | 'FORMAT' + | 'FUNCTIONS' + | 'HOUR' + | 'IDXPROPERTIES' + | 'INPATH' + | 'INPUTFORMAT' + | 'ITEMS' + | 'JAR' + | 'JOINCOST' + | 'JSONFILE' + | 'KEY' + | 'KEYS' + | 'LAST' + | 'LINES' + | 'LITERAL' + | 'LOAD' + | 'LOCATION' + | 'LOCKS' + | 'MATCHED' + | 'MATERIALIZED' + | 'MERGE' + | 'METADATA' + | 'MINUTE' + | 'MONTH' + | 'MSCK' + | 'NO_DROP' + | 'NORELY' + | 'NOSCAN' + | 'NOVALIDATE' + | 'OFFLINE' + | 'ONLY' + | 'OPERATOR' + | 'OPTION' + | 'ORC' + | 'OUTPUTFORMAT' + | 'OVERWRITE' + | 'OVERWRITE_DIRECTORY' + | 'OWNER' + | 'PARQUET' + | 'PARTITIONED' + | 'PARTITIONS' + | 'PERCENT' + | 'PRIVILEGES' + | 'PURGE' + | 'QUARTER' + | 'RCFILE' + | 'REBUILD' + | 'RECOVER' + | 'RELOAD' + | 'RELY' + | 'RENAME' + | 'REPAIR' + | 'REPLACE' + | 'REPLICATION' + | 'RESTRICT' + | 'REWRITE' + | 'ROLE' + | 'ROLES' + | 'SCHEMAS' + | 'SECOND' + | 'SEQUENCEFILE' + | 'SERDE' + | 'SERDEPROPERTIES' + | 'SETS' + | 'SHOW' + | 'SKEWED_LOCATION' + | 'SKEWED' + | 'SORTED' + | 'STATISTICS' + | 'STORED' + | 'STORED_AS_DIRECTORIES' + | 'STRING' + | 'STRUCT' + | 'SUMMARY' + | 'TABLES' + | 'TBLPROPERTIES' + | 'TEMPORARY' + | 'TERMINATED' + | 'TEXTFILE' + | 'TINYINT' + | 'TOUCH' + | 'TRANSACTIONAL' + | 'TRANSACTIONS' + | 'UNARCHIVE' + | 'UNIONTYPE' + | 'UNIQUE' + | 'USE' + | 'VECTORIZATION' + | 'VIEW' + | 'WAIT' + | 'WEEK' + | 'YEAR' +// | 'ASC' // These cause conflicts, we could use a separate lexer state for DESCRIBE, ALTER, GRANT, REVOKE and SHOW +// | 'CLUSTER' +// | 'DESC' +// | 'DISTRIBUTE' +// | 'FORMATTED' +// | 'INDEX' +// | 'INDEXES' +// | 'LOCK' +// | 'OVER' +// | 'SCHEMA' +// | 'SHOW_DATABASE' +// | 'SORT' +// | 'TABLESAMPLE' +// | 'WINDOW' +// | 'WITH' + ; + +RegularIdentifier + : 'REGULAR_IDENTIFIER' + | 'VARIABLE_REFERENCE' + | NonReservedKeyword + ; + +// This is a work-around for error handling when a statement starts with some token that the parser can understand but +// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) +NonStartingToken + : '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '<' + | '=' + | '>' + | '[' + | ']' + | 'ADMIN' + | 'ALL' + | 'ANALYTIC' + | 'AND' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'AS' + | 'ASC' + | 'AUTHORIZATION' + | 'AVG' + | 'AVRO' + | 'BACKTICK' + | 'BETWEEN' + | 'BIGINT' + | 'BINARY' + | 'BOOLEAN' + | 'BUCKET' + | 'BUCKETS' + | 'BY' + | 'CACHE' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'CLUSTER' + | 'CLUSTERED' + | 'COLLECT_LIST' + | 'COLLECT_SET' + | 'COLLECTION' + | 'COLUMNS' + | 'COMMENT' + | 'COMPACTIONS' + | 'COMPARISON_OPERATOR' + | 'COMPUTE' + | 'CONF' + | 'CONSTRAINT' + | 'CORR' + | 'COUNT' + | 'COVAR_POP' + | 'COVAR_SAMP' + | 'CROSS' + | 'CUBE' + | 'CURRENT' + | 'DATA' + | 'DATABASE' + | 'DATABASES' + | 'DATE' + | 'DAY' + | 'DAYOFWEEK' + | 'DBPROPERTIES' + | 'DECIMAL' + | 'DEFERRED' + | 'DEFINED' + | 'DELIMITED' + | 'DEPENDENCY' + | 'DESC' + | 'DIRECTORY' + | 'DISTINCT' + | 'DISTRIBUTE' + | 'DISTRIBUTED' + | 'DOUBLE' + | 'DOUBLE_PRECISION' + | 'DOUBLE_QUOTE' + | 'ELSE' + | 'END' + | 'ESCAPED' + | 'EXISTS' + | 'EXTENDED' + | 'EXTERNAL' + | 'FALSE' + | 'FIELDS' + | 'FILE' + | 'FLOAT' + | 'FOLLOWING' + | 'FOR' + | 'FOREIGN' + | 'FORMAT' + | 'FORMATTED' + | 'FROM' + | 'FULL' + | 'FUNCTION' + | 'FUNCTIONS' + | 'GRANT' + | 'GROUP' + | 'GROUPING' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'HISTOGRAM_NUMERIC' + | 'HOUR' + | 'IDXPROPERTIES' + | 'IF' + | 'IN' + | 'INDEX' + | 'INDEXES' + | 'INNER' + | 'INPATH' + | 'INPUTFORMAT' + | 'INT' + | 'INTEGER' + | 'INTO' + | 'IS' + | 'ITEMS' + | 'JAR' + | 'JOIN' + | 'JSONFILE' + | 'KEY' + | 'KEYS' + | 'LAST' + | 'LATERAL' + | 'LEFT' + | 'LIKE' + | 'LIMIT' + | 'LINES' + | 'LOCAL' + | 'LOCATION' + | 'LOCK' + | 'LOCKS' + | 'MACRO' + | 'MAP' + | 'MATCHED' + | 'MAX' + | 'METADATA' + | 'MIN' + | 'MINUTE' + | 'MONTH' + | 'NONE' + | 'NORELY' + | 'NOSCAN' + | 'NOT' + | 'NOVALIDATE' + | 'NTILE' + | 'NULL' + | 'NULLS' + | 'OF' + | 'ON' + | 'OPTION' + | 'OR' + | 'ORC' + | 'ORDER' + | 'OUT' + | 'OUTER' + | 'OUTPUTFORMAT' + | 'OVER' + | 'OVERWRITE' + | 'OWNER' + | 'PARQUET' + | 'PARTITION' + | 'PARTITIONED' + | 'PARTITIONS' + | 'PERCENT' + | 'PERCENTILE' + | 'PERCENTILE_APPROX' + | 'PRECEDING' + | 'PRIMARY' + | 'PRIVILEGES' + | 'PURGE' + | 'QUARTER' + | 'RANGE' + | 'RCFILE' + | 'REBUILD' + | 'REFERENCES' + | 'REGEXP' + | 'REGULAR_IDENTIFIER' + | 'RELY' + | 'REPAIR' + | 'REPLICATION' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROLES' + | 'ROLLUP' + | 'ROW' + | 'ROWS' + | 'SCHEMA' + | 'SCHEMAS' + | 'SECOND' + | 'SEMI' + | 'SEQUENCEFILE' + | 'SERDE' + | 'SERDEPROPERTIES' + | 'SET' + | 'SETS' + | 'SHOW_DATABASE' + | 'SINGLE_QUOTE' + | 'SKEWED' + | 'SMALLINT' + | 'SORTED' + | 'STATISTICS' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STORED' + | 'STORED_AS_DIRECTORIES' + | 'STRING' + | 'STRUCT' + | 'SUM' + | 'TABLE' + | 'TABLES' + | 'TABLESAMPLE' + | 'TBLPROPERTIES' + | 'TEMPORARY' + | 'TERMINATED' + | 'TEXTFILE' + | 'THEN' + | 'TIMESTAMP' + | 'TINYINT' + | 'TRANSACTIONAL' + | 'TRANSACTIONS' + | 'TRUE' + | 'UNION' + | 'UNIONTYPE' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'USER' + | 'USING' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'VIEW' + | 'VIEWS' + | 'WAIT' + | 'WEEK' + | 'WHEN' + | 'WHERE' + | 'WINDOW' + | 'YEAR' + | '~' + ; + +DataDefinition + : DescribeStatement + ; + +DataDefinition_EDIT + : DescribeStatement_EDIT + ; + +// ===================================== Commonly used constructs ===================================== + +Commas + : ',' + | Commas ',' + ; + +AnyCursor + : 'CURSOR' + | 'PARTIAL_CURSOR' + ; + +FromOrIn + : 'FROM' + | 'IN' + ; + +DatabaseOrSchema + : 'DATABASE' + | 'SCHEMA' + ; + +IndexOrIndexes + : 'INDEX' + | 'INDEXES' + ; + +DatabasesOrSchemas + : 'DATABASES' + | 'SCHEMAS' + ; + +RoleOrUser + : 'ROLE' + | 'USER' + ; + +SingleQuotedValue + : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 + | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' + ; + +SingleQuotedValue_EDIT + : 'SINGLE_QUOTE' 'PARTIAL_VALUE' + ; + +DoubleQuotedValue + : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 + | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' + ; + +DoubleQuotedValue_EDIT + : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' + ; + +QuotedValue + : SingleQuotedValue + | DoubleQuotedValue + ; + +QuotedValue_EDIT + : SingleQuotedValue_EDIT + | DoubleQuotedValue_EDIT + ; + +OptionalExtended + : + | 'EXTENDED' + ; + +OptionalExtendedOrFormatted + : + | 'EXTENDED' + | 'FORMATTED' + ; + +OptionalExternal + : + | 'EXTERNAL' + ; + +OptionallyFormattedIndex + : 'FORMATTED' IndexOrIndexes + | IndexOrIndexes + ; + +OptionallyFormattedIndex_EDIT + : 'FORMATTED' 'CURSOR' + { + parser.suggestKeywords(['INDEX', 'INDEXES']); + } + | 'CURSOR' IndexOrIndexes + { + parser.suggestKeywords(['FORMATTED']); + } + ; + +OptionalFromDatabase + : + | FromOrIn DatabaseIdentifier + ; + +OptionalFromDatabase_EDIT + : FromOrIn DatabaseIdentifier_EDIT + ; + +OptionalCascade + : + | 'CASCADE' + ; + +OptionalCascadeOrRestrict + : + | 'CASCADE' + | 'RESTRICT' + ; + +OptionalTemporary + : + | 'TEMPORARY' + ; + +OptionalTransactional + : + | 'TRANSACTIONAL' + ; + +OptionalIfExists + : + | 'IF' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalIfNotExists + : + | 'IF' 'NOT' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfNotExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['NOT EXISTS']); + } + | 'IF' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalInDatabase + : + | 'IN' DatabaseIdentifier + | 'IN' DatabaseIdentifier_EDIT + ; + +OptionalPartitionSpec + : + | PartitionSpec + ; + +OptionalPartitionSpec_EDIT + : PartitionSpec_EDIT + ; + +PartitionSpec + : 'PARTITION' '(' PartitionSpecList ')' + ; + +PartitionSpec_EDIT + : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +RangePartitionSpec + : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + ; + +RangePartitionSpec_EDIT + : UnsignedValueSpecification 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + ; + +RangePartitionComparisonOperator + : 'COMPARISON_OPERATOR' + | '=' + | '<' + | '>' + ; + +ConfigurationName + : RegularIdentifier + | 'CURSOR' + | ConfigurationName '.' RegularIdentifier + | ConfigurationName '.' 'PARTIAL_CURSOR' + ; + +PartialBacktickedOrAnyCursor + : AnyCursor + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrCursor + : 'CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrPartialCursor + : 'PARTIAL_CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedIdentifier + : 'BACKTICK' 'PARTIAL_VALUE' + ; + +RightParenthesisOrError + : ')' + | error + ; + +OptionalParenthesizedColumnList + : + | ParenthesizedColumnList + ; + +OptionalParenthesizedColumnList_EDIT + : ParenthesizedColumnList_EDIT + ; + +ParenthesizedColumnList + : '(' ColumnList ')' + ; + +ParenthesizedColumnList_EDIT + : '(' ColumnList_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +ColumnList + : ColumnIdentifier + | ColumnList ',' ColumnIdentifier + ; + +ColumnList_EDIT + : ColumnIdentifier_EDIT + | ColumnList ',' AnyCursor + { + parser.suggestColumns(); + } + | ColumnList ',' ColumnIdentifier_EDIT + | ColumnIdentifier_EDIT ',' ColumnList + | ColumnList ',' ColumnIdentifier_EDIT ',' ColumnList + | ColumnList ',' AnyCursor ',' ColumnList + { + parser.suggestColumns(); + } + ; + +ParenthesizedSimpleValueList + : '(' SimpleValueList ')' + ; + +SimpleValueList + : UnsignedValueSpecification + | SimpleValueList ',' UnsignedValueSpecification + ; + +SchemaQualifiedTableIdentifier + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +SchemaQualifiedTableIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + +SchemaQualifiedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] + ; + +SchemaQualifiedIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + ; + +DatabaseIdentifier + : RegularOrBacktickedIdentifier + ; + +DatabaseIdentifier_EDIT + : PartialBacktickedOrCursor + { + parser.suggestDatabases(); + } + ; + +PartitionSpecList + : PartitionExpression + | PartitionSpecList ',' PartitionExpression + ; + +PartitionSpecList_EDIT + : PartitionExpression_EDIT + | PartitionSpecList ',' PartitionExpression_EDIT + | PartitionExpression_EDIT ',' PartitionSpecList + | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList + ; + +PartitionExpression + : ColumnIdentifier '=' ValueExpression + | ColumnIdentifier // Partial partition specs are allowed in some cases + ; + +PartitionExpression_EDIT + : ColumnIdentifier '=' ValueExpression_EDIT + | ColumnIdentifier '=' AnyCursor + { + parser.valueExpressionSuggest(); + } + | PartialBacktickedIdentifier '=' ValueExpression + { + parser.suggestColumns(); + } + | AnyCursor + { + parser.suggestColumns(); + } + ; + +OptionalHdfsLocation + : + | HdfsLocation + ; + +HdfsLocation + : 'LOCATION' HdfsPath + ; + +HdfsLocation_EDIT + : 'LOCATION' HdfsPath_EDIT + ; + +RegularOrBacktickedIdentifier + : RegularIdentifier + | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 + | 'BACKTICK' 'BACKTICK' -> '' + ; + +// TODO: Same as SchemaQualifiedTableIdentifier? +RegularOrBackTickedSchemaQualifiedName + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +RegularOrBackTickedSchemaQualifiedName_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + + +LocalOrSchemaQualifiedName + : RegularOrBackTickedSchemaQualifiedName + | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } + ; + +LocalOrSchemaQualifiedName_EDIT + : RegularOrBackTickedSchemaQualifiedName_EDIT + | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier + ; + +ColumnReference + : BasicIdentifierChain + { + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnReference_EDIT + : BasicIdentifierChain_EDIT + ; + +BasicIdentifierChain + : ColumnIdentifier + { + $$ = [ $1.identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); + } + | BasicIdentifierChain '.' ColumnIdentifier + { + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $1.push($3.identifier); + parser.addUnknownLocation($3.location, $1.concat()); + } + ; + +// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) +BasicIdentifierChain_EDIT + : ColumnIdentifier_EDIT + { + if ($1.insideKey) { + parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | BasicIdentifierChain '.' ColumnIdentifier_EDIT + { + if ($3.insideKey) { + parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | BasicIdentifierChain '.' ColumnIdentifier_EDIT '.' BasicIdentifierChain + | ColumnIdentifier_EDIT '.' BasicIdentifierChain + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + ; + +DerivedColumnChain + : ColumnIdentifier -> [ $1.identifier ] + | DerivedColumnChain '.' ColumnIdentifier + { + $1.push($3.identifier); + } + ; + +DerivedColumnChain_EDIT + : ColumnIdentifier_EDIT + { + if ($1.insideKey) { + parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | DerivedColumnChain '.' ColumnIdentifier_EDIT + { + if ($3.insideKey) { + parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | DerivedColumnChain '.' ColumnIdentifier_EDIT '.' DerivedColumnChain + { + if ($3.insideKey) { + parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | ColumnIdentifier_EDIT '.' DerivedColumnChain + { + if ($1.insideKey) { + parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns(); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns({ identifierChain: $1 }); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns({ identifierChain: $1 }); + } + | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns(); + } + ; + +ColumnIdentifier + : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } + | RegularOrBacktickedIdentifier '[' ValueExpression ']' -> { identifier: { name: $1, keySet: true }, location: @1 } + | RegularOrBacktickedIdentifier '[' ']' -> { identifier: { name: $1, keySet: true }, location: @1 } + ; + +ColumnIdentifier_EDIT + : RegularOrBacktickedIdentifier '[' AnyCursor RightSquareBracketOrError -> { identifier: { name: $1 }, insideKey: true } + | RegularOrBacktickedIdentifier '[' ValueExpression_EDIT RightSquareBracketOrError -> { identifier: { name: $1 }} + ; + +PartialBacktickedIdentifierOrPartialCursor + : PartialBacktickedIdentifier + | 'PARTIAL_CURSOR' + ; + +RightSquareBracketOrError + : ']' + | error + ; + +// TODO: Support | DECIMAL(precision, scale) -- (Note: Available in Hive 0.13.0 and later) +PrimitiveType + : 'BIGINT' + | 'BINARY' + | 'BOOLEAN' + | 'CHAR' OptionalTypeLength + | 'DATE' + | 'DECIMAL' OptionalTypePrecision + | 'DOUBLE' + | 'DOUBLE_PRECISION' + | 'FLOAT' + | 'INT' + | 'INTEGER' + | 'SMALLINT' + | 'STRING' + | 'TIMESTAMP' + | 'TINYINT' + | 'VARCHAR' OptionalTypeLength + ; + +OptionalTypeLength + : + | '(' 'UNSIGNED_INTEGER' ')' + ; + +OptionalTypePrecision + : + | '(' 'UNSIGNED_INTEGER' ')' + | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' + ; + +// ===================================== DESCRIBE statement ===================================== + +DescribeStatement + : 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec + { + parser.addTablePrimary($3); + parser.addColumnLocation(@4, $4); + } + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($3); + } + | 'DESCRIBE' DatabaseOrSchema OptionalExtended DatabaseIdentifier + { + parser.addDatabaseLocation(@4, [{ name: $4 }]); + } + | 'DESCRIBE' 'FUNCTION' OptionalExtended RegularIdentifier + ; + +DescribeStatement_EDIT + : 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain_EDIT OptionalPartitionSpec + { + parser.addTablePrimary($3); + } + | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec + { + if (!$2) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + } + | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + if (!$2) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + } + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier 'CURSOR' OptionalPartitionSpec + { + parser.addTablePrimary($3); + parser.suggestColumns(); + if (!$5) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain 'CURSOR' OptionalPartitionSpec + { + if (!$6) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec_EDIT + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + + | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' + { + if (!$2) { + parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'DESCRIBE' DatabaseOrSchema OptionalExtended DatabaseIdentifier_EDIT + { + if (!$3) { + parser.suggestKeywords(['EXTENDED']); + } + } + | 'DESCRIBE' DatabaseOrSchema OptionalExtended 'CURSOR' DatabaseIdentifier + { + if (!$3) { + parser.suggestKeywords(['EXTENDED']); + } + } + | 'DESCRIBE' 'FUNCTION' OptionalExtended 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['EXTENDED']); + } + } + | 'DESCRIBE' 'FUNCTION' OptionalExtended 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['EXTENDED']); + } + } + ; + +// ===================================== SELECT statement ===================================== + +QuerySpecification + : SelectStatement OptionalUnions -> $1 + | CommonTableExpression SelectStatement OptionalUnions + | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 + ; + +QuerySpecification_EDIT + : SelectStatement_EDIT OptionalUnions + | SelectStatement OptionalUnions_EDIT + | CommonTableExpression '(' QuerySpecification_EDIT ')' + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement_EDIT OptionalUnions + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement OptionalUnions_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT + | CommonTableExpression_EDIT '(' QuerySpecification ')' + | CommonTableExpression_EDIT SelectStatement OptionalUnions + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3 }; + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3, tableExpression: $4 } + } + ; + +OptionalUnions + : + | Unions + ; + +OptionalUnions_EDIT + : Unions_EDIT + ; + +Unions + : UnionClause + | Unions UnionClause + ; + +Unions_EDIT + : UnionClause_EDIT + | Unions UnionClause_EDIT + | UnionClause_EDIT Unions + | Unions UnionClause_EDIT Unions + ; + +UnionClause + : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement + ; + +UnionClause_EDIT + : 'UNION' NewStatement 'CURSOR' + { + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + } + | 'UNION' NewStatement 'CURSOR' SelectStatement + { + parser.suggestKeywords(['ALL', 'DISTINCT']); + } + | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + if ($3.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($3); + } + if ($3.suggestFunctions) { + parser.suggestFunctions(); + } + if ($3.suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($3.suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($3.suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.selectListNoTableSuggest($3, $2); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + } + ; + +CommonTableExpression + : 'WITH' WithQueries -> $2 + ; + +CommonTableExpression_EDIT + : 'WITH' WithQueries_EDIT + ; + +WithQueries + : WithQuery -> [$1] + | WithQueries ',' WithQuery -> $1.concat([$3]) + ; + +WithQueries_EDIT + : WithQuery_EDIT + | WithQueries ',' WithQuery_EDIT + { + parser.addCommonTableExpressions($1); + } + | WithQuery_EDIT ',' WithQueries + | WithQueries ',' WithQuery_EDIT ',' WithQueries + { + parser.addCommonTableExpressions($1); + } + ; + +WithQuery + : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' + { + parser.addCteAliasLocation(@1, $1); + $4.alias = $1; + $$ = $4; + } + ; + +WithQuery_EDIT + : RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError + ; + +OptionalAllOrDistinct + : + | 'ALL' + | 'DISTINCT' + ; + +TableExpression + : FromClause OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + ; + +TableExpression_EDIT + : FromClause_EDIT OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins + { + var keywords = []; + + parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + + if ($1) { + if (!$1.hasLateralViews && typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); + } + if ($1.tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); + } + if ($1.tableReferenceList.suggestJoins) { + parser.suggestJoins($1.tableReferenceList.suggestJoins); + } + if (!$1.hasLateralViews && $1.tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { + keyword.weight = 1.1; + } + }); + + if (!$1.hasLateralViews && $1.tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($1.tableReferenceList); + } + } + } + + if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['CROSS', 'FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'LEFT SEMI', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($3.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); + } + + if ($3.suggestFilters) { + parser.suggestFilters($3.suggestFilters); + } + if ($3.suggestGroupBys) { + parser.suggestGroupBys($3.suggestGroupBys); + } + if ($3.suggestOrderBys) { + parser.suggestOrderBys($3.suggestOrderBys); + } + + if ($3.empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'CROSS JOIN', weight: 1 }, + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'LEFT SEMI JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + } + | FromClause OptionalSelectConditions_EDIT OptionalJoins + { + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$2) { + parser.addClauseLocation('whereClause', @1); + parser.addClauseLocation('limitClause', @1); + return; + } + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + var keywords = []; + + if ($2.suggestColRefKeywords) { + parser.suggestColRefKeywords($2.suggestColRefKeywords); + parser.addColRefIfExists($2); + } + + if ($2.suggestKeywords && $2.suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); + } + + if ($2.cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + } + ; + +OptionalJoins + : + | Joins + | Joins_INVALID + ; + +FromClause + : 'FROM' TableReferenceList OptionalLateralViews + { + $$ = { tableReferenceList : $2, suggestKeywords: ['LATERAL VIEW'] } + if ($3) { + parser.yy.lateralViews = $3.lateralViews; + $$.hasLateralViews = true; + if ($3.suggestKeywords) { + $$.suggestKeywords = $$.suggestKeywords.concat($3.suggestKeywords); + } + } + } + ; + +FromClause_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReferenceList_EDIT OptionalLateralViews + { + if ($3) { + parser.yy.lateralViews = $3.lateralViews; + } + } + | 'FROM' TableReferenceList OptionalLateralViews_EDIT + ; + +OptionalSelectConditions + : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$1, $2, $3, $4, $5, $6, $6, $7], + [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true, true, !$5, true]); + + if (keywords.length > 0) { + $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 }; + } else { + $$ = {}; + } + + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($6, @6, $5, @5, $4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $7 ? @7 : undefined; + + if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7) { + $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7) { + $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$5 && !$6 && !$7) { + $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + } + | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + } + | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT + ; + +OptionalSelectConditions_EDIT + : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$3, $4, $5, $6, $7, $7, $8], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true, !$6, true]); + if ($1.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); + } + $$ = parser.getValueExpressionKeywords($1, keywords); + $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6 && !$7 && !$8; + if ($1.columnReference) { + $$.columnReference = $1.columnReference; + } + if (!$3) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$3 && !$4 && !$5 && !$6) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $4, @4, $3, @3, $1, @1); + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$4, $5, $6, $7, $7, $8], + [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, !$6, true]); + if ($2.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); + } + if ($2.valueExpression) { + $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); + if ($2.valueExpression.columnReference) { + $$.columnReference = $2.valueExpression.columnReference; + } + } else { + $$ = { suggestKeywords: keywords }; + } + $$.cursorAtEnd = !$4 && !$5 && !$6 && !$7 && !$8; + if (!$4 && !$5 && !$6) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $4, @4, $2, @2); + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$5, $6, $7, $7, $8], + [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, !$6, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 && !$7 && !$8 }; + if (!$5 && !$6) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $3, @3); + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause 'CURSOR' OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$6, $7, $8], + [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], + [true, true, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 && !$7 && !$8 }; + if (!$6) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $4, @4); + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause 'CURSOR' OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$7, $8], + [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], + [true, true]); + if ($5.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 5)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$7 && !$8 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($7, @7, $5, @5); + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy 'CURSOR' OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR([$8], [{ value: 'LIMIT', weight: 3 }], [true]); + if ($6.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($6.suggestKeywords, 4)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$8 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = @6; + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause 'CURSOR' + { + $$ = { suggestKeywords: [], cursorAtEnd: true }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($6, @6, $5, @5, $4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $7 ? @7 : undefined; + } + ; + +OptionalWhereClause + : + | WhereClause + ; + +WhereClause + : 'WHERE' SearchCondition -> $2 + ; + +WhereClause_EDIT + : 'WHERE' SearchCondition_EDIT + { + if ($2.suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'WHERE' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OptionalGroupByClause + : + | GroupByClause + ; + +GroupByClause + : 'GROUP' 'BY' GroupByColumnList OptionalGroupingSetsCubeOrRollup + { + $$ = { valueExpression: $4 ? false : $3 }; + if (!$4) { + $$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; + } + } + ; + +GroupByClause_EDIT + : 'GROUP' 'BY' GroupByColumnList_EDIT OptionalGroupingSetsCubeOrRollup + { + parser.suggestSelectListAliases(); + } + | 'GROUP' 'BY' 'CURSOR' OptionalGroupingSetsCubeOrRollup + { + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'BY' GroupByColumnList OptionalGroupingSetsCubeOrRollup_EDIT + ; + +OptionalGroupingSetsCubeOrRollup + : + | GroupingSets + | 'WITH' 'CUBE' + | 'WITH' 'ROLLUP' + ; + +OptionalGroupingSetsCubeOrRollup_EDIT + : GroupingSets_EDIT + | 'WITH' 'CURSOR' + { + parser.suggestKeywords(['CUBE', 'ROLLUP']); + } + ; + +GroupingSets + : 'GROUPING' 'SETS' '(' ColumnGroupingSets ')' + ; + +GroupingSets_EDIT + : 'GROUPING' 'CURSOR' + { + parser.suggestKeywords(['SETS']); + } + | 'GROUPING' 'SETS' '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSets + : + | ColumnReference + | ColumnGroupingSets ',' ColumnGroupingSets + | '(' ColumnGroupingSets ')' + ; + +ColumnGroupingSets_EDIT + : ColumnGroupingSet_EDIT + | ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSet_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + ; + +GroupByColumnList + : ValueExpression + | GroupByColumnList ',' ValueExpression -> $3 + ; + +GroupByColumnList_EDIT + : ValueExpression_EDIT + | 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + } + | 'CURSOR' ',' GroupByColumnList + { + parser.valueExpressionSuggest(); + } + | ValueExpression_EDIT ',' GroupByColumnList + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList + ; + +GroupByColumnListPartTwo_EDIT + : ValueExpression_EDIT + | AnyCursor ValueExpression + { + parser.valueExpressionSuggest(); + } + | AnyCursor + { + parser.valueExpressionSuggest(); + } + ; + +OptionalOrderByClause + : + | OrderByClause + ; + +OrderByClause + : 'ORDER' 'BY' OrderByColumnList -> $3 + ; + +OrderByClause_EDIT + : 'ORDER' 'BY' OrderByColumnList_EDIT + { + if ($3.emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'ORDER' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OrderByColumnList + : OrderByIdentifier + | OrderByColumnList ',' OrderByIdentifier -> $3 + ; + +OrderByColumnList_EDIT + : OrderByIdentifier_EDIT + | 'CURSOR' OrderByIdentifier + { + $$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } + ; + +OrderByIdentifier + : ValueExpression OptionalAscOrDesc OptionalNullsFirstOrLast + { + if ($2.suggestKeywords && $3.suggestKeywords) { + $$ = parser.mergeSuggestKeywords($2, $3); + } else { + $$ = parser.mergeSuggestKeywords($3); + } + } + ; + +OrderByIdentifier_EDIT + : ValueExpression_EDIT OptionalAscOrDesc OptionalNullsFirstOrLast + { + parser.suggestSelectListAliases(); + } + | AnyCursor OptionalAscOrDesc OptionalNullsFirstOrLast + { + $$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | ValueExpression OptionalAscOrDesc NullsFirstOrLast_EDIT + ; + +OptionalAscOrDesc + : -> { suggestKeywords: ['ASC', 'DESC'] }; + | 'ASC' + | 'DESC' + ; + +OptionalNullsFirstOrLast + : -> { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] } + | NullsFirstOrLast + ; + +NullsFirstOrLast + : 'NULLS' 'FIRST' + | 'NULLS' 'LAST' + ; + +NullsFirstOrLast_EDIT + : 'NULLS' 'CURSOR' + { + parser.suggestKeywords(['FIRST', 'LAST']); + } + ; + +OptionalClusterOrDistributeBy + : + | ClusterOrDistributeBy + ; + +ClusterOrDistributeBy + : ClusterByClause + | DistributeByClause -> { suggestKeywords: ['SORT BY'] } + | DistributeByClause SortByClause + | SortByClause + ; + +ClusterOrDistributeBy_EDIT + : ClusterByClause_EDIT + | DistributeByClause_EDIT + | DistributeByClause SortByClause_EDIT + | DistributeByClause_EDIT SortByClause + | SortByClause_EDIT + ; + +ClusterByClause + : 'CLUSTER' 'BY' ColumnList + ; + +ClusterByClause_EDIT + : 'CLUSTER' 'CURSOR' + { + suggestKeywords: ['BY']; + } + | 'CLUSTER' 'BY' 'CURSOR' + { + parser.suggestColumns(); + parser.suggestSelectListAliases(); + } + | 'CLUSTER' 'BY' ColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + ; + +DistributeByClause + : 'DISTRIBUTE' 'BY' ColumnList + ; + +DistributeByClause_EDIT + : 'DISTRIBUTE' 'CURSOR' + { + suggestKeywords: ['BY']; + } + | 'DISTRIBUTE' 'BY' 'CURSOR' + { + parser.suggestColumns(); + parser.suggestSelectListAliases(); + } + | 'DISTRIBUTE' 'BY' ColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + ; + +SortByClause + : 'SORT' 'BY' SortByList -> $3 + ; + +SortByClause_EDIT + : 'SORT' 'CURSOR' + { + suggestKeywords: ['BY']; + } + | 'SORT' 'BY' SortByList_EDIT + { + parser.suggestSelectListAliases(); + } + ; + +SortByList + : SortByIdentifier + | SortByList ',' SortByIdentifier -> $3 + ; + +SortByList_EDIT + : SortByIdentifier_EDIT + | SortByIdentifier_EDIT ',' SortByList + | SortByList ',' SortByIdentifier_EDIT + | SortByList ',' SortByIdentifier_EDIT ',' SortByList + ; + +SortByIdentifier + : ColumnIdentifier OptionalAscOrDesc + { + parser.addColumnLocation($1.location, [ $1.identifier ]); + $$ = $2; + } + ; + +SortByIdentifier_EDIT + : ColumnIdentifier_EDIT OptionalAscOrDesc + | AnyCursor OptionalAscOrDesc + { + parser.suggestColumns(); + } + ; + +OptionalLimitClause + : + | LimitClause + ; + +LimitClause + : 'LIMIT' UnsignedNumericLiteral + | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral + | 'LIMIT' 'VARIABLE_REFERENCE' + | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' + ; + +LimitClause_EDIT + : 'LIMIT' 'CURSOR' + ; + +SearchCondition + : ValueExpression + ; + +SearchCondition_EDIT + : ValueExpression_EDIT + ; + +ValueExpression + : NonParenthesizedValueExpressionPrimary + ; + +ValueExpression_EDIT + : NonParenthesizedValueExpressionPrimary_EDIT + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpressionList + : ValueExpression + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression + { + $3.position = $1.position + 1; + $$ = $3; + } + ; + +ValueExpressionList_EDIT + : ValueExpression_EDIT + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT + { + $1.position += 1; + } + | ValueExpression_EDIT ',' ValueExpressionList + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList + { + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList 'CURSOR' ',' ValueExpressionList + { + parser.suggestValueExpressionKeywords($1); + } + | AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | AnyCursor ',' + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | ',' AnyCursor + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + | ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + ; + +InValueList + : NonParenthesizedValueExpressionPrimary + | InValueList ',' NonParenthesizedValueExpressionPrimary + ; + +NonParenthesizedValueExpressionPrimary + : UnsignedValueSpecification + | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart + { + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.expression) { + $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } + } else { + $$ = { function: fn, types: parser.findReturnTypes(fn) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | UserDefinedFunction + | 'NULL' -> { types: [ 'NULL' ] } + ; + +NonParenthesizedValueExpressionPrimary_EDIT + : UnsignedValueSpecification_EDIT + | ColumnOrArbitraryFunctionRef_EDIT + { + if ($1.suggestKeywords) { + $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; + } else { + $$ = { types: ['COLREF'], columnReference: $1 }; + } + } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT + { + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.position) { + parser.applyArgumentTypesToSuggestions(fn, $2.position); + } + $$ = { types: parser.findReturnTypes(fn) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | UserDefinedFunction_EDIT + ; + +ColumnOrArbitraryFunctionRef + : BasicIdentifierChain + { + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; + $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnOrArbitraryFunctionRef_EDIT + : BasicIdentifierChain_EDIT + ; + +SignedInteger + : UnsignedNumericLiteral + | '-' UnsignedNumericLiteral + | '+' UnsignedNumericLiteral + ; + +UnsignedValueSpecification + : UnsignedLiteral + ; + +UnsignedValueSpecification_EDIT + : UnsignedLiteral_EDIT + { + parser.suggestValues($1); + } + ; + +UnsignedLiteral + : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } + | GeneralLiteral + ; + +UnsignedLiteral_EDIT + : GeneralLiteral_EDIT + ; + +UnsignedNumericLiteral + : ExactNumericLiteral + | ApproximateNumericLiteral + ; + +ExactNumericLiteral + : 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' -> $1 + $2 + | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 + | '.' 'UNSIGNED_INTEGER' -> $1 + $2 + ; + +ApproximateNumericLiteral + : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + ; + +GeneralLiteral + : SingleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | DoubleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | TruthValue -> { types: [ 'BOOLEAN' ] } + ; + +GeneralLiteral_EDIT + : SingleQuotedValue_EDIT + { + $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + } + | DoubleQuotedValue_EDIT + { + $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + } + ; + +TruthValue + : 'TRUE' + | 'FALSE' + ; + +OptionalNot + : + | 'NOT' + ; + +SelectSpecification + : ValueExpression OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + $$ = { valueExpression: $1, alias: $2.alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); + } else { + $$ = { valueExpression: $1 } + } + } + | '*' + { + parser.addAsteriskLocation(@1, [{ asterisk: true }]); + $$ = { asterisk: true } + } + ; + +SelectSpecification_EDIT + : ValueExpression_EDIT OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + } + } + + | AnyCursor 'AS' RegularOrBacktickedIdentifier + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(@3, $3, @1); + $$ = { suggestAggregateFunctions: true }; + } + | ValueExpression OptionalCorrelationName_EDIT -> $2 + ; + +SelectList + : SelectSpecification -> [ $1 ] + | SelectList ',' SelectSpecification + { + $1.push($3); + } + ; + +SelectList_EDIT + : SelectSpecification_EDIT + | 'CURSOR' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | 'CURSOR' ',' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectSpecification_EDIT ',' SelectList + | SelectList 'CURSOR' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList 'CURSOR' ',' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList ',' AnyCursor + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' SelectSpecification_EDIT -> $3 + | SelectList ',' AnyCursor SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' AnyCursor ',' + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' -> $3 + | SelectList ',' AnyCursor ',' SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 + ; + +TableReferenceList + : TableReference + | TableReferenceList ',' TableReference -> $3 + ; + +TableReferenceList_EDIT + : TableReference_EDIT + | TableReference_EDIT ',' TableReference + | TableReferenceList ',' TableReference_EDIT + | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList + | TableReferenceList ',' AnyCursor + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TableReference + : TablePrimaryOrJoinedTable + ; + +TableReference_EDIT + : TablePrimaryOrJoinedTable_EDIT + ; + +TablePrimaryOrJoinedTable + : TablePrimary + { + $$ = $1; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + $$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + } + | JoinedTable + ; + +TablePrimaryOrJoinedTable_EDIT + : TablePrimary_EDIT + | JoinedTable_EDIT + ; + +JoinedTable + : TablePrimary Joins -> $2 + ; + +JoinedTable_EDIT + : TablePrimary Joins_EDIT + | TablePrimary_EDIT Joins + ; + +Joins + : JoinType TablePrimary OptionalJoinCondition + { + if ($3 && $3.valueExpression) { + $$ = $3.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($3.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($3.suggestKeywords) { + $$.suggestKeywords = $3.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + | Joins JoinType TablePrimary OptionalJoinCondition + { + if ($4 && $4.valueExpression) { + $$ = $4.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($4.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($4.suggestKeywords) { + $$.suggestKeywords = $4.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + ; + +Joins_INVALID + : JoinType -> { joinType: $1 } + | JoinType Joins -> { joinType: $1 } + ; + +Join_EDIT + : JoinType_EDIT TablePrimary OptionalJoinCondition + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType_EDIT + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType TablePrimary_EDIT OptionalJoinCondition + | JoinType TablePrimary JoinCondition_EDIT + | JoinType 'CURSOR' OptionalJoinCondition + { + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $1, + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + ; + +Joins_EDIT + : Join_EDIT + | Join_EDIT Joins + | Joins Join_EDIT + | Joins Join_EDIT Joins + ; + +JoinType + : 'CROSS' 'JOIN' -> 'CROSS JOIN' + | 'FULL' 'JOIN' -> 'FULL JOIN' + | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' + | 'INNER' 'JOIN' -> 'INNER JOIN' + | 'JOIN' -> 'JOIN' + | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' + | 'LEFT' 'JOIN' -> 'LEFT JOIN' + | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' + | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' + | 'OUTER' 'JOIN' -> 'OUTER JOIN' + | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' + | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' + | 'SEMI' 'JOIN' -> 'SEMI JOIN' + ; + +JoinType_EDIT + : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER', 'SEMI'] } + | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + ; + +OptionalJoinCondition + : -> { noJoinCondition: true, suggestKeywords: ['ON'] } + | 'ON' ValueExpression -> { valueExpression: $2 } + ; + +UsingColList + : RegularOrBacktickedIdentifier + | UsingColList ',' RegularOrBacktickedIdentifier + ; + +JoinCondition_EDIT + : 'ON' ValueExpression_EDIT + | 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + } + ; + +TablePrimary + : TableOrQueryName OptionalTableSample OptionalCorrelationName + { + $$ = { + primary: $1 + } + if ($1.identifierChain) { + if ($3) { + $1.alias = $3.alias + parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + var keywords = []; + // Right-to-left for cursor after TablePrimary + keywords = parser.getKeywordsForOptionalsLR([$3, $2], [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [true, true]); + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + | DerivedTable OptionalCorrelationName + { + $$ = { + primary: $1 + }; + + if ($2) { + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); + } + + var keywords = []; + keywords = parser.getKeywordsForOptionalsLR([$2], [{ value: 'AS', weight: 2 }], [true]); + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +TablePrimary_EDIT + : TableOrQueryName_EDIT OptionalTableSample OptionalCorrelationName + { + if ($3) { + parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); + } + } + | TableOrQueryName OptionalTableSample_EDIT OptionalCorrelationName + { + if ($3) { + $1.alias = $3.alias; + parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + | DerivedTable_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias); + } + } + | DerivedTable OptionalCorrelationName_EDIT + ; + +TableOrQueryName + : SchemaQualifiedTableIdentifier + ; + +TableOrQueryName_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +DerivedTable + : TableSubQuery + ; + +DerivedTable_EDIT + : TableSubQuery_EDIT + ; + +OptionalTableSample + : + | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn ')' + | 'TABLESAMPLE' '(' ExactNumericLiteral 'PERCENT' ')' + | 'TABLESAMPLE' '(' ExactNumericLiteral 'ROWS' ')' + | 'TABLESAMPLE' '(' 'REGULAR_IDENTIFIER' ')' + ; + +OptionalTableSample_EDIT + : 'TABLESAMPLE' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['BUCKET']); + } + | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['OUT OF']); + } + | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['OF']); + } + | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn 'CURSOR' RightParenthesisOrError + { + if (!$8) { + parser.suggestKeywords(['ON']); + } + } + | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn_EDIT RightParenthesisOrError + | 'TABLESAMPLE' '(' ExactNumericLiteral 'CURSOR' RightParenthesisOrError + { + if ($3.indexOf('.') === -1 ) { + parser.suggestKeywords(['PERCENT', 'ROWS']); + } else { + parser.suggestKeywords(['PERCENT']); + } + } + ; + +OptionalOnColumn + : + | 'ON' ValueExpression + ; + +OptionalOnColumn_EDIT + : 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'ON' ValueExpression_EDIT + ; + +PushQueryState + : + { + parser.pushQueryState(); + } + ; + +PopQueryState + : + { + parser.popQueryState(); + } + ; + +TableSubQuery + : '(' TableSubQueryInner ')' -> $2 + | '(' DerivedTable OptionalCorrelationName ')' + { + if ($3) { + $2.alias = $3.alias; + parser.addTablePrimary({ subQueryAlias: $3.alias }); + parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); + } + $$ = $2; + } + ; + +TableSubQuery_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + ; + +TableSubQueryInner + : PushQueryState SubQuery + { + var subQuery = parser.getSubQuery($2); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + $$ = subQuery; + } + ; + +TableSubQueryInner_EDIT + : PushQueryState SubQuery_EDIT PopQueryState + ; + +SubQuery + : QueryExpression + ; + +SubQuery_EDIT + : QueryExpression_EDIT + ; + +QueryExpression + : QueryExpressionBody + ; + +QueryExpression_EDIT + : QueryExpressionBody_EDIT + ; + +QueryExpressionBody + : NonJoinQueryExpression + ; + +QueryExpressionBody_EDIT + : NonJoinQueryExpression_EDIT + ; + +NonJoinQueryExpression + : NonJoinQueryTerm + ; + +NonJoinQueryExpression_EDIT + : NonJoinQueryTerm_EDIT + ; + +NonJoinQueryTerm + : NonJoinQueryPrimary + ; + +NonJoinQueryTerm_EDIT + : NonJoinQueryPrimary_EDIT + ; + +NonJoinQueryPrimary + : SimpleTable + ; + +NonJoinQueryPrimary_EDIT + : SimpleTable_EDIT + ; + +SimpleTable + : QuerySpecification + ; + +SimpleTable_EDIT + : QuerySpecification_EDIT + ; + +OptionalCorrelationName + : + | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } + | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | 'AS' QuotedValue -> { alias: $2, location: @2 } + ; + +OptionalCorrelationName_EDIT + : PartialBacktickedIdentifier + | QuotedValue_EDIT + | 'AS' PartialBacktickedIdentifier + | 'AS' QuotedValue_EDIT + | 'AS' 'CURSOR' + ; + +OptionalLateralViews + : + | OptionalLateralViews LateralView + { + if ($1 && $2.lateralView) { + $1.lateralViews.push($2.lateralView); + $$ = $1; + } else if ($2.lateralView) { + $$ = { lateralViews: [ $2.lateralView ] }; + } + if ($2.suggestKeywords) { + $$.suggestKeywords = $2.suggestKeywords + } + } + ; + +OptionalLateralViews_EDIT + : OptionalLateralViews LateralView_EDIT OptionalLateralViews + ; + +UserDefinedFunction + : AggregateFunction OptionalOverClause + { + if (!$2) { + $1.suggestKeywords = ['OVER']; + } + } + | AnalyticFunction OverClause + | CastFunction + | ExtractFunction + ; + +UserDefinedFunction_EDIT + : AggregateFunction_EDIT + | AggregateFunction OptionalOverClause_EDIT + | AnalyticFunction_EDIT + | AnalyticFunction_EDIT OverClause + | AnalyticFunction 'CURSOR' + { + parser.suggestKeywords(['OVER']); + } + | AnalyticFunction OverClause_EDIT + | CastFunction_EDIT + | ExtractFunction_EDIT + ; + +ArbitraryFunction + : RegularIdentifier ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + ; + +ArbitraryFunction_EDIT + : RegularIdentifier ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ArbitraryFunctionName + : 'ARRAY' + | 'BINARY' + | 'IF' + | 'MAP' + | 'TRUNCATE' + ; + +ArbitraryFunctionRightPart + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } + ; + +ArbitraryFunctionRightPart_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { position: 1 } + } + | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 + ; + +AggregateFunction + : CountFunction + | SumFunction + | OtherAggregateFunction + ; + +AggregateFunction_EDIT + : CountFunction_EDIT + | SumFunction_EDIT + | OtherAggregateFunction_EDIT + ; + +AnalyticFunction + : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } + ; + +AnalyticFunction_EDIT + : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError + { + parser.applyArgumentTypesToSuggestions($1, $3.position); + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOverClause + : + | OverClause + ; + +OptionalOverClause_EDIT + : OverClause_EDIT + ; + +OverClause + : 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression + ; + +OverClause_EDIT + : 'OVER' WindowExpression_EDIT + ; + +WindowExpression + : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' + ; + +WindowExpression_EDIT + : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$3 && !$4) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$3) { + parser.suggestKeywords(['PARTITION BY']); + } + } + | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$6) { + parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($4); + } + } + ; + +OptionalPartitionBy + : + | PartitionBy + ; + +PartitionBy + : 'PARTITION' 'BY' ValueExpressionList -> $3 + ; + +PartitionBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'PARTITION' 'BY' ValueExpressionList_EDIT + ; + +OptionalOrderByAndWindow + : + | OrderByClause OptionalWindowSpec + ; + +OptionalOrderByAndWindow_EDIT + : OrderByClause_EDIT + { + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + } + | OrderByClause 'CURSOR' OptionalWindowSpec + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); + } + if (!$3) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + } + | OrderByClause WindowSpec_EDIT + ; + +OptionalWindowSpec + : + | WindowSpec + ; + +WindowSpec + : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + ; + +WindowSpec_EDIT + : RowsOrRange 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'UNBOUNDED']); + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' + { + if (!$4 && !$5) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$5) { + parser.suggestKeywords(['AND']); + } + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['PRECEDING']); + } + } + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT + ; + +PopLexerState + : + { + lexer.popState(); + } + ; + +PushHdfsLexerState + : + { + lexer.begin('hdfs'); + } + ; + +HdfsPath + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' + ; + +HdfsPath_EDIT + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: '' }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: '' }); + } + ; + +RowsOrRange + : 'ROWS' + | 'RANGE' + ; + +OptionalCurrentOrPreceding + : + | IntegerOrUnbounded 'PRECEDING' + | 'CURRENT' 'ROW' + ; + +OptionalCurrentOrPreceding_EDIT + : IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['PRECEDING']); + } + | 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + ; + +OptionalAndFollowing + : + | 'AND' 'CURRENT' 'ROW' + | 'AND' IntegerOrUnbounded 'FOLLOWING' + ; + +OptionalAndFollowing_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + } + | 'AND' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + | 'AND' IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['FOLLOWING']); + } + ; + +IntegerOrUnbounded + : 'UNSIGNED_INTEGER' + | 'UNBOUNDED' + ; + +OptionalHavingClause + : + | HavingClause + ; + +HavingClause + : 'HAVING' ValueExpression + ; + +HavingClause_EDIT + : 'HAVING' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + | 'HAVING' ValueExpression_EDIT + { + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + ; + +OptionalWindowClause + : + | WindowClause + ; + +WindowClause + : 'WINDOW' RegularOrBacktickedIdentifier 'AS' WindowExpression + ; + +WindowClause_EDIT + : 'WINDOW' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | 'WINDOW' RegularOrBacktickedIdentifier 'AS' WindowExpression_EDIT + ; + +CastFunction + : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ')' -> { types: [ 'T' ] } + ; + +CastFunction_EDIT + : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + ; + +CountFunction + : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +CountFunction_EDIT + : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ExtractFunction + : 'EXTRACT' '(' DateField 'FROM' ValueExpression ')' -> { types: ['INT', 'INTEGER'] } + ; + +ExtractFunction_EDIT + : 'EXTRACT' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); + $$ = { types: ['INT', 'INTEGER'] } + } + | 'EXTRACT' '(' DateField 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['FROM']); + $$ = { types: ['INT', 'INTEGER'] } + } + | 'EXTRACT' '(' DateField 'FROM' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['INT', 'INTEGER'] } + } + | 'EXTRACT' '(' DateField 'FROM' ValueExpression_EDIT RightParenthesisOrError -> { types: ['INT', 'INTEGER'] } + | 'EXTRACT' '(' AnyCursor 'FROM' ValueExpression RightParenthesisOrError + { + parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); + $$ = { types: ['INT', 'INTEGER'] } + } + | 'EXTRACT' '(' DateField 'CURSOR' ValueExpression RightParenthesisOrError + { + parser.suggestKeywords(['FROM']); + $$ = { types: ['INT', 'INTEGER'] } + } + ; + +DateField + : 'DAY' + | 'DAYOFWEEK' + | 'HOUR' + | 'MINUTE' + | 'MONTH' + | 'QUARTER' + | 'SECOND' + | 'WEEK' + | 'YEAR' + ; + +OtherAggregateFunction + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +OtherAggregateFunction_EDIT + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, $4.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction_Type + : 'AVG' + | 'COLLECT_LIST' + | 'COLLECT_SET' + | 'CORR' + | 'COVAR_POP' + | 'COVAR_SAMP' + | 'HISTOGRAM_NUMERIC' + | 'MAX' + | 'MIN' + | 'NTILE' + | 'PERCENTILE' + | 'PERCENTILE_APPROX' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARIANCE' + ; + +FromOrComma + : 'FROM' + | ',' + ; + +SumFunction + : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } + | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } + ; + +SumFunction_EDIT + : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, 1); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +LateralView + : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier LateralViewColumnAliases -> { lateralView: { udtf: $4, tableAlias: $5, columnAliases: $6 }} + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier + { + if ($4.function.toLowerCase() === 'explode') { + $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; + } else if ($4.function.toLowerCase() === 'posexplode') { + $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; + } else { + $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: [] }, suggestKeywords: ['AS'] }; + } + } + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction LateralViewColumnAliases -> { lateralView: { udtf: $4, columnAliases: $5 }} + ; + +LateralView_EDIT + : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT RegularOrBacktickedIdentifier + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT RegularOrBacktickedIdentifier LateralViewColumnAliases + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier LateralViewColumnAliases_EDIT + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction PartialBacktickedOrCursor + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction PartialBacktickedOrCursor LateralViewColumnAliases + | 'LATERAL' 'VIEW' OptionalOuter 'CURSOR' + { + if (!$3) { + parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); + } else { + parser.suggestKeywords(['explode', 'posexplode']); + } + } + | 'LATERAL' 'CURSOR' + { + parser.suggestKeywords(['VIEW']); + } + ; + +OptionalOuter + : + | 'OUTER' + ; + +LateralViewColumnAliases + : 'AS' RegularOrBacktickedIdentifier -> [ $2 ] + | 'AS' RegularOrBacktickedIdentifier ',' RegularOrBacktickedIdentifier -> [ $2, $4 ] + ; + +LateralViewColumnAliases_EDIT + : 'AS' PartialBacktickedOrCursor + | 'AS' RegularOrBacktickedIdentifier ',' PartialBacktickedOrAnyCursor + ; diff --git a/src/jison/sql/hive/sql_set.jison b/src/jison/sql/hive/sql_set.jison new file mode 100644 index 0000000..6ff041a --- /dev/null +++ b/src/jison/sql/hive/sql_set.jison @@ -0,0 +1,62 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : SetRoleStatement + | SetSpecification + ; + +DataDefinition_EDIT + : SetRoleStatement_EDIT + | 'SET' 'CURSOR' + { + parser.suggestSetOptions(); + parser.suggestKeywords(['ROLE']); + } + ; + +SetSpecification + : 'SET' SetOption '=' SetValue + | 'SET' 'ALL' + ; + +SetOption + : RegularIdentifier + | SetOption '.' RegularIdentifier + ; + +SetValue + : RegularIdentifier + | SignedInteger + | SignedInteger RegularIdentifier + | QuotedValue + | 'TRUE' + | 'FALSE' + | 'NULL' + ; + +SetRoleStatement + : 'SET' 'ROLE' RegularIdentifier + | 'SET' 'ROLE' 'ALL' + | 'SET' 'ROLE' 'NONE' + ; + +SetRoleStatement_EDIT + : 'SET' 'ROLE' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'NONE']); + } + ; diff --git a/src/jison/sql/hive/sql_show.jison b/src/jison/sql/hive/sql_show.jison new file mode 100644 index 0000000..50b3e76 --- /dev/null +++ b/src/jison/sql/hive/sql_show.jison @@ -0,0 +1,535 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : ShowStatement + ; + +DataDefinition_EDIT + : ShowStatement_EDIT + ; + +ShowStatement + : ShowColumnsStatement + | ShowCompactionsStatement + | ShowConfStatement + | ShowCreateTableStatement + | ShowCurrentRolesStatement + | ShowDatabasesStatement + | ShowFunctionsStatement + | ShowGrantStatement + | ShowIndexStatement + | ShowLocksStatement + | ShowMaterializedViewsStatement + | ShowPartitionsStatement + | ShowRolesStatement + | ShowRoleStatement + | ShowTablesStatement + | ShowTableStatement + | ShowTblPropertiesStatement + | ShowTransactionsStatement + | ShowViewsStatement + ; + +ShowStatement_EDIT + : 'SHOW' 'CURSOR' + { + parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'MATERIALIZED VIEWS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); + } + | 'SHOW' 'CURSOR' RegularOrBackTickedSchemaQualifiedName + { + // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT + if ($3.identifierChain && $3.identifierChain.length === 1 && $3.identifierChain[0].name.toLowerCase() === 'roles') { + parser.suggestKeywords(['CURRENT']); + parser.yy.locations.pop(); + } else { + parser.addTablePrimary($3); + } + } + | 'SHOW' 'CURSOR' LIKE SingleQuotedValue + { + parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); + } + | ShowColumnsStatement_EDIT + | ShowCreateTableStatement_EDIT + | ShowCurrentRolesStatement_EDIT + | ShowDatabasesStatement_EDIT + | ShowGrantStatement_EDIT + | ShowIndexStatement_EDIT + | ShowLocksStatement_EDIT + | ShowMaterializedViewsStatement_EDIT + | ShowPartitionsStatement_EDIT + | ShowRoleStatement_EDIT + | ShowTablesStatement_EDIT + | ShowTableStatement_EDIT + | ShowTblPropertiesStatement_EDIT + | ShowViewsStatement_EDIT + ; + +ShowColumnsStatement + : 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier + | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier + ; + +ShowColumnsStatement_EDIT + : 'SHOW' 'COLUMNS' 'CURSOR' + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' 'COLUMNS' 'CURSOR' RegularOrBacktickedIdentifier + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' + { + parser.suggestTables(); + } + | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' FromOrIn + { + parser.suggestTables(); + } + | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' FromOrIn RegularOrBacktickedIdentifier + { + parser.suggestTables(); + } + | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier 'CURSOR' RegularOrBacktickedIdentifier + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier FromOrIn 'CURSOR' + { + parser.suggestDatabases(); + } + ; + +ShowCompactionsStatement + : 'SHOW' 'COMPACTIONS' + ; + +ShowConfStatement + : 'SHOW' 'CONF' ConfigurationName + ; + +ShowCreateTableStatement + : 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($4); + } + ; + +ShowCreateTableStatement_EDIT + : 'SHOW' 'CREATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'SHOW' 'CREATE' TableOrView 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName_EDIT + { + if (parser.yy.result.suggestTables && $3.isView) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'SHOW' 'CREATE' 'CURSOR' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($4); + parser.suggestKeywords(['TABLE']); + } + ; + +TableOrView + : 'TABLE' + | 'VIEW' -> { isView: true } + ; + +ShowCurrentRolesStatement + : 'SHOW' 'CURRENT' 'ROLES' + ; + +ShowCurrentRolesStatement_EDIT + : 'SHOW' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords([ 'ROLES' ]); + } + ; + +ShowDatabasesStatement + : 'SHOW' DatabasesOrSchemas 'LIKE' SingleQuotedValue + ; + +ShowDatabasesStatement_EDIT + : 'SHOW' DatabasesOrSchemas 'CURSOR' + { + parser.suggestKeywords(['LIKE']); + } + ; + +ShowFunctionsStatement + : 'SHOW' 'FUNCTIONS' + | 'SHOW' 'FUNCTIONS' DoubleQuotedValue + ; + +ShowGrantStatement + : 'SHOW' 'GRANT' OptionalPrincipalName + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'ALL' + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'TABLE' SchemaQualifiedTableIdentifier + ; + +ShowGrantStatement_EDIT + : 'SHOW' 'GRANT' OptionalPrincipalName_EDIT + { + parser.suggestKeywords(['ON']); + } + | 'SHOW' 'GRANT' OptionalPrincipalName_EDIT 'ON' 'ALL' + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'TABLE']); + parser.suggestTables(); + } + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier_EDIT + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + } + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.suggestKeywords(['TABLE']); + } + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier_EDIT + ; + +OptionalPrincipalName + : + | RegularIdentifier + ; + +OptionalPrincipalName_EDIT + : 'CURSOR' + | RegularIdentifier 'CURSOR' + ; + +ShowIndexStatement + : 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier + | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier + ; + +ShowIndexStatement_EDIT + : 'SHOW' OptionallyFormattedIndex + | 'SHOW' OptionallyFormattedIndex_EDIT + | 'SHOW' OptionallyFormattedIndex_EDIT 'ON' RegularOrBacktickedIdentifier + | 'SHOW' OptionallyFormattedIndex_EDIT 'ON' RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier + | 'SHOW' OptionallyFormattedIndex 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | 'SHOW' OptionallyFormattedIndex 'ON' 'CURSOR' + { + parser.suggestTables(); + } + | 'SHOW' OptionallyFormattedIndex 'CURSOR' RegularOrBacktickedIdentifier + { + parser.suggestKeywords(['ON']); + } + | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier 'CURSOR' RegularOrBacktickedIdentifier + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier FromOrIn 'CURSOR' + { + parser.suggestDatabases(); + } + | 'SHOW' OptionallyFormattedIndex 'ON' 'CURSOR' FromOrIn RegularOrBacktickedIdentifier + { + parser.suggestTables({identifierChain: [{name: $6}]}); + } + ; + +ShowMaterializedViewsStatement + : 'SHOW' 'MATERIALIZED' 'VIEWS' OptionalInOrFromDatabase OptionalLike + ; + +ShowMaterializedViewsStatement_EDIT + : 'SHOW' 'MATERIALIZED' 'CURSOR' + { + parser.suggestKeywords(['VIEWS']); + } + | 'SHOW' 'MATERIALIZED' 'VIEWS' OptionalInOrFromDatabase OptionalLike 'CURSOR' + { + if (!$5 && !$4) { + parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); + } else if (!$5) { + parser.suggestKeywords(['LIKE']); + } + } + | 'SHOW' 'MATERIALIZED' 'VIEWS' InOrFromDatabase_EDIT OptionalLike + | 'SHOW' 'MATERIALIZED' 'VIEWS' OptionalInOrFromDatabase Like_EDIT + ; + +ShowLocksStatement + : 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($3); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName 'EXTENDED' + { + parser.addTablePrimary($3); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec + { + parser.addTablePrimary($3); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec 'EXTENDED' + { + parser.addTablePrimary($3); + } + | 'SHOW' 'LOCKS' DatabaseOrSchema RegularOrBacktickedIdentifier + ; + +ShowLocksStatement_EDIT + : 'SHOW' 'LOCKS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + parser.suggestKeywords(['DATABASE', 'SCHEMA']); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['EXTENDED', 'PARTITION']); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT 'EXTENDED' + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['EXTENDED']); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec 'EXTENDED' + | 'SHOW' 'LOCKS' DatabaseOrSchema 'CURSOR' + { + parser.suggestDatabases(); + } + ; + +ShowPartitionsStatement + : 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($3); + } + | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName PartitionSpec + { + parser.addTablePrimary($3); + } + ; + +ShowPartitionsStatement_EDIT + : 'SHOW' 'PARTITIONS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT + | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['PARTITION']); + } + | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec + ; + +ShowRoleStatement + : 'SHOW' 'ROLE' 'GRANT' RoleOrUser RegularIdentifier + ; + +ShowRoleStatement_EDIT + : 'SHOW' 'ROLE' 'CURSOR' + { + parser.suggestKeywords(['GRANT']); + } + | 'SHOW' 'ROLE' 'CURSOR' RoleOrUser RegularIdentifier + { + parser.suggestKeywords(['GRANT']); + } + | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['ROLE', 'USER']); + } + | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' RegularIdentifier + { + parser.suggestKeywords(['ROLE', 'USER']); + } + ; + +ShowRolesStatement + : 'SHOW' 'ROLES' + ; + +ShowTableStatement + : 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue PartitionSpec + ; + +ShowTableStatement_EDIT + : 'SHOW' 'TABLE' 'CURSOR' + { + parser.suggestKeywords(['EXTENDED']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' + { + if ($4) { + parser.suggestKeywords(['LIKE']); + } else { + parser.suggestKeywords(['FROM', 'IN', 'LIKE']); + } + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT 'LIKE' SingleQuotedValue + | 'SHOW' 'TABLE' 'CURSOR' OptionalFromDatabase 'LIKE' SingleQuotedValue + { + parser.suggestKeywords(['EXTENDED']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' SingleQuotedValue + { + parser.suggestKeywords(['LIKE']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT 'LIKE' SingleQuotedValue PartitionSpec + | 'SHOW' 'TABLE' 'CURSOR' OptionalFromDatabase 'LIKE' SingleQuotedValue PartitionSpec + { + parser.suggestKeywords(['EXTENDED']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' SingleQuotedValue PartitionSpec + { + parser.suggestKeywords(['LIKE']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue 'CURSOR' PartitionSpecList + { + parser.suggestKeywords(['PARTITION']); + } + ; + +ShowTablesStatement + : 'SHOW' 'TABLES' OptionalInDatabase + | 'SHOW' 'TABLES' OptionalInDatabase SingleQuotedValue + | 'SHOW' 'TABLES' OptionalInDatabase 'LIKE' SingleQuotedValue + ; + +ShowTablesStatement_EDIT + : 'SHOW' 'TABLES' OptionalInDatabase 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IN', 'LIKE']); + } else { + parser.suggestKeywords(['LIKE']); + } + } + ; + +ShowTblPropertiesStatement + : 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($3); + } + | 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName '(' QuotedValue ')' + { + parser.addTablePrimary($3); + } + ; + +ShowTblPropertiesStatement_EDIT + : 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName_EDIT + | 'SHOW' 'TBLPROPERTIES' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + ; + +ShowTransactionsStatement + : 'SHOW' 'TRANSACTIONS' + ; + +ShowViewsStatement + : 'SHOW' 'VIEWS' OptionalInOrFromDatabase OptionalLike + ; + +ShowViewsStatement_EDIT + : 'SHOW' 'VIEWS' OptionalInOrFromDatabase OptionalLike 'CURSOR' + { + if (!$4 && !$3) { + parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); + } else if (!$4) { + parser.suggestKeywords(['LIKE']); + } + } + | 'SHOW' 'VIEWS' InOrFromDatabase_EDIT OptionalLike + | 'SHOW' 'VIEWS' OptionalInOrFromDatabase Like_EDIT + ; + +OptionalInOrFromDatabase + : + | 'IN' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@2, [ { name: $2 } ]); + } + | 'FROM' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@2, [ { name: $2 } ]); + } + ; + +InOrFromDatabase_EDIT + : 'IN' 'CURSOR' + { + parser.suggestDatabases(); + } + | 'FROM' 'CURSOR' + { + parser.suggestDatabases(); + } + ; + +OptionalLike + : + | 'LIKE' SingleQuotedValue + ; + +Like_EDIT + : 'LIKE' 'CURSOR' + ; diff --git a/src/jison/sql/hive/sql_update.jison b/src/jison/sql/hive/sql_update.jison new file mode 100644 index 0000000..18dd53f --- /dev/null +++ b/src/jison/sql/hive/sql_update.jison @@ -0,0 +1,124 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : UpdateStatement + ; + +DataManipulation_EDIT + : UpdateStatement_EDIT + ; + +UpdateStatement + : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + ; + +UpdateStatement_EDIT + : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' + { + if (!$6) { + parser.suggestKeywords([ 'WHERE' ]); + } + } + | 'UPDATE' TargetTable 'CURSOR' + { + parser.suggestKeywords([ 'SET' ]); + } + | 'UPDATE' TargetTable_EDIT + | 'UPDATE' TargetTable + | 'UPDATE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TargetTable + : TableName + ; + +TargetTable_EDIT + : TableName_EDIT + ; + +TableName + : LocalOrSchemaQualifiedName + { + parser.addTablePrimary($1); + } + ; + +TableName_EDIT + : LocalOrSchemaQualifiedName_EDIT + ; + +SetClauseList + : SetClause + | SetClauseList ',' SetClause + ; + +SetClauseList_EDIT + : SetClause_EDIT + | SetClauseList ',' SetClause_EDIT + | SetClause_EDIT ',' SetClauseList + | SetClauseList ',' SetClause_EDIT ',' SetClauseList + ; + +SetClause + : SetTarget '=' UpdateSource + ; + +SetClause_EDIT + : SetTarget '=' UpdateSource_EDIT + | SetTarget 'CURSOR' + { + parser.suggestKeywords([ '=' ]); + } + | 'CURSOR' + { + parser.suggestColumns(); + } + ; + +SetTarget + : ColumnReference + ; + +UpdateSource + : ValueExpression + ; + +UpdateSource_EDIT + : ValueExpression_EDIT + ; + +OptionalFromJoinedTable + : + | 'FROM' TableReference -> $2 + ; + +FromJoinedTable_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReference_EDIT + ; diff --git a/src/jison/sql/hive/sql_use.jison b/src/jison/sql/hive/sql_use.jison new file mode 100644 index 0000000..0ceedb7 --- /dev/null +++ b/src/jison/sql/hive/sql_use.jison @@ -0,0 +1,42 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : UseStatement + ; + +DataDefinition_EDIT + : UseStatement_EDIT + ; + +UseStatement + : 'USE' RegularIdentifier + { + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $2; + } + } + ; + +UseStatement_EDIT + : 'USE' 'CURSOR' + { + parser.suggestDatabases(); + } + ; + + +// ===================================== Fin ===================================== diff --git a/src/jison/sql/hive/sql_valueExpression.jison b/src/jison/sql/hive/sql_valueExpression.jison new file mode 100644 index 0000000..3dcc339 --- /dev/null +++ b/src/jison/sql/hive/sql_valueExpression.jison @@ -0,0 +1,839 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +ValueExpression + : 'NOT' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression -> $2 + | '-' ValueExpression %prec NEGATION + { + // verifyType($2, 'NUMBER'); + $$ = $2; + $2.types = ['NUMBER']; + } + | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | 'NOT' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | '!' AnyCursor + { + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | '~' 'PARTIAL_CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + $$ = { types: [ 'T' ] }; + } + | '-' ValueExpression_EDIT %prec NEGATION + { + if (!$2.typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; + } + | '-' 'PARTIAL_CURSOR' %prec NEGATION + { + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'IS' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' + { + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'NULL' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'FALSE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'TRUE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } + } + ; + +// ------------------ EXISTS and parenthesized ------------------ +ValueExpression + : 'EXISTS' TableSubQuery + { + $$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + } + | '(' ValueExpression ')' -> $2 + ; + +ValueExpression_EDIT + : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } + | '(' ValueExpression_EDIT RightParenthesisOrError + { + $$ = $2; + } + | '(' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['T'], typeSet: true }; + } + ; + +// ------------------ COMPARISON ------------------ + +ValueExpression + : ValueExpression '=' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '<' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '>' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '=' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '<' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '>' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT '=' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '<' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '>' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '=' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression '<' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + } + | ValueExpression '>' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; + } + | ValueExpression '=' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '<' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '>' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + + +// ------------------ IN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT + { + if ($4.inValueEdit) { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + parser.applyTypeToSuggestions($1.types); + } + if ($4.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT + { + if ($3.inValueEdit) { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + } + if ($3.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + ; + +ValueExpressionInSecondPart_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } + | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } + ; + +// ------------------ BETWEEN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($4.types[0] === $6.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($4.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $6.types[0] && !$4.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $4.types[0] && !$6.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $5); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($4, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$3.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $3.types[0] && !$5.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $4); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ BOOLEAN ------------------ + +ValueExpression + : ValueExpression 'OR' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'AND' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' 'OR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'OR' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'OR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'OR' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | 'CURSOR' 'AND' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'AND' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'AND' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'AND' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + +// ------------------ ARITHMETIC ------------------ + +ValueExpression + : ValueExpression '-' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression '*' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '*' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression_EDIT '-' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '*' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '-' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '*' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '-' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression '*' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + ; + +// ------------------ LIKE, RLIKE and REGEXP ------------------ + +ValueExpression + : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } + ; + +LikeRightPart + : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + ; + +LikeRightPart_EDIT + : 'LIKE' ValueExpression_EDIT + | 'RLIKE' ValueExpression_EDIT + | 'REGEXP' ValueExpression_EDIT + | 'LIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'RLIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'REGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | 'CURSOR' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'NOT' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ CASE, WHEN, THEN ------------------ + +ValueExpression + : 'CASE' CaseRightPart -> $2 + | 'CASE' ValueExpression CaseRightPart -> $3 + ; + +ValueExpression_EDIT + : 'CASE' CaseRightPart_EDIT -> $2 + | 'CASE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 + | 'CASE' ValueExpression 'CURSOR' EndOrError + { + parser.suggestValueExpressionKeywords($2, ['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression_EDIT CaseRightPart + { + $$ = $3; + $$.suggestFilters = $2.suggestFilters; + } + | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } + ; + +CaseRightPart + : CaseWhenThenList 'END' -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'END' + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + ; + +CaseRightPart_EDIT + : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['END']); + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'CURSOR' ValueExpression EndOrError + { + if ($4.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'CURSOR' EndOrError + { + if ($3.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + $$.suggestFilters = $3.suggestFilters + } + | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = parser.findCaseType($1); + } + | 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CURSOR' 'ELSE' ValueExpression EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = $3; + } + | 'CURSOR' 'ELSE' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ] }; + } + ; + +EndOrError + : 'END' + | error + ; + +CaseWhenThenList + : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } + | CaseWhenThenList CaseWhenThenListPartTwo + { + $1.caseTypes.push($2); + $$ = { caseTypes: $1.caseTypes, lastType: $2 }; + } + ; + +CaseWhenThenList_EDIT + : CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList + | CaseWhenThenList 'CURSOR' CaseWhenThenList + { + parser.suggestValueExpressionKeywords($1, ['WHEN']); + } + | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 + ; + +CaseWhenThenListPartTwo + : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 + ; + +CaseWhenThenListPartTwo_EDIT + : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } + | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } + | 'CURSOR' ValueExpression 'THEN' + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' ValueExpression 'THEN' ValueExpression + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [$4] }; + } + | 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [$4], suggestFilters: true }; + } + | 'WHEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'CURSOR' ValueExpression + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + ; diff --git a/src/jison/sql/hive/syntax_footer.jison b/src/jison/sql/hive/syntax_footer.jison new file mode 100644 index 0000000..ec25eab --- /dev/null +++ b/src/jison/sql/hive/syntax_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/hive/syntax_header.jison b/src/jison/sql/hive/syntax_header.jison new file mode 100644 index 0000000..2d13c95 --- /dev/null +++ b/src/jison/sql/hive/syntax_header.jison @@ -0,0 +1,28 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlSyntax + +%% diff --git a/src/jison/sql/impala/autocomplete_footer.jison b/src/jison/sql/impala/autocomplete_footer.jison new file mode 100644 index 0000000..899433d --- /dev/null +++ b/src/jison/sql/impala/autocomplete_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/impala/autocomplete_header.jison b/src/jison/sql/impala/autocomplete_header.jison new file mode 100644 index 0000000..2c6e444 --- /dev/null +++ b/src/jison/sql/impala/autocomplete_header.jison @@ -0,0 +1,29 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'CURSOR' 'PARTIAL_CURSOR' +%nonassoc 'IN' 'IS' 'ILIKE' 'IREGEXP' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlAutocomplete + +%% diff --git a/src/jison/sql/impala/sql.jisonlex b/src/jison/sql/impala/sql.jisonlex new file mode 100644 index 0000000..fbb3162 --- /dev/null +++ b/src/jison/sql/impala/sql.jisonlex @@ -0,0 +1,535 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%options case-insensitive flex +%x hdfs doubleQuotedValue singleQuotedValue backtickedValue +%% + +\s { /* skip whitespace */ } +'--'.* { /* skip comments */ } +[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } + +'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } +'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } + +// Reserved Keywords +'ADD' { return 'ADD'; } +'AGGREGATE' { return 'AGGREGATE'; } +'ALL' { return 'ALL'; } +'ALLOCATE' { return 'ALLOCATE'; } +'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } +'ANALYTIC' { return 'ANALYTIC'; } +'AND' { return 'AND'; } +'ANTI' { return 'ANTI'; } +'ANY' { return 'ANY'; } +'ARE' { return 'ARE'; } +'ARRAY_AGG' { return 'ARRAY_AGG'; } +'ARRAY_MAX_CARDINALITY' { return 'ARRAY_MAX_CARDINALITY'; } +'AS' { return 'AS'; } +'ASC' { return 'ASC'; } +'ASENSITIVE' { return 'ASENSITIVE'; } +'ASYMMETRIC' { return 'ASYMMETRIC'; } +'AT' { return 'AT'; } +'ATOMIC' { return 'ATOMIC'; } +'AUTHORIZATION' { return 'AUTHORIZATION'; } +'AVRO' { return 'AVRO'; } +'BEGIN_FRAME' { return 'BEGIN_FRAME'; } +'BEGIN_PARTITION' { return 'BEGIN_PARTITION'; } +'BETWEEN' { return 'BETWEEN'; } +'BIGINT' { return 'BIGINT'; } +'BLOB' { return 'BLOB'; } +'BLOCK_SIZE' { return 'BLOCK_SIZE'; } +'BOOLEAN' { return 'BOOLEAN'; } +'BOTH' { return 'BOTH'; } +'BY' { return 'BY'; } +'CACHED' { return 'CACHED'; } +'CALLED' { return 'CALLED'; } +'CARDINALITY' { return 'CARDINALITY'; } +'CASCADE' { return 'CASCADE'; } +'CASCADED' { return 'CASCADED'; } +'CASE' { return 'CASE'; } +'CHANGE' { return 'CHANGE'; } +'CHAR' { return 'CHAR'; } +'CHARACTER' { return 'CHARACTER'; } +'CLOB' { return 'CLOB'; } +'CLOSE_FN' { return 'CLOSE_FN'; } +'COLLATE' { return 'COLLATE'; } +'COLLECT' { return 'COLLECT'; } +'COLUMN' { return 'COLUMN'; } +'COLUMNS' { return 'COLUMNS'; } +'COMMENT' { parser.determineCase(yytext); return 'COMMENT'; } +'COMMIT' { return 'COMMIT'; } +'COMPRESSION' { return 'COMPRESSION'; } +'COMPUTE' { parser.determineCase(yytext); return 'COMPUTE'; } +'CONDITION' { return 'CONDITION'; } +'CONNECT' { return 'CONNECT'; } +'CONSTRAINT' { return 'CONSTRAINT'; } +'CONTAINS' { return 'CONTAINS'; } +'CONVERT' { return 'CONVERT'; } +'COPY' { return 'COPY'; } +'CORR' { return 'CORR'; } +'CORRESPONDING' { return 'CORRESPONDING'; } +'COVAR_POP' { return 'COVAR_POP'; } +'COVAR_SAMP' { return 'COVAR_SAMP'; } +'CREATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('CREATE', yylloc, yy.lexer.upcomingInput()); return 'CREATE'; } +'CROSS' { return 'CROSS'; } +'CUBE' { return 'CUBE'; } +'CURRENT' { return 'CURRENT'; } +'CURRENT_DATE' { return 'CURRENT_DATE'; } +'CURRENT_DEFAULT_TRANSFORM_GROUP' { return 'CURRENT_DEFAULT_TRANSFORM_GROUP'; } +'CURRENT_PATH' { return 'CURRENT_PATH'; } +'CURRENT_ROLE' { return 'CURRENT_ROLE'; } +'CURRENT_ROW' { return 'CURRENT_ROW'; } +'CURRENT_SCHEMA' { return 'CURRENT_SCHEMA'; } +'CURRENT_TIME' { return 'CURRENT_TIME'; } +'CURRENT_TRANSFORM_GROUP_FOR_TYPE' { return 'CURRENT_TRANSFORM_GROUP_FOR_TYPE'; } +'CYCLE' { return 'CYCLE'; } +'DATA' { return 'DATA'; } +'DATABASE' { return 'DATABASE'; } +'DATABASES' { return 'DATABASES'; } +'DEALLOCATE' { return 'DEALLOCATE'; } +'DEC' { return 'DEC'; } +'DECFLOAT' { return 'DECFLOAT'; } +'DECIMAL' { return 'DECIMAL'; } +'DECLARE' { return 'DECLARE'; } +'DEFINE' { return 'DEFINE'; } +'DELETE' { return 'DELETE'; } +'DELIMITED' { return 'DELIMITED'; } +'DEREF' { return 'DEREF'; } +'DESC' { return 'DESC'; } +'DESCRIBE' { parser.determineCase(yytext); parser.addStatementTypeLocation('DESCRIBE', yylloc); return 'DESCRIBE'; } +'DETERMINISTIC' { return 'DETERMINISTIC'; } +'DISCONNECT' { return 'DISCONNECT'; } +'DISTINCT' { return 'DISTINCT'; } +'DIV' { return 'ARITHMETIC_OPERATOR'; } +'DOUBLE' { return 'DOUBLE'; } +'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } +'DYNAMIC' { return 'DYNAMIC'; } +'EACH' { return 'EACH'; } +'ELEMENT' { return 'ELEMENT'; } +'ELSE' { return 'ELSE'; } +'EMPTY' { return 'EMPTY'; } +'ENCODING' { return 'ENCODING'; } +'END' { return 'END'; } +'END_FRAME' { return 'END_FRAME'; } +'END_PARTITION' { return 'END_PARTITION'; } +'EQUALS' { return 'EQUALS'; } +'ESCAPE' { return 'ESCAPE'; } +'ESCAPED' { return 'ESCAPED'; } +'EVERY' { return 'EVERY'; } +'EXCEPT' { return 'EXCEPT'; } +'EXEC' { return 'EXEC'; } +'EXECUTE' { return 'EXECUTE'; } +'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } +'EXPLAIN' { parser.determineCase(yytext); parser.addStatementTypeLocation('EXPLAIN', yylloc); return 'EXPLAIN'; } +'EXTENDED' { return 'EXTENDED'; } +'EXTERNAL' { return 'EXTERNAL'; } +'FALSE' { return 'FALSE'; } +'FETCH' { return 'FETCH'; } +'FIELDS' { return 'FIELDS'; } +'FILEFORMAT' { return 'FILEFORMAT'; } +'FILES' { return 'FILES'; } +'FILTER' { return 'FILTER'; } +'FINALIZE_FN' { return 'FINALIZE_FN'; } +'FIRST' { return 'FIRST'; } +'FLOAT' { return 'FLOAT'; } +'FOLLOWING' { return 'FOLLOWING'; } +'FOR' { return 'FOR'; } +'FOREIGN' { return 'FOREIGN'; } +'FORMAT' { return 'FORMAT'; } +'FORMATTED' { return 'FORMATTED'; } +'FRAME_ROW' { return 'FRAME_ROW'; } +'FREE' { return 'FREE'; } +'FROM' { parser.determineCase(yytext); return 'FROM'; } +'FULL' { return 'FULL'; } +'FUNCTION' { return 'FUNCTION'; } +'FUNCTIONS' { return 'FUNCTIONS'; } +'FUSION' { return 'FUSION'; } +'GET' { return 'GET'; } +'GLOBAL' { return 'GLOBAL'; } +'GRANT' { parser.determineCase(yytext); parser.addStatementTypeLocation('GRANT', yylloc); return 'GRANT'; } +'GROUP' { return 'GROUP'; } +'GROUPING' { return 'GROUPING'; } +'GROUPS' { return 'GROUPS'; } +'HASH' { return 'HASH'; } +'HAVING' { return 'HAVING'; } +'HOLD' { return 'HOLD'; } +'IF' { return 'IF'; } +'IGNORE' { return 'IGNORE'; } +'ILIKE' { return 'ILIKE'; } +'IN' { return 'IN'; } +'INCREMENTAL' { return 'INCREMENTAL'; } +'INDICATOR' { return 'INDICATOR'; } +'INIT_FN' { return 'INIT_FN'; } +'INITIAL' { return 'INITIAL'; } +'INNER' { return 'INNER'; } +'INOUT' { return 'INOUT'; } +'INPATH' { this.begin('hdfs'); return 'INPATH'; } +'INSENSITIVE' { return 'INSENSITIVE'; } +'INSERT' { parser.determineCase(yytext); parser.addStatementTypeLocation('INSERT', yylloc); return 'INSERT'; } +'INT' { return 'INT'; } +'INTERMEDIATE' { return 'INTERMEDIATE'; } +'INTERSECT' { return 'INTERSECT'; } +'INTERSECTION' { return 'INTERSECTION'; } +'INTERVAL' { return 'INTERVAL'; } +'INTO' { return 'INTO'; } +'INVALIDATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('INVALIDATE', yylloc, yy.lexer.upcomingInput()); return 'INVALIDATE'; } +'IREGEXP' { return 'IREGEXP'; } +'IS' { return 'IS'; } +'JOIN' { return 'JOIN'; } +'JSON_ARRAY' { return 'JSON_ARRAY'; } +'JSON_ARRAYAGG' { return 'JSON_ARRAYAGG'; } +'JSON_EXISTS' { return 'JSON_EXISTS'; } +'JSON_OBJECT' { return 'JSON_OBJECT'; } +'JSON_OBJECTAGG' { return 'JSON_OBJECTAGG'; } +'JSON_QUERY' { return 'JSON_QUERY'; } +'JSON_TABLE' { return 'JSON_TABLE'; } +'JSON_TABLE_PRIMITIVE' { return 'JSON_TABLE_PRIMITIVE'; } +'JSON_VALUE' { return 'JSON_VALUE'; } +'KEY' { return 'KEY'; } +'KUDU' { return 'KUDU'; } +'LARGE' { return 'LARGE'; } +'LAST' { return 'LAST'; } +'LATERAL' { return 'LATERAL'; } +'LEADING' { return 'LEADING'; } +'LEFT' { return 'LEFT'; } +'LIKE' { return 'LIKE'; } +'LIKE_REGEX' { return 'LIKE_REGEX'; } +'LIMIT' { return 'LIMIT'; } +'LIFECYCLE' { return 'LIFECYCLE'; } +'LINES' { return 'LINES'; } +'LISTAGG' { return 'LISTAGG'; } +'LOAD' { parser.determineCase(yytext); parser.addStatementTypeLocation('LOAD', yylloc, yy.lexer.upcomingInput()); return 'LOAD'; } +'LOCAL' { return 'LOCAL'; } +'LOCALTIMESTAMP' { return 'LOCALTIMESTAMP'; } +'LOCATION' { this.begin('hdfs'); return 'LOCATION'; } +'MATCH' { return 'MATCH'; } +'MATCH_NUMBER' { return 'MATCH_NUMBER'; } +'MATCH_RECOGNIZE' { return 'MATCH_RECOGNIZE'; } +'MATCHES' { return 'MATCHES'; } +'MERGE' { return 'MERGE'; } +'MERGE_FN' { return 'MERGE_FN'; } +'METADATA' { return 'METADATA'; } +'METHOD' { return 'METHOD'; } +'MODIFIES' { return 'MODIFIES'; } +'MULTISET' { return 'MULTISET'; } +'NATIONAL' { return 'NATIONAL'; } +'NATURAL' { return 'NATURAL'; } +'NCHAR' { return 'NCHAR'; } +'NCLOB' { return 'NCLOB'; } +'NO' { return 'NO'; } +'NONE' { return 'NONE'; } +'NORMALIZE' { return 'NORMALIZE'; } +'NOT' { return 'NOT'; } +'NTH_VALUE' { return 'NTH_VALUE'; } +'NULL' { return 'NULL'; } +'NULLS' { return 'NULLS'; } +'NUMERIC' { return 'NUMERIC'; } +'OCCURRENCES_REGEX' { return 'OCCURRENCES_REGEX'; } +'OCTET_LENGTH' { return 'OCTET_LENGTH'; } +'OF' { return 'OF'; } +'OFFSET' { return 'OFFSET'; } +'OMIT' { return 'OMIT'; } +'ON' { return 'ON'; } +'ONE' { return 'ONE'; } +'ONLY' { return 'ONLY'; } +'OPTION' { return 'OPTION'; } +'OR' { return 'OR'; } +'ORC' { return 'ORC'; } +'ORDER' { return 'ORDER'; } +'OUT' { return 'OUT'; } +'OUTER' { return 'OUTER'; } +'OVER' { return 'OVER'; } +'OVERLAPS' { return 'OVERLAPS'; } +'OVERLAY' { return 'OVERLAY'; } +'OVERWRITE' { return 'OVERWRITE'; } +'PARQUET' { return 'PARQUET'; } +'PARTITION' { return 'PARTITION'; } +'PARTITIONED' { return 'PARTITIONED'; } +'PARTITIONS' { return 'PARTITIONS'; } +'PATTERN' { return 'PATTERN'; } +'PER' { return 'PER'; } +'PERCENT' { return 'PERCENT'; } +'PERCENTILE_CONT' { return 'PERCENTILE_CONT'; } +'PERCENTILE_DISC' { return 'PERCENTILE_DISC'; } +'PORTION' { return 'PORTION'; } +'POSITION' { return 'POSITION'; } +'POSITION_REGEX' { return 'POSITION_REGEX'; } +'PRECEDES' { return 'PRECEDES'; } +'PRECEDING' { return 'PRECEDING'; } +'PREPARE' { return 'PREPARE'; } +'PREPARE_FN' { return 'PREPARE_FN'; } +'PRIMARY' { return 'PRIMARY'; } +'PROCEDURE' { return 'PROCEDURE'; } +'PTF' { return 'PTF'; } +'PURGE' { return 'PURGE'; } +'RANGE' { return 'RANGE'; } +'RCFILE' { return 'RCFILE'; } +'READS' { return 'READS'; } +'REAL' { return 'REAL'; } +'RECOVER' { return 'RECOVER'; } +'RECURSIVE' { return 'RECURSIVE'; } +'REF' { return 'REF'; } +'REFERENCES' { return 'REFERENCES'; } +'REFERENCING' { return 'REFERENCING'; } +'REFRESH' { parser.determineCase(yytext); parser.addStatementTypeLocation('REFRESH', yylloc); return 'REFRESH'; } +'REGEXP' { return 'REGEXP'; } +'REGR_AVGX' { return 'REGR_AVGX'; } +'REGR_AVGY' { return 'REGR_AVGY'; } +'REGR_COUNT' { return 'REGR_COUNT'; } +'REGR_INTERCEPT' { return 'REGR_INTERCEPT'; } +'REGR_R2REGR_SLOPE' { return 'REGR_R2REGR_SLOPE'; } +'REGR_SXX' { return 'REGR_SXX'; } +'REGR_SXY' { return 'REGR_SXY'; } +'REGR_SYY' { return 'REGR_SYY'; } +'RELEASE' { return 'RELEASE'; } +'RENAME' { return 'RENAME'; } +'REPEATABLE' { return 'REPEATABLE'; } +'REPLACE' { return 'REPLACE'; } +'REPLICATION' { return 'REPLICATION'; } +'RESTRICT' { return 'RESTRICT'; } +'RETURNS' { return 'RETURNS'; } +'REVOKE' { parser.determineCase(yytext); parser.addStatementTypeLocation('REVOKE', yylloc); return 'REVOKE'; } +'RIGHT' { return 'RIGHT'; } +'RLIKE' { return 'RLIKE'; } +'ROLE' { return 'ROLE'; } +'ROLES' { return 'ROLES'; } +'ROLLBACK' { return 'ROLLBACK'; } +'ROLLUP' { return 'ROLLUP'; } +'ROW' { return 'ROW'; } +'ROWS' { return 'ROWS'; } +'RUNNING' { return 'RUNNING'; } +'SAVEPOINT' { return 'SAVEPOINT'; } +'SCHEMA' { return 'SCHEMA'; } +'SCHEMAS' { return 'SCHEMAS'; } +'SCOPE' { return 'SCOPE'; } +'SCROLL' { return 'SCROLL'; } +'SEARCH' { return 'SEARCH'; } +'SEEK' { return 'SEEK'; } +'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } +'SEMI' { return 'SEMI'; } +'SENSITIVE' { return 'SENSITIVE'; } +'SEQUENCEFILE' { return 'SEQUENCEFILE'; } +'SERDEPROPERTIES' { return 'SERDEPROPERTIES'; } +'SERIALIZE_FN' { return 'SERIALIZE_FN'; } +'SERVER' { return 'SERVER'; } +'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } +'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } +'SIMILAR' { return 'SIMILAR'; } +'SKIP' { return 'SKIP'; } +'SMALLINT' { return 'SMALLINT'; } +'SOME' { return 'SOME'; } +'SORT' { return 'SORT'; } +'SPECIFIC' { return 'SPECIFIC'; } +'SPECIFICTYPE' { return 'SPECIFICTYPE'; } +'SQLEXCEPTION' { return 'SQLEXCEPTION'; } +'SQLSTATE' { return 'SQLSTATE'; } +'SQLWARNING' { return 'SQLWARNING'; } +'STATIC' { return 'STATIC'; } +'STATS' { return 'STATS'; } +'STORED' { return 'STORED'; } +'STRAIGHT_JOIN' { return 'STRAIGHT_JOIN'; } +'STRING' { return 'STRING'; } +'SUBMULTISET' { return 'SUBMULTISET'; } +'SUBSET' { return 'SUBSET'; } +'SUBSTRING_REGEX' { return 'SUBSTRING_REGEX'; } +'SUCCEEDS' { return 'SUCCEEDS'; } +'SYMBOL' { return 'SYMBOL'; } +'SYMMETRIC' { return 'SYMMETRIC'; } +'SYSTEM_TIME' { return 'SYSTEM_TIME'; } +'SYSTEM_USER' { return 'SYSTEM_USER'; } +'TABLE' { return 'TABLE'; } +'TABLES' { return 'TABLES'; } +'TABLESAMPLE' { return 'TABLESAMPLE'; } +'TBLPROPERTIES' { return 'TBLPROPERTIES'; } +'TERMINATED' { return 'TERMINATED'; } +'TEXTFILE' { return 'TEXTFILE'; } +'THEN' { return 'THEN'; } +'TIMESTAMP' { return 'TIMESTAMP'; } +'TIMEZONE_HOUR' { return 'TIMEZONE_HOUR'; } +'TIMEZONE_MINUTE' { return 'TIMEZONE_MINUTE'; } +'TINYINT' { return 'TINYINT'; } +'TO' { return 'TO'; } +'TRAILING' { return 'TRAILING'; } +'TRANSLATE_REGEX' { return 'TRANSLATE_REGEX'; } +'TRANSLATION' { return 'TRANSLATION'; } +'TREAT' { return 'TREAT'; } +'TRIGGER' { return 'TRIGGER'; } +'TRIM_ARRAY' { return 'TRIM_ARRAY'; } +'TRUE' { return 'TRUE'; } +'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } +'UESCAPE' { return 'UESCAPE'; } +'UNBOUNDED' { return 'UNBOUNDED'; } +'UNCACHED' { return 'UNCACHED'; } +'UNION' { return 'UNION'; } +'UNIQUE' { return 'UNIQUE'; } +'UNKNOWN' { return 'UNKNOWN'; } +'UNNEST' { return 'UNNEST'; } +'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } +'UPDATE_FN' { return 'UPDATE_FN'; } +'UPSERT' { parser.determineCase(yytext); parser.addStatementTypeLocation('UPSERT', yylloc); return 'UPSERT'; } +'URI' { return 'URI'; } +'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } +'USER' { return 'USER'; } +'USING' { return 'USING'; } +'VALUE_OF' { return 'VALUE_OF'; } +'VALUES' { return 'VALUES'; } +'VARBINARY' { return 'VARBINARY'; } +'VARCHAR' { return 'VARCHAR'; } +'VARYING' { return 'VARYING'; } +'VERSIONING' { return 'VERSIONING'; } +'VIEW' { return 'VIEW'; } +'WHEN' { return 'WHEN'; } +'WHENEVER' { return 'WHENEVER'; } +'WHERE' { return 'WHERE'; } +'WIDTH_BUCKET' { return 'WIDTH_BUCKET'; } +'WINDOW' { return 'WINDOW'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } +'WITHIN' { return 'WITHIN'; } +'WITHOUT' { return 'WITHOUT'; } +LIKE\s+PARQUET { this.begin('hdfs'); return 'LIKE_PARQUET'; } +PARTITION\s+VALUE\s { return 'PARTITION_VALUE'; } + +// Non-reserved Keywords +'OVER' { return 'OVER'; } +'ROLE' { return 'ROLE'; } +'ARRAY' { return 'ARRAY'; } +'DEFAULT' { return 'DEFAULT'; } +'MAP' { return 'MAP'; } +'OWNER' { return 'OWNER'; } +'STRUCT' { return 'STRUCT'; } +\[BROADCAST\] { return 'BROADCAST'; } +\[NOSHUFFLE\] { return 'NOSHUFFLE'; } +\[SHUFFLE\] { return 'SHUFFLE'; } + +// --- UDFs --- +APPX_MEDIAN\s*\( { yy.lexer.unput('('); yytext = 'appx_median'; parser.addFunctionLocation(yylloc, yytext); return 'APPX_MEDIAN'; } +AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } +CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } +COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } +EXTRACT\s*\( { yy.lexer.unput('('); yytext = 'extract'; parser.addFunctionLocation(yylloc, yytext); return 'EXTRACT'; } +GROUP_CONCAT\s*\( { yy.lexer.unput('('); yytext = 'group_concat'; parser.addFunctionLocation(yylloc, yytext); return 'GROUP_CONCAT'; } +LEFT\s*\( { yy.lexer.unput('('); yytext = 'left'; parser.addFunctionLocation(yylloc, yytext); return 'LEFT_F'; } +MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } +MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } +NDV\s*\( { yy.lexer.unput('('); yytext = 'ndv'; parser.addFunctionLocation(yylloc, yytext); return 'NDV'; } +STDDEV\s*\( { yy.lexer.unput('('); yytext = 'stddev'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV'; } +STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } +STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } +SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } +VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } +VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } +VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } +VARIANCE_POP\s*\( { yy.lexer.unput('('); yytext = 'variance_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE_POP'; } +VARIANCE_SAMP\s*\( { yy.lexer.unput('('); yytext = 'variance_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE_SAMP'; } + +// Analytical functions +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +NTILE\s*\( { yy.lexer.unput('('); yytext = 'ntile'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +PERCENT_RANK\s*\( { yy.lexer.unput('('); yytext = 'percent_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } + +SYSTEM\s*\( { yy.lexer.unput('('); yytext = 'system'; return 'SYSTEM'; } + +[0-9]+ { return 'UNSIGNED_INTEGER'; } +[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } +[0-9]+E { return 'UNSIGNED_INTEGER_E'; } +[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } + +'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } +'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } +\s+['"] { return 'HDFS_START_QUOTE'; } +[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } +['"] { this.popState(); return 'HDFS_END_QUOTE'; } +<> { return 'EOF'; } + +'&&' { return 'AND'; } +'||' { return 'OR'; } + +'=' { return '='; } +'<' { return '<'; } +'>' { return '>'; } +'!=' { return 'COMPARISON_OPERATOR'; } +'<=' { return 'COMPARISON_OPERATOR'; } +'>=' { return 'COMPARISON_OPERATOR'; } +'<>' { return 'COMPARISON_OPERATOR'; } +'<=>' { return 'COMPARISON_OPERATOR'; } + +'-' { return '-'; } +'*' { return '*'; } +'+' { return 'ARITHMETIC_OPERATOR'; } +'/' { return 'ARITHMETIC_OPERATOR'; } +'%' { return 'ARITHMETIC_OPERATOR'; } +'|' { return 'ARITHMETIC_OPERATOR'; } +'^' { return 'ARITHMETIC_OPERATOR'; } +'&' { return 'ARITHMETIC_OPERATOR'; } + +',' { return ','; } +'.' { return '.'; } +'...' { return '...'; } +':' { return ':'; } +';' { return ';'; } +'~' { return '~'; } +'!' { return '!'; } + +'(' { return '('; } +')' { return ')'; } +'[' { return '['; } +']' { return ']'; } + + +\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } + +\` { this.begin('backtickedValue'); return 'BACKTICK'; } +[^`]+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\` { this.popState(); return 'BACKTICK'; } + +\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } +(?:\\\\|\\[']|[^'])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\' { this.popState(); return 'SINGLE_QUOTE'; } + +\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } +(?:\\\\|\\["]|[^"])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\" { this.popState(); return 'DOUBLE_QUOTE'; } + +<> { return 'EOF'; } + +. { /* To prevent console logging of unknown chars */ } +. { } +. { } +. { } +. { } diff --git a/src/jison/sql/impala/sql_alter.jison b/src/jison/sql/impala/sql_alter.jison new file mode 100644 index 0000000..e08466a --- /dev/null +++ b/src/jison/sql/impala/sql_alter.jison @@ -0,0 +1,573 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : AlterStatement + ; + +DataDefinition_EDIT + : AlterStatement_EDIT + ; + +AlterStatement + : AlterDatabase + | AlterTable + | AlterView + | CommentOn + ; + +AlterStatement_EDIT + : AlterDatabase_EDIT + | AlterTable_EDIT + | AlterView_EDIT + | CommentOn_EDIT + | 'ALTER' 'CURSOR' + { + parser.suggestKeywords(['TABLE', 'VIEW']); + } + ; + +AlterDatabase + : 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' RoleOrUser RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + ; + +AlterDatabase_EDIT + : 'ALTER' DatabaseOrSchema 'CURSOR' + { + parser.suggestDatabases(); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'CURSOR' + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + parser.suggestKeywords(['SET OWNER']); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'CURSOR' + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + parser.suggestKeywords(['OWNER']); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' 'CURSOR' + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + parser.suggestKeywords(['ROLE', 'USER']); + } + ; + +AlterTable + : AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedInOrUncached + | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'PARTITION' RangePartitionSpec + | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'PARTITION_VALUE' '=' UnsignedValueSpecification + | AlterTableLeftSide 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName + | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'SET' KuduStorageAttribute SetValue + { + parser.addColumnLocation($4.location, [ $4.identifier ]); + } + | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'DROP' 'DEFAULT' + { + parser.addColumnLocation($4.location, [ $4.identifier ]); + } + | AlterTableLeftSide 'SET' 'COLUMN' 'STATS' ColumnIdentifier ParenthesizedStatsList + { + parser.addColumnLocation($5.location, [ $5.identifier ]); + } + | AlterTableLeftSide 'SET' 'OWNER' RoleOrUser RegularOrBacktickedIdentifier + | AlterTableLeftSide DropOperations + | AlterTableLeftSide OptionalPartitionOperations + | AlterTableLeftSide PartitionSpec OptionalPartitionOperations + | AlterTableLeftSide 'RECOVER' 'PARTITIONS' + ; + +AlterTable_EDIT + : AlterTableLeftSide_EDIT + | AlterTableLeftSide_EDIT 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedInOrUncached + | AlterTableLeftSide_EDIT 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName + | AlterTableLeftSide_EDIT 'ALTER' OptionalColumn ColumnIdentifier 'SET' KuduStorageAttribute SetValue + { + parser.addColumnLocation($4.location, [ $4.identifier ]); + } + | AlterTableLeftSide_EDIT 'ALTER' OptionalColumn ColumnIdentifier 'DROP' 'DEFAULT' + { + parser.addColumnLocation($4.location, [ $4.identifier ]); + } + | AlterTableLeftSide_EDIT 'SET' 'COLUMN' 'STATS' ColumnIdentifier ParenthesizedStatsList + { + parser.addColumnLocation($5.location, [ $5.identifier ]); + } + | AlterTableLeftSide_EDIT 'SET' 'OWNER' RoleOrUser RegularOrBacktickedIdentifier + | AlterTableLeftSide_EDIT DropOperations + | AlterTableLeftSide_EDIT OptionalPartitionOperations + | AlterTableLeftSide_EDIT PartitionSpec OptionalPartitionOperations + | AlterTableLeftSide 'ADD' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 4 }, { value: 'COLUMNS', weight: 3 }, { value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); + } else { + parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'RANGE PARTITION', weight: 1 }]); + } + } + | AlterTableLeftSide 'REPLACE' 'CURSOR' + { + parser.suggestKeywords(['COLUMNS']); + } + | AlterTableLeftSide 'ADD' OptionalIfNotExists_EDIT + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec HdfsLocation_EDIT OptionalPartitionSpecs OptionalCachedInOrUncached + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs_EDIT OptionalCachedInOrUncached + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs CachedIn_EDIT + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedInOrUncached 'CURSOR' + { + if (!$5 && !$6 && !$7) { + parser.suggestKeywords(['LOCATION', 'CACHED IN', 'UNCACHED']); + } else if (!$7) { + parser.suggestKeywords(['CACHED IN', 'UNCACHED']); + } else if ($7 && $7.suggestKeywords) { + parser.suggestKeywords($7.suggestKeywords); + } + } + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec_EDIT OptionalHdfsLocation OptionalPartitionSpecs OptionalCachedIn + | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['VALUE']); + } + | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'PARTITION_VALUE' 'CURSOR' + { + parser.suggestKeywords(['=']); + } + | AlterTableLeftSide 'ADD' OptionalIfNotExists 'RANGE' 'PARTITION' RangePartitionSpec_EDIT + | AlterTableLeftSide 'ALTER' OptionalColumn 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['COLUMN']); + } + parser.suggestColumns(); + } + | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'CURSOR' + { + parser.suggestKeywords(['DROP DEFAULT', 'SET BLOCK_SIZE', 'SET COMMENT', 'SET COMPRESSION', 'SET DEFAULT', + 'SET ENCODING']); + parser.addColumnLocation($4.location, [ $4.identifier ]); + } + | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'DROP' 'CURSOR' + { + parser.suggestKeywords(['DEFAULT']); + parser.addColumnLocation($4.location, [ $4.identifier ]); + } + | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'SET' 'CURSOR' + { + parser.suggestKeywords(['BLOCK_SIZE', 'COMMENT', 'COMPRESSION', 'DEFAULT', 'ENCODING']); + parser.addColumnLocation($4.location, [ $4.identifier ]); + } + | AlterTableLeftSide 'ALTER' OptionalColumn ColumnIdentifier 'SET' KuduStorageAttribute 'CURSOR' + { + parser.addColumnLocation($4.location, [ $4.identifier ]); + } + | AlterTableLeftSide 'SET' 'COLUMN' 'CURSOR' + { + parser.suggestKeywords(['STATS']); + } + | AlterTableLeftSide 'SET' 'COLUMN' 'STATS' 'CURSOR' + { + parser.suggestColumns(); + } + | AlterTableLeftSide 'SET' 'COLUMN' 'STATS' ColumnIdentifier 'CURSOR' + { + parser.addColumnLocation($5.location, [ $5.identifier ]); + } + | AlterTableLeftSide 'SET' 'COLUMN' 'STATS' ColumnIdentifier ParenthesizedStatsList_EDIT + { + parser.addColumnLocation($5.location, [ $5.identifier ]); + } + | AlterTableLeftSide 'SET' 'OWNER' 'CURSOR' + { + parser.suggestKeywords(['ROLE', 'USER']); + } + | AlterTableLeftSide 'SET' 'OWNER' RoleOrUser 'CURSOR' + | AlterTableLeftSide OptionalPartitionOperations_EDIT + | AlterTableLeftSide DropOperations_EDIT + | AlterTableLeftSide 'CURSOR' + { + parser.suggestKeywords(['ADD COLUMNS', 'ADD PARTITION', 'ADD RANGE PARTITION', 'ALTER', 'ALTER COLUMN', 'CHANGE', + 'DROP COLUMN', 'DROP PARTITION', 'DROP RANGE PARTITION', 'PARTITION', 'RECOVER PARTITIONS', 'RENAME TO', + 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', + 'SET ROW FORMAT', 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); + } + | AlterTableLeftSide PartitionSpec 'CURSOR' + { + parser.suggestKeywords(['SET CACHED IN', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', + 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); + } + | AlterTableLeftSide PartitionSpec AddOrReplace 'CURSOR' + { + parser.suggestKeywords(['COLUMNS']); + } + | AlterTableLeftSide PartitionSpec 'SET' 'CURSOR' + { + parser.suggestKeywords(['CACHED IN', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES','TBLPROPERTIES', 'UNCACHED']); + } + | AlterTableLeftSide 'SET' 'CURSOR' + { + parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'OWNER ROLE', 'OWNER USER', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); + } + | AlterTableLeftSide PartitionSpec OptionalPartitionOperations_EDIT + | AlterTableLeftSide 'RENAME' 'CURSOR' + { + parser.suggestKeywords(['TO']); + } + | AlterTableLeftSide 'RENAME' 'TO' 'CURSOR' + { + parser.suggestDatabases({ appendDot: true }); + } + | AlterTableLeftSide 'RECOVER' 'CURSOR' + { + parser.suggestKeywords(['PARTITIONS']); + } + ; + +KuduStorageAttribute + : 'BLOCK_SIZE' + | 'COMMENT' + | 'COMPRESSION' + | 'DEFAULT' + | 'ENCODING' + ; + +OptionalColumn + : + | 'COLUMN' + ; + +ParenthesizedStatsList + : '(' StatsList ')' + ; + +ParenthesizedStatsList_EDIT + : '(' StatsList_EDIT RightParenthesisOrError + ; + +StatsList + : StatsAssignment + | StatsList ',' StatsAssignment + ; + +StatsList_EDIT + : StatsAssignment_EDIT + | StatsList ',' StatsAssignment_EDIT + | StatsList ',' StatsAssignment_EDIT ',' StatsList + | StatsAssignment_EDIT ',' StatsList + ; + +StatsAssignment + : QuotedValue '=' QuotedValue + ; + +StatsAssignment_EDIT + : 'CURSOR' + { + parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); + } + ; + +OptionalPartitionOperations + : 'SET' 'FILEFORMAT' FileFormat + | 'SET' HdfsLocation + | 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + | 'SET' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList + | 'SET' CachedIn OptionalWithReplication + | 'SET' 'ROW' 'FORMAT' DelimitedRowFormat + | 'SET' 'UNCACHED' + | AddReplaceColumns + | 'CHANGE' ColumnIdentifier ColumnSpecification + { + parser.addColumnLocation($2.location, [ $2.identifier ]); + } + ; + +OptionalPartitionOperations_EDIT + : AddReplaceColumns_EDIT + | 'CHANGE' 'CURSOR' + { + parser.suggestColumns(); + } + | 'CHANGE' ColumnIdentifier ColumnSpecification_EDIT + { + parser.addColumnLocation($2.location, [ $2.identifier ]); + } + | 'CHANGE' ColumnIdentifier ColumnSpecification 'CURSOR' + { + parser.addColumnLocation($2.location, [ $2.identifier ]); + } + | 'SET' 'FILEFORMAT' 'CURSOR' + { + parser.suggestFileFormats(); + } + | 'SET' HdfsLocation_EDIT + | 'SET' CachedIn_EDIT + | 'SET' CachedIn OptionalWithReplication 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['WITH REPLICATION =']); + } + } + | 'SET' CachedIn WithReplication_EDIT + | 'SET' 'ROW' 'CURSOR' + { + parser.suggestKeywords(['FORMAT']); + } + | 'SET' 'ROW' 'FORMAT' 'CURSOR' + { + parser.suggestKeywords(['DELIMITED']); + } + | 'SET' 'ROW' 'FORMAT' DelimitedRowFormat 'CURSOR' + { + if ($4.suggestKeywords) { + parser.suggestKeywords($4.suggestKeywords); + } + } + | 'SET' 'ROW' 'FORMAT' DelimitedRowFormat_EDIT + ; + +AddReplaceColumns + : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList + ; + +AddReplaceColumns_EDIT + : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList_EDIT + | AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList 'CURSOR' + ; + +ExchangePartitionSpec + : 'PARTITION' '(' OneOrMorePartitionSpecLists ')' + | 'PARTITION' '(' PartitionSpecList ')' + ; + +ExchangePartitionSpec_EDIT + : 'PARTITION' '(' OneOrMorePartitionSpecLists_EDIT RightParenthesisOrError + | 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +OneOrMorePartitionSpecLists + : '(' PartitionSpecList ')' + | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList ')' + ; + +OneOrMorePartitionSpecLists_EDIT + : '(' PartitionSpecList_EDIT RightParenthesisOrError + | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +DropOperations + : 'DROP' OptionalIfExists PartitionSpec + | 'DROP' OptionalIfExists 'RANGE' + | 'DROP' OptionalIfExists 'RANGE' 'PARTITION' RangePartitionSpec + | 'DROP' OptionalIfExists 'RANGE' 'PARTITION_VALUE' '=' UnsignedValueSpecification + | 'DROP' 'COLUMN' ColumnIdentifier + { + parser.addColumnLocation($3.location, [ $3.identifier ]); + } + ; + +DropOperations_EDIT + : 'DROP' OptionalIfExists 'CURSOR' + { + if (!$2) { + parser.suggestKeywords([{ value: 'COLUMN', weight: 1 }, { value: 'PARTITION', weight: 1 }, { value: 'RANGE PARTITION', weight: 1 }, { value: 'IF EXISTS', weight: 2 }]); + parser.suggestColumns(); + } else { + parser.suggestKeywords(['PARTITION', 'RANGE PARTITION']); + } + } + | 'DROP' OptionalIfExists PartitionSpec_EDIT + | 'DROP' OptionalIfExists PartitionSpec 'CURSOR' + | 'DROP' OptionalIfExists_EDIT + | 'DROP' OptionalIfExists 'RANGE' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | 'DROP' OptionalIfExists 'RANGE' 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['VALUE']); + } + | 'DROP' OptionalIfExists 'RANGE' 'PARTITION_VALUE' 'CURSOR' + { + parser.suggestKeywords(['=']); + } + | 'DROP' OptionalIfExists 'RANGE' 'PARTITION' RangePartitionSpec_EDIT + | 'DROP' ColumnIdentifier_EDIT + | 'DROP' 'COLUMN' 'CURSOR' + { + parser.suggestColumns(); + } + | 'DROP' 'COLUMN' ColumnIdentifier_EDIT + ; + +AlterTableLeftSide + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterTableLeftSide_EDIT + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'ALTER' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +AddOrReplace + : 'ADD' + | 'REPLACE' + ; + +OptionalPartitionSpecs + : + | PartitionSpecWithLocationList + ; + +PartitionSpecWithLocationList + : PartitionSpecWithLocation + | PartitionSpecWithLocationList PartitionSpecWithLocation -> $2 + ; + +OptionalPartitionSpecs_EDIT + : PartitionSpecWithLocation_EDIT + | PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList + | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT + | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList + ; + +PartitionSpecWithLocation_EDIT + : PartitionSpec HdfsLocation_EDIT + | PartitionSpec_EDIT OptionalHdfsLocation + ; + +PartitionSpecWithLocation + : PartitionSpec OptionalHdfsLocation + { + if (!$2) { + $$ = { suggestKeywords: ['LOCATION'] }; + } + } + ; + +AlterView + : AlterViewLeftSide 'SET' 'OWNER' RoleOrUser RegularOrBacktickedIdentifier + | AlterViewLeftSide 'AS' QuerySpecification + | AlterViewLeftSide 'RENAME' 'TO' RegularOrBacktickedIdentifier + | AlterViewLeftSide 'RENAME' 'TO' RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + ; + +AlterView_EDIT + : AlterViewLeftSide_EDIT + | AlterViewLeftSide 'CURSOR' + { + parser.suggestKeywords(['AS', 'RENAME TO', 'SET OWNER']); + } + | AlterViewLeftSide 'SET' 'CURSOR' + { + parser.suggestKeywords(['OWNER ROLE', 'OWNER USER']); + } + | AlterViewLeftSide 'SET' 'OWNER' 'CURSOR' + { + parser.suggestKeywords(['ROLE', 'USER']); + } + | AlterViewLeftSide 'SET' 'OWNER' RoleOrUser 'CURSOR' + | AlterViewLeftSide 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | AlterViewLeftSide 'AS' QuerySpecification_EDIT + | AlterViewLeftSide 'RENAME' 'CURSOR' + { + parser.suggestKeywords(['TO']); + } + | AlterViewLeftSide 'RENAME' 'TO' 'CURSOR' + { + parser.suggestDatabases({ appendDot: true }); + } + ; + + +AlterViewLeftSide + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterViewLeftSide_EDIT + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'ALTER' 'VIEW' 'CURSOR' + { + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +CommentOn + : 'COMMENT' 'ON' 'DATABASE' RegularOrBacktickedIdentifier 'IS' NullableComment + { + parser.addDatabaseLocation(@4, [ { name: $4 } ]); + } + ; + +CommentOn_EDIT + : 'COMMENT' 'CURSOR' + { + parser.suggestKeywords(['ON DATABASE']); + } + | 'COMMENT' 'ON' 'CURSOR' + { + parser.suggestKeywords(['DATABASE']); + } + | 'COMMENT' 'ON' 'DATABASE' 'CURSOR' + { + parser.suggestDatabases(); + } + | 'COMMENT' 'ON' 'DATABASE' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.addDatabaseLocation(@4, [ { name: $4 } ]); + parser.suggestKeywords(['IS']); + } + | 'COMMENT' 'ON' 'DATABASE' RegularOrBacktickedIdentifier 'IS' 'CURSOR' + { + parser.addDatabaseLocation(@4, [ { name: $4 } ]); + parser.suggestKeywords(['NULL']); + } + ; + +NullableComment + : QuotedValue + | 'NULL' + ; diff --git a/src/jison/sql/impala/sql_analyze.jison b/src/jison/sql/impala/sql_analyze.jison new file mode 100644 index 0000000..5f74069 --- /dev/null +++ b/src/jison/sql/impala/sql_analyze.jison @@ -0,0 +1,164 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : RefreshStatement + | InvalidateStatement + | ComputeStatsStatement + ; + +DataDefinition_EDIT + : RefreshStatement_EDIT + | InvalidateStatement_EDIT + | ComputeStatsStatement_EDIT + ; + +RefreshStatement + : 'REFRESH' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($2); + } + | 'REFRESH' 'FUNCTIONS' DatabaseIdentifier + { + parser.addDatabaseLocation(@3, [{ name: $3 }]); + } + | 'REFRESH' 'AUTHORIZATION' + ; + +RefreshStatement_EDIT + : 'REFRESH' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + parser.suggestKeywords(['AUTHORIZATION', 'FUNCTIONS']); + } + | 'REFRESH' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'REFRESH' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($2); + if (!$3) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'REFRESH' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + | 'REFRESH' 'FUNCTIONS' 'CURSOR' + { + parser.suggestDatabases(); + } + ; + +InvalidateStatement + : 'INVALIDATE' 'METADATA' + | 'INVALIDATE' 'METADATA' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +InvalidateStatement_EDIT + : 'INVALIDATE' 'CURSOR' + { + parser.suggestKeywords(['METADATA']); + } + | 'INVALIDATE' 'METADATA' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'INVALIDATE' 'METADATA' SchemaQualifiedTableIdentifier_EDIT + | 'INVALIDATE' 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + parser.suggestKeywords(['METADATA']); + } + ; + +ComputeStatsStatement + : 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalTableSample + { + parser.addTablePrimary($3); + } + | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($4); + } + ; + +ComputeStatsStatement_EDIT + : 'COMPUTE' 'CURSOR' + { + parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); + } + | 'COMPUTE' 'STATS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier_EDIT + | 'COMPUTE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($3); + parser.suggestKeywords(['STATS', 'INCREMENTAL STATS']); + } + | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalTableSample 'CURSOR' + { + parser.addTablePrimary($3); + if (!$5) { + parser.suggestKeywords(['TABLESAMPLE']); + } else if ($5.suggestKeywords) { + parser.suggestKeywords($5.suggestKeywords); + } + } + | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier ParenthesizedColumnList_EDIT OptionalTableSample + { + parser.addTablePrimary($3); + } + | 'COMPUTE' 'STATS' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList TableSample_EDIT + { + parser.addTablePrimary($3); + } + | 'COMPUTE' 'CURSOR' 'STATS' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($4); + parser.suggestKeywords(['INCREMENTAL']); + } + | 'COMPUTE' 'INCREMENTAL' 'CURSOR' + { + parser.suggestKeywords(['STATS']); + } + | 'COMPUTE' 'INCREMENTAL' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($4); + parser.suggestKeywords(['STATS']); + } + | 'COMPUTE' 'INCREMENTAL' 'STATS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier 'CURSOR' OptionalPartitionSpec + { + parser.addTablePrimary($4); + if (!$6) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'COMPUTE' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec_EDIT + { + parser.addTablePrimary($4); + } + ; diff --git a/src/jison/sql/impala/sql_create.jison b/src/jison/sql/impala/sql_create.jison new file mode 100644 index 0000000..35b52c9 --- /dev/null +++ b/src/jison/sql/impala/sql_create.jison @@ -0,0 +1,1285 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : CreateStatement + ; + +DataDefinition_EDIT + : CreateStatement_EDIT + ; + +CreateStatement + : DatabaseDefinition + | TableDefinition + | ViewDefinition + | RoleDefinition + | FunctionDefinition + ; + +CreateStatement_EDIT + : DatabaseDefinition_EDIT + | TableDefinition_EDIT + | ViewDefinition_EDIT + | FunctionDefinition_EDIT + | 'CREATE' OptionalExternal 'CURSOR' + { + if ($2) { + parser.suggestKeywords(['TABLE']); + } else { + parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + } + ; + +DatabaseDefinition + : 'CREATE' DatabaseOrSchema OptionalIfNotExists + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT + | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinitionOptionals + : OptionalComment OptionalHdfsLocation + { + var keywords = []; + if (!$2) { + keywords.push('LOCATION'); + } + if (!$1 && !$2) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + ; + +DatabaseDefinitionOptionals_EDIT + : OptionalComment_INVALID OptionalHdfsLocation + | OptionalComment HdfsLocation_EDIT + ; + +OptionalComment + : + | Comment + ; + +Comment + : 'COMMENT' QuotedValue + ; + +OptionalComment_INVALID + : Comment_INVALID + ; + +Comment_INVALID + : 'COMMENT' SINGLE_QUOTE + | 'COMMENT' DOUBLE_QUOTE + | 'COMMENT' SINGLE_QUOTE VALUE + | 'COMMENT' DOUBLE_QUOTE VALUE + ; + +ParenthesizedPropertyAssignmentList + : '(' PropertyAssignmentList ')' + ; + +PropertyAssignmentList + : PropertyAssignment + | PropertyAssignmentList ',' PropertyAssignment + ; + +PropertyAssignment + : QuotedValue '=' UnsignedValueSpecification + ; + +TableDefinition + : 'CREATE' OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart LifeCyclePart + ; + +TableDefinition_EDIT + : 'CREATE' OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT + | 'CREATE' OptionalExternal 'TABLE' OptionalIfNotExists 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' OptionalExternal 'TABLE' OptionalIfNotExists_EDIT + ; + +TableDefinitionRightPart + : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment + OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs + OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + ; + +TableDefinitionRightPart_EDIT + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalSortBy OptionalComment + OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs + OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalSortBy OptionalComment + OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs + OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy SortBy_EDIT OptionalComment + OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs + OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment + RowFormat_EDIT OptionalWithSerdeproperties OptionalStoredAs + OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment + OptionalRowFormat WithSerdeproperties_EDIT OptionalStoredAs + OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment + OptionalRowFormat OptionalWithSerdeproperties StoredAs_EDIT + OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment + OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs + HdfsLocation_EDIT OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment + OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs + OptionalHdfsLocation CachedIn_EDIT OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment + OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs + OptionalHdfsLocation CachedIn WithReplication_EDIT OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment + OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs + OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalSortBy OptionalComment + OptionalRowFormat OptionalWithSerdeproperties OptionalStoredAs + OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties 'CURSOR' + { + var keywords = []; + if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'LIKE', weight: 1 }); + keywords.push({ value: 'LIKE PARQUET', weight: 1 }); + } else { + if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + keywords.push({ value: 'PARTITION BY', weight: 12 }); + } + if (!$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'SORT BY', weight: 11 }); + } + if (!$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'COMMENT', weight: 10 }); + } + if (!$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'ROW FORMAT', weight: 7 }); + } else if ($5 && $5.suggestKeywords && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 7)); + } + if (!$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 6 }); + } + if (!$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'STORED AS', weight: 5 }); + } + if (!$8 && !$9 && !$10) { + keywords.push({ value: 'LOCATION', weight: 4 }); + } + if (!$9 && !$10) { + keywords.push({ value: 'CACHED IN', weight: 3 }, { value: 'UNCACHED', weight: 3 }); + } else if ($9 && $9.suggestKeywords && !$10) { + keywords = keywords.concat(parser.createWeightedKeywords($9.suggestKeywords, 3)); + } + if (!$10) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + parser.suggestKeywords(keywords); + } + ; + +TableIdentifierAndOptionalColumnSpecification + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } + ; + +TableIdentifierAndOptionalColumnSpecification_EDIT + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT + | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike + ; + +OptionalColumnSpecificationsOrLike + : + | ParenthesizedColumnSpecificationList + | 'LIKE_PARQUET' HdfsPath -> [] + | 'LIKE' SchemaQualifiedTableIdentifier -> [] + ; + +OptionalColumnSpecificationsOrLike_EDIT + : ParenthesizedColumnSpecificationList_EDIT + | 'LIKE_PARQUET' HdfsPath_EDIT + | 'LIKE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + parser.suggestKeywords(['PARQUET']); + } + | 'LIKE' SchemaQualifiedTableIdentifier_EDIT + ; + +ParenthesizedColumnSpecificationList + : '(' ColumnSpecificationList ')' -> $2 + | '(' ColumnSpecificationList ',' PrimaryKeySpecification ')' -> $2 + ; + +ParenthesizedColumnSpecificationList_EDIT + : '(' ColumnSpecificationList_EDIT RightParenthesisOrError + | '(' ColumnSpecificationList ',' PrimaryKeySpecification_EDIT RightParenthesisOrError + | '(' ColumnSpecificationList ',' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['PRIMARY KEY']); + } + ; + +ColumnSpecificationList + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) + ; + +ColumnSpecificationList_EDIT + : ColumnSpecification_EDIT + | ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecificationList ',' ColumnSpecification_EDIT + | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($1); + } + | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($1); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($3); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($3); + } + ; + +ColumnSpecification + : ColumnIdentifier ColumnDataType OptionalColumnOptions + { + $$ = $1; + $$.type = $2; + var keywords = []; + if (!$3['primary']) { + keywords.push('PRIMARY KEY'); + } + if (!$3['encoding']) { + keywords.push('ENCODING'); + } + if (!$3['compression']) { + keywords.push('COMPRESSION'); + } + if (!$3['default']) { + keywords.push('DEFAULT'); + } + if (!$3['block_size']) { + keywords.push('BLOCK_SIZE'); + } + if (!$3['null']) { + keywords.push('NOT NULL'); + keywords.push('NULL'); + } + if (!$3['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +ColumnSpecification_EDIT + : ColumnIdentifier 'CURSOR' OptionalColumnOptions + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions + | ColumnIdentifier ColumnDataType ColumnOptions_EDIT + ; + +OptionalColumnOptions + : -> {} + | ColumnOptions + ; + +ColumnOptions + : ColumnOption + { + $$ = {}; + $$[$1] = true; + } + | ColumnOptions ColumnOption + { + $1[$2] = true; + } + ; + +ColumnOptions_EDIT + : ColumnOption_EDIT + | ColumnOption_EDIT ColumnOptions + | ColumnOptions ColumnOption_EDIT + | ColumnOptions ColumnOption_EDIT ColumnOptions + ; + +ColumnOption + : PrimaryKey -> 'primary' + | 'ENCODING' RegularIdentifier -> 'encoding' + | 'COMPRESSION' RegularIdentifier -> 'compression' + | 'DEFAULT' NonParenthesizedValueExpressionPrimary -> 'default' + | 'BLOCK_SIZE' UnsignedNumericLiteral -> 'block_size' + | 'NOT' 'NULL' -> 'null' + | 'NULL' -> 'null' + | Comment -> 'comment' + ; + +ColumnOption_EDIT + : PrimaryKey_EDIT + | 'NOT' 'CURSOR' + { + parser.suggestKeywords(['NULL']); + } + ; + +ColumnDataType + : PrimitiveType + | ArrayType + | MapType + | StructType + | ArrayType_INVALID + | MapType_INVALID + | StructType_INVALID + ; + +ColumnDataType_EDIT + : ArrayType_EDIT + | MapType_EDIT + | StructType_EDIT + ; + +ArrayType + : 'ARRAY' '<' ColumnDataType '>' + ; + +ArrayType_INVALID + : 'ARRAY' '<' '>' + ; + +ArrayType_EDIT + : 'ARRAY' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError + ; + +MapType + : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' + ; + +MapType_INVALID + : 'MAP' '<' '>' + ; + +MapType_EDIT + : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError + | 'MAP' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'MAP' '<' ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + ; + +StructType + : 'STRUCT' '<' StructDefinitionList '>' + ; + +StructType_INVALID + : 'STRUCT' '<' '>' + ; + +StructType_EDIT + : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError + ; + +StructDefinitionList + : StructDefinition + | StructDefinitionList ',' StructDefinition + ; + +StructDefinitionList_EDIT + : StructDefinition_EDIT + | StructDefinition_EDIT Commas + | StructDefinition_EDIT Commas StructDefinitionList + | StructDefinitionList ',' StructDefinition_EDIT + | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList + ; + +StructDefinition + : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment + ; + +StructDefinition_EDIT + : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | Commas RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + ; + +ColumnDataTypeList + : ColumnDataType + | ColumnDataTypeList ',' ColumnDataType + ; + +ColumnDataTypeList_EDIT + : ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + ; + +ColumnDataTypeListInner_EDIT + : Commas AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas ColumnDataType_EDIT + | AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnDataType_EDIT + ; + +GreaterThanOrError + : '>' + | error + ; + +PrimaryKeySpecification + : PrimaryKey ParenthesizedColumnList + ; + +PrimaryKeySpecification_EDIT + : PrimaryKey_EDIT + | PrimaryKey_EDIT ParenthesizedColumnList + | PrimaryKey ParenthesizedColumnList_EDIT + ; + +PrimaryKey + : 'PRIMARY' 'KEY' + ; + +PrimaryKey_EDIT + : 'PRIMARY' 'CURSOR' + { + parser.suggestKeywords(['KEY']); + } + ; + +OptionalPartitionedBy + : + | PartitionedBy + ; + +PartitionedBy + : 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList + | 'PARTITION' 'BY' HashClauses + | 'PARTITION' 'BY' HashClauses ',' RangeClause + | 'PARTITION' 'BY' RangeClause + ; + +PartitionedBy_EDIT + : 'PARTITIONED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITIONED' 'CURSOR' ParenthesizedColumnSpecificationList + { + parser.suggestKeywords(['BY']); + } + | 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList_EDIT + | 'PARTITIONED' ParenthesizedColumnSpecificationList_EDIT + | 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.suggestKeywords(['HASH', 'RANGE']); + } + | 'PARTITION' 'BY' HashClauses_EDIT + | 'PARTITION' 'BY' RangeClause_EDIT + | 'PARTITION' 'BY' HashClauses ',' 'CURSOR' + { + parser.suggestKeywords(['HASH', 'RANGE']); + } + | 'PARTITION' 'BY' HashClauses ',' RangeClause_EDIT + | 'PARTITION' 'BY' HashClauses_EDIT ',' RangeClause + ; + +HashClauses + : HashClause + | HashClauses ',' HashClause + ; + +HashClauses_EDIT + : HashClause_EDIT + | HashClauses ',' HashClause_EDIT + | HashClauses ',' HashClause_EDIT ',' HashClauses + ; + +HashClause + : 'HASH' OptionalParenthesizedColumnList 'PARTITIONS' UnsignedNumericLiteral + ; + +HashClause_EDIT + : 'HASH' OptionalParenthesizedColumnList 'CURSOR' + { + parser.suggestKeywords(['PARTITIONS']); + } + | 'HASH' ParenthesizedColumnList_EDIT + | 'HASH' OptionalParenthesizedColumnList 'PARTITIONS' 'CURSOR' + | 'HASH' ParenthesizedColumnList_EDIT 'PARTITIONS' UnsignedNumericLiteral + ; + +RangeClause + : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList + ; + +RangeClause_EDIT + : 'RANGE' 'CURSOR' + | 'RANGE' ParenthesizedColumnList_EDIT + | 'RANGE' ParenthesizedColumnList 'CURSOR' + | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT + | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList + ; + +OptionalSortBy + : + | SortBy + ; + +SortBy + : 'SORT' 'BY' ParenthesizedColumnList + ; + +SortBy_EDIT + : 'SORT' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'SORT' 'BY' ParenthesizedColumnList_EDIT + ; + +ParenthesizedPartitionValuesList + : '(' PartitionValueList ')' + ; + +ParenthesizedPartitionValuesList_EDIT + : '(' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['PARTITION']); + } + |'(' PartitionValueList_EDIT RightParenthesisOrError + ; + +PartitionValueList + : PartitionValue + | PartitionValueList ',' PartitionValue + ; + +PartitionValueList_EDIT + : PartitionValue_EDIT + | PartitionValueList ',' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' 'CURSOR' ',' PartitionValueList + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' PartitionValue_EDIT + | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList + ; + +PartitionValue + : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' + | 'PARTITION_VALUE' '=' ValueExpression + ; + +PartitionValue_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['VALUE', 'VALUES']); + } + | 'PARTITION_VALUE' 'CURSOR' + { + parser.suggestKeywords(['=']); + } + | 'PARTITION_VALUE' '=' 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' ValueExpression_EDIT + { + if ($2.endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + } + | 'PARTITION' ValueExpression 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + | 'PARTITION' 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + ; + +LessThanOrEqualTo + : '<' + | 'COMPARISON_OPERATOR' // This is fine for autocompletion + ; + +ParenthesizedSortList + : '(' SortList ')' + ; + +ParenthesizedSortList_EDIT + : '(' SortList_EDIT RightParenthesisOrError + ; + +SortList + : SortIdentifier + | SortList ',' SortIdentifier + ; + +SortList_EDIT + : SortIdentifier_EDIT + | SortIdentifier_EDIT ',' SortList + | SortList ',' SortIdentifier_EDIT + | SortList ',' SortIdentifier_EDIT ',' SortList + ; + +SortIdentifier + : ColumnIdentifier OptionalAscOrDesc + ; + +SortIdentifier_EDIT + : ColumnIdentifier OptionalAscOrDesc 'CURSOR' + { + parser.checkForKeywords($2); + } + | ColumnIdentifier_EDIT OptionalAscOrDesc + | AnyCursor OptionalAscOrDesc + { + parser.suggestColumns(); + } + ; + +OptionalRowFormat + : + | RowFormat + ; + +RowFormat + : 'ROW' 'FORMAT' DelimitedRowFormat -> $3 + ; + +RowFormat_EDIT + : 'ROW' 'CURSOR' + { + parser.suggestKeywords(['FORMAT']); + } + | 'ROW' 'FORMAT' 'CURSOR' + { + parser.suggestKeywords(['DELIMITED']); + } + | 'ROW' 'FORMAT' DelimitedRowFormat_EDIT + ; + +OptionalStoredAs + : + | StoredAs + ; + +StoredAs + : 'STORED' 'AS' FileFormat + ; + +StoredAs_EDIT + : 'STORED' 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | 'STORED' 'AS' 'CURSOR' + { + parser.suggestFileFormats(); + } + ; + +FileFormat + : 'AVRO' + | 'KUDU' + | 'ORC' + | 'PARQUET' + | 'RCFILE' + | 'SEQUENCEFILE' + | 'TEXTFILE' + ; + +DelimitedRowFormat + : 'DELIMITED' OptionalFieldsTerminatedBy OptionalLinesTerminatedBy + { + if (!$2 && !$3) { + $$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 2 }, { value: 'LINES TERMINATED BY', weight: 1 }] }; + } else if ($2 && $2.suggestKeywords && !$3) { + $$ = { suggestKeywords: parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['LINES TERMINATED BY']) }; + } else if (!$3) { + $$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 1 }] }; + } + } + ; + +DelimitedRowFormat_EDIT + : 'DELIMITED' OptionalFieldsTerminatedBy_EDIT OptionalLinesTerminatedBy + | 'DELIMITED' OptionalFieldsTerminatedBy OptionalLinesTerminatedBy_EDIT + ; + +OptionalFieldsTerminatedBy + : + | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue -> { suggestKeywords: ['ESCAPED BY'] } + | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'BY' SingleQuotedValue + ; + +OptionalFieldsTerminatedBy_EDIT + : 'FIELDS' 'CURSOR' + { + parser.suggestKeywords(['TERMINATED BY']); + } + | 'FIELDS' 'TERMINATED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + ; + +OptionalLinesTerminatedBy + : + | 'LINES' 'TERMINATED' 'BY' SingleQuotedValue + ; + +OptionalLinesTerminatedBy_EDIT + : 'LINES' 'CURSOR' + { + parser.suggestKeywords(['TERMINATED BY']); + } + | 'LINES' 'TERMINATED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + ; + +OptionalWithSerdeproperties + : + | WithSerdeproperties + ; + +WithSerdeproperties + : 'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +WithSerdeproperties_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['SERDEPROPERTIES']); + } + | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList + { + parser.suggestKeywords(['SERDEPROPERTIES']); + } + ; + +OptionalTblproperties + : + | TblProperties + ; + +TblProperties + : 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +OptionalAsSelectStatement + : + | 'AS' CommitLocations QuerySpecification + ; + +OptionalAsSelectStatement_EDIT + : 'AS' CommitLocations 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'AS' CommitLocations QuerySpecification_EDIT + ; + +CommitLocations + : /* empty */ + { + parser.commitLocations(); + } + ; + +ViewDefinition + : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +ViewDefinition_EDIT + : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' + { + var keywords = [{value: 'AS', weight: 1 }]; + if (!$6) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +FunctionDefinition + : GenericFunctionDefinition + | AggregateFunctionDefinition + ; + +FunctionDefinition_EDIT + : GenericFunctionDefinition_EDIT + | AggregateFunctionDefinition_EDIT + ; + +GenericFunctionDefinition + : 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation SymbolDefinition + ; + +GenericFunctionDefinition_EDIT + : 'CREATE' 'FUNCTION' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'FUNCTION' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation SymbolDefinition + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList 'CURSOR' + { + parser.suggestKeywords(['RETURNS']); + } + | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType 'CURSOR' + { + parser.suggestKeywords(['LOCATION']); + } + | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation 'CURSOR' + { + parser.suggestKeywords(['SYMBOL']); + } + | 'CREATE' 'FUNCTION' OptionalIfNotExists_EDIT + | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT + | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType_EDIT + | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation_EDIT + | 'CREATE' 'FUNCTION' OptionalIfNotExists_EDIT SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation SymbolDefinition + | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT ReturnType HdfsLocation SymbolDefinition + | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType_EDIT HdfsLocation SymbolDefinition + | 'CREATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType HdfsLocation_EDIT SymbolDefinition + ; + +AggregateFunctionDefinition + : 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + ; + +AggregateFunctionDefinition_EDIT + : 'CREATE' 'AGGREGATE' 'CURSOR' + { + parser.suggestKeywords(['FUNCTION']); + } + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + { + if (!$4) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists_EDIT + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists_EDIT SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList 'CURSOR' + { + parser.suggestKeywords(['RETURNS']); + } + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + 'CURSOR' + { + parser.suggestKeywords(['LOCATION']); + } + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn 'CURSOR' + { + if (!$9) { + parser.suggestKeywords([{value: 'INIT_FN', weight: 2 }, {value: 'UPDATE_FN', weight: 1 }]); + } else { + parser.suggestKeywords([{value: 'UPDATE_FN', weight: 1 }]); + } + } + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn 'CURSOR' + { + parser.suggestKeywords(['MERGE_FN']); + } + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate 'CURSOR' + { + if (!$12 && !$13 && !$14 && !$15 && !$16) { + parser.suggestKeywords([{value: 'PREPARE_FN', weight: 5 }, {value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($12 && !$13 && !$14 && !$15 && !$16) { + parser.suggestKeywords([{value: 'CLOSE_FN', weight: 4 }, {value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($13 && !$14 && !$15 && !$16) { + parser.suggestKeywords([{value: 'SERIALIZE_FN', weight: 3 }, {value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($14 && !$15 && !$16) { + parser.suggestKeywords([{value: 'FINALIZE_FN', weight: 2 }, {value: 'INTERMEDIATE', weight: 1 }]); + } else if ($15 && !$16) { + parser.suggestKeywords([{value: 'INTERMEDIATE', weight: 1 }]); + } + } + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType_EDIT + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation_EDIT OptionalInitFn + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn_EDIT + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn_EDIT + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn_EDIT OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn_EDIT OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn_EDIT OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn_EDIT OptionalFinalizeFn OptionalIntermediate + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn_EDIT OptionalIntermediate + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn Intermediate_EDIT + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType_EDIT + HdfsLocation OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation_EDIT OptionalInitFn UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn_EDIT UpdateFn MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + | 'CREATE' 'AGGREGATE' 'FUNCTION' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedArgumentList ReturnType + HdfsLocation OptionalInitFn UpdateFn_EDIT MergeFn OptionalPrepareFn OptionalCloseFn OptionalSerializeFn OptionalFinalizeFn OptionalIntermediate + ; + +ParenthesizedArgumentList + : '(' ')' + | '(' ArgumentList OptionalVariableArguments')' + ; + +ParenthesizedArgumentList_EDIT + : '(' ArgumentList_EDIT RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | '(' ArgumentList 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['...']); + } + ; + +ArgumentList + : PrimitiveType + | ArgumentList ',' PrimitiveType + ; + +ArgumentList_EDIT + : AnyCursor + | ArgumentList ',' AnyCursor + | AnyCursor ',' ArgumentList + | ArgumentList ',' AnyCursor ',' ArgumentList + ; + +OptionalVariableArguments + : + | '...' + ; + +ReturnType + : 'RETURNS' PrimitiveType + ; + +ReturnType_EDIT + : 'RETURNS' 'CURSOR' + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + ; + +SymbolDefinition + : 'SYMBOL' '=' SingleQuotedValue + ; + +OptionalInitFn + : + | 'INIT_FN' '=' FunctionReference + ; + +OptionalInitFn_EDIT + : 'INIT_FN' '=' FunctionReference_EDIT + ; + +UpdateFn + : 'UPDATE_FN' '=' FunctionReference + ; + +UpdateFn_EDIT + : 'UPDATE_FN' '=' FunctionReference_EDIT + ; + +MergeFn + : 'MERGE_FN' '=' FunctionReference + ; + +MergeFn_EDIT + : 'MERGE_FN' '=' FunctionReference_EDIT + ; + +OptionalPrepareFn + : + | 'PREPARE_FN' '=' FunctionReference + ; + +OptionalPrepareFn_EDIT + : 'PREPARE_FN' '=' FunctionReference_EDIT + ; + +OptionalCloseFn + : + | 'CLOSE_FN' '=' FunctionReference + ; + +OptionalCloseFn_EDIT + : 'CLOSE_FN' '=' FunctionReference_EDIT + ; + +OptionalSerializeFn + : + | 'SERIALIZE_FN' '=' FunctionReference + ; + +OptionalSerializeFn_EDIT + : 'SERIALIZE_FN' '=' FunctionReference_EDIT + ; + +OptionalFinalizeFn + : + | 'FINALIZE_FN' '=' FunctionReference + ; + +OptionalFinalizeFn_EDIT + : 'FINALIZE_FN' '=' FunctionReference_EDIT + ; + +OptionalIntermediate + : + | 'INTERMEDIATE' PrimitiveType + ; + +Intermediate_EDIT + : 'INTERMEDIATE' 'CURSOR' + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + ; + +FunctionReference + : SingleQuotedValue + ; + +FunctionReference_EDIT + : SingleQuotedValue_EDIT + { + parser.suggestFunctions(); + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + ; + +OptionalParenthesizedViewColumnList + : + | ParenthesizedViewColumnList + ; + +ParenthesizedViewColumnList + : '(' ViewColumnList ')' + ; + +ParenthesizedViewColumnList_EDIT + : '(' ViewColumnList_EDIT RightParenthesisOrError + { + if (!$2) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +ViewColumnList + : ColumnReference OptionalComment + | ViewColumnList ',' ColumnReference OptionalComment + ; + +ViewColumnList_EDIT + : ColumnReference OptionalComment 'CURSOR' -> $2 + | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 + ; + +RoleDefinition + : 'CREATE' 'ROLE' RegularIdentifier + ; +LifeCyclePart +: +| 'LIFECYCLE' 'UNSIGNED_INTEGER' +; \ No newline at end of file diff --git a/src/jison/sql/impala/sql_drop.jison b/src/jison/sql/impala/sql_drop.jison new file mode 100644 index 0000000..b125e42 --- /dev/null +++ b/src/jison/sql/impala/sql_drop.jison @@ -0,0 +1,354 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : DropStatement + ; + +DataDefinition_EDIT + : DropStatement_EDIT + ; + +DataManipulation + : DeleteStatement + ; + +DataManipulation_EDIT + : DeleteStatement_EDIT + ; + +DropStatement + : DropDatabaseStatement + | DropFunctionStatement + | DropRoleStatement + | DropStatsStatement + | DropTableStatement + | DropViewStatement + | TruncateTableStatement + ; + +DropStatement_EDIT + : DropDatabaseStatement_EDIT + | DropFunctionStatement_EDIT + | DropStatsStatement_EDIT + | DropTableStatement_EDIT + | DropViewStatement_EDIT + | TruncateTableStatement_EDIT + | 'DROP' 'CURSOR' + { + parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'FUNCTION', 'INCREMENTAL STATS', 'ROLE', 'SCHEMA', 'STATS', 'TABLE', 'VIEW']); + } + ; + +DropDatabaseStatement + : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascadeOrRestrict + ; + +DropDatabaseStatement_EDIT + : 'DROP' DatabaseOrSchema OptionalIfExists + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + } + | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascadeOrRestrict + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascadeOrRestrict + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + ; + +// OptionalAggregate is no go for look ahead reasons +DropFunctionStatement + : 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedArgumentList + | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedArgumentList + ; + +DropFunctionStatement_EDIT + : 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedArgumentList + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'FUNCTION' OptionalIfExists_EDIT + | 'DROP' 'CURSOR' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedArgumentList + { + parser.suggestKeywords(['AGGREGATE']); + } + | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT + | 'DROP' 'AGGREGATE' 'CURSOR' + { + parser.suggestKeywords(['FUNCTION']); + } + | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier ParenthesizedArgumentList + { + if (!$4) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists_EDIT + | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier ParenthesizedArgumentList_EDIT + | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT ParenthesizedArgumentList + | 'DROP' 'AGGREGATE' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT ParenthesizedArgumentList + ; + +DropRoleStatement + : 'DROP' 'ROLE' RegularIdentifier + ; + +DropStatsStatement + : 'DROP' 'STATS' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec + { + parser.addTablePrimary($4); + } + ; + +DropStatsStatement_EDIT + : 'DROP' 'STATS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'STATS' SchemaQualifiedTableIdentifier_EDIT + | 'DROP' 'CURSOR' 'STATS' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + parser.suggestKeywords(['INCREMENTAL']); + } + | 'DROP' 'CURSOR' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec + { + parser.addTablePrimary($4); + parser.suggestKeywords(['INCREMENTAL']); + } + | 'DROP' 'INCREMENTAL' 'CURSOR' + { + parser.suggestKeywords(['STATS']); + } + | 'DROP' 'INCREMENTAL' 'STATS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier_EDIT + | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier_EDIT PartitionSpec + | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($4); + parser.suggestKeywords(['PARTITION']); + } + | 'DROP' 'INCREMENTAL' 'STATS' SchemaQualifiedTableIdentifier PartitionSpec_EDIT + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement + : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement_EDIT + : 'DROP' 'TABLE' OptionalIfExists_EDIT + | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PURGE']); + } + } + ; + +OptionalPurge + : + | 'PURGE' + ; + +DropViewStatement + : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropViewStatement_EDIT + : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($5); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'VIEW' OptionalIfExists_EDIT + | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +TruncateTableStatement + : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +TruncateTableStatement_EDIT + : 'TRUNCATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($4); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + ; + +DeleteStatement + : 'DELETE' OptionalDeleteTableRef 'FROM' TableReference OptionalWhereClause + ; + +DeleteStatement_EDIT + : 'DELETE' OptionalDeleteTableRef 'CURSOR' + { + parser.suggestKeywords(['FROM']); + if (!$2) { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + } + | 'DELETE' DeleteTableRef_EDIT + | 'DELETE' OptionalDeleteTableRef 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'DELETE' OptionalDeleteTableRef 'FROM' TableReference 'CURSOR' OptionalWhereClause + { + var keywords = [{ value: 'FULL JOIN', weight: 1 }, { value: 'FULL OUTER JOIN', weight: 1 }, { value: 'JOIN', weight: 1 }, { value: 'LEFT JOIN', weight: 1 }, { value: 'LEFT OUTER JOIN', weight: 1 }, { value: 'RIGHT JOIN', weight: 1 }, { value: 'RIGHT OUTER JOIN', weight: 1 }, { value: 'INNER JOIN', weight: 1 }, { value: 'LEFT ANTI JOIN', weight: 1 }, { value: 'LEFT SEMI JOIN', weight: 1 }, { value: 'RIGHT ANTI JOIN', weight: 1 }, { value: 'RIGHT SEMI JOIN', weight: 1 }]; + if (!$6) { + keywords.push({ value: 'WHERE', weight: 3 }); + } + if ($4.suggestJoinConditions) { + parser.suggestJoinConditions($4.suggestJoinConditions); + } + if ($4.suggestJoins) { + parser.suggestJoins($4.suggestJoins); + } + if ($4.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 2)); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + | 'DELETE' DeleteTableRef_EDIT 'FROM' + | 'DELETE' DeleteTableRef_EDIT 'FROM' TableReference OptionalWhereClause + | 'DELETE' OptionalDeleteTableRef 'FROM' TableReference_EDIT OptionalWhereClause + | 'DELETE' OptionalDeleteTableRef 'FROM' TableReference WhereClause_EDIT + ; + +OptionalDeleteTableRef + : + | TableReference + ; + +DeleteTableRef_EDIT + : TableReference_EDIT + ; + +TransactionIdList + : UnsignedNumericLiteral + | TransactionIdList ',' UnsignedNumericLiteral + ; diff --git a/src/jison/sql/impala/sql_error.jison b/src/jison/sql/impala/sql_error.jison new file mode 100644 index 0000000..c610b65 --- /dev/null +++ b/src/jison/sql/impala/sql_error.jison @@ -0,0 +1,142 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlStatements + : error + | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? + ; + +SqlStatement_EDIT + : AnyCursor error + { + parser.suggestDdlAndDmlKeywords(['EXPLAIN']); + } + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_ERROR TableExpression + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList TableExpression_ERROR + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_ERROR_EDIT TableExpression + { + parser.selectListNoTableSuggest($4, $2); + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_ERROR TableExpression_EDIT + ; + +SelectList_ERROR + : ErrorList + | SelectList ',' ErrorList + | ErrorList ',' SelectList ',' ErrorList + | ErrorList ',' SelectList + | SelectList ',' ErrorList ',' SelectList + ; + +SelectList_ERROR_EDIT + : ErrorList ',' SelectList_EDIT -> $3 + | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 + | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 + | ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | ErrorList ',' SelectList ',' Errors ',' AnyCursor + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + ; + +SetSpecification + : 'SET' SetOption '=' error + ; + +ErrorList + : error + | Errors ',' error + ; + +JoinType_EDIT + : 'FULL' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'LEFT' 'CURSOR' error + { + parser.suggestKeywords(['ANTI JOIN', 'INNER JOIN', 'JOIN', 'OUTER JOIN', 'SEMI JOIN']); + } + | 'RIGHT' 'CURSOR' error + { + parser.suggestKeywords(['ANTI JOIN', 'INNER JOIN', 'JOIN', 'OUTER JOIN', 'SEMI JOIN']); + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7, $8], [{ value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true, true, true, true]), + cursorAtEnd: !$4 && !$5 && !$6 && !$7 && !$8 + }; + } + | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7, $8], [{ value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true, true]), + cursorAtEnd: !$6 && !$7 && !$8 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause OptionalOffsetClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$7, $8], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true]), + cursorAtEnd: !$7 && !$8 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' OptionalOffsetClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$8], [{ value: 'OFFSET', weight: 2 }], [true]), + cursorAtEnd: !$8 + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause OptionalOffsetClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT OptionalOffsetClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OffsetClause_EDIT + | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause OptionalOffsetClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT OptionalOffsetClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause OptionalLimitClause OffsetClause_EDIT + | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause OptionalOffsetClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT OptionalOffsetClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause OptionalLimitClause OffsetClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT OptionalOffsetClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error OptionalLimitClause OffsetClause_EDIT + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error + ; diff --git a/src/jison/sql/impala/sql_grant.jison b/src/jison/sql/impala/sql_grant.jison new file mode 100644 index 0000000..2d9c47b --- /dev/null +++ b/src/jison/sql/impala/sql_grant.jison @@ -0,0 +1,194 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : GrantStatement + | RevokeStatement + ; + +DataDefinition_EDIT + : GrantStatement_EDIT + | RevokeStatement_EDIT + ; + +GrantStatement + : 'GRANT' 'ROLE' RegularOrBacktickedIdentifier 'TO' 'GROUP' RegularOrBacktickedIdentifier + | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' RegularOrBacktickedIdentifier OptionalWithGrantOption + | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' GroupRoleOrUser RegularOrBacktickedIdentifier OptionalWithGrantOption + ; + +GrantStatement_EDIT + : 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); + } + | 'GRANT' 'ROLE' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['TO GROUP']); + } + | 'GRANT' 'ROLE' RegularOrBacktickedIdentifier 'TO' 'CURSOR' + { + parser.suggestKeywords(['GROUP']); + } + | 'GRANT' PrivilegeType_EDIT + | 'GRANT' PrivilegeType 'CURSOR' + { + if ($2.isCreate) { + parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); + } else { + parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); + } + } + | 'GRANT' PrivilegeType 'ON' 'CURSOR' + { + if ($2.isCreate) { + parser.suggestKeywords(['DATABASE', 'SERVER']); + } else { + parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); + } + } + | 'GRANT' PrivilegeType 'ON' ObjectSpecification_EDIT + | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'CURSOR' + { + parser.suggestKeywords(['TO']); + } + | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' RegularOrBacktickedIdentifier OptionalWithGrantOption 'CURSOR' + { + if (!$7) { + parser.suggestKeywords(['WITH GRANT OPTION']); + } + } + | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' RegularOrBacktickedIdentifier WithGrantOption_EDIT + | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' GroupRoleOrUser RegularOrBacktickedIdentifier OptionalWithGrantOption 'CURSOR' + { + if (!$8) { + parser.suggestKeywords(['WITH GRANT OPTION']); + } + } + | 'GRANT' PrivilegeType 'ON' ObjectSpecification 'TO' GroupRoleOrUser RegularOrBacktickedIdentifier WithGrantOption_EDIT + ; + +ObjectSpecification + : 'DATABASE' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@2, [ { name: $2 } ]); + } + | 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($2); + } + | 'SERVER' RegularOrBacktickedIdentifier + | 'URI' RegularOrBacktickedIdentifier + ; + +ObjectSpecification_EDIT + : 'DATABASE' 'CURSOR' + { + parser.suggestDatabases(); + } + | 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'TABLE' SchemaQualifiedTableIdentifier_EDIT + ; + +PrivilegeType + : 'ALL' + | 'ALTER' + | 'CREATE' -> { isCreate: true } + | 'DROP' + | 'INSERT' + | 'REFRESH' + | 'SELECT' OptionalParenthesizedColumnList + ; + +PrivilegeType_EDIT + : 'SELECT' ParenthesizedColumnList_EDIT + ; + +UserOrRoleList + : RegularOrBacktickedIdentifier + | UserOrRoleList ',' RegularOrBacktickedIdentifier + ; + +OptionalWithGrantOption + : + | 'WITH' 'GRANT' 'OPTION' + ; + +WithGrantOption_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['GRANT OPTION']); + } + | 'WITH' 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['OPTION']); + } + ; + +RevokeStatement + : 'REVOKE' 'ROLE' RegularOrBacktickedIdentifier 'FROM' 'GROUP' RegularOrBacktickedIdentifier + | 'REVOKE' PrivilegeType 'ON' ObjectSpecification 'FROM' RegularOrBacktickedIdentifier + | 'REVOKE' PrivilegeType 'ON' ObjectSpecification 'FROM' GroupRoleOrUser RegularOrBacktickedIdentifier + ; + +RevokeStatement_EDIT + : 'REVOKE' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DROP', 'INSERT', 'REFRESH', 'ROLE', 'SELECT']); + } + | 'REVOKE' 'ROLE' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['FROM GROUP']); + } + | 'REVOKE' 'ROLE' RegularOrBacktickedIdentifier 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP']); + } + | 'REVOKE' PrivilegeType_EDIT + | 'REVOKE' PrivilegeType 'CURSOR' + { + if ($2.isCreate) { + parser.suggestKeywords(['ON DATABASE', 'ON SERVER']); + } else { + parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); + } + } + | 'REVOKE' PrivilegeType 'ON' 'CURSOR' + { + if ($2.isCreate) { + parser.suggestKeywords(['DATABASE', 'SERVER']); + } else { + parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); + } + } + | 'REVOKE' PrivilegeType 'ON' ObjectSpecification_EDIT + | 'REVOKE' PrivilegeType 'ON' ObjectSpecification 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + | 'REVOKE' PrivilegeType 'ON' ObjectSpecification 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + ; diff --git a/src/jison/sql/impala/sql_insert.jison b/src/jison/sql/impala/sql_insert.jison new file mode 100644 index 0000000..9e344a1 --- /dev/null +++ b/src/jison/sql/impala/sql_insert.jison @@ -0,0 +1,242 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : InsertStatement + ; + +InsertStatement + : InsertOrUpsertStatement + | CommonTableExpression InsertOrUpsertStatement + ; + +DataManipulation_EDIT + : InsertOrUpsertStatement_EDIT + | CommonTableExpression InsertOrUpsertStatement_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT InsertOrUpsertStatement + ; + +OptionalTable + : + | 'TABLE' + ; + +SelectWithoutTableExpression + : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList -> { selectList: $4 } + ; + +SelectWithoutTableExpression_EDIT + : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' + { + $$ = $4; + $$.cursorAtEnd = true; + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_EDIT + { + parser.selectListNoTableSuggest($4, $2); + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin 'CURSOR' + { + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$3 && !$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$3) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns(); + } + ; + +InsertOrUpsertStatement + : InsertOrUpsertStatementWithoutCTE + ; + +InsertOrUpsertStatement_EDIT + : InsertOrUpsertStatementWithoutCTE_EDIT + ; + +InsertOrUpsertStatementWithoutCTE + : InsertOrUpsertLeftPart OptionalShuffleOrNoShuffle SelectStatement OptionalUnions + | InsertOrUpsertLeftPart 'VALUES' RowValuesLists + ; + +InsertOrUpsertStatementWithoutCTE_EDIT + : InsertOrUpsertLeftPart_EDIT + | InsertOrUpsertLeftPart OptionalShuffleOrNoShuffle 'CURSOR' + { + var keywords = $1.suggestKeywords && !$2 ? parser.createWeightedKeywords($1.suggestKeywords, 2) : []; + if (!$2) { + keywords = keywords.concat(['[NOSHUFFLE]', '[SHUFFLE]', 'SELECT', 'VALUES']) + } else { + keywords = keywords.concat(['SELECT']) + } + parser.suggestKeywords(keywords); + } + | InsertOrUpsertLeftPart_EDIT OptionalShuffleOrNoShuffle SelectStatement OptionalUnions + | InsertOrUpsertLeftPart OptionalShuffleOrNoShuffle SelectStatement_EDIT OptionalUnions + | InsertOrUpsertLeftPart OptionalShuffleOrNoShuffle SelectStatement OptionalUnions_EDIT + | InsertOrUpsertLeftPart_EDIT 'VALUES' RowValuesLists + | InsertOrUpsertLeftPart 'VALUES' RowValuesLists_EDIT + ; + +InsertOrUpsertLeftPart + : UpsertStatementLeftPart + | InsertLeftPart + ; + +InsertOrUpsertLeftPart_EDIT + : UpsertStatementLeftPart_EDIT + | InsertLeftPart_EDIT + ; + +UpsertStatementLeftPart + : 'UPSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList + { + $4.owner = 'upsert'; + parser.addTablePrimary($4); + } + ; + +UpsertStatementLeftPart_EDIT + : 'UPSERT' 'CURSOR' + { + parser.suggestKeywords(['INTO']); + } + | 'UPSERT' 'INTO' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'UPSERT' 'INTO' OptionalTable 'CURSOR' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + $5.owner = 'upsert'; + parser.addTablePrimary($5); + } + | 'UPSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalParenthesizedColumnList + | 'UPSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList_EDIT + { + $4.owner = 'upsert'; + parser.addTablePrimary($4); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'upsert'; + } + } + ; + + +InsertLeftPart + : 'INSERT' IntoOrOverwrite OptionalTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalPartitionSpec + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (!$6) { + $$ = { suggestKeywords: ['PARTITION'] }; + } + } + ; + +InsertLeftPart_EDIT + : 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['INTO', 'OVERWRITE']); + } + | 'INSERT' IntoOrOverwrite OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'INSERT' IntoOrOverwrite OptionalTable 'CURSOR' SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalPartitionSpec + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + $5.owner = 'insert'; + parser.addTablePrimary($5); + } + | 'INSERT' IntoOrOverwrite OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalParenthesizedColumnList OptionalPartitionSpec + | 'INSERT' IntoOrOverwrite OptionalTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList_EDIT OptionalPartitionSpec + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + } + | 'INSERT' IntoOrOverwrite OptionalTable SchemaQualifiedTableIdentifier OptionalParenthesizedColumnList OptionalPartitionSpec_EDIT + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + } + ; + +IntoOrOverwrite + : 'INTO' + | 'OVERWRITE' + ; + +OptionalShuffleOrNoShuffle + : + | 'SHUFFLE' + | 'NOSHUFFLE' + ; + +RowValuesLists + : ParenthesizedValueExpressionList + | RowValuesLists ',' ParenthesizedValueExpressionList + ; + +RowValuesLists_EDIT + : ParenthesizedValueExpressionList_EDIT + | RowValuesLists ',' ParenthesizedValueExpressionList_EDIT + | RowValuesLists ',' ParenthesizedValueExpressionList_EDIT ',' RowValuesLists + | ParenthesizedValueExpressionList_EDIT ',' RowValuesLists + ; + +ParenthesizedValueExpressionList + : '(' ValueExpressionList ')' + ; + +ParenthesizedValueExpressionList_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.suggestFunctions(); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError + ; + diff --git a/src/jison/sql/impala/sql_load.jison b/src/jison/sql/impala/sql_load.jison new file mode 100644 index 0000000..2978e8e --- /dev/null +++ b/src/jison/sql/impala/sql_load.jison @@ -0,0 +1,80 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : LoadStatement + ; + +DataManipulation_EDIT + : LoadStatement_EDIT + ; + +LoadStatement + : 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($8); + } + ; + +LoadStatement_EDIT + : 'LOAD' 'CURSOR' + { + parser.suggestKeywords(['DATA INPATH']); + } + | 'LOAD' 'DATA' 'CURSOR' + { + parser.suggestKeywords(['INPATH']); + } + | 'LOAD' 'DATA' 'INPATH' HdfsPath_EDIT OptionalOverwrite + | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'CURSOR' + { + if (!$5) { + parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); + } else { + parser.suggestKeywords(['INTO TABLE']); + } + } + | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'CURSOR' + { + parser.suggestKeywords([ 'TABLE' ]); + } + | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($8); + if (!$9) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'LOAD' 'DATA' 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + { + parser.addTablePrimary($8); + } + | 'LOAD' 'DATA' 'INPATH' HdfsPath_EDIT OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($8); + } + ; + +OptionalOverwrite + : + | 'OVERWRITE' + ; diff --git a/src/jison/sql/impala/sql_main.jison b/src/jison/sql/impala/sql_main.jison new file mode 100644 index 0000000..c552c24 --- /dev/null +++ b/src/jison/sql/impala/sql_main.jison @@ -0,0 +1,3581 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlSyntax + : NewStatement SqlStatements EOF + ; + +SqlAutocomplete + : NewStatement SqlStatements EOF + { + return parser.yy.result; + } + | NewStatement SqlStatements_EDIT EOF + { + return parser.yy.result; + } + ; + +NewStatement + : /* empty */ + { + parser.prepareNewStatement(); + } + ; + +SqlStatements + : + | SqlStatement + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatements + ; + +SqlStatements_EDIT + : SqlStatement_EDIT + { + parser.addStatementLocation(@1); + } + | SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT + { + parser.addStatementLocation(@4); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@4); + } + ; + +SqlStatement + : DataDefinition + | DataManipulation + | QuerySpecification + | ExplainClause DataDefinition + | ExplainClause DataManipulation + | ExplainClause QuerySpecification + ; + +SqlStatement_EDIT + : AnyCursor + { + parser.suggestDdlAndDmlKeywords(['EXPLAIN']); + } + | CommonTableExpression 'CURSOR' + { + parser.suggestKeywords(['INSERT', 'SELECT']); + } + | ExplainClause_EDIT + | DataDefinition_EDIT + | DataManipulation_EDIT + | QuerySpecification_EDIT + | SetSpecification_EDIT + | ExplainClause DataDefinition_EDIT + | ExplainClause DataManipulation_EDIT + | ExplainClause QuerySpecification_EDIT + | ExplainClause_EDIT DataDefinition + | ExplainClause_EDIT DataManipulation + | ExplainClause_EDIT QuerySpecification + ; + +NonReservedKeyword + : 'DEFAULT' + | 'KEY' + | 'OPTION' + | 'OWNER' + | 'SERVER' + | 'STRUCT' + | 'URI' + ; + +RegularIdentifier + : 'REGULAR_IDENTIFIER' + | 'VARIABLE_REFERENCE' + | NonReservedKeyword + ; + +ExplainClause + : 'EXPLAIN' + ; + +ExplainClause_EDIT + : 'EXPLAIN' 'CURSOR' + { + parser.suggestDdlAndDmlKeywords(); + } + ; + +// This is a work-around for error handling when a statement starts with some token that the parser can understand but +// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) +NonStartingToken + : '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '...' + | '<' + | '=' + | '>' + | '[' + | ']' + | 'AGGREGATE' + | 'ALL' + | 'ALLOCATE' + | 'ANALYTIC' + | 'AND' + | 'ANTI' + | 'ANY' + | 'APPX_MEDIAN' + | 'ARE' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'ARRAY_AGG' + | 'ARRAY_MAX_CARDINALITY' + | 'AS' + | 'ASC' + | 'ASENSITIVE' + | 'ASYMMETRIC' + | 'AT' + | 'ATOMIC' + | 'AUTHORIZATION' + | 'AVG' + | 'AVRO' + | 'BACKTICK' + | 'BEGIN_FRAME' + | 'BEGIN_PARTITION' + | 'BETWEEN' + | 'BIGINT' + | 'BLOB' + | 'BLOCK_SIZE' + | 'BOOLEAN' + | 'BOTH' + | 'BROADCAST' + | 'BY' + | 'CACHED' + | 'CALLED' + | 'CARDINALITY' + | 'CASCADE' + | 'CASCADED' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'CHARACTER' + | 'CLOB' + | 'CLOSE_FN' + | 'COLLATE' + | 'COLLECT' + | 'COLUMN' + | 'COMMIT' + | 'COMPARISON_OPERATOR' + | 'CONDITION' + | 'CONNECT' + | 'CONSTRAINT' + | 'CONTAINS' + | 'CONVERT' + | 'COPY' + | 'CORR' + | 'CORRESPONDING' + | 'COUNT' + | 'COVAR_POP' + | 'COVAR_SAMP' + | 'CROSS' + | 'CUBE' + | 'CURRENT' + | 'CURRENT_DATE' + | 'CURRENT_DEFAULT_TRANSFORM_GROUP' + | 'CURRENT_PATH' + | 'CURRENT_ROLE' + | 'CURRENT_ROW' + | 'CURRENT_SCHEMA' + | 'CURRENT_TIME' + | 'CURRENT_TRANSFORM_GROUP_FOR_TYPE' + | 'CYCLE' + | 'DATA' + | 'DATABASE' + | 'DATABASES' + | 'DEALLOCATE' + | 'DEC' + | 'DECFLOAT' + | 'DECIMAL' + | 'DECLARE' + | 'DEFINE' + | 'DELETE' + | 'DELIMITED' + | 'DEREF' + | 'DESC' + | 'DETERMINISTIC' + | 'DISCONNECT' + | 'DISTINCT' + | 'DOUBLE' + | 'DOUBLE_QUOTE' + | 'DYNAMIC' + | 'EACH' + | 'ELEMENT' + | 'ELSE' + | 'EMPTY' + | 'END' + | 'END_FRAME' + | 'END_PARTITION' + | 'EQUALS' + | 'ESCAPE' + | 'ESCAPED' + | 'EVERY' + | 'EXCEPT' + | 'EXEC' + | 'EXECUTE' + | 'EXISTS' + | 'EXTENDED' + | 'EXTERNAL' + | 'EXTRACT' + | 'FALSE' + | 'FETCH' + | 'FIELDS' + | 'FILES' + | 'FILTER' + | 'FINALIZE_FN' + | 'FIRST' + | 'FLOAT' + | 'FOLLOWING' + | 'FOR' + | 'FOREIGN' + | 'FORMAT' + | 'FORMATTED' + | 'FRAME_ROW' + | 'FREE' + | 'FROM' + | 'FULL' + | 'FUNCTION' + | 'FUNCTIONS' + | 'FUSION' + | 'GET' + | 'GLOBAL' + | 'GRANT' + | 'GROUP' + | 'GROUP_CONCAT' + | 'GROUPING' + | 'GROUPS' + | 'HASH' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'HOLD' + | 'IF' + | 'IGNORE' + | 'ILIKE' + | 'IN' + | 'INCREMENTAL' + | 'INDICATOR' + | 'INIT_FN' + | 'INITIAL' + | 'INNER' + | 'INOUT' + | 'INPATH' + | 'INSENSITIVE' + | 'INT' + | 'INTERMEDIATE' + | 'INTERSECT' + | 'INTERSECTION' + | 'INTERVAL' + | 'INTO' + | 'IREGEXP' + | 'IS' + | 'JOIN' + | 'JSON_ARRAY' + | 'JSON_ARRAYAGG' + | 'JSON_EXISTS' + | 'JSON_OBJECT' + | 'JSON_OBJECTAGG' + | 'JSON_QUERY' + | 'JSON_TABLE' + | 'JSON_TABLE_PRIMITIVE' + | 'JSON_VALUE' + | 'KEY' + | 'KUDU' + | 'LARGE' + | 'LAST' + | 'LATERAL' + | 'LEADING' + | 'LEFT' + | 'LIKE' + | 'LIKE_REGEX' + | 'LIMIT' + | 'LINES' + | 'LISTAGG' + | 'LOCAL' + | 'LOCALTIMESTAMP' + | 'LOCATION' + | 'MAP' + | 'MATCH' + | 'MATCH_NUMBER' + | 'MATCH_RECOGNIZE' + | 'MATCHES' + | 'MAX' + | 'MERGE' + | 'MERGE_FN' + | 'METHOD' + | 'MIN' + | 'MODIFIES' + | 'MULTISET' + | 'NATIONAL' + | 'NATURAL' + | 'NCHAR' + | 'NCLOB' + | 'NDV' + | 'NO' + | 'NONE' + | 'NORMALIZE' + | 'NOSHUFFLE' + | 'NOT' + | 'NTH_VALUE' + | 'NULL' + | 'NULLS' + | 'NUMERIC' + | 'OCCURRENCES_REGEX' + | 'OCTET_LENGTH' + | 'OF' + | 'OMIT' + | 'ON' + | 'ONE' + | 'ONLY' + | 'OPTION' + | 'OR' + | 'ORDER' + | 'OUT' + | 'OUTER' + | 'OVER' + | 'OVERLAPS' + | 'OVERLAY' + | 'OWNER' + | 'PARQUET' + | 'PARTITION' + | 'PARTITIONED' + | 'PARTITIONS' + | 'PATTERN' + | 'PER' + | 'PERCENT' + | 'PERCENTILE_CONT' + | 'PERCENTILE_DISC' + | 'PORTION' + | 'POSITION' + | 'POSITION_REGEX' + | 'PRECEDES' + | 'PRECEDING' + | 'PREPARE' + | 'PREPARE_FN' + | 'PRIMARY' + | 'PROCEDURE' + | 'PTF' + | 'PURGE' + | 'RANGE' + | 'RCFILE' + | 'READS' + | 'REAL' + | 'RECOVER' + | 'RECURSIVE' + | 'REF' + | 'REFERENCES' + | 'REFERENCING' + | 'REGEXP' + | 'REGR_AVGX' + | 'REGR_AVGY' + | 'REGR_COUNT' + | 'REGR_INTERCEPT' + | 'REGR_R2REGR_SLOPE' + | 'REGR_SXX' + | 'REGR_SXY' + | 'REGR_SYY' + | 'REGULAR_IDENTIFIER' + | 'RELEASE' + | 'REPEATABLE' + | 'REPLICATION' + | 'RESTRICT' + | 'RETURNS' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROLES' + | 'ROLLBACK' + | 'ROLLUP' + | 'ROW' + | 'ROWS' + | 'RUNNING' + | 'SAVEPOINT' + | 'SCHEMA' + | 'SCHEMAS' + | 'SCOPE' + | 'SCROLL' + | 'SEARCH' + | 'SEEK' + | 'SEMI' + | 'SENSITIVE' + | 'SEQUENCEFILE' + | 'SERDEPROPERTIES' + | 'SERIALIZE_FN' + | 'SERVER' + | 'SET' + | 'SHUFFLE' + | 'SIMILAR' + | 'SINGLE_QUOTE' + | 'SKIP' + | 'SMALLINT' + | 'SOME' + | 'SORT' + | 'SPECIFIC' + | 'SPECIFICTYPE' + | 'SQLEXCEPTION' + | 'SQLSTATE' + | 'SQLWARNING' + | 'STATIC' + | 'STATS' + | 'STDDEV' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STORED' + | 'STRAIGHT_JOIN' + | 'STRING' + | 'STRUCT' + | 'SUBMULTISET' + | 'SUBSET' + | 'SUBSTRING_REGEX' + | 'SUCCEEDS' + | 'SUM' + | 'SYMBOL' + | 'SYMMETRIC' + | 'SYSTEM_TIME' + | 'SYSTEM_USER' + | 'TABLE' + | 'TABLES' + | 'TABLESAMPLE' + | 'TBLPROPERTIES' + | 'TERMINATED' + | 'TEXTFILE' + | 'THEN' + | 'TIMESTAMP' + | 'TIMEZONE_HOUR' + | 'TIMEZONE_MINUTE' + | 'TINYINT' + | 'TRAILING' + | 'TRANSLATE_REGEX' + | 'TRANSLATION' + | 'TREAT' + | 'TRIGGER' + | 'TRIM_ARRAY' + | 'TRUE' + | 'UESCAPE' + | 'UNION' + | 'UNIQUE' + | 'UNNEST' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'UPDATE_FN' + | 'URI' + | 'USER' + | 'USING' + | 'VALUE_OF' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARBINARY' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'VARIANCE_POP' + | 'VARIANCE_SAMP' + | 'VARYING' + | 'VERSIONING' + | 'WHEN' + | 'WHENEVER' + | 'WHERE' + | 'WIDTH_BUCKET' + | 'WINDOW' + | 'WITHIN' + | 'WITHOUT' + | '~' + ; + +DataDefinition + : DescribeStatement + ; + +DataDefinition_EDIT + : DescribeStatement_EDIT + ; + +// ===================================== Commonly used constructs ===================================== + +AggregateOrAnalytic + : 'AGGREGATE' + | 'ANALYTIC' + ; + +Commas + : ',' + | Commas ',' + ; + +AnyCursor + : 'CURSOR' + | 'PARTIAL_CURSOR' + ; + +DatabaseOrSchema + : 'DATABASE' + | 'SCHEMA' + ; + +FromOrIn + : 'FROM' + | 'IN' + ; + +DatabasesOrSchemas + : 'DATABASES' + | 'SCHEMAS' + ; + + +GroupRoleOrUser + : 'GROUP' + | 'ROLE' + | 'USER' + ; + +RoleOrUser + : 'ROLE' + | 'USER' + ; + +SingleQuotedValue + : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 + | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' + ; + +SingleQuotedValue_EDIT + : 'SINGLE_QUOTE' 'PARTIAL_VALUE' + ; + +DoubleQuotedValue + : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 + | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' + ; + +DoubleQuotedValue_EDIT + : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' + ; + +QuotedValue + : SingleQuotedValue + | DoubleQuotedValue + ; + +QuotedValue_EDIT + : SingleQuotedValue_EDIT + | DoubleQuotedValue_EDIT + ; + +OptionalAggregateOrAnalytic + : + | AggregateOrAnalytic + ; + +OptionalExternal + : + | 'EXTERNAL' + ; + +OptionalExtendedOrFormatted + : + | 'EXTENDED' + | 'FORMATTED' + ; + +OptionalFromDatabase + : + | FromOrIn DatabaseIdentifier + ; + +OptionalFromDatabase_EDIT + : FromOrIn DatabaseIdentifier_EDIT + ; + +OptionalCascadeOrRestrict + : + | 'CASCADE' + | 'RESTRICT' + ; + +OptionalIfExists + : + | 'IF' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalIfNotExists + : + | 'IF' 'NOT' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfNotExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['NOT EXISTS']); + } + | 'IF' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalInDatabase + : + | 'IN' DatabaseIdentifier + | 'IN' DatabaseIdentifier_EDIT + ; + +OptionalPartitionSpec + : + | PartitionSpec + ; + +OptionalPartitionSpec_EDIT + : PartitionSpec_EDIT + ; + +PartitionSpec + : 'PARTITION' '(' PartitionSpecList ')' + ; + +PartitionSpec_EDIT + : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +RangePartitionSpec + : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + ; + +RangePartitionSpec_EDIT + : UnsignedValueSpecification 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + ; + +RangePartitionComparisonOperator + : 'COMPARISON_OPERATOR' + | '=' + | '<' + | '>' + ; + +ConfigurationName + : RegularIdentifier + | 'CURSOR' + ; + +PartialBacktickedOrAnyCursor + : AnyCursor + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrCursor + : 'CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrPartialCursor + : 'PARTIAL_CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedIdentifier + : 'BACKTICK' 'PARTIAL_VALUE' + ; + +RightParenthesisOrError + : ')' + | error + ; + +OptionalParenthesizedColumnList + : + | ParenthesizedColumnList + ; + +OptionalParenthesizedColumnList_EDIT + : ParenthesizedColumnList_EDIT + ; + +ParenthesizedColumnList + : '(' ColumnList ')' + ; + +ParenthesizedColumnList_EDIT + : '(' ColumnList_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +ColumnList + : ColumnIdentifier + | ColumnList ',' ColumnIdentifier + ; + +ColumnList_EDIT + : ColumnIdentifier_EDIT + | ColumnList ',' AnyCursor + { + parser.suggestColumns(); + } + | ColumnList ',' ColumnIdentifier_EDIT + | ColumnIdentifier_EDIT ',' ColumnList + | ColumnList ',' ColumnIdentifier_EDIT ',' ColumnList + | ColumnList ',' AnyCursor ',' ColumnList + { + parser.suggestColumns(); + } + ; + +ParenthesizedSimpleValueList + : '(' SimpleValueList ')' + ; + +SimpleValueList + : UnsignedValueSpecification + | SimpleValueList ',' UnsignedValueSpecification + ; + +SchemaQualifiedTableIdentifier + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier FieldsList + { + // This is a special case for expression like "SELECT | FROM db.table.col" + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ].concat($4) }; + } + ; + +SchemaQualifiedTableIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + // You can have statements like 'SELECT ... FROM testTable t, t.|' + parser.suggestTablesOrColumns($1); + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier FieldsList_EDIT + { + // TODO: switch to suggestColumns, it's currently handled in sqlAutocompleter2.js + // Issue is that suggestColumns is deleted if no tables are defined and this is + // only cases like "SELECT | FROM db.table.col" + parser.suggestTables({ identifierChain: [{ name: $1 }, { name: $3 }].concat($4) }); + } + ; + +FieldsList + : Field -> [$1] + | FieldsList Field + { + $1.push($2); + } + ; + +FieldsList_EDIT + : Field_EDIT -> [] + | FieldsList Field_EDIT -> $1 + | FieldsList Field_EDIT FieldsList -> $1 + | Field_EDIT FieldsList -> [] + ; + +Field + : '.' RegularOrBacktickedIdentifier -> { name: $2 } + ; + +Field_EDIT + : '.' PartialBacktickedOrPartialCursor + ; + +SchemaQualifiedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] + ; + +SchemaQualifiedIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + ; + +DatabaseIdentifier + : RegularOrBacktickedIdentifier + ; + +DatabaseIdentifier_EDIT + : PartialBacktickedOrCursor + { + parser.suggestDatabases(); + } + ; + +PartitionSpecList + : PartitionExpression + | PartitionSpecList ',' PartitionExpression + ; + +PartitionSpecList_EDIT + : PartitionExpression_EDIT + | PartitionSpecList ',' PartitionExpression_EDIT + | PartitionExpression_EDIT ',' PartitionSpecList + | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList + ; + +PartitionExpression + : ColumnIdentifier '=' ValueExpression + ; + +PartitionExpression_EDIT + : ColumnIdentifier '=' ValueExpression_EDIT + | ColumnIdentifier '=' AnyCursor + { + parser.valueExpressionSuggest(); + } + | PartialBacktickedIdentifier '=' ValueExpression + { + parser.suggestColumns(); + } + | AnyCursor + { + parser.suggestColumns(); + } + ; + +OptionalHdfsLocation + : + | HdfsLocation + ; + +HdfsLocation + : 'LOCATION' HdfsPath + ; + +HdfsLocation_EDIT + : 'LOCATION' HdfsPath_EDIT + ; + +OptionalCachedInOrUncached + : + | CachedIn OptionalWithReplication + { + if (!$2) { + $$ = { suggestKeywords: ['WITH REPLICATION ='] }; + } + } + | 'UNCACHED' + ; + + +OptionalCachedIn + : + | CachedIn OptionalWithReplication + { + if (!$2) { + $$ = { suggestKeywords: ['WITH REPLICATION ='] }; + } + } + ; + +CachedIn + : 'CACHED' 'IN' QuotedValue + ; + +CachedIn_EDIT + : 'CACHED' 'CURSOR' + { + parser.suggestKeywords(['IN']); + } + ; + +OptionalWithReplication + : + | WithReplication + ; + +WithReplication + : 'WITH' 'REPLICATION' '=' SignedInteger + ; + +WithReplication_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['REPLICATION =']); + } + | 'WITH' 'REPLICATION' 'CURSOR' + { + parser.suggestKeywords(['=']); + } + ; + +RegularOrBacktickedIdentifier + : RegularIdentifier + | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 + | 'BACKTICK' 'BACKTICK' -> '' + ; + +// TODO: Same as SchemaQualifiedTableIdentifier? +RegularOrBackTickedSchemaQualifiedName + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +RegularOrBackTickedSchemaQualifiedName_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + + +LocalOrSchemaQualifiedName + : RegularOrBackTickedSchemaQualifiedName + | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } + ; + +LocalOrSchemaQualifiedName_EDIT + : RegularOrBackTickedSchemaQualifiedName_EDIT + | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier + ; + +ColumnReference + : BasicIdentifierChain + { + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnReference_EDIT + : BasicIdentifierChain_EDIT + ; + +BasicIdentifierChain + : ColumnIdentifier + { + $$ = [ $1.identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); + } + | BasicIdentifierChain '.' ColumnIdentifier + { + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $1.push($3.identifier); + parser.addUnknownLocation($3.location, $1.concat()); + } + ; + +// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) +BasicIdentifierChain_EDIT + : ColumnIdentifier_EDIT + { + if ($1.insideKey) { + parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | BasicIdentifierChain '.' ColumnIdentifier_EDIT + { + if ($3.insideKey) { + parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | BasicIdentifierChain '.' ColumnIdentifier_EDIT '.' BasicIdentifierChain + | ColumnIdentifier_EDIT '.' BasicIdentifierChain + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + ; + +DerivedColumnChain + : ColumnIdentifier -> [ $1.identifier ] + | DerivedColumnChain '.' ColumnIdentifier + { + $1.push($3.identifier); + } + ; + +DerivedColumnChain_EDIT + : ColumnIdentifier_EDIT + { + if ($1.insideKey) { + parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | DerivedColumnChain '.' ColumnIdentifier_EDIT + { + if ($3.insideKey) { + parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | DerivedColumnChain '.' ColumnIdentifier_EDIT '.' DerivedColumnChain + { + if ($3.insideKey) { + parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | ColumnIdentifier_EDIT '.' DerivedColumnChain + { + if ($1.insideKey) { + parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns(); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns({ identifierChain: $1 }); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns({ identifierChain: $1 }); + } + | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns(); + } + ; + +ColumnIdentifier + : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } + | RegularOrBacktickedIdentifier '[' ValueExpression ']' -> { identifier: { name: $1, keySet: true }, location: @1 } + | RegularOrBacktickedIdentifier '[' ']' -> { identifier: { name: $1, keySet: true }, location: @1 } + ; + +ColumnIdentifier_EDIT + : RegularOrBacktickedIdentifier '[' AnyCursor RightSquareBracketOrError -> { identifier: { name: $1 }, insideKey: true } + | RegularOrBacktickedIdentifier '[' ValueExpression_EDIT RightSquareBracketOrError -> { identifier: { name: $1 }} + ; + +PartialBacktickedIdentifierOrPartialCursor + : PartialBacktickedIdentifier + | 'PARTIAL_CURSOR' + ; + +RightSquareBracketOrError + : ']' + | error + ; + +PrimitiveType + : 'TINYINT' + | 'SMALLINT' + | 'INT' + | 'BIGINT' + | 'BOOLEAN' + | 'FLOAT' + | 'DOUBLE' + | 'REAL' + | 'STRING' + | 'DECIMAL' OptionalTypePrecision + | 'CHAR' OptionalTypeLength + | 'VARCHAR' OptionalTypeLength + | 'TIMESTAMP' + ; + +OptionalTypeLength + : + | '(' 'UNSIGNED_INTEGER' ')' + ; + +OptionalTypePrecision + : + | '(' 'UNSIGNED_INTEGER' ')' + | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' + ; + +// ===================================== DESCRIBE statement ===================================== + +DescribeStatement + : 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + | 'DESCRIBE' 'DATABASE' OptionalExtendedOrFormatted DatabaseIdentifier + { + parser.addDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DescribeStatement_EDIT + : 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' + { + if (!$2) { + parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier_EDIT + | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + if (!$2) { + parser.suggestKeywords([{ value: 'DATABASE', weight: 2 }, { value: 'EXTENDED', weight: 1 }, { value: 'FORMATTED', weight: 1 }]); + } + } + | 'DESCRIBE' 'DATABASE' OptionalExtendedOrFormatted 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + parser.suggestDatabases(); + } + | 'DESCRIBE' 'DATABASE' OptionalExtendedOrFormatted 'CURSOR' DatabaseIdentifier + { + if (!$3) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + parser.addDatabaseLocation(@5, [{ name: $5 }]); + } + ; + +// ===================================== SELECT statement ===================================== + +QuerySpecification + : SelectStatement OptionalUnions -> $1 + | CommonTableExpression SelectStatement OptionalUnions + | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 + ; + +QuerySpecification_EDIT + : SelectStatement_EDIT OptionalUnions + | SelectStatement OptionalUnions_EDIT + | CommonTableExpression '(' QuerySpecification_EDIT ')' + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement_EDIT OptionalUnions + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement OptionalUnions_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT + | CommonTableExpression_EDIT '(' QuerySpecification ')' + | CommonTableExpression_EDIT SelectStatement OptionalUnions + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList + { + parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); + $$ = { selectList: $4 }; + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); + $$ = { selectList: $4, tableExpression: $5 } + } + ; + +OptionalUnions + : + | Unions + ; + +OptionalUnions_EDIT + : Unions_EDIT + ; + +Unions + : UnionClause + | Unions UnionClause + ; + +Unions_EDIT + : UnionClause_EDIT + | Unions UnionClause_EDIT + | UnionClause_EDIT Unions + | Unions UnionClause_EDIT Unions + ; + +UnionClause + : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement + ; + +UnionClause_EDIT + : 'UNION' NewStatement 'CURSOR' + { + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + } + | 'UNION' NewStatement 'CURSOR' SelectStatement + { + parser.suggestKeywords(['ALL', 'DISTINCT']); + } + | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3 && !$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$3) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($4); + } + if ($4.suggestFunctions) { + parser.suggestFunctions(); + } + if ($4.suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($4.suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($4.suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($4.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$3 && !$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$3) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList TableExpression_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList_EDIT TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); + parser.selectListNoTableSuggest($4, $2); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$3 && !$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + if (!$3) { + keywords.push({ value: 'STRAIGHT_JOIN', weight: 1 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); + parser.checkForSelectListKeywords($4); + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' ',' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); + parser.checkForSelectListKeywords($4); + } + | 'SELECT' OptionalAllOrDistinct OptionalStraightJoin SelectList 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($3, @3, $2, @2, $1, @1), @4); + parser.checkForSelectListKeywords($4); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + } + ; + +OptionalStraightJoin + : + | 'STRAIGHT_JOIN' + ; + +CommonTableExpression + : 'WITH' WithQueries -> $2 + ; + +CommonTableExpression_EDIT + : 'WITH' WithQueries_EDIT + ; + +WithQueries + : WithQuery -> [$1] + | WithQueries ',' WithQuery -> $1.concat([$3]) + ; + +WithQueries_EDIT + : WithQuery_EDIT + | WithQueries ',' WithQuery_EDIT + { + parser.addCommonTableExpressions($1); + } + | WithQuery_EDIT ',' WithQueries + | WithQueries ',' WithQuery_EDIT ',' WithQueries + { + parser.addCommonTableExpressions($1); + } + ; + +WithQuery + : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' + { + parser.addCteAliasLocation(@1, $1); + $4.alias = $1; + $$ = $4; + } + ; + +WithQuery_EDIT + : RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError + ; + +OptionalAllOrDistinct + : + | 'ALL' + | 'DISTINCT' + ; + +TableExpression + : FromClause OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + ; + +TableExpression_EDIT + : FromClause_EDIT OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins + { + var keywords = []; + + parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + + if ($1) { + if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + keywords.push({ value: 'USING', weight: 3 }); + } + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); + } + if ($1.tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); + } + if ($1.tableReferenceList.suggestJoins) { + parser.suggestJoins($1.tableReferenceList.suggestJoins); + } + if ($1.tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { + keyword.weight = 1.1; + } + }); + + if ($1.tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($1.tableReferenceList); + } + } + } + + if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + keywords = keywords.concat(['ANTI', 'CROSS', 'INNER', 'LEFT ANTI', 'LEFT INNER', 'LEFT SEMI', 'OUTER', 'RIGHT ANTI', 'RIGHT INNER', 'RIGHT SEMI', 'SEMI']); + parser.suggestKeywords(keywords); + return; + } + + if ($3.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); + } + + if ($3.suggestFilters) { + parser.suggestFilters($3.suggestFilters); + } + if ($3.suggestGroupBys) { + parser.suggestGroupBys($3.suggestGroupBys); + } + if ($3.suggestOrderBys) { + parser.suggestOrderBys($3.suggestOrderBys); + } + + if ($3.empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'ANTI JOIN', weight: 1 }, + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT ANTI JOIN', weight: 1 }, + { value: 'LEFT INNER JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'LEFT SEMI JOIN', weight: 1 }, + { value: 'OUTER JOIN', weight: 1 }, + { value: 'RIGHT ANTI JOIN', weight: 1 }, + { value: 'RIGHT INNER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 }, + { value: 'RIGHT SEMI JOIN', weight: 1 }, + { value: 'SEMI JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + } + | FromClause OptionalSelectConditions_EDIT OptionalJoins + { + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$2) { + parser.addClauseLocation('whereClause', @1); + parser.addClauseLocation('limitClause', @1); + return; + } + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + var keywords = []; + + if ($2.suggestColRefKeywords) { + parser.suggestColRefKeywords($2.suggestColRefKeywords); + parser.addColRefIfExists($2); + } + + if ($2.suggestKeywords && $2.suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); + } + + if ($2.cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + } + ; + +OptionalJoins + : + | Joins + | Joins_INVALID + ; + +FromClause + : 'FROM' TableReferenceList + { + $$ = { tableReferenceList : $2 } + } + ; + +FromClause_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReferenceList_EDIT + ; + +OptionalSelectConditions + : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$1, $2, $3, $4, $5, $6], + [{ value: 'WHERE', weight: 9 }, + { value: 'GROUP BY', weight: 8 }, + { value: 'HAVING', weight: 7 }, + { value: 'ORDER BY', weight: 5 }, + { value: 'LIMIT', weight: 3 }, + { value: 'OFFSET', weight: 2 }], + [true, true, true, true, true, true]); + + if (keywords.length > 0) { + $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 && !$6 }; + } else { + $$ = {}; + } + + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $5 ? @5 : undefined; + + if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6) { + $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$2 && !$3 && !$4 && !$5 && !$6) { + $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$4 && !$5 && !$6) { + $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + } + | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + } + | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause OptionalOffsetClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT OptionalOffsetClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OffsetClause_EDIT + ; + +OptionalSelectConditions_EDIT + : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$3, $4, $5, $6, $7], + [{ value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], + [true, true, true, true, true]); + if ($1.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); + } + $$ = parser.getValueExpressionKeywords($1, keywords); + $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6 && !$7; + if ($1.columnReference) { + $$.columnReference = $1.columnReference; + } + if (!$3) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$3 && !$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$4, $5, $6, $7], + [{ value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], + [true, true, true, true]); + if ($2.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 6)); + } + if ($2.valueExpression) { + $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); + if ($2.valueExpression.columnReference) { + $$.columnReference = $2.valueExpression.columnReference; + } + } else { + $$ = { suggestKeywords: keywords }; + } + $$.cursorAtEnd = !$4 && !$5 && !$6 && !$7; + if (!$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause OptionalOffsetClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$5, $6, $7], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], + [true, true, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 && !$7 }; + if (!$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause OptionalOffsetClause + { + var keywords = parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'LIMIT', weight: 3 }, { value: 'OFFSET', weight: 2 }], [true, true]); + if ($4.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 && !$7 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' OptionalOffsetClause + { + var keywords = parser.getKeywordsForOptionalsLR([$7], [{ value: 'OFFSET', weight: 2 }], [true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$7 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = @5; + } + ; + +OptionalWhereClause + : + | WhereClause + ; + +WhereClause + : 'WHERE' SearchCondition -> $2 + ; + +WhereClause_EDIT + : 'WHERE' SearchCondition_EDIT + { + if ($2.suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'WHERE' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OptionalGroupByClause + : + | GroupByClause + ; + +GroupByClause + : 'GROUP' 'BY' GroupByColumnList + { + $$ = { valueExpression: $3 }; + } + ; + +GroupByClause_EDIT + : 'GROUP' 'BY' GroupByColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + | 'GROUP' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +ColumnGroupingSets + : + | ColumnReference + | ColumnGroupingSets ',' ColumnGroupingSets + | '(' ColumnGroupingSets ')' + ; + +ColumnGroupingSets_EDIT + : ColumnGroupingSet_EDIT + | ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSet_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + ; + +GroupByColumnList + : ValueExpression + | GroupByColumnList ',' ValueExpression -> $3 + ; + +GroupByColumnList_EDIT + : ValueExpression_EDIT + | 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + } + | 'CURSOR' ',' GroupByColumnList + { + parser.valueExpressionSuggest(); + } + | ValueExpression_EDIT ',' GroupByColumnList + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList + ; + +GroupByColumnListPartTwo_EDIT + : ValueExpression_EDIT + | AnyCursor ValueExpression + { + parser.valueExpressionSuggest(); + } + | AnyCursor + { + parser.valueExpressionSuggest(); + } + ; + +OptionalOrderByClause + : + | OrderByClause + ; + +OrderByClause + : 'ORDER' 'BY' OrderByColumnList -> $3 + ; + +OrderByClause_EDIT + : 'ORDER' 'BY' OrderByColumnList_EDIT + { + if ($3.emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'ORDER' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OrderByColumnList + : OrderByIdentifier + | OrderByColumnList ',' OrderByIdentifier -> $3 + ; + +OrderByColumnList_EDIT + : OrderByIdentifier_EDIT + | 'CURSOR' OrderByIdentifier + { + $$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } + ; + +OrderByIdentifier + : ValueExpression OptionalAscOrDesc OptionalNullsFirstOrLast -> parser.mergeSuggestKeywords($2, $3) + ; + +OrderByIdentifier_EDIT + : ValueExpression_EDIT OptionalAscOrDesc OptionalNullsFirstOrLast + { + parser.suggestSelectListAliases(); + } + | ValueExpression OptionalAscOrDesc NullsFirstOrLast_EDIT + | AnyCursor OptionalAscOrDesc OptionalNullsFirstOrLast + { + $$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + ; + +OptionalAscOrDesc + : + { + $$ = { suggestKeywords: ['ASC', 'DESC'] }; + } + | 'ASC' + | 'DESC' + ; + +OptionalNullsFirstOrLast + : + { + $$ = { suggestKeywords: ['NULLS FIRST', 'NULLS LAST'] }; + } + | 'NULLS' 'FIRST' + | 'NULLS' 'LAST' + ; + +NullsFirstOrLast_EDIT + : 'NULLS' 'CURSOR' + { + parser.suggestKeywords(['FIRST', 'LAST']); + } + ; + + + +SortByList + : SortByIdentifier + | SortByList ',' SortByIdentifier -> $3 + ; + +SortByList_EDIT + : SortByIdentifier_EDIT + | SortByIdentifier_EDIT ',' SortByList + | SortByList ',' SortByIdentifier_EDIT + | SortByList ',' SortByIdentifier_EDIT ',' SortByList + ; + +SortByIdentifier + : ColumnIdentifier OptionalAscOrDesc + { + parser.addColumnLocation($1.location, [ $1.identifier ]); + $$ = $2; + } + ; + +SortByIdentifier_EDIT + : ColumnIdentifier_EDIT OptionalAscOrDesc + | AnyCursor OptionalAscOrDesc + { + parser.suggestColumns(); + } + ; + +OptionalLimitClause + : + | LimitClause + ; + +LimitClause + : 'LIMIT' ValueExpression + ; + +LimitClause_EDIT + : 'LIMIT' 'CURSOR' + { + parser.suggestFunctions({ types: ['BIGINT'] }); + } + | 'LIMIT' ValueExpression_EDIT + { + delete parser.yy.result.suggestColumns; + } + ; + +OptionalOffsetClause + : + | OffsetClause + ; + +OffsetClause + : 'OFFSET' ValueExpression + ; + +OffsetClause_EDIT + : 'OFFSET' 'CURSOR' + { + parser.suggestFunctions({ types: ['BIGINT'] }); + } + | 'OFFSET' ValueExpression_EDIT + { + delete parser.yy.result.suggestColumns; + } + ; + +SearchCondition + : ValueExpression + ; + +SearchCondition_EDIT + : ValueExpression_EDIT + ; + +ValueExpression + : NonParenthesizedValueExpressionPrimary + ; + +ValueExpression_EDIT + : NonParenthesizedValueExpressionPrimary_EDIT + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'ILIKE', 'IREGEXP', 'LIKE', 'REGEXP', 'RLIKE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpressionList + : ValueExpression + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression + { + $3.position = $1.position + 1; + $$ = $3; + } + ; + +ValueExpressionList_EDIT + : ValueExpression_EDIT + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT + { + $1.position += 1; + } + | ValueExpression_EDIT ',' ValueExpressionList + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList + { + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList 'CURSOR' ',' ValueExpressionList + { + parser.suggestValueExpressionKeywords($1); + } + | AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | AnyCursor ',' + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | ',' AnyCursor + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + | ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + ; + +InValueList + : NonParenthesizedValueExpressionPrimary + | InValueList ',' NonParenthesizedValueExpressionPrimary + ; + +NonParenthesizedValueExpressionPrimary + : UnsignedValueSpecification + | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart + { + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.expression) { + $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } + } else { + $$ = { function: fn, types: parser.findReturnTypes(fn) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | UserDefinedFunction + | 'NULL' -> { types: [ 'NULL' ] } + | IntervalSpecification -> { types: [ 'TIMESTAMP' ] } + ; + +NonParenthesizedValueExpressionPrimary_EDIT + : UnsignedValueSpecification_EDIT + | ColumnOrArbitraryFunctionRef_EDIT + { + if ($1.suggestKeywords) { + $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; + } else { + $$ = { types: ['COLREF'], columnReference: $1 }; + } + } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT + { + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.position) { + parser.applyArgumentTypesToSuggestions(fn, $2.position); + } + $$ = { types: parser.findReturnTypes(fn) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | UserDefinedFunction_EDIT + | IntervalSpecification_EDIT + ; + +ColumnOrArbitraryFunctionRef + : BasicIdentifierChain + { + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; + $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnOrArbitraryFunctionRef_EDIT + : BasicIdentifierChain_EDIT + ; + +IntervalSpecification + : 'INTERVAL' SignedInteger RegularIdentifier + ; + +IntervalSpecification_EDIT + : 'INTERVAL' SignedInteger 'CURSOR' + { + parser.suggestKeywords(['DAYS', 'HOURS', 'MICROSECONDS', 'MILLISECONDS', 'MINUTES', 'MONTHS', 'NANOSECONDS', 'SECONDS', 'WEEKS', 'YEARS']); + } + ; + +SignedInteger + : UnsignedNumericLiteral + | '-' UnsignedNumericLiteral + | '+' UnsignedNumericLiteral + ; + +UnsignedValueSpecification + : UnsignedLiteral + ; + +UnsignedValueSpecification_EDIT + : UnsignedLiteral_EDIT + { + parser.suggestValues($1); + } + ; + +UnsignedLiteral + : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } + | GeneralLiteral + ; + +UnsignedLiteral_EDIT + : GeneralLiteral_EDIT + ; + +UnsignedNumericLiteral + : ExactNumericLiteral + | ApproximateNumericLiteral + ; + +ExactNumericLiteral + : 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' -> $1 + $2 + | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 + | '.' 'UNSIGNED_INTEGER' -> $1 + $2 + ; + +ApproximateNumericLiteral + : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + ; + +GeneralLiteral + : SingleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | DoubleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | TruthValue -> { types: [ 'BOOLEAN' ] } + ; + +GeneralLiteral_EDIT + : SingleQuotedValue_EDIT + { + $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + } + | DoubleQuotedValue_EDIT + { + $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + } + ; + +TruthValue + : 'TRUE' + | 'FALSE' + ; + +OptionalNot + : + | 'NOT' + ; + +SelectSpecification + : ValueExpression OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + $$ = { valueExpression: $1, alias: $2.alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); + } else { + $$ = { valueExpression: $1 } + } + } + | '*' + { + parser.addAsteriskLocation(@1, [{ asterisk: true }]); + $$ = { asterisk: true } + } + ; + +SelectSpecification_EDIT + : ValueExpression_EDIT OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + } + } + + | AnyCursor 'AS' RegularOrBacktickedIdentifier + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(@3, $3, @1); + $$ = { suggestAggregateFunctions: true }; + } + | ValueExpression OptionalCorrelationName_EDIT -> $2 + ; + +SelectList + : SelectSpecification -> [ $1 ] + | SelectList ',' SelectSpecification + { + $1.push($3); + } + ; + +SelectList_EDIT + : SelectSpecification_EDIT + | 'CURSOR' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | 'CURSOR' ',' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectSpecification_EDIT ',' SelectList + | SelectList 'CURSOR' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList 'CURSOR' ',' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList ',' AnyCursor + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' SelectSpecification_EDIT -> $3 + | SelectList ',' AnyCursor SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' AnyCursor ',' + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' -> $3 + | SelectList ',' AnyCursor ',' SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 + ; + +TableReferenceList + : TableReference + | TableReferenceList ',' TableReference -> $3 + ; + +TableReferenceList_EDIT + : TableReference_EDIT + | TableReference_EDIT ',' TableReference + | TableReferenceList ',' TableReference_EDIT + | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList + | TableReferenceList ',' AnyCursor + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TableReference + : TablePrimaryOrJoinedTable + ; + +TableReference_EDIT + : TablePrimaryOrJoinedTable_EDIT + ; + +TablePrimaryOrJoinedTable + : TablePrimary + { + $$ = $1; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + $$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + } + | JoinedTable + ; + +TablePrimaryOrJoinedTable_EDIT + : TablePrimary_EDIT + | JoinedTable_EDIT + ; + +JoinedTable + : TablePrimary Joins -> $2 + ; + +JoinedTable_EDIT + : TablePrimary Joins_EDIT + | TablePrimary_EDIT Joins + ; + +Joins + : JoinType OptionalBroadcastOrShuffle TablePrimary OptionalJoinCondition + { + if ($4 && $4.valueExpression) { + $$ = $4.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($4.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($4.suggestKeywords) { + $$.suggestKeywords = $4.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + | Joins JoinType OptionalBroadcastOrShuffle TablePrimary OptionalJoinCondition + { + if ($5 && $5.valueExpression) { + $$ = $5.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($5.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($5.suggestKeywords) { + $$.suggestKeywords = $5.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + ; + +Joins_INVALID + : JoinType OptionalBroadcastOrShuffle -> { joinType: $1 } + | JoinType OptionalBroadcastOrShuffle Joins -> { joinType: $1 } + ; + +OptionalBroadcastOrShuffle + : + | 'BROADCAST' + | 'SHUFFLE' + ; + +Join_EDIT + : JoinType_EDIT OptionalBroadcastOrShuffle TablePrimary OptionalJoinCondition + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType_EDIT OptionalBroadcastOrShuffle + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType OptionalBroadcastOrShuffle TablePrimary_EDIT OptionalJoinCondition + | JoinType OptionalBroadcastOrShuffle TablePrimary JoinCondition_EDIT + | JoinType OptionalBroadcastOrShuffle 'CURSOR' OptionalJoinCondition + { + if (!$2) { + parser.suggestKeywords(['[BROADCAST]', '[SHUFFLE]']); + } + if (!$2 && parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $1, + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + ; + +Joins_EDIT + : Join_EDIT + | Join_EDIT Joins + | Joins Join_EDIT + | Joins Join_EDIT Joins + ; + +JoinType + : 'JOIN' -> 'JOIN' + | 'ANTI' 'JOIN' -> 'ANTI JOIN' + | 'CROSS' 'JOIN' -> 'CROSS JOIN' + | 'INNER' 'JOIN' -> 'INNER JOIN' + | 'OUTER' 'JOIN' -> 'OUTER JOIN' + | 'SEMI' 'JOIN' -> 'SEMI JOIN' + | 'FULL' 'JOIN' -> 'FULL JOIN' + | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' + | 'LEFT' 'JOIN' -> 'LEFT JOIN' + | 'LEFT' 'ANTI' 'JOIN' -> 'LEFT ANTI JOIN' + | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' + | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' + | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' + | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' + | 'RIGHT' 'ANTI' 'JOIN' -> 'RIGHT ANTI JOIN' + | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' + ; + +JoinType_EDIT + : 'ANTI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'LEFT' 'ANTI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['ANTI', 'INNER', 'OUTER', 'SEMI'] } + | 'RIGHT' 'ANTI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['ANTI', 'INNER', 'OUTER', 'SEMI'] } + ; + +OptionalJoinCondition + : -> { noJoinCondition: true, suggestKeywords: ['ON', 'USING'] } + | 'ON' ValueExpression -> { valueExpression: $2 } + | 'USING' '(' UsingColList ')' -> {} + ; + +UsingColList + : RegularOrBacktickedIdentifier + | UsingColList ',' RegularOrBacktickedIdentifier + ; + +JoinCondition_EDIT + : 'ON' ValueExpression_EDIT + | 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + } + ; + +TablePrimary + : TableOrQueryName OptionalCorrelationName OptionalTableSample + { + $$ = { + primary: $1 + } + if ($1.identifierChain) { + if ($2) { + $1.alias = $2.alias; + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + var keywords = []; + if ($3 && $3.suggestKeywords) { + keywords = $3.suggestKeywords; + } else if (!$2 && !$3) { + keywords = [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }]; + } else if (!$3) { + keywords = [{ value: 'TABLESAMPLE', weight: 3 }]; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + | DerivedTable OptionalCorrelationName OptionalTableSample + { + $$ = { + primary: $1 + }; + + if ($2) { + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); + } + + var keywords = []; + if ($3 && $3.suggestKeywords) { + keywords = $3.suggestKeywords; + } else { + keywords = parser.getKeywordsForOptionalsLR([$3, $2], [{ value: 'TABLESAMPLE', weight: 1 }, { value: 'AS', weight: 2 }], [true, true]); + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +TablePrimary_EDIT + : TableOrQueryName_EDIT OptionalCorrelationName OptionalTableSample + { + if ($2) { + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + } + | TableOrQueryName OptionalCorrelationName TableSample_EDIT + { + if ($2) { + $1.alias = $2.alias; + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + | DerivedTable_EDIT OptionalCorrelationName OptionalTableSample + { + if ($2) { + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias); + } + } + | DerivedTable OptionalCorrelationName_EDIT OptionalTableSample + ; + +TableOrQueryName + : SchemaQualifiedTableIdentifier + ; + +TableOrQueryName_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +DerivedTable + : TableSubQuery + ; + +DerivedTable_EDIT + : TableSubQuery_EDIT + ; + +OptionalTableSample + : + | 'TABLESAMPLE' 'SYSTEM' '(' 'UNSIGNED_INTEGER' ')' -> { suggestKeywords: ['REPEATABLE()'] } + | 'TABLESAMPLE' 'SYSTEM' '(' 'UNSIGNED_INTEGER' ')' 'REPEATABLE' '(' 'UNSIGNED_INTEGER' ')' + ; + +TableSample_EDIT + : 'TABLESAMPLE' 'CURSOR' + { + parser.suggestKeywords(['SYSTEM()']); + } + ; + +OptionalOnColumn + : + | 'ON' ValueExpression + ; + +OptionalOnColumn_EDIT + : 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'ON' ValueExpression_EDIT + ; + +PushQueryState + : + { + parser.pushQueryState(); + } + ; + +PopQueryState + : + { + parser.popQueryState(); + } + ; + +TableSubQuery + : '(' TableSubQueryInner ')' -> $2 + | '(' DerivedTable OptionalCorrelationName ')' + { + if ($3) { + $2.alias = $3.alias; + parser.addTablePrimary({ subQueryAlias: $3.alias }); + parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); + } + $$ = $2; + } + ; + +TableSubQuery_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + ; + +TableSubQueryInner + : PushQueryState SubQuery + { + var subQuery = parser.getSubQuery($2); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + $$ = subQuery; + } + ; + +TableSubQueryInner_EDIT + : PushQueryState SubQuery_EDIT PopQueryState + ; + +SubQuery + : QueryExpression + ; + +SubQuery_EDIT + : QueryExpression_EDIT + ; + +QueryExpression + : QueryExpressionBody + ; + +QueryExpression_EDIT + : QueryExpressionBody_EDIT + ; + +QueryExpressionBody + : NonJoinQueryExpression + ; + +QueryExpressionBody_EDIT + : NonJoinQueryExpression_EDIT + ; + +NonJoinQueryExpression + : NonJoinQueryTerm + ; + +NonJoinQueryExpression_EDIT + : NonJoinQueryTerm_EDIT + ; + +NonJoinQueryTerm + : NonJoinQueryPrimary + ; + +NonJoinQueryTerm_EDIT + : NonJoinQueryPrimary_EDIT + ; + +NonJoinQueryPrimary + : SimpleTable + ; + +NonJoinQueryPrimary_EDIT + : SimpleTable_EDIT + ; + +SimpleTable + : QuerySpecification + ; + +SimpleTable_EDIT + : QuerySpecification_EDIT + ; + +OptionalCorrelationName + : + | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } + | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | 'AS' QuotedValue -> { alias: $2, location: @2 } + ; + +OptionalCorrelationName_EDIT + : PartialBacktickedIdentifier + | QuotedValue_EDIT + | 'AS' PartialBacktickedIdentifier + | 'AS' QuotedValue_EDIT + | 'AS' 'CURSOR' + ; + +UserDefinedFunction + : AggregateFunction OptionalOverClause + { + if (!$2) { + $1.suggestKeywords = ['OVER']; + } + } + | AnalyticFunction OverClause + | CastFunction + | ExtractFunction + ; + +UserDefinedFunction_EDIT + : AggregateFunction_EDIT + | AggregateFunction OptionalOverClause_EDIT + | AnalyticFunction_EDIT + | AnalyticFunction_EDIT OverClause + | AnalyticFunction 'CURSOR' + { + parser.suggestKeywords(['OVER']); + } + | AnalyticFunction OverClause_EDIT + | CastFunction_EDIT + | ExtractFunction_EDIT + ; + +ArbitraryFunction + : RegularIdentifier ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + ; + +ArbitraryFunction_EDIT + : RegularIdentifier ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ArbitraryFunctionName + : 'IF' + | 'ARRAY' + | 'MAP' + | 'REPLACE' + | 'TRUNCATE' + | 'USER' + | 'LEFT_F' + ; + +ArbitraryFunctionRightPart + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } + ; + +ArbitraryFunctionRightPart_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { position: 1 } + } + | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 + ; + +AggregateFunction + : CountFunction + | SumFunction + | OtherAggregateFunction + ; + +AggregateFunction_EDIT + : CountFunction_EDIT + | SumFunction_EDIT + | OtherAggregateFunction_EDIT + ; + +AnalyticFunction + : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } + ; + +AnalyticFunction_EDIT + : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError + { + parser.applyArgumentTypesToSuggestions($1, $3.position); + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOverClause + : + | OverClause + ; + +OptionalOverClause_EDIT + : OverClause_EDIT + ; + +OverClause + : 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression + ; + +OverClause_EDIT + : 'OVER' WindowExpression_EDIT + ; + +WindowExpression + : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' + ; + +WindowExpression_EDIT + : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$3 && !$4) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$3) { + parser.suggestKeywords(['PARTITION BY']); + } + } + | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$6) { + parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($4); + } + } + ; + +OptionalPartitionBy + : + | PartitionBy + ; + +PartitionBy + : 'PARTITION' 'BY' ValueExpressionList -> $3 + ; + +PartitionBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'PARTITION' 'BY' ValueExpressionList_EDIT + ; + +OptionalOrderByAndWindow + : + | OrderByClause OptionalWindowSpec + ; + +OptionalOrderByAndWindow_EDIT + : OrderByClause_EDIT + { + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + } + | OrderByClause 'CURSOR' OptionalWindowSpec + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); + } + if (!$3) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + } + | OrderByClause WindowSpec_EDIT + ; + +OptionalWindowSpec + : + | WindowSpec + ; + +WindowSpec + : RowsOrRange 'BETWEEN' OptionalCurrentOrPreceding OptionalAndFollowing + | RowsOrRange 'UNBOUNDED' OptionalCurrentOrPreceding OptionalAndFollowing + ; + +WindowSpec_EDIT + : RowsOrRange 'CURSOR' + { + parser.suggestKeywords(['BETWEEN']); + } + | RowsOrRange 'BETWEEN' OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' + { + if (!$3 && !$4) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$4) { + parser.suggestKeywords(['AND']); + } + } + | RowsOrRange 'BETWEEN' OptionalCurrentOrPreceding_EDIT OptionalAndFollowing + | RowsOrRange 'BETWEEN' OptionalCurrentOrPreceding OptionalAndFollowing_EDIT + | RowsOrRange 'UNBOUNDED' OptionalCurrentOrPreceding 'CURSOR' + | RowsOrRange 'UNBOUNDED' OptionalCurrentOrPreceding_EDIT + ; + +PopLexerState + : + { + lexer.popState(); + } + ; + +PushHdfsLexerState + : + { + lexer.begin('hdfs'); + } + ; + +HdfsPath + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' + ; + +HdfsPath_EDIT + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: '' }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: '' }); + } + ; + +RowsOrRange + : 'ROWS' + | 'RANGE' + ; + +OptionalCurrentOrPreceding + : + | IntegerOrUnbounded 'PRECEDING' + | 'CURRENT' 'ROW' + ; + +OptionalCurrentOrPreceding_EDIT + : IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['PRECEDING']); + } + | 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + ; + +OptionalAndFollowing + : + | 'AND' 'CURRENT' 'ROW' + | 'AND' IntegerOrUnbounded 'FOLLOWING' + ; + +OptionalAndFollowing_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + } + | 'AND' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + | 'AND' IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['FOLLOWING']); + } + ; + +IntegerOrUnbounded + : 'UNSIGNED_INTEGER' + | 'UNBOUNDED' + ; + +OptionalHavingClause + : + | HavingClause + ; + +HavingClause + : 'HAVING' ValueExpression + ; + +HavingClause_EDIT + : 'HAVING' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + | 'HAVING' ValueExpression_EDIT + { + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + ; + +CastFunction + : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ')' -> { types: [ 'T' ] } + ; + +CastFunction_EDIT + : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + ; + +CountFunction + : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +CountFunction_EDIT + : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + keywords.push('ALL'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + keywords.push('ALL'); + } + parser.suggestKeywords(keywords); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +OtherAggregateFunction_EDIT + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('ALL'); + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('ALL'); + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, $4.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction_Type + : 'APPX_MEDIAN' + | 'AVG' + | 'GROUP_CONCAT' + | 'STDDEV' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'MAX' + | 'MIN' + | 'NDV' + | 'VARIANCE' + | 'VARIANCE_POP' + | 'VARIANCE_SAMP' + | 'VAR_POP' + | 'VAR_SAMP' + ; + +ExtractFunction + : 'EXTRACT' '(' ValueExpression FromOrComma ValueExpression ')' + | 'EXTRACT' '(' ')' + ; + +ExtractFunction_EDIT + : 'EXTRACT' '(' AnyCursor FromOrComma ValueExpression RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' AnyCursor FromOrComma RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' ValueExpression_EDIT FromOrComma ValueExpression RightParenthesisOrError + { + parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' ValueExpression_EDIT FromOrComma RightParenthesisOrError + { + parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['STRING'] : ['TIMESTAMP']); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' ValueExpression_EDIT RightParenthesisOrError + { + parser.applyTypeToSuggestions(['STRING', 'TIMESTAMP']); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' ValueExpression FromOrComma AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' FromOrComma AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' ValueExpression FromOrComma ValueExpression_EDIT RightParenthesisOrError + { + parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' FromOrComma ValueExpression_EDIT RightParenthesisOrError + { + parser.applyTypeToSuggestions($4.toLowerCase() === 'from' ? ['TIMESTAMP'] : ['STRING']); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' ValueExpression 'CURSOR' ValueExpression RightParenthesisOrError + { + if ($3.types[0] === 'STRING') { + parser.suggestValueExpressionKeywords($3, ['FROM']); + } else { + parser.suggestValueExpressionKeywords($3); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | 'EXTRACT' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + if ($3.types[0] === 'STRING') { + parser.suggestValueExpressionKeywords($3, ['FROM']); + } else { + parser.suggestValueExpressionKeywords($3); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +FromOrComma + : 'FROM' + | ',' + ; + +SumFunction + : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } + | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } + ; + +SumFunction_EDIT + : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + keywords.push('DISTINCT'); + keywords.push('ALL'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, 1); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOuter + : + | 'OUTER' + ; diff --git a/src/jison/sql/impala/sql_set.jison b/src/jison/sql/impala/sql_set.jison new file mode 100644 index 0000000..4606b74 --- /dev/null +++ b/src/jison/sql/impala/sql_set.jison @@ -0,0 +1,47 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : SetSpecification + ; + +DataDefinition_EDIT + : 'SET' 'CURSOR' + { + parser.suggestSetOptions(); + parser.suggestKeywords(['ALL']); + } + ; + +SetSpecification + : 'SET' SetOption '=' SetValue + | 'SET' 'ALL' + ; + +SetOption + : RegularIdentifier + | SetOption '.' RegularIdentifier + ; + +SetValue + : RegularIdentifier + | SignedInteger + | SignedInteger RegularIdentifier + | QuotedValue + | 'TRUE' + | 'FALSE' + | 'NULL' + ; diff --git a/src/jison/sql/impala/sql_show.jison b/src/jison/sql/impala/sql_show.jison new file mode 100644 index 0000000..81af37b --- /dev/null +++ b/src/jison/sql/impala/sql_show.jison @@ -0,0 +1,372 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : ShowStatement + ; + +DataDefinition_EDIT + : ShowStatement_EDIT + ; + +ShowStatement + : ShowColumnStatsStatement + | ShowCreateTableStatement + | ShowCurrentRolesStatement + | ShowDatabasesStatement + | ShowFilesStatement + | ShowFunctionsStatement + | ShowGrantStatement + | ShowPartitionsStatement + | ShowRoleStatement + | ShowRolesStatement + | ShowTableStatsStatement + | ShowTablesStatement + ; + +ShowStatement_EDIT + : 'SHOW' 'CURSOR' + { + parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'CREATE VIEW', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'GRANT USER', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); + } + | 'SHOW' 'CURSOR' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($3); + parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'CREATE VIEW', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); + } + | 'SHOW' 'CURSOR' 'LIKE' SingleQuotedValue + { + parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'DATABASES', 'FUNCTIONS', 'SCHEMAS', 'TABLES']); + } + | ShowColumnStatsStatement_EDIT + | ShowCreateTableStatement_EDIT + | ShowCurrentRolesStatement_EDIT + | ShowDatabasesStatement_EDIT + | ShowFilesStatement_EDIT + | ShowFunctionsStatement_EDIT + | ShowGrantStatement_EDIT + | ShowPartitionsStatement_EDIT + | ShowRoleStatement_EDIT + | ShowTableStatsStatement_EDIT + | ShowTablesStatement_EDIT + ; + +ShowColumnStatsStatement + : 'SHOW' 'COLUMN' 'STATS' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($4); + } + ; + +ShowColumnStatsStatement_EDIT + : 'SHOW' 'COLUMN' 'CURSOR' + { + parser.suggestKeywords(['STATS']); + } + | 'SHOW' 'COLUMN' 'STATS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'SHOW' 'COLUMN' 'STATS' RegularOrBackTickedSchemaQualifiedName_EDIT + ; + +ShowCreateTableStatement + : 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($4); + } + ; + +ShowCreateTableStatement_EDIT + : 'SHOW' 'CREATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE', 'VIEW']); + } + | 'SHOW' 'CREATE' TableOrView 'CURSOR' + { + if ($3.isView) { + parser.suggestTables({ onlyViews: true }); + } else { + parser.suggestTables(); + } + parser.suggestDatabases({ + appendDot: true + }); + } + | 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName_EDIT + { + if (parser.yy.result.suggestTables && $3.isView) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'SHOW' 'CREATE' 'CURSOR' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($4); + parser.suggestKeywords(['TABLE', 'VIEW']); + } + ; + +TableOrView + : 'TABLE' + | 'VIEW' -> { isView: true } + ; + +ShowCurrentRolesStatement + : 'SHOW' 'CURRENT' 'ROLES' + ; + +ShowCurrentRolesStatement_EDIT + : 'SHOW' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords([ 'ROLES' ]); + } + | 'SHOW' 'CURSOR' 'ROLES' + { + parser.suggestKeywords([ 'CURRENT' ]); + } + ; + +ShowDatabasesStatement + : 'SHOW' DatabasesOrSchemas 'LIKE' SingleQuotedValue + | 'SHOW' 'DATABASES' SingleQuotedValue + ; + +ShowDatabasesStatement_EDIT + : 'SHOW' DatabasesOrSchemas 'CURSOR' + { + parser.suggestKeywords(['LIKE']); + } + ; + +ShowFilesStatement + : 'SHOW' 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec + { + parser.addTablePrimary($4); + } + ; + +ShowFilesStatement_EDIT + : 'SHOW' 'FILES' 'CURSOR' + { + parser.suggestKeywords(['IN']); + } + | 'SHOW' 'FILES' 'IN' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'SHOW' 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName_EDIT OptionalPartitionSpec + | 'SHOW' 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'SHOW' 'FILES' 'IN' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec_EDIT + | 'SHOW' 'FILES' 'CURSOR' RegularOrBackTickedSchemaQualifiedName OptionalPartitionSpec + { + parser.addTablePrimary($4); + parser.suggestKeywords(['IN']); + } + ; + +ShowFunctionsStatement + : 'SHOW' OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase + | 'SHOW' OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase 'LIKE' QuotedValue + ; + +ShowFunctionsStatement_EDIT + : 'SHOW' AggregateOrAnalytic 'CURSOR' + { + parser.suggestKeywords(['FUNCTIONS']); + } + | 'SHOW' 'CURSOR' 'FUNCTIONS' OptionalInDatabase + { + parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); + } + | 'SHOW' OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['IN', 'LIKE']); + } else { + parser.suggestKeywords(['LIKE']); + } + } + | 'SHOW' AggregateOrAnalytic 'CURSOR' OptionalInDatabase 'LIKE' QuotedValue + { + parser.suggestKeywords(['FUNCTIONS']); + } + | 'SHOW' 'CURSOR' 'FUNCTIONS' OptionalInDatabase 'LIKE' QuotedValue + { + parser.suggestKeywords(['AGGREGATE', 'ANALYTICAL']); + } + | 'SHOW' OptionalAggregateOrAnalytic 'FUNCTIONS' OptionalInDatabase 'CURSOR' QuotedValue + { + if (!$4) { + parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'LIKE', weight: 1 }]); + } else { + parser.suggestKeywords(['LIKE']); + } + } + ; + +ShowGrantStatement + : 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier + | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'DATABASE' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@7, [ { name: $7 } ]); + } + | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'SERVER' + | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' SchemaQualifiedTableIdentifier + | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'URI' RegularOrBacktickedIdentifier + ; + +ShowGrantStatement_EDIT + : 'SHOW' 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'SHOW' 'GRANT' GroupRoleOrUser 'CURSOR' + | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); + } + | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); + } + | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'DATABASE' 'CURSOR' + { + parser.suggestDatabases(); + } + | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' 'CURSOR' + { + parser.suggestDatabases({ + appendDot: true + }); + parser.suggestTables(); + } + | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + | 'SHOW' 'GRANT' GroupRoleOrUser RegularOrBacktickedIdentifier 'ON' 'URI' 'CURSOR' + ; + +OptionalPrincipalName + : + | RegularIdentifier + ; + +OptionalPrincipalName_EDIT + : 'CURSOR' + | RegularIdentifier 'CURSOR' + ; + +ShowPartitionsStatement + : 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($3); + } + | 'SHOW' 'RANGE' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($3); + } + ; + +ShowPartitionsStatement_EDIT + : 'SHOW' 'PARTITIONS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT + | 'SHOW' 'RANGE' 'PARTITIONS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'SHOW' 'RANGE' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT + ; + +ShowRoleStatement + : 'SHOW' 'ROLE' 'GRANT' 'GROUP' RegularIdentifier + ; + +ShowRoleStatement_EDIT + : 'SHOW' 'ROLE' 'CURSOR' + { + parser.suggestKeywords(['GRANT']); + } + | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['GROUP']); + } + | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' RegularIdentifier + { + parser.suggestKeywords(['GROUP']); + } + ; + +ShowRolesStatement + : 'SHOW' 'ROLES' + ; + +ShowTableStatsStatement + : 'SHOW' 'TABLE' 'STATS' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($4); + } + ; + +ShowTableStatsStatement_EDIT + : 'SHOW' 'TABLE' 'CURSOR' + { + parser.suggestKeywords(['STATS']); + } + | 'SHOW' 'TABLE' 'STATS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'SHOW' 'TABLE' 'STATS' RegularOrBackTickedSchemaQualifiedName_EDIT + ; + +ShowTablesStatement + : 'SHOW' 'TABLES' OptionalInDatabase + | 'SHOW' 'TABLES' OptionalInDatabase SingleQuotedValue + | 'SHOW' 'TABLES' OptionalInDatabase 'LIKE' SingleQuotedValue + ; + +ShowTablesStatement_EDIT + : 'SHOW' 'TABLES' OptionalInDatabase 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IN', 'LIKE']); + } else { + parser.suggestKeywords(['LIKE']); + } + } + ; diff --git a/src/jison/sql/impala/sql_update.jison b/src/jison/sql/impala/sql_update.jison new file mode 100644 index 0000000..2c90f6e --- /dev/null +++ b/src/jison/sql/impala/sql_update.jison @@ -0,0 +1,138 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : UpdateStatement + ; + +DataManipulation_EDIT + : UpdateStatement_EDIT + ; + +UpdateStatement + : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + ; + +UpdateStatement_EDIT + : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' + { + if (!$6 && !$5) { + parser.suggestKeywords([{ value: 'FROM', weight: 2 }, { value: 'WHERE', weight: 1 }]); + } else if (!$6 && $5) { + var keywords = [{ value: 'FULL JOIN', weight: 2 }, { value: 'FULL OUTER JOIN', weight: 2 }, { value: 'JOIN', weight: 2 }, { value: 'LEFT JOIN', weight: 2 }, { value: 'LEFT OUTER JOIN', weight: 2 }, { value: 'RIGHT JOIN', weight: 2 }, { value: 'RIGHT OUTER JOIN', weight: 2 }, { value: 'INNER JOIN', weight: 2 }, { value: 'LEFT ANTI JOIN', weight: 2 }, { value: 'LEFT SEMI JOIN', weight: 2 }, { value: 'RIGHT ANTI JOIN', weight: 2 }, { value: 'RIGHT SEMI JOIN', weight: 2 }, { value: 'WHERE', weight: 1 }]; + if ($5.suggestJoinConditions) { + parser.suggestJoinConditions($5.suggestJoinConditions); + } + if ($5.suggestJoins) { + parser.suggestJoins($5.suggestJoins); + } + if ($5.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 3)); + } + parser.suggestKeywords(keywords); + } else if (!$6) { + parser.suggestKeywords([ 'WHERE' ]); + } + } + | 'UPDATE' TargetTable 'CURSOR' + { + parser.suggestKeywords([ 'SET' ]); + } + | 'UPDATE' TargetTable_EDIT + | 'UPDATE' TargetTable + | 'UPDATE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TargetTable + : TableName + ; + +TargetTable_EDIT + : TableName_EDIT + ; + +TableName + : LocalOrSchemaQualifiedName + { + parser.addTablePrimary($1); + } + ; + +TableName_EDIT + : LocalOrSchemaQualifiedName_EDIT + ; + +SetClauseList + : SetClause + | SetClauseList ',' SetClause + ; + +SetClauseList_EDIT + : SetClause_EDIT + | SetClauseList ',' SetClause_EDIT + | SetClause_EDIT ',' SetClauseList + | SetClauseList ',' SetClause_EDIT ',' SetClauseList + ; + +SetClause + : SetTarget '=' UpdateSource + ; + +SetClause_EDIT + : SetTarget '=' UpdateSource_EDIT + | SetTarget 'CURSOR' + { + parser.suggestKeywords([ '=' ]); + } + | 'CURSOR' + { + parser.suggestColumns(); + } + ; + +SetTarget + : ColumnReference + ; + +UpdateSource + : ValueExpression + ; + +UpdateSource_EDIT + : ValueExpression_EDIT + ; + +OptionalFromJoinedTable + : + | 'FROM' TableReference -> $2 + ; + +FromJoinedTable_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReference_EDIT + ; diff --git a/src/jison/sql/impala/sql_use.jison b/src/jison/sql/impala/sql_use.jison new file mode 100644 index 0000000..be60e09 --- /dev/null +++ b/src/jison/sql/impala/sql_use.jison @@ -0,0 +1,39 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : UseStatement + ; + +DataDefinition_EDIT + : UseStatement_EDIT + ; + +UseStatement + : 'USE' RegularIdentifier + { + if (!parser.yy.cursorFound) { + parser.yy.result.useDatabase = $2; + } + } + ; + +UseStatement_EDIT + : 'USE' 'CURSOR' + { + parser.suggestDatabases(); + } + ; diff --git a/src/jison/sql/impala/sql_valueExpression.jison b/src/jison/sql/impala/sql_valueExpression.jison new file mode 100644 index 0000000..dce1451 --- /dev/null +++ b/src/jison/sql/impala/sql_valueExpression.jison @@ -0,0 +1,828 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +ValueExpression + : 'NOT' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression -> $2 + | '-' ValueExpression %prec NEGATION + { + // verifyType($2, 'NUMBER'); + $$ = $2; + $2.types = ['NUMBER']; + } + | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'UNKNOWN' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | 'NOT' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | '!' AnyCursor + { + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | '~' 'PARTIAL_CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + $$ = { types: [ 'T' ] }; + } + | '-' ValueExpression_EDIT %prec NEGATION + { + if (!$2.typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; + } + | '-' 'PARTIAL_CURSOR' %prec NEGATION + { + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'IS' 'CURSOR' + { + var keywords = ['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'NOT DISTINCT FROM', 'NOT UNKNOWN', 'UNKNOWN']; + parser.suggestKeywords(keywords); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'NOT' 'CURSOR' + { + var keywords = ['FALSE', 'NULL', 'TRUE', 'DISTINCT FROM', 'UNKNOWN']; + parser.suggestKeywords(keywords); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' + { + parser.suggestKeywords(['FROM']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'NULL' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'FALSE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'TRUE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } + } + ; + +// ------------------ EXISTS and parenthesized ------------------ +ValueExpression + : 'EXISTS' TableSubQuery + { + $$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + } + | '(' ValueExpression ')' -> $2 + ; + +ValueExpression_EDIT + : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } + | '(' ValueExpression_EDIT RightParenthesisOrError + { + $$ = $2; + } + | '(' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['T'], typeSet: true }; + } + ; + +// ------------------ COMPARISON ------------------ + +ValueExpression + : ValueExpression '=' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '<' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '>' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '=' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '<' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '>' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT '=' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '<' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '>' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '=' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression '<' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + } + | ValueExpression '>' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; + } + | ValueExpression '=' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '<' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '>' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + + +// ------------------ IN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT + { + if ($4.inValueEdit) { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + parser.applyTypeToSuggestions($1.types); + } + if ($4.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT + { + if ($3.inValueEdit) { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + } + if ($3.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + ; + +ValueExpressionInSecondPart_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } + | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } + ; + +// ------------------ BETWEEN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'BETWEEN' ValueExpression -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'BETWEEN' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($4, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'BETWEEN' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression_EDIT + { + if ($1.types[0] === $3.types[0] && !$3.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ BOOLEAN ------------------ + +ValueExpression + : ValueExpression 'OR' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'AND' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' 'OR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'OR' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'OR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'OR' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | 'CURSOR' 'AND' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'AND' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'AND' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'AND' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + +// ------------------ ARITHMETIC ------------------ + +ValueExpression + : ValueExpression '-' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression '*' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '*' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression_EDIT '-' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '*' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '-' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '*' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '-' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression '*' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + ; + +// ------------------ LIKE, RLIKE and REGEXP ------------------ + +ValueExpression + : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } + ; + +LikeRightPart + : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'ILIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'IREGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + ; + +LikeRightPart_EDIT + : 'LIKE' ValueExpression_EDIT + | 'ILIKE' ValueExpression_EDIT + | 'IREGEXP' ValueExpression_EDIT + | 'RLIKE' ValueExpression_EDIT + | 'REGEXP' ValueExpression_EDIT + | 'LIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'ILIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'IREGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'RLIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'REGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | 'CURSOR' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'NOT' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ CASE, WHEN, THEN ------------------ + +ValueExpression + : 'CASE' CaseRightPart -> $2 + | 'CASE' ValueExpression CaseRightPart -> $3 + ; + +ValueExpression_EDIT + : 'CASE' CaseRightPart_EDIT -> $2 + | 'CASE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 + | 'CASE' ValueExpression 'CURSOR' EndOrError + { + parser.suggestValueExpressionKeywords($2, ['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression_EDIT CaseRightPart + { + $$ = $3; + $$.suggestFilters = $2.suggestFilters; + } + | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } + ; + +CaseRightPart + : CaseWhenThenList 'END' -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'END' + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + ; + +CaseRightPart_EDIT + : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['END']); + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'CURSOR' ValueExpression EndOrError + { + if ($4.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'CURSOR' EndOrError + { + if ($3.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + $$.suggestFilters = $3.suggestFilters + } + | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = parser.findCaseType($1); + } + | 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CURSOR' 'ELSE' ValueExpression EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = $3; + } + | 'CURSOR' 'ELSE' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ] }; + } + ; + +EndOrError + : 'END' + | error + ; + +CaseWhenThenList + : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } + | CaseWhenThenList CaseWhenThenListPartTwo + { + $1.caseTypes.push($2); + $$ = { caseTypes: $1.caseTypes, lastType: $2 }; + } + ; + +CaseWhenThenList_EDIT + : CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList + | CaseWhenThenList 'CURSOR' CaseWhenThenList + { + parser.suggestValueExpressionKeywords($1, ['WHEN']); + } + | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 + ; + +CaseWhenThenListPartTwo + : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 + ; + +CaseWhenThenListPartTwo_EDIT + : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } + | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } + | 'CURSOR' ValueExpression 'THEN' + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' ValueExpression 'THEN' ValueExpression + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [$4] }; + } + | 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [$4], suggestFilters: true }; + } + | 'WHEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'CURSOR' ValueExpression + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + ; diff --git a/src/jison/sql/impala/syntax_footer.jison b/src/jison/sql/impala/syntax_footer.jison new file mode 100644 index 0000000..ec25eab --- /dev/null +++ b/src/jison/sql/impala/syntax_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/impala/syntax_header.jison b/src/jison/sql/impala/syntax_header.jison new file mode 100644 index 0000000..c65dcf6 --- /dev/null +++ b/src/jison/sql/impala/syntax_header.jison @@ -0,0 +1,28 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'IN' 'IS' 'ILIKE' 'IREGEXP' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlSyntax + +%% diff --git a/src/jison/sql/ksql/autocomplete_footer.jison b/src/jison/sql/ksql/autocomplete_footer.jison new file mode 100644 index 0000000..899433d --- /dev/null +++ b/src/jison/sql/ksql/autocomplete_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/ksql/autocomplete_header.jison b/src/jison/sql/ksql/autocomplete_header.jison new file mode 100644 index 0000000..3b90682 --- /dev/null +++ b/src/jison/sql/ksql/autocomplete_header.jison @@ -0,0 +1,29 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'CURSOR' 'PARTIAL_CURSOR' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlAutocomplete + +%% diff --git a/src/jison/sql/ksql/sql.jisonlex b/src/jison/sql/ksql/sql.jisonlex new file mode 100644 index 0000000..b5412a2 --- /dev/null +++ b/src/jison/sql/ksql/sql.jisonlex @@ -0,0 +1,228 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%options case-insensitive flex +%s between +%x hdfs doubleQuotedValue singleQuotedValue backtickedValue +%% + +\s { /* skip whitespace */ } +'--'.* { /* skip comments */ } +[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } + +'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } +'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } + +'AND' { this.popState(); return 'BETWEEN_AND'; } + +// Reserved Keywords +'ALL' { return 'ALL'; } +'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } +'AND' { return 'AND'; } +'AS' { return 'AS'; } +'ASC' { return 'ASC'; } +'BETWEEN' { this.begin('between'); return 'BETWEEN'; } +'BIGINT' { return 'BIGINT'; } +'BOOLEAN' { return 'BOOLEAN'; } +'BY' { return 'BY'; } +'CASCADE' { return 'CASCADE'; } +'CASE' { return 'CASE'; } +'CHAR' { return 'CHAR'; } +'COMMENT' { return 'COMMENT'; } +'CREATE' { parser.determineCase(yytext); return 'CREATE'; } +'CROSS' { return 'CROSS'; } +'CURRENT' { return 'CURRENT'; } +'DATABASE' { return 'DATABASE'; } +'DECIMAL' { return 'DECIMAL'; } +'DESC' { return 'DESC'; } +'DISTINCT' { return 'DISTINCT'; } +'DIV' { return 'ARITHMETIC_OPERATOR'; } +'DOUBLE' { return 'DOUBLE'; } +'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } +'ELSE' { return 'ELSE'; } +'END' { return 'END'; } +'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } +'FALSE' { return 'FALSE'; } +'FLOAT' { return 'FLOAT'; } +'FOLLOWING' { return 'FOLLOWING'; } +'FROM' { parser.determineCase(yytext); return 'FROM'; } +'FULL' { return 'FULL'; } +'GROUP' { return 'GROUP'; } +'HAVING' { return 'HAVING'; } +'IF' { return 'IF'; } +'IN' { return 'IN'; } +'INNER' { return 'INNER'; } +'INSERT' { return 'INSERT'; } +'INT' { return 'INT'; } +'INTO' { return 'INTO'; } +'IS' { return 'IS'; } +'JOIN' { return 'JOIN'; } +'LEFT' { return 'LEFT'; } +'LIKE' { return 'LIKE'; } +'LIMIT' { return 'LIMIT'; } +'LIST' { return 'LIST'; } +'NOT' { return 'NOT'; } +'NULL' { return 'NULL'; } +'ON' { return 'ON'; } +'OPTION' { return 'OPTION'; } +'OR' { return 'OR'; } +'ORDER' { return 'ORDER'; } +'OUTER' { return 'OUTER'; } +'PARTITION' { return 'PARTITION'; } +'PRECEDING' { return 'PRECEDING'; } +'PRINT' { return 'PRINT'; } +'PURGE' { return 'PURGE'; } +'RANGE' { return 'RANGE'; } +'REGEXP' { return 'REGEXP'; } +'RIGHT' { return 'RIGHT'; } +'RLIKE' { return 'RLIKE'; } +'ROW' { return 'ROW'; } +'ROLE' { return 'ROLE'; } +'ROWS' { return 'ROWS'; } +'SCHEMA' { return 'SCHEMA'; } +'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } +'SEMI' { return 'SEMI'; } +'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } +'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } +'SMALLINT' { return 'SMALLINT'; } +'STRING' { return 'STRING'; } +'TABLE' { return 'TABLE'; } +'THEN' { return 'THEN'; } +'TIMESTAMP' { return 'TIMESTAMP'; } +'TINYINT' { return 'TINYINT'; } +'TO' { return 'TO'; } +'TRUE' { return 'TRUE'; } +'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } +'UNBOUNDED' { return 'UNBOUNDED'; } +'UNION' { return 'UNION'; } +'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } +'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } +'VALUES' { return 'VALUES'; } +'VARCHAR' { return 'VARCHAR'; } +'VIEW' { return 'VIEW'; } +'WHEN' { return 'WHEN'; } +'WHERE' { return 'WHERE'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } + +// Non-reserved Keywords +'OVER' { return 'OVER'; } +'ROLE' { return 'ROLE'; } + +// --- UDFs --- +AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } +CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } +COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } +MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } +MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } +STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } +STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } +SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } +VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } +VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } +VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } + +// Analytical functions +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } + +[0-9]+ { return 'UNSIGNED_INTEGER'; } +[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } +[0-9]+E { return 'UNSIGNED_INTEGER_E'; } +[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } + +'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } +'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } +\s+['"] { return 'HDFS_START_QUOTE'; } +[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } +['"] { this.popState(); return 'HDFS_END_QUOTE'; } +<> { return 'EOF'; } + +'&&' { return 'AND'; } +'||' { return 'OR'; } + +'=' { return '='; } +'<' { return '<'; } +'>' { return '>'; } +'!=' { return 'COMPARISON_OPERATOR'; } +'<=' { return 'COMPARISON_OPERATOR'; } +'>=' { return 'COMPARISON_OPERATOR'; } +'<>' { return 'COMPARISON_OPERATOR'; } +'<=>' { return 'COMPARISON_OPERATOR'; } + +'-' { return '-'; } +'*' { return '*'; } +'+' { return 'ARITHMETIC_OPERATOR'; } +'/' { return 'ARITHMETIC_OPERATOR'; } +'%' { return 'ARITHMETIC_OPERATOR'; } +'|' { return 'ARITHMETIC_OPERATOR'; } +'^' { return 'ARITHMETIC_OPERATOR'; } +'&' { return 'ARITHMETIC_OPERATOR'; } + +',' { return ','; } +'.' { return '.'; } +':' { return ':'; } +';' { return ';'; } +'~' { return '~'; } +'!' { return '!'; } + +'(' { return '('; } +')' { return ')'; } +'[' { return '['; } +']' { return ']'; } + +\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } + +\` { this.begin('backtickedValue'); return 'BACKTICK'; } +[^`]+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\` { this.popState(); return 'BACKTICK'; } + +\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } +(?:\\\\|\\[']|[^'])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\' { this.popState(); return 'SINGLE_QUOTE'; } + +\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } +(?:\\\\|\\["]|[^"])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\" { this.popState(); return 'DOUBLE_QUOTE'; } + +<> { return 'EOF'; } + +. { /* To prevent console logging of unknown chars */ } +. { } +. { } +. { } +. { } +. { } diff --git a/src/jison/sql/ksql/sql_create.jison b/src/jison/sql/ksql/sql_create.jison new file mode 100644 index 0000000..1329ac6 --- /dev/null +++ b/src/jison/sql/ksql/sql_create.jison @@ -0,0 +1,615 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : CreateStatement + ; + +DataDefinition_EDIT + : CreateStatement_EDIT + ; + +CreateStatement + : DatabaseDefinition + | TableDefinition + | ViewDefinition + | RoleDefinition + ; + +CreateStatement_EDIT + : DatabaseDefinition_EDIT + | TableDefinition_EDIT + | ViewDefinition_EDIT + | 'CREATE' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DatabaseDefinition + : 'CREATE' DatabaseOrSchema OptionalIfNotExists + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT + | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinitionOptionals + : OptionalComment + { + if (!$1) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +DatabaseDefinitionOptionals_EDIT + : OptionalComment_INVALID + ; + +OptionalComment + : + | Comment + ; + +Comment + : 'COMMENT' QuotedValue + ; + +OptionalComment_INVALID + : Comment_INVALID + ; + +Comment_INVALID + : 'COMMENT' SINGLE_QUOTE + | 'COMMENT' DOUBLE_QUOTE + | 'COMMENT' SINGLE_QUOTE VALUE + | 'COMMENT' DOUBLE_QUOTE VALUE + ; + +TableDefinition + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart + ; + +TableDefinition_EDIT + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT + | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT + ; + +TableDefinitionRightPart + : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement + ; + +TableDefinitionRightPart_EDIT + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' + { + var keywords = []; + if (!$1 && !$2) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$2) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + ; + +TableIdentifierAndOptionalColumnSpecification + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } + ; + +TableIdentifierAndOptionalColumnSpecification_EDIT + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT + | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike + ; + +OptionalColumnSpecificationsOrLike + : + | ParenthesizedColumnSpecificationList + | 'LIKE' SchemaQualifiedTableIdentifier -> [] + ; + +OptionalColumnSpecificationsOrLike_EDIT + : ParenthesizedColumnSpecificationList_EDIT + | 'LIKE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LIKE' SchemaQualifiedTableIdentifier_EDIT + ; + +ParenthesizedColumnSpecificationList + : '(' ColumnSpecificationList ')' -> $2 + ; + +ParenthesizedColumnSpecificationList_EDIT + : '(' ColumnSpecificationList_EDIT RightParenthesisOrError + ; + +ColumnSpecificationList + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) + ; + +ColumnSpecificationList_EDIT + : ColumnSpecification_EDIT + | ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecificationList ',' ColumnSpecification_EDIT + | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($1); + } + | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($1); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($3); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($3); + } + ; + +ColumnSpecification + : ColumnIdentifier ColumnDataType OptionalColumnOptions + { + $$ = $1; + $$.type = $2; + var keywords = []; + if (!$3['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +ColumnSpecification_EDIT + : ColumnIdentifier 'CURSOR' OptionalColumnOptions + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions + | ColumnIdentifier ColumnDataType ColumnOptions_EDIT + ; + +OptionalColumnOptions + : -> {} + | ColumnOptions + ; + +ColumnOptions + : ColumnOption + { + $$ = {}; + $$[$1] = true; + } + | ColumnOptions ColumnOption + { + $1[$2] = true; + } + ; + +ColumnOptions_EDIT + : ColumnOption_EDIT + | ColumnOption_EDIT ColumnOptions + | ColumnOptions ColumnOption_EDIT + | ColumnOptions ColumnOption_EDIT ColumnOptions + ; + +ColumnOption + : 'NOT' 'NULL' -> 'null' + | 'NULL' -> 'null' + | Comment -> 'comment' + ; + +ColumnOption_EDIT + : 'NOT' 'CURSOR' + { + parser.suggestKeywords(['NULL']); + } + ; + +ColumnDataType + : PrimitiveType + | ArrayType + | MapType + | StructType + | ArrayType_INVALID + | MapType_INVALID + | StructType_INVALID + ; + +ColumnDataType_EDIT + : ArrayType_EDIT + | MapType_EDIT + | StructType_EDIT + ; + +ArrayType + : 'ARRAY' '<' ColumnDataType '>' + ; + +ArrayType_INVALID + : 'ARRAY' '<' '>' + ; + +ArrayType_EDIT + : 'ARRAY' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError + ; + +MapType + : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' + ; + +MapType_INVALID + : 'MAP' '<' '>' + ; + +MapType_EDIT + : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError + | 'MAP' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'MAP' '<' ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + ; + +StructType + : 'STRUCT' '<' StructDefinitionList '>' + ; + +StructType_INVALID + : 'STRUCT' '<' '>' + ; + +StructType_EDIT + : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError + ; + +StructDefinitionList + : StructDefinition + | StructDefinitionList ',' StructDefinition + ; + +StructDefinitionList_EDIT + : StructDefinition_EDIT + | StructDefinition_EDIT Commas + | StructDefinition_EDIT Commas StructDefinitionList + | StructDefinitionList ',' StructDefinition_EDIT + | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList + ; + +StructDefinition + : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment + ; + +StructDefinition_EDIT + : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | Commas RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + ; + +ColumnDataTypeList + : ColumnDataType + | ColumnDataTypeList ',' ColumnDataType + ; + +ColumnDataTypeList_EDIT + : ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + ; + +ColumnDataTypeListInner_EDIT + : Commas AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas ColumnDataType_EDIT + | AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnDataType_EDIT + ; + +GreaterThanOrError + : '>' + | error + ; + +OptionalPartitionedBy + : + | PartitionedBy + ; + +PartitionedBy + : 'PARTITION' 'BY' RangeClause + ; + +PartitionedBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.suggestKeywords(['RANGE']); + } + | 'PARTITION' 'BY' RangeClause_EDIT + ; + +RangeClause + : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList + ; + +RangeClause_EDIT + : 'RANGE' 'CURSOR' + | 'RANGE' ParenthesizedColumnList_EDIT + | 'RANGE' ParenthesizedColumnList 'CURSOR' + | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT + | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList + ; + +ParenthesizedPartitionValuesList + : '(' PartitionValueList ')' + ; + +ParenthesizedPartitionValuesList_EDIT + : '(' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['PARTITION']); + } + |'(' PartitionValueList_EDIT RightParenthesisOrError + ; + +PartitionValueList + : PartitionValue + | PartitionValueList ',' PartitionValue + ; + +PartitionValueList_EDIT + : PartitionValue_EDIT + | PartitionValueList ',' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' 'CURSOR' ',' PartitionValueList + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' PartitionValue_EDIT + | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList + ; + +PartitionValue + : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' + ; + +PartitionValue_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['VALUE', 'VALUES']); + } + | 'PARTITION' ValueExpression_EDIT + { + if ($2.endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + } + | 'PARTITION' ValueExpression 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + | 'PARTITION' 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + ; + +LessThanOrEqualTo + : '<' + | 'COMPARISON_OPERATOR' // This is fine for autocompletion + ; + +OptionalAsSelectStatement + : + | 'AS' CommitLocations QuerySpecification + ; + +OptionalAsSelectStatement_EDIT + : 'AS' CommitLocations 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'AS' CommitLocations QuerySpecification_EDIT + ; + +CommitLocations + : /* empty */ + { + parser.commitLocations(); + } + ; + +ViewDefinition + : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +ViewDefinition_EDIT + : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' + { + var keywords = [{value: 'AS', weight: 1 }]; + if (!$6) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +OptionalParenthesizedViewColumnList + : + | ParenthesizedViewColumnList + ; + +ParenthesizedViewColumnList + : '(' ViewColumnList ')' + ; + +ParenthesizedViewColumnList_EDIT + : '(' ViewColumnList_EDIT RightParenthesisOrError + { + if (!$2) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +ViewColumnList + : ColumnReference OptionalComment + | ViewColumnList ',' ColumnReference OptionalComment + ; + +ViewColumnList_EDIT + : ColumnReference OptionalComment 'CURSOR' -> $2 + | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 + ; + +RoleDefinition + : 'CREATE' 'ROLE' RegularIdentifier + ; diff --git a/src/jison/sql/ksql/sql_drop.jison b/src/jison/sql/ksql/sql_drop.jison new file mode 100644 index 0000000..0e3aa53 --- /dev/null +++ b/src/jison/sql/ksql/sql_drop.jison @@ -0,0 +1,184 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : DropStatement + ; + +DataDefinition_EDIT + : DropStatement_EDIT + ; + +DropStatement + : DropDatabaseStatement + | DropRoleStatement + | DropTableStatement + | DropViewStatement + | TruncateTableStatement + ; + +DropStatement_EDIT + : DropDatabaseStatement_EDIT + | DropTableStatement_EDIT + | DropViewStatement_EDIT + | TruncateTableStatement_EDIT + | 'DROP' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DropDatabaseStatement + : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade + ; + +DropDatabaseStatement_EDIT + : 'DROP' DatabaseOrSchema OptionalIfExists + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + } + | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CASCADE']); + } + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + ; +DropRoleStatement + : 'DROP' 'ROLE' RegularIdentifier + ; + +DropTableStatement + : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement_EDIT + : 'DROP' 'TABLE' OptionalIfExists_EDIT + | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PURGE']); + } + } + ; + +OptionalPurge + : + | 'PURGE' + ; + +DropViewStatement + : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropViewStatement_EDIT + : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($5); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'VIEW' OptionalIfExists_EDIT + | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +TruncateTableStatement + : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +TruncateTableStatement_EDIT + : 'TRUNCATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($4); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec + ; diff --git a/src/jison/sql/ksql/sql_error.jison b/src/jison/sql/ksql/sql_error.jison new file mode 100644 index 0000000..48b9a4e --- /dev/null +++ b/src/jison/sql/ksql/sql_error.jison @@ -0,0 +1,132 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlStatements + : error + | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? + ; + +SqlStatement_EDIT + : AnyCursor error + { + parser.suggestDdlAndDmlKeywords(); + } + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT + ; + +SelectList_ERROR + : ErrorList + | SelectList ',' ErrorList + | ErrorList ',' SelectList ',' ErrorList + | ErrorList ',' SelectList + | SelectList ',' ErrorList ',' SelectList + ; + +SelectList_ERROR_EDIT + : ErrorList ',' SelectList_EDIT -> $3 + | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 + | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 + | ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | ErrorList ',' SelectList ',' Errors ',' AnyCursor + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + ; + +SetSpecification + : 'SET' SetOption '=' error + ; + +ErrorList + : error + | Errors ',' error + ; + +JoinType_EDIT + : 'FULL' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'LEFT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'RIGHT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$4 && !$5 && !$6 && !$7 + }; + } + | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$6 && !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' + ; + +OptionalSelectConditions_EDIT + : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error + ; diff --git a/src/jison/sql/ksql/sql_insert.jison b/src/jison/sql/ksql/sql_insert.jison new file mode 100644 index 0000000..8b3544e --- /dev/null +++ b/src/jison/sql/ksql/sql_insert.jison @@ -0,0 +1,72 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : InsertStatement + ; + +InsertStatement + : InsertValuesStatement + ; + +DataManipulation_EDIT + : InsertValuesStatement_EDIT + ; + +InsertValuesStatement + : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + ; + +InsertValuesStatement_EDIT + : 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['INTO']); + } + | 'INSERT' 'INTO' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + parser.suggestKeywords(['VALUES']); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList + ; + +InsertValuesList + : ParenthesizedRowValuesList + | RowValuesList ',' ParenthesizedRowValuesList + ; + +ParenthesizedRowValuesList + : '(' InValueList ')' + ; + +OptionalTable + : + | 'TABLE' + ; diff --git a/src/jison/sql/ksql/sql_list.jison b/src/jison/sql/ksql/sql_list.jison new file mode 100644 index 0000000..f153317 --- /dev/null +++ b/src/jison/sql/ksql/sql_list.jison @@ -0,0 +1,37 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : 'LIST' ListStatement + ; + +DataDefinition_EDIT + : ListStatement_EDIT + ; + +ListStatement + : 'TABLES' + | 'STREAMS' + | 'TOPICS' + ; + + +ListStatement_EDIT + : 'LIST' 'CURSOR' + { + parser.suggestKeywords(['TABLES', 'STREAMS', 'TOPICS']); + } + ; diff --git a/src/jison/sql/ksql/sql_main.jison b/src/jison/sql/ksql/sql_main.jison new file mode 100644 index 0000000..0d3fedc --- /dev/null +++ b/src/jison/sql/ksql/sql_main.jison @@ -0,0 +1,2762 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlSyntax + : NewStatement SqlStatements EOF + ; + +SqlAutocomplete + : NewStatement SqlStatements EOF + { + return parser.yy.result; + } + | NewStatement SqlStatements_EDIT EOF + { + return parser.yy.result; + } + ; + +NewStatement + : /* empty */ + { + parser.prepareNewStatement(); + } + ; + +SqlStatements + : + | SqlStatement + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatements + ; + +SqlStatements_EDIT + : SqlStatement_EDIT + { + parser.addStatementLocation(@1); + } + | SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT + { + parser.addStatementLocation(@4); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@4); + } + ; + +SqlStatement + : DataDefinition + | DataManipulation + | QuerySpecification + ; + +SqlStatement_EDIT + : AnyCursor + { + parser.suggestDdlAndDmlKeywords(); + } + | CommonTableExpression 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | DataDefinition_EDIT + | DataManipulation_EDIT + | QuerySpecification_EDIT + | SetSpecification_EDIT + ; + +NonReservedKeyword + : 'ROLE' + | 'OPTION' + | 'STRUCT' + ; + +RegularIdentifier + : 'REGULAR_IDENTIFIER' + | 'VARIABLE_REFERENCE' + | NonReservedKeyword + ; + +// This is a work-around for error handling when a statement starts with some token that the parser can understand but +// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) +NonStartingToken + : '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '<' + | '=' + | '>' + | '[' + | ']' + | '~' + | 'ALL' + | 'ANALYTIC' + | 'AND' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'AS' + | 'ASC' + | 'AVG' + | 'BACKTICK' + | 'BETWEEN' + | 'BIGINT' + | 'BOOLEAN' + | 'BY' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'COMPARISON_OPERATOR' + | 'COUNT' + | 'CROSS' + | 'CURRENT' + | 'DATABASE' + | 'DECIMAL' + | 'DESC' + | 'DISTINCT' + | 'DOUBLE' + | 'DOUBLE_QUOTE' + | 'ELSE' + | 'END' + | 'EXISTS' + | 'FALSE' + | 'FLOAT' + | 'FOLLOWING' + | 'FROM' + | 'FULL' + | 'GROUP' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'IF' + | 'IN' + | 'INNER' + | 'INT' + | 'INTO' + | 'IS' + | 'JOIN' + | 'LEFT' + | 'LIKE' + | 'LIMIT' + | 'MAP' + | 'MAX' + | 'MIN' + | 'NOT' + | 'NULL' + | 'ON' + | 'OPTION' + | 'OR' + | 'ORDER' + | 'OUTER' + | 'OVER' + | 'PARTITION' + | 'PRECEDING' + | 'PURGE' + | 'RANGE' + | 'REGEXP' + | 'REGULAR_IDENTIFIER' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROW' + | 'ROWS' + | 'SCHEMA' + | 'SEMI' + | 'SET' + | 'SINGLE_QUOTE' + | 'SMALLINT' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STRING' + | 'STRUCT' + | 'SUM' + | 'TABLE' + | 'THEN' + | 'TIMESTAMP' + | 'TINYINT' + | 'TRUE' + | 'UNION' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'WHEN' + | 'WHERE' + ; + +// ===================================== Commonly used constructs ===================================== + +Commas + : ',' + | Commas ',' + ; + +AnyCursor + : 'CURSOR' + | 'PARTIAL_CURSOR' + ; + +FromOrIn + : 'FROM' + | 'IN' + ; + +DatabaseOrSchema + : 'DATABASE' + | 'SCHEMA' + ; + +SingleQuotedValue + : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 + | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' + ; + +SingleQuotedValue_EDIT + : 'SINGLE_QUOTE' 'PARTIAL_VALUE' + ; + +DoubleQuotedValue + : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 + | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' + ; + +DoubleQuotedValue_EDIT + : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' + ; + +QuotedValue + : SingleQuotedValue + | DoubleQuotedValue + ; + +QuotedValue_EDIT + : SingleQuotedValue_EDIT + | DoubleQuotedValue_EDIT + ; + +OptionalFromDatabase + : + | FromOrIn DatabaseIdentifier + ; + +OptionalFromDatabase_EDIT + : FromOrIn DatabaseIdentifier_EDIT + ; + +OptionalCascade + : + | 'CASCADE' + ; + +OptionalIfExists + : + | 'IF' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalIfNotExists + : + | 'IF' 'NOT' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfNotExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['NOT EXISTS']); + } + | 'IF' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalInDatabase + : + | 'IN' DatabaseIdentifier + | 'IN' DatabaseIdentifier_EDIT + ; + +OptionalPartitionSpec + : + | PartitionSpec + ; + +OptionalPartitionSpec_EDIT + : PartitionSpec_EDIT + ; + +PartitionSpec + : 'PARTITION' '(' PartitionSpecList ')' + ; + +PartitionSpec_EDIT + : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +RangePartitionSpec + : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + ; + +RangePartitionSpec_EDIT + : UnsignedValueSpecification 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + ; + +RangePartitionComparisonOperator + : 'COMPARISON_OPERATOR' + | '=' + | '<' + | '>' + ; + +ConfigurationName + : RegularIdentifier + | 'CURSOR' + ; + +PartialBacktickedOrAnyCursor + : AnyCursor + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrCursor + : 'CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrPartialCursor + : 'PARTIAL_CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedIdentifier + : 'BACKTICK' 'PARTIAL_VALUE' + ; + +RightParenthesisOrError + : ')' + | error + ; + +OptionalParenthesizedColumnList + : + | ParenthesizedColumnList + ; + +OptionalParenthesizedColumnList_EDIT + : ParenthesizedColumnList_EDIT + ; + +ParenthesizedColumnList + : '(' ColumnList ')' + ; + +ParenthesizedColumnList_EDIT + : '(' ColumnList_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +ColumnList + : ColumnIdentifier + | ColumnList ',' ColumnIdentifier + ; + +ColumnList_EDIT + : ColumnList ',' AnyCursor + { + parser.suggestColumns(); + } + | ColumnList ',' AnyCursor ',' ColumnList + { + parser.suggestColumns(); + } + ; + +ParenthesizedSimpleValueList + : '(' SimpleValueList ')' + ; + +SimpleValueList + : UnsignedValueSpecification + | SimpleValueList ',' UnsignedValueSpecification + ; + +SchemaQualifiedTableIdentifier + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +SchemaQualifiedTableIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + +SchemaQualifiedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] + ; + +SchemaQualifiedIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + ; + +DatabaseIdentifier + : RegularOrBacktickedIdentifier + ; + +DatabaseIdentifier_EDIT + : PartialBacktickedOrCursor + { + parser.suggestDatabases(); + } + ; + +PartitionSpecList + : PartitionExpression + | PartitionSpecList ',' PartitionExpression + ; + +PartitionSpecList_EDIT + : PartitionExpression_EDIT + | PartitionSpecList ',' PartitionExpression_EDIT + | PartitionExpression_EDIT ',' PartitionSpecList + | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList + ; + +PartitionExpression + : ColumnIdentifier '=' ValueExpression + ; + +PartitionExpression_EDIT + : ColumnIdentifier '=' ValueExpression_EDIT + | ColumnIdentifier '=' AnyCursor + { + parser.valueExpressionSuggest(); + } + | PartialBacktickedIdentifier '=' ValueExpression + { + parser.suggestColumns(); + } + | AnyCursor + { + parser.suggestColumns(); + } + ; + +RegularOrBacktickedIdentifier + : RegularIdentifier + | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 + | 'BACKTICK' 'BACKTICK' -> '' + ; + +// TODO: Same as SchemaQualifiedTableIdentifier? +RegularOrBackTickedSchemaQualifiedName + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +RegularOrBackTickedSchemaQualifiedName_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + + +LocalOrSchemaQualifiedName + : RegularOrBackTickedSchemaQualifiedName + | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } + ; + +LocalOrSchemaQualifiedName_EDIT + : RegularOrBackTickedSchemaQualifiedName_EDIT + | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier + ; + +ColumnReference + : BasicIdentifierChain + { + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnReference_EDIT + : BasicIdentifierChain_EDIT + ; + +BasicIdentifierChain + : ColumnIdentifier + { + $$ = [ $1.identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); + } + | BasicIdentifierChain '.' ColumnIdentifier + { + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $1.push($3.identifier); + parser.addUnknownLocation($3.location, $1.concat()); + } + ; + +// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) +BasicIdentifierChain_EDIT + : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + ; + +DerivedColumnChain + : ColumnIdentifier -> [ $1.identifier ] + | DerivedColumnChain '.' ColumnIdentifier + { + $1.push($3.identifier); + } + ; + +DerivedColumnChain_EDIT + : PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns(); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns({ identifierChain: $1 }); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns({ identifierChain: $1 }); + } + | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns(); + } + ; + +ColumnIdentifier + : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } + ; + +PartialBacktickedIdentifierOrPartialCursor + : PartialBacktickedIdentifier + | 'PARTIAL_CURSOR' + ; + +PrimitiveType + : 'BIGINT' + | 'BOOLEAN' + | 'CHAR' OptionalTypeLength + | 'DECIMAL' OptionalTypePrecision + | 'DOUBLE' + | 'FLOAT' + | 'INT' + | 'SMALLINT' + | 'STRING' + | 'TIMESTAMP' + | 'TINYINT' + | 'VARCHAR' OptionalTypeLength + ; + +OptionalTypeLength + : + | '(' 'UNSIGNED_INTEGER' ')' + ; + +OptionalTypePrecision + : + | '(' 'UNSIGNED_INTEGER' ')' + | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' + ; + +// ===================================== SELECT statement ===================================== + +QuerySpecification + : SelectStatement OptionalUnions -> $1 + | CommonTableExpression SelectStatement OptionalUnions + | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 + ; + +QuerySpecification_EDIT + : SelectStatement_EDIT OptionalUnions + | SelectStatement OptionalUnions_EDIT + | CommonTableExpression '(' QuerySpecification_EDIT ')' + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement_EDIT OptionalUnions + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement OptionalUnions_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT + | CommonTableExpression_EDIT '(' QuerySpecification ')' + | CommonTableExpression_EDIT SelectStatement OptionalUnions + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3 }; + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3, tableExpression: $4 } + } + ; + +OptionalUnions + : + | Unions + ; + +OptionalUnions_EDIT + : Unions_EDIT + ; + +Unions + : UnionClause + | Unions UnionClause + ; + +Unions_EDIT + : UnionClause_EDIT + | Unions UnionClause_EDIT + | UnionClause_EDIT Unions + | Unions UnionClause_EDIT Unions + ; + +UnionClause + : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement + ; + +UnionClause_EDIT + : 'UNION' NewStatement 'CURSOR' + { + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + } + | 'UNION' NewStatement 'CURSOR' SelectStatement + { + parser.suggestKeywords(['ALL', 'DISTINCT']); + } + | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + if ($3.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($4); + } + if ($3.suggestFunctions) { + parser.suggestFunctions(); + } + if ($3.suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($3.suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($3.suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.selectListNoTableSuggest($3, $2); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + } + ; + +CommonTableExpression + : 'WITH' WithQueries -> $2 + ; + +CommonTableExpression_EDIT + : 'WITH' WithQueries_EDIT + ; + +WithQueries + : WithQuery -> [$1] + | WithQueries ',' WithQuery -> $1.concat([$3]) + ; + +WithQueries_EDIT + : WithQuery_EDIT + | WithQueries ',' WithQuery_EDIT + { + parser.addCommonTableExpressions($1); + } + | WithQuery_EDIT ',' WithQueries + | WithQueries ',' WithQuery_EDIT ',' WithQueries + { + parser.addCommonTableExpressions($1); + } + ; + +WithQuery + : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' + { + parser.addCteAliasLocation(@1, $1); + $4.alias = $1; + $$ = $4; + } + ; + +WithQuery_EDIT + : RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError + ; + +OptionalAllOrDistinct + : + | 'ALL' + | 'DISTINCT' + ; + +TableExpression + : FromClause OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + ; + +TableExpression_EDIT + : FromClause_EDIT OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins + { + var keywords = []; + + parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + + if ($1) { + if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); + } + if ($1.tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); + } + if ($1.tableReferenceList.suggestJoins) { + parser.suggestJoins($1.tableReferenceList.suggestJoins); + } + if ($1.tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE') { + keyword.weight = 1.1; + } + }); + + if ($1.tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($1.tableReferenceList); + } + } + } + + if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($3.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); + } + + if ($3.suggestFilters) { + parser.suggestFilters($3.suggestFilters); + } + if ($3.suggestGroupBys) { + parser.suggestGroupBys($3.suggestGroupBys); + } + if ($3.suggestOrderBys) { + parser.suggestOrderBys($3.suggestOrderBys); + } + + if ($3.empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + } + | FromClause OptionalSelectConditions_EDIT OptionalJoins + { + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$2) { + parser.addClauseLocation('whereClause', @1); + parser.addClauseLocation('limitClause', @1); + return; + } + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + var keywords = []; + + if ($2.suggestColRefKeywords) { + parser.suggestColRefKeywords($2.suggestColRefKeywords); + parser.addColRefIfExists($2); + } + + if ($2.suggestKeywords && $2.suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); + } + + if ($2.cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + } + ; + +OptionalJoins + : + | Joins + | Joins_INVALID + ; + +FromClause + : 'FROM' TableReferenceList + { + $$ = { tableReferenceList : $2 } + } + ; + +FromClause_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReferenceList_EDIT + ; + +OptionalSelectConditions + : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$1, $2, $3, $4, $5], + [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true]); + + if (keywords.length > 0) { + $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; + } else { + $$ = {}; + } + + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $5 ? @5 : undefined; + + if (!$1 && !$2 && !$3 && !$4 && !$5) { + $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$2 && !$3 && !$4 && !$5) { + $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$4 && !$5) { + $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + } + | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + } + | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + ; + +OptionalSelectConditions_EDIT + : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$3, $4, $5, $6], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true]); + if ($1.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); + } + $$ = parser.getValueExpressionKeywords($1, keywords); + $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; + if ($1.columnReference) { + $$.columnReference = $1.columnReference; + } + if (!$3) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$3 && !$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$4, $5, $6], + [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true]); + if ($2.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); + } + if ($2.valueExpression) { + $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); + if ($2.valueExpression.columnReference) { + $$.columnReference = $2.valueExpression.columnReference; + } + } else { + $$ = { suggestKeywords: keywords }; + } + $$.cursorAtEnd = !$4 && !$5 && !$6; + if (!$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$5, $6], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; + if (!$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$6], + [{ value: 'LIMIT', weight: 3 }], + [true]); + if ($4.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' + { + $$ = { suggestKeywords: [], cursorAtEnd: true }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = @5; + } + ; + +OptionalWhereClause + : + | WhereClause + ; + +WhereClause + : 'WHERE' SearchCondition -> $2 + ; + +WhereClause_EDIT + : 'WHERE' SearchCondition_EDIT + { + if ($2.suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'WHERE' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OptionalGroupByClause + : + | GroupByClause + ; + +GroupByClause + : 'GROUP' 'BY' GroupByColumnList + { + $$ = { valueExpression: $3 }; + } + ; + +GroupByClause_EDIT + : 'GROUP' 'BY' GroupByColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + | 'GROUP' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +ColumnGroupingSets + : + | ColumnReference + | ColumnGroupingSets ',' ColumnGroupingSets + | '(' ColumnGroupingSets ')' + ; + +ColumnGroupingSets_EDIT + : ColumnGroupingSet_EDIT + | ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSet_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + ; + +GroupByColumnList + : ValueExpression + | GroupByColumnList ',' ValueExpression -> $3 + ; + +GroupByColumnList_EDIT + : ValueExpression_EDIT + | 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + } + | 'CURSOR' ',' GroupByColumnList + { + parser.valueExpressionSuggest(); + } + | ValueExpression_EDIT ',' GroupByColumnList + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList + ; + +GroupByColumnListPartTwo_EDIT + : ValueExpression_EDIT + | AnyCursor ValueExpression + { + parser.valueExpressionSuggest(); + } + | AnyCursor + { + parser.valueExpressionSuggest(); + } + ; + +OptionalOrderByClause + : + | OrderByClause + ; + +OrderByClause + : 'ORDER' 'BY' OrderByColumnList -> $3 + ; + +OrderByClause_EDIT + : 'ORDER' 'BY' OrderByColumnList_EDIT + { + if ($3.emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'ORDER' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OrderByColumnList + : OrderByIdentifier + | OrderByColumnList ',' OrderByIdentifier -> $3 + ; + +OrderByColumnList_EDIT + : OrderByIdentifier_EDIT + | 'CURSOR' OrderByIdentifier + { + $$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } + ; + +OrderByIdentifier + : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) + ; + +OrderByIdentifier_EDIT + : ValueExpression_EDIT OptionalAscOrDesc + { + parser.suggestSelectListAliases(); + } + | AnyCursor OptionalAscOrDesc + { + $$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + ; + +OptionalAscOrDesc + : + { + $$ = { suggestKeywords: ['ASC', 'DESC'] }; + } + | 'ASC' + | 'DESC' + ; + +OptionalLimitClause + : + | LimitClause + ; + +LimitClause + : 'LIMIT' UnsignedNumericLiteral + | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral + | 'LIMIT' 'VARIABLE_REFERENCE' + | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' + ; + +LimitClause_EDIT + : 'LIMIT' 'CURSOR' + ; + +SearchCondition + : ValueExpression + ; + +SearchCondition_EDIT + : ValueExpression_EDIT + ; + +ValueExpression + : NonParenthesizedValueExpressionPrimary + ; + +ValueExpression_EDIT + : NonParenthesizedValueExpressionPrimary_EDIT + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpressionList + : ValueExpression + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression + { + $3.position = $1.position + 1; + $$ = $3; + } + ; + +ValueExpressionList_EDIT + : ValueExpression_EDIT + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT + { + $1.position += 1; + } + | ValueExpression_EDIT ',' ValueExpressionList + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList + { + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList 'CURSOR' ',' ValueExpressionList + { + parser.suggestValueExpressionKeywords($1); + } + | AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | AnyCursor ',' + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | ',' AnyCursor + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + | ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + ; + +InValueList + : NonParenthesizedValueExpressionPrimary + | InValueList ',' NonParenthesizedValueExpressionPrimary + ; + +NonParenthesizedValueExpressionPrimary + : UnsignedValueSpecification + | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart + { + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.expression) { + $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } + } else { + $$ = { function: fn, types: parser.findReturnTypes(fn) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | UserDefinedFunction + | 'NULL' -> { types: [ 'NULL' ] } + ; + +NonParenthesizedValueExpressionPrimary_EDIT + : UnsignedValueSpecification_EDIT + | ColumnOrArbitraryFunctionRef_EDIT + { + if ($1.suggestKeywords) { + $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; + } else { + $$ = { types: ['COLREF'], columnReference: $1 }; + } + } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT + { + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.position) { + parser.applyArgumentTypesToSuggestions(fn, $2.position); + } + $$ = { types: parser.findReturnTypes(fn) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | UserDefinedFunction_EDIT + ; + +ColumnOrArbitraryFunctionRef + : BasicIdentifierChain + { + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; + $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnOrArbitraryFunctionRef_EDIT + : BasicIdentifierChain_EDIT + ; + +SignedInteger + : UnsignedNumericLiteral + | '-' UnsignedNumericLiteral + | '+' UnsignedNumericLiteral + ; + +UnsignedValueSpecification + : UnsignedLiteral + ; + +UnsignedValueSpecification_EDIT + : UnsignedLiteral_EDIT + { + parser.suggestValues($1); + } + ; + +UnsignedLiteral + : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } + | GeneralLiteral + ; + +UnsignedLiteral_EDIT + : GeneralLiteral_EDIT + ; + +UnsignedNumericLiteral + : ExactNumericLiteral + | ApproximateNumericLiteral + ; + +ExactNumericLiteral + : 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' -> $1 + $2 + | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 + | '.' 'UNSIGNED_INTEGER' -> $1 + $2 + ; + +ApproximateNumericLiteral + : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + ; + +GeneralLiteral + : SingleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | DoubleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | TruthValue -> { types: [ 'BOOLEAN' ] } + ; + +GeneralLiteral_EDIT + : SingleQuotedValue_EDIT + { + $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + } + | DoubleQuotedValue_EDIT + { + $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + } + ; + +TruthValue + : 'TRUE' + | 'FALSE' + ; + +OptionalNot + : + | 'NOT' + ; + +SelectSpecification + : ValueExpression OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + $$ = { valueExpression: $1, alias: $2.alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); + } else { + $$ = { valueExpression: $1 } + } + } + | '*' + { + parser.addAsteriskLocation(@1, [{ asterisk: true }]); + $$ = { asterisk: true } + } + ; + +SelectSpecification_EDIT + : ValueExpression_EDIT OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + } + } + + | AnyCursor 'AS' RegularOrBacktickedIdentifier + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(@3, $3, @1); + $$ = { suggestAggregateFunctions: true }; + } + | ValueExpression OptionalCorrelationName_EDIT -> $2 + ; + +SelectList + : SelectSpecification -> [ $1 ] + | SelectList ',' SelectSpecification + { + $1.push($3); + } + ; + +SelectList_EDIT + : SelectSpecification_EDIT + | 'CURSOR' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | 'CURSOR' ',' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectSpecification_EDIT ',' SelectList + | SelectList 'CURSOR' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList 'CURSOR' ',' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList ',' AnyCursor + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' SelectSpecification_EDIT -> $3 + | SelectList ',' AnyCursor SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' AnyCursor ',' + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' -> $3 + | SelectList ',' AnyCursor ',' SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 + ; + +TableReferenceList + : TableReference + | TableReferenceList ',' TableReference -> $3 + ; + +TableReferenceList_EDIT + : TableReference_EDIT + | TableReference_EDIT ',' TableReference + | TableReferenceList ',' TableReference_EDIT + | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList + | TableReferenceList ',' AnyCursor + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TableReference + : TablePrimaryOrJoinedTable + ; + +TableReference_EDIT + : TablePrimaryOrJoinedTable_EDIT + ; + +TablePrimaryOrJoinedTable + : TablePrimary + { + $$ = $1; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + $$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + } + | JoinedTable + ; + +TablePrimaryOrJoinedTable_EDIT + : TablePrimary_EDIT + | JoinedTable_EDIT + ; + +JoinedTable + : TablePrimary Joins -> $2 + ; + +JoinedTable_EDIT + : TablePrimary Joins_EDIT + | TablePrimary_EDIT Joins + ; + +Joins + : JoinType TablePrimary OptionalJoinCondition + { + if ($3 && $3.valueExpression) { + $$ = $3.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($3.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($3.suggestKeywords) { + $$.suggestKeywords = $3.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + | Joins JoinType TablePrimary OptionalJoinCondition + { + if ($4 && $4.valueExpression) { + $$ = $4.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($4.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($4.suggestKeywords) { + $$.suggestKeywords = $4.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + ; + +Joins_INVALID + : JoinType -> { joinType: $1 } + | JoinType Joins -> { joinType: $1 } + ; + +Join_EDIT + : JoinType_EDIT TablePrimary OptionalJoinCondition + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType_EDIT + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType TablePrimary_EDIT OptionalJoinCondition + | JoinType TablePrimary JoinCondition_EDIT + | JoinType 'CURSOR' OptionalJoinCondition + { + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $1, + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + ; + +Joins_EDIT + : Join_EDIT + | Join_EDIT Joins + | Joins Join_EDIT + | Joins Join_EDIT Joins + ; + +JoinType + : 'CROSS' 'JOIN' -> 'CROSS JOIN' + | 'FULL' 'JOIN' -> 'FULL JOIN' + | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' + | 'INNER' 'JOIN' -> 'INNER JOIN' + | 'JOIN' -> 'JOIN' + | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' + | 'LEFT' 'JOIN' -> 'LEFT JOIN' + | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' + | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' + | 'OUTER' 'JOIN' -> 'OUTER JOIN' + | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' + | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' + | 'SEMI' 'JOIN' -> 'SEMI JOIN' + ; + +JoinType_EDIT + : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + ; + +OptionalJoinCondition + : -> { noJoinCondition: true, suggestKeywords: ['ON'] } + | 'ON' ValueExpression -> { valueExpression: $2 } + ; + +UsingColList + : RegularOrBacktickedIdentifier + | UsingColList ',' RegularOrBacktickedIdentifier + ; + +JoinCondition_EDIT + : 'ON' ValueExpression_EDIT + | 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + } + ; + +TablePrimary + : TableOrQueryName OptionalCorrelationName + { + $$ = { + primary: $1 + } + if ($1.identifierChain) { + if ($2) { + $1.alias = $2.alias + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } else if ($2.suggestKeywords) { + keywords = $2.suggestKeywords; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + | DerivedTable OptionalCorrelationName + { + $$ = { + primary: $1 + }; + + if ($2) { + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +TablePrimary_EDIT + : TableOrQueryName_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + } + | DerivedTable_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias); + } + } + | DerivedTable OptionalCorrelationName_EDIT + ; + +TableOrQueryName + : SchemaQualifiedTableIdentifier + ; + +TableOrQueryName_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +DerivedTable + : TableSubQuery + ; + +DerivedTable_EDIT + : TableSubQuery_EDIT + ; + +OptionalOnColumn + : + | 'ON' ValueExpression + ; + +OptionalOnColumn_EDIT + : 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'ON' ValueExpression_EDIT + ; + +PushQueryState + : + { + parser.pushQueryState(); + } + ; + +PopQueryState + : + { + parser.popQueryState(); + } + ; + +TableSubQuery + : '(' TableSubQueryInner ')' -> $2 + | '(' DerivedTable OptionalCorrelationName ')' + { + if ($3) { + $2.alias = $3.alias; + parser.addTablePrimary({ subQueryAlias: $3.alias }); + parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); + } + $$ = $2; + } + ; + +TableSubQuery_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + ; + +TableSubQueryInner + : PushQueryState SubQuery + { + var subQuery = parser.getSubQuery($2); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + $$ = subQuery; + } + ; + +TableSubQueryInner_EDIT + : PushQueryState SubQuery_EDIT PopQueryState + ; + +SubQuery + : QueryExpression + ; + +SubQuery_EDIT + : QueryExpression_EDIT + ; + +QueryExpression + : QueryExpressionBody + ; + +QueryExpression_EDIT + : QueryExpressionBody_EDIT + ; + +QueryExpressionBody + : NonJoinQueryExpression + ; + +QueryExpressionBody_EDIT + : NonJoinQueryExpression_EDIT + ; + +NonJoinQueryExpression + : NonJoinQueryTerm + ; + +NonJoinQueryExpression_EDIT + : NonJoinQueryTerm_EDIT + ; + +NonJoinQueryTerm + : NonJoinQueryPrimary + ; + +NonJoinQueryTerm_EDIT + : NonJoinQueryPrimary_EDIT + ; + +NonJoinQueryPrimary + : SimpleTable + ; + +NonJoinQueryPrimary_EDIT + : SimpleTable_EDIT + ; + +SimpleTable + : QuerySpecification + ; + +SimpleTable_EDIT + : QuerySpecification_EDIT + ; + +OptionalCorrelationName + : + | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } + | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | 'AS' QuotedValue -> { alias: $2, location: @2 } + ; + +OptionalCorrelationName_EDIT + : PartialBacktickedIdentifier + | QuotedValue_EDIT + | 'AS' PartialBacktickedIdentifier + | 'AS' QuotedValue_EDIT + | 'AS' 'CURSOR' + ; + +UserDefinedFunction + : AggregateFunction OptionalOverClause + { + if (!$2) { + $1.suggestKeywords = ['OVER']; + } + } + | AnalyticFunction OverClause + | CastFunction + ; + +UserDefinedFunction_EDIT + : AggregateFunction_EDIT + | AggregateFunction OptionalOverClause_EDIT + | AnalyticFunction_EDIT + | AnalyticFunction_EDIT OverClause + | AnalyticFunction 'CURSOR' + { + parser.suggestKeywords(['OVER']); + } + | AnalyticFunction OverClause_EDIT + | CastFunction_EDIT + ; + +ArbitraryFunction + : RegularIdentifier ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + ; + +ArbitraryFunction_EDIT + : RegularIdentifier ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ArbitraryFunctionName + : 'ARRAY' + | 'IF' + | 'MAP' + | 'TRUNCATE' + ; + +ArbitraryFunctionRightPart + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } + ; + +ArbitraryFunctionRightPart_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { position: 1 } + } + | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 + ; + +AggregateFunction + : CountFunction + | SumFunction + | OtherAggregateFunction + ; + +AggregateFunction_EDIT + : CountFunction_EDIT + | SumFunction_EDIT + | OtherAggregateFunction_EDIT + ; + +AnalyticFunction + : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } + ; + +AnalyticFunction_EDIT + : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError + { + parser.applyArgumentTypesToSuggestions($1, $3.position); + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOverClause + : + | OverClause + ; + +OptionalOverClause_EDIT + : OverClause_EDIT + ; + +OverClause + : 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression + ; + +OverClause_EDIT + : 'OVER' WindowExpression_EDIT + ; + +WindowExpression + : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' + ; + +WindowExpression_EDIT + : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$3 && !$4) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$3) { + parser.suggestKeywords(['PARTITION BY']); + } + } + | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$6) { + parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($4); + } + } + ; + +OptionalPartitionBy + : + | PartitionBy + ; + +PartitionBy + : 'PARTITION' 'BY' ValueExpressionList -> $3 + ; + +PartitionBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'PARTITION' 'BY' ValueExpressionList_EDIT + ; + +OptionalOrderByAndWindow + : + | OrderByClause OptionalWindowSpec + ; + +OptionalOrderByAndWindow_EDIT + : OrderByClause_EDIT + { + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + } + | OrderByClause 'CURSOR' OptionalWindowSpec + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); + } + if (!$3) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + } + | OrderByClause WindowSpec_EDIT + ; + +OptionalWindowSpec + : + | WindowSpec + ; + +WindowSpec + : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + ; + +WindowSpec_EDIT + : RowsOrRange 'CURSOR' + { + parser.suggestKeywords(['BETWEEN']); + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' + { + if (!$4 && !$5) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$5) { + parser.suggestKeywords(['AND']); + } + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT + ; + +PopLexerState + : + { + lexer.popState(); + } + ; + +PushHdfsLexerState + : + { + lexer.begin('hdfs'); + } + ; + +HdfsPath + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' + ; + +HdfsPath_EDIT + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: '' }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: '' }); + } + ; + +RowsOrRange + : 'ROWS' + | 'RANGE' + ; + +OptionalCurrentOrPreceding + : + | IntegerOrUnbounded 'PRECEDING' + | 'CURRENT' 'ROW' + ; + +OptionalCurrentOrPreceding_EDIT + : IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['PRECEDING']); + } + | 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + ; + +OptionalAndFollowing + : + | 'AND' 'CURRENT' 'ROW' + | 'AND' IntegerOrUnbounded 'FOLLOWING' + ; + +OptionalAndFollowing_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + } + | 'AND' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + | 'AND' IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['FOLLOWING']); + } + ; + +IntegerOrUnbounded + : 'UNSIGNED_INTEGER' + | 'UNBOUNDED' + ; + +OptionalHavingClause + : + | HavingClause + ; + +HavingClause + : 'HAVING' ValueExpression + ; + +HavingClause_EDIT + : 'HAVING' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + | 'HAVING' ValueExpression_EDIT + { + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + ; + +CastFunction + : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ')' -> { types: [ 'T' ] } + ; + +CastFunction_EDIT + : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + ; + +CountFunction + : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +CountFunction_EDIT + : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +OtherAggregateFunction_EDIT + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, $4.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction_Type + : 'AVG' + | 'MAX' + | 'MIN' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARIANCE' + ; + +FromOrComma + : 'FROM' + | ',' + ; + +SumFunction + : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } + | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } + ; + +SumFunction_EDIT + : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, 1); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; diff --git a/src/jison/sql/ksql/sql_set.jison b/src/jison/sql/ksql/sql_set.jison new file mode 100644 index 0000000..14cff5c --- /dev/null +++ b/src/jison/sql/ksql/sql_set.jison @@ -0,0 +1,46 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : SetSpecification + ; + +DataDefinition_EDIT + : 'SET' 'CURSOR' + { + parser.suggestSetOptions(); + } + ; + +SetSpecification + : 'SET' SetOption '=' SetValue + | 'SET' 'ALL' + ; + +SetOption + : RegularIdentifier + | SetOption '.' RegularIdentifier + ; + +SetValue + : RegularIdentifier + | SignedInteger + | SignedInteger RegularIdentifier + | QuotedValue + | 'TRUE' + | 'FALSE' + | 'NULL' + ; diff --git a/src/jison/sql/ksql/sql_show.jison b/src/jison/sql/ksql/sql_show.jison new file mode 100644 index 0000000..909df5a --- /dev/null +++ b/src/jison/sql/ksql/sql_show.jison @@ -0,0 +1,39 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : 'SHOW' ShowStatement + ; + +DataDefinition_EDIT + : ShowStatement_EDIT + ; + +ShowStatement + : 'TABLES' + | 'STREAMS' + | 'TOPICS' + | 'QUERIES' + | 'PROPERTIES' + ; + + +ShowStatement_EDIT + : 'SHOW' 'CURSOR' + { + parser.suggestKeywords(['TABLES', 'STREAMS', 'TOPICS', 'QUERIES', 'PROPERTIES']); + } + ; diff --git a/src/jison/sql/ksql/sql_valueExpression.jison b/src/jison/sql/ksql/sql_valueExpression.jison new file mode 100644 index 0000000..3dcc339 --- /dev/null +++ b/src/jison/sql/ksql/sql_valueExpression.jison @@ -0,0 +1,839 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +ValueExpression + : 'NOT' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression -> $2 + | '-' ValueExpression %prec NEGATION + { + // verifyType($2, 'NUMBER'); + $$ = $2; + $2.types = ['NUMBER']; + } + | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | 'NOT' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | '!' AnyCursor + { + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | '~' 'PARTIAL_CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + $$ = { types: [ 'T' ] }; + } + | '-' ValueExpression_EDIT %prec NEGATION + { + if (!$2.typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; + } + | '-' 'PARTIAL_CURSOR' %prec NEGATION + { + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'IS' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' + { + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'NULL' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'FALSE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'TRUE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } + } + ; + +// ------------------ EXISTS and parenthesized ------------------ +ValueExpression + : 'EXISTS' TableSubQuery + { + $$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + } + | '(' ValueExpression ')' -> $2 + ; + +ValueExpression_EDIT + : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } + | '(' ValueExpression_EDIT RightParenthesisOrError + { + $$ = $2; + } + | '(' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['T'], typeSet: true }; + } + ; + +// ------------------ COMPARISON ------------------ + +ValueExpression + : ValueExpression '=' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '<' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '>' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '=' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '<' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '>' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT '=' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '<' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '>' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '=' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression '<' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + } + | ValueExpression '>' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; + } + | ValueExpression '=' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '<' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '>' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + + +// ------------------ IN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT + { + if ($4.inValueEdit) { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + parser.applyTypeToSuggestions($1.types); + } + if ($4.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT + { + if ($3.inValueEdit) { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + } + if ($3.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + ; + +ValueExpressionInSecondPart_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } + | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } + ; + +// ------------------ BETWEEN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($4.types[0] === $6.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($4.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $6.types[0] && !$4.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $4.types[0] && !$6.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $5); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($4, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$3.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $3.types[0] && !$5.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $4); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ BOOLEAN ------------------ + +ValueExpression + : ValueExpression 'OR' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'AND' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' 'OR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'OR' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'OR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'OR' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | 'CURSOR' 'AND' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'AND' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'AND' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'AND' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + +// ------------------ ARITHMETIC ------------------ + +ValueExpression + : ValueExpression '-' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression '*' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '*' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression_EDIT '-' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '*' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '-' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '*' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '-' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression '*' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + ; + +// ------------------ LIKE, RLIKE and REGEXP ------------------ + +ValueExpression + : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } + ; + +LikeRightPart + : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + ; + +LikeRightPart_EDIT + : 'LIKE' ValueExpression_EDIT + | 'RLIKE' ValueExpression_EDIT + | 'REGEXP' ValueExpression_EDIT + | 'LIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'RLIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'REGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | 'CURSOR' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'NOT' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ CASE, WHEN, THEN ------------------ + +ValueExpression + : 'CASE' CaseRightPart -> $2 + | 'CASE' ValueExpression CaseRightPart -> $3 + ; + +ValueExpression_EDIT + : 'CASE' CaseRightPart_EDIT -> $2 + | 'CASE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 + | 'CASE' ValueExpression 'CURSOR' EndOrError + { + parser.suggestValueExpressionKeywords($2, ['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression_EDIT CaseRightPart + { + $$ = $3; + $$.suggestFilters = $2.suggestFilters; + } + | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } + ; + +CaseRightPart + : CaseWhenThenList 'END' -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'END' + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + ; + +CaseRightPart_EDIT + : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['END']); + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'CURSOR' ValueExpression EndOrError + { + if ($4.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'CURSOR' EndOrError + { + if ($3.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + $$.suggestFilters = $3.suggestFilters + } + | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = parser.findCaseType($1); + } + | 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CURSOR' 'ELSE' ValueExpression EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = $3; + } + | 'CURSOR' 'ELSE' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ] }; + } + ; + +EndOrError + : 'END' + | error + ; + +CaseWhenThenList + : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } + | CaseWhenThenList CaseWhenThenListPartTwo + { + $1.caseTypes.push($2); + $$ = { caseTypes: $1.caseTypes, lastType: $2 }; + } + ; + +CaseWhenThenList_EDIT + : CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList + | CaseWhenThenList 'CURSOR' CaseWhenThenList + { + parser.suggestValueExpressionKeywords($1, ['WHEN']); + } + | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 + ; + +CaseWhenThenListPartTwo + : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 + ; + +CaseWhenThenListPartTwo_EDIT + : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } + | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } + | 'CURSOR' ValueExpression 'THEN' + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' ValueExpression 'THEN' ValueExpression + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [$4] }; + } + | 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [$4], suggestFilters: true }; + } + | 'WHEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'CURSOR' ValueExpression + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + ; diff --git a/src/jison/sql/ksql/syntax_footer.jison b/src/jison/sql/ksql/syntax_footer.jison new file mode 100644 index 0000000..ec25eab --- /dev/null +++ b/src/jison/sql/ksql/syntax_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/ksql/syntax_header.jison b/src/jison/sql/ksql/syntax_header.jison new file mode 100644 index 0000000..e2c6815 --- /dev/null +++ b/src/jison/sql/ksql/syntax_header.jison @@ -0,0 +1,28 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlSyntax + +%% diff --git a/src/jison/sql/phoenix/autocomplete_footer.jison b/src/jison/sql/phoenix/autocomplete_footer.jison new file mode 100644 index 0000000..899433d --- /dev/null +++ b/src/jison/sql/phoenix/autocomplete_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/phoenix/autocomplete_header.jison b/src/jison/sql/phoenix/autocomplete_header.jison new file mode 100644 index 0000000..3b90682 --- /dev/null +++ b/src/jison/sql/phoenix/autocomplete_header.jison @@ -0,0 +1,29 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'CURSOR' 'PARTIAL_CURSOR' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlAutocomplete + +%% diff --git a/src/jison/sql/phoenix/sql.jisonlex b/src/jison/sql/phoenix/sql.jisonlex new file mode 100644 index 0000000..83dbe72 --- /dev/null +++ b/src/jison/sql/phoenix/sql.jisonlex @@ -0,0 +1,226 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%options case-insensitive flex +%s between +%x hdfs doubleQuotedValue singleQuotedValue backtickedValue +%% + +\s { /* skip whitespace */ } +'--'.* { /* skip comments */ } +[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } + +'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } +'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } + +'AND' { this.popState(); return 'BETWEEN_AND'; } + +// Reserved Keywords +'ALL' { return 'ALL'; } +'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } +'AND' { return 'AND'; } +'AS' { return 'AS'; } +'ASC' { return 'ASC'; } +'BETWEEN' { this.begin('between'); return 'BETWEEN'; } +'BIGINT' { return 'BIGINT'; } +'BOOLEAN' { return 'BOOLEAN'; } +'BY' { return 'BY'; } +'CASCADE' { return 'CASCADE'; } +'CASE' { return 'CASE'; } +'CHAR' { return 'CHAR'; } +'COMMENT' { return 'COMMENT'; } +'CREATE' { parser.determineCase(yytext); return 'CREATE'; } +'CROSS' { return 'CROSS'; } +'CURRENT' { return 'CURRENT'; } +'DATABASE' { return 'DATABASE'; } +'DECIMAL' { return 'DECIMAL'; } +'DESC' { return 'DESC'; } +'DISTINCT' { return 'DISTINCT'; } +'DIV' { return 'ARITHMETIC_OPERATOR'; } +'DOUBLE' { return 'DOUBLE'; } +'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } +'ELSE' { return 'ELSE'; } +'END' { return 'END'; } +'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } +'FALSE' { return 'FALSE'; } +'FLOAT' { return 'FLOAT'; } +'FOLLOWING' { return 'FOLLOWING'; } +'FROM' { parser.determineCase(yytext); return 'FROM'; } +'FULL' { return 'FULL'; } +'GROUP' { return 'GROUP'; } +'HAVING' { return 'HAVING'; } +'IF' { return 'IF'; } +'IN' { return 'IN'; } +'INNER' { return 'INNER'; } +'INSERT' { return 'INSERT'; } +'INT' { return 'INT'; } +'INTO' { return 'INTO'; } +'IS' { return 'IS'; } +'JOIN' { return 'JOIN'; } +'LEFT' { return 'LEFT'; } +'LIKE' { return 'LIKE'; } +'LIMIT' { return 'LIMIT'; } +'NOT' { return 'NOT'; } +'NULL' { return 'NULL'; } +'ON' { return 'ON'; } +'OPTION' { return 'OPTION'; } +'OR' { return 'OR'; } +'ORDER' { return 'ORDER'; } +'OUTER' { return 'OUTER'; } +'PARTITION' { return 'PARTITION'; } +'PRECEDING' { return 'PRECEDING'; } +'PURGE' { return 'PURGE'; } +'RANGE' { return 'RANGE'; } +'REGEXP' { return 'REGEXP'; } +'RIGHT' { return 'RIGHT'; } +'RLIKE' { return 'RLIKE'; } +'ROW' { return 'ROW'; } +'ROLE' { return 'ROLE'; } +'ROWS' { return 'ROWS'; } +'SCHEMA' { return 'SCHEMA'; } +'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } +'SEMI' { return 'SEMI'; } +'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } +'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } +'SMALLINT' { return 'SMALLINT'; } +'STRING' { return 'STRING'; } +'TABLE' { return 'TABLE'; } +'THEN' { return 'THEN'; } +'TIMESTAMP' { return 'TIMESTAMP'; } +'TINYINT' { return 'TINYINT'; } +'TO' { return 'TO'; } +'TRUE' { return 'TRUE'; } +'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } +'UNBOUNDED' { return 'UNBOUNDED'; } +'UNION' { return 'UNION'; } +'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } +'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } +'VALUES' { return 'VALUES'; } +'VARCHAR' { return 'VARCHAR'; } +'VIEW' { return 'VIEW'; } +'WHEN' { return 'WHEN'; } +'WHERE' { return 'WHERE'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } + +// Non-reserved Keywords +'OVER' { return 'OVER'; } +'ROLE' { return 'ROLE'; } + +// --- UDFs --- +AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } +CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } +COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } +MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } +MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } +STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } +STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } +SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } +VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } +VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } +VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } + +// Analytical functions +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } + +[0-9]+ { return 'UNSIGNED_INTEGER'; } +[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } +[0-9]+E { return 'UNSIGNED_INTEGER_E'; } +[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } + +'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } +'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } +\s+['"] { return 'HDFS_START_QUOTE'; } +[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } +['"] { this.popState(); return 'HDFS_END_QUOTE'; } +<> { return 'EOF'; } + +'&&' { return 'AND'; } +'||' { return 'OR'; } + +'=' { return '='; } +'<' { return '<'; } +'>' { return '>'; } +'!=' { return 'COMPARISON_OPERATOR'; } +'<=' { return 'COMPARISON_OPERATOR'; } +'>=' { return 'COMPARISON_OPERATOR'; } +'<>' { return 'COMPARISON_OPERATOR'; } +'<=>' { return 'COMPARISON_OPERATOR'; } + +'-' { return '-'; } +'*' { return '*'; } +'+' { return 'ARITHMETIC_OPERATOR'; } +'/' { return 'ARITHMETIC_OPERATOR'; } +'%' { return 'ARITHMETIC_OPERATOR'; } +'|' { return 'ARITHMETIC_OPERATOR'; } +'^' { return 'ARITHMETIC_OPERATOR'; } +'&' { return 'ARITHMETIC_OPERATOR'; } + +',' { return ','; } +'.' { return '.'; } +':' { return ':'; } +';' { return ';'; } +'~' { return '~'; } +'!' { return '!'; } + +'(' { return '('; } +')' { return ')'; } +'[' { return '['; } +']' { return ']'; } + +\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } + +\` { this.begin('backtickedValue'); return 'BACKTICK'; } +[^`]+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\` { this.popState(); return 'BACKTICK'; } + +\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } +(?:\\\\|\\[']|[^'])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\' { this.popState(); return 'SINGLE_QUOTE'; } + +\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } +(?:\\\\|\\["]|[^"])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\" { this.popState(); return 'DOUBLE_QUOTE'; } + +<> { return 'EOF'; } + +. { /* To prevent console logging of unknown chars */ } +. { } +. { } +. { } +. { } +. { } diff --git a/src/jison/sql/phoenix/sql_alter.jison b/src/jison/sql/phoenix/sql_alter.jison new file mode 100644 index 0000000..82acf8f --- /dev/null +++ b/src/jison/sql/phoenix/sql_alter.jison @@ -0,0 +1,109 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : AlterStatement + ; + +DataDefinition_EDIT + : AlterStatement_EDIT + ; + +AlterStatement + : AlterTable + | AlterView + ; + +AlterStatement_EDIT + : AlterTable_EDIT + | AlterView_EDIT + | 'ALTER' 'CURSOR' + { + parser.suggestKeywords(['TABLE', 'VIEW']); + } + ; + +AlterTable + : AlterTableLeftSide PartitionSpec + ; + +AlterTable_EDIT + : AlterTableLeftSide_EDIT + | AlterTableLeftSide_EDIT PartitionSpec + | AlterTableLeftSide 'CURSOR' + | AlterTableLeftSide PartitionSpec 'CURSOR' + ; + +AlterTableLeftSide + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterTableLeftSide_EDIT + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'ALTER' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +AlterView + : AlterViewLeftSide 'AS' QuerySpecification + ; + +AlterView_EDIT + : AlterViewLeftSide_EDIT + | AlterViewLeftSide 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | AlterViewLeftSide 'SET' 'CURSOR' + | AlterViewLeftSide 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | AlterViewLeftSide 'AS' QuerySpecification_EDIT + ; + + +AlterViewLeftSide + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterViewLeftSide_EDIT + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'ALTER' 'VIEW' 'CURSOR' + { + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; diff --git a/src/jison/sql/phoenix/sql_create.jison b/src/jison/sql/phoenix/sql_create.jison new file mode 100644 index 0000000..1329ac6 --- /dev/null +++ b/src/jison/sql/phoenix/sql_create.jison @@ -0,0 +1,615 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : CreateStatement + ; + +DataDefinition_EDIT + : CreateStatement_EDIT + ; + +CreateStatement + : DatabaseDefinition + | TableDefinition + | ViewDefinition + | RoleDefinition + ; + +CreateStatement_EDIT + : DatabaseDefinition_EDIT + | TableDefinition_EDIT + | ViewDefinition_EDIT + | 'CREATE' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DatabaseDefinition + : 'CREATE' DatabaseOrSchema OptionalIfNotExists + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT + | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinitionOptionals + : OptionalComment + { + if (!$1) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +DatabaseDefinitionOptionals_EDIT + : OptionalComment_INVALID + ; + +OptionalComment + : + | Comment + ; + +Comment + : 'COMMENT' QuotedValue + ; + +OptionalComment_INVALID + : Comment_INVALID + ; + +Comment_INVALID + : 'COMMENT' SINGLE_QUOTE + | 'COMMENT' DOUBLE_QUOTE + | 'COMMENT' SINGLE_QUOTE VALUE + | 'COMMENT' DOUBLE_QUOTE VALUE + ; + +TableDefinition + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart + ; + +TableDefinition_EDIT + : 'CREATE' 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT + | 'CREATE' 'TABLE' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'TABLE' OptionalIfNotExists_EDIT + ; + +TableDefinitionRightPart + : TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement + ; + +TableDefinitionRightPart_EDIT + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalPartitionedBy OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification PartitionedBy_EDIT OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy OptionalAsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalPartitionedBy 'CURSOR' + { + var keywords = []; + if (!$1 && !$2) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$2) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + ; + +TableIdentifierAndOptionalColumnSpecification + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } + ; + +TableIdentifierAndOptionalColumnSpecification_EDIT + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT + | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike + ; + +OptionalColumnSpecificationsOrLike + : + | ParenthesizedColumnSpecificationList + | 'LIKE' SchemaQualifiedTableIdentifier -> [] + ; + +OptionalColumnSpecificationsOrLike_EDIT + : ParenthesizedColumnSpecificationList_EDIT + | 'LIKE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LIKE' SchemaQualifiedTableIdentifier_EDIT + ; + +ParenthesizedColumnSpecificationList + : '(' ColumnSpecificationList ')' -> $2 + ; + +ParenthesizedColumnSpecificationList_EDIT + : '(' ColumnSpecificationList_EDIT RightParenthesisOrError + ; + +ColumnSpecificationList + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) + ; + +ColumnSpecificationList_EDIT + : ColumnSpecification_EDIT + | ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecificationList ',' ColumnSpecification_EDIT + | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($1); + } + | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($1); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($3); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($3); + } + ; + +ColumnSpecification + : ColumnIdentifier ColumnDataType OptionalColumnOptions + { + $$ = $1; + $$.type = $2; + var keywords = []; + if (!$3['comment']) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +ColumnSpecification_EDIT + : ColumnIdentifier 'CURSOR' OptionalColumnOptions + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions + | ColumnIdentifier ColumnDataType ColumnOptions_EDIT + ; + +OptionalColumnOptions + : -> {} + | ColumnOptions + ; + +ColumnOptions + : ColumnOption + { + $$ = {}; + $$[$1] = true; + } + | ColumnOptions ColumnOption + { + $1[$2] = true; + } + ; + +ColumnOptions_EDIT + : ColumnOption_EDIT + | ColumnOption_EDIT ColumnOptions + | ColumnOptions ColumnOption_EDIT + | ColumnOptions ColumnOption_EDIT ColumnOptions + ; + +ColumnOption + : 'NOT' 'NULL' -> 'null' + | 'NULL' -> 'null' + | Comment -> 'comment' + ; + +ColumnOption_EDIT + : 'NOT' 'CURSOR' + { + parser.suggestKeywords(['NULL']); + } + ; + +ColumnDataType + : PrimitiveType + | ArrayType + | MapType + | StructType + | ArrayType_INVALID + | MapType_INVALID + | StructType_INVALID + ; + +ColumnDataType_EDIT + : ArrayType_EDIT + | MapType_EDIT + | StructType_EDIT + ; + +ArrayType + : 'ARRAY' '<' ColumnDataType '>' + ; + +ArrayType_INVALID + : 'ARRAY' '<' '>' + ; + +ArrayType_EDIT + : 'ARRAY' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError + ; + +MapType + : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' + ; + +MapType_INVALID + : 'MAP' '<' '>' + ; + +MapType_EDIT + : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError + | 'MAP' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'MAP' '<' ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + ; + +StructType + : 'STRUCT' '<' StructDefinitionList '>' + ; + +StructType_INVALID + : 'STRUCT' '<' '>' + ; + +StructType_EDIT + : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError + ; + +StructDefinitionList + : StructDefinition + | StructDefinitionList ',' StructDefinition + ; + +StructDefinitionList_EDIT + : StructDefinition_EDIT + | StructDefinition_EDIT Commas + | StructDefinition_EDIT Commas StructDefinitionList + | StructDefinitionList ',' StructDefinition_EDIT + | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList + ; + +StructDefinition + : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment + ; + +StructDefinition_EDIT + : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | Commas RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + ; + +ColumnDataTypeList + : ColumnDataType + | ColumnDataTypeList ',' ColumnDataType + ; + +ColumnDataTypeList_EDIT + : ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + ; + +ColumnDataTypeListInner_EDIT + : Commas AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas ColumnDataType_EDIT + | AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnDataType_EDIT + ; + +GreaterThanOrError + : '>' + | error + ; + +OptionalPartitionedBy + : + | PartitionedBy + ; + +PartitionedBy + : 'PARTITION' 'BY' RangeClause + ; + +PartitionedBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.suggestKeywords(['RANGE']); + } + | 'PARTITION' 'BY' RangeClause_EDIT + ; + +RangeClause + : 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList + ; + +RangeClause_EDIT + : 'RANGE' 'CURSOR' + | 'RANGE' ParenthesizedColumnList_EDIT + | 'RANGE' ParenthesizedColumnList 'CURSOR' + | 'RANGE' ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT + | 'RANGE' ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList + ; + +ParenthesizedPartitionValuesList + : '(' PartitionValueList ')' + ; + +ParenthesizedPartitionValuesList_EDIT + : '(' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['PARTITION']); + } + |'(' PartitionValueList_EDIT RightParenthesisOrError + ; + +PartitionValueList + : PartitionValue + | PartitionValueList ',' PartitionValue + ; + +PartitionValueList_EDIT + : PartitionValue_EDIT + | PartitionValueList ',' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' 'CURSOR' ',' PartitionValueList + { + parser.suggestKeywords(['PARTITION']); + } + | PartitionValueList ',' PartitionValue_EDIT + | PartitionValueList ',' PartitionValue_EDIT ',' PartitionValueList + ; + +PartitionValue + : 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' + ; + +PartitionValue_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['VALUE', 'VALUES']); + } + | 'PARTITION' ValueExpression_EDIT + { + if ($2.endsWithLessThanOrEqual) { + parser.suggestKeywords(['VALUES']); + } + } + | 'PARTITION' ValueExpression 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | 'PARTITION' ValueExpression_EDIT LessThanOrEqualTo 'VALUES' + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' ValueExpression LessThanOrEqualTo 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + | 'PARTITION' 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=']); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo 'CURSOR' + { + parser.suggestFunctions(); + } + | 'PARTITION' 'VALUES' LessThanOrEqualTo ValueExpression_EDIT + ; + +LessThanOrEqualTo + : '<' + | 'COMPARISON_OPERATOR' // This is fine for autocompletion + ; + +OptionalAsSelectStatement + : + | 'AS' CommitLocations QuerySpecification + ; + +OptionalAsSelectStatement_EDIT + : 'AS' CommitLocations 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'AS' CommitLocations QuerySpecification_EDIT + ; + +CommitLocations + : /* empty */ + { + parser.commitLocations(); + } + ; + +ViewDefinition + : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +ViewDefinition_EDIT + : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'CURSOR' + { + var keywords = [{value: 'AS', weight: 1 }]; + if (!$6) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + parser.suggestKeywords(keywords); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment 'AS' QuerySpecification + ; + +OptionalParenthesizedViewColumnList + : + | ParenthesizedViewColumnList + ; + +ParenthesizedViewColumnList + : '(' ViewColumnList ')' + ; + +ParenthesizedViewColumnList_EDIT + : '(' ViewColumnList_EDIT RightParenthesisOrError + { + if (!$2) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +ViewColumnList + : ColumnReference OptionalComment + | ViewColumnList ',' ColumnReference OptionalComment + ; + +ViewColumnList_EDIT + : ColumnReference OptionalComment 'CURSOR' -> $2 + | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 + ; + +RoleDefinition + : 'CREATE' 'ROLE' RegularIdentifier + ; diff --git a/src/jison/sql/phoenix/sql_drop.jison b/src/jison/sql/phoenix/sql_drop.jison new file mode 100644 index 0000000..0e3aa53 --- /dev/null +++ b/src/jison/sql/phoenix/sql_drop.jison @@ -0,0 +1,184 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : DropStatement + ; + +DataDefinition_EDIT + : DropStatement_EDIT + ; + +DropStatement + : DropDatabaseStatement + | DropRoleStatement + | DropTableStatement + | DropViewStatement + | TruncateTableStatement + ; + +DropStatement_EDIT + : DropDatabaseStatement_EDIT + | DropTableStatement_EDIT + | DropViewStatement_EDIT + | TruncateTableStatement_EDIT + | 'DROP' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +DropDatabaseStatement + : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascade + ; + +DropDatabaseStatement_EDIT + : 'DROP' DatabaseOrSchema OptionalIfExists + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + } + | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CASCADE']); + } + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascade + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascade + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + ; +DropRoleStatement + : 'DROP' 'ROLE' RegularIdentifier + ; + +DropTableStatement + : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement_EDIT + : 'DROP' 'TABLE' OptionalIfExists_EDIT + | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PURGE']); + } + } + ; + +OptionalPurge + : + | 'PURGE' + ; + +DropViewStatement + : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropViewStatement_EDIT + : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($5); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'VIEW' OptionalIfExists_EDIT + | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +TruncateTableStatement + : 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +TruncateTableStatement_EDIT + : 'TRUNCATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + | 'TRUNCATE' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($4); + } + | 'TRUNCATE' 'TABLE' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'TRUNCATE' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPartitionSpec + ; diff --git a/src/jison/sql/phoenix/sql_error.jison b/src/jison/sql/phoenix/sql_error.jison new file mode 100644 index 0000000..48b9a4e --- /dev/null +++ b/src/jison/sql/phoenix/sql_error.jison @@ -0,0 +1,132 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlStatements + : error + | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? + ; + +SqlStatement_EDIT + : AnyCursor error + { + parser.suggestDdlAndDmlKeywords(); + } + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT + ; + +SelectList_ERROR + : ErrorList + | SelectList ',' ErrorList + | ErrorList ',' SelectList ',' ErrorList + | ErrorList ',' SelectList + | SelectList ',' ErrorList ',' SelectList + ; + +SelectList_ERROR_EDIT + : ErrorList ',' SelectList_EDIT -> $3 + | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 + | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 + | ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | ErrorList ',' SelectList ',' Errors ',' AnyCursor + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + ; + +SetSpecification + : 'SET' SetOption '=' error + ; + +ErrorList + : error + | Errors ',' error + ; + +JoinType_EDIT + : 'FULL' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'LEFT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'RIGHT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$4 && !$5 && !$6 && !$7 + }; + } + | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7], [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$6 && !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error 'CURSOR' OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$7], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$7 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause error 'CURSOR' + ; + +OptionalSelectConditions_EDIT + : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause HavingClause error OrderByClause_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalOrderByClause LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause error LimitClause_EDIT + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error + ; diff --git a/src/jison/sql/phoenix/sql_insert.jison b/src/jison/sql/phoenix/sql_insert.jison new file mode 100644 index 0000000..8b3544e --- /dev/null +++ b/src/jison/sql/phoenix/sql_insert.jison @@ -0,0 +1,72 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : InsertStatement + ; + +InsertStatement + : InsertValuesStatement + ; + +DataManipulation_EDIT + : InsertValuesStatement_EDIT + ; + +InsertValuesStatement + : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + ; + +InsertValuesStatement_EDIT + : 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['INTO']); + } + | 'INSERT' 'INTO' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'CURSOR' + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + parser.suggestKeywords(['VALUES']); + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT 'VALUES' InsertValuesList + ; + +InsertValuesList + : ParenthesizedRowValuesList + | RowValuesList ',' ParenthesizedRowValuesList + ; + +ParenthesizedRowValuesList + : '(' InValueList ')' + ; + +OptionalTable + : + | 'TABLE' + ; diff --git a/src/jison/sql/phoenix/sql_main.jison b/src/jison/sql/phoenix/sql_main.jison new file mode 100644 index 0000000..3aaf9f9 --- /dev/null +++ b/src/jison/sql/phoenix/sql_main.jison @@ -0,0 +1,2762 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlSyntax + : NewStatement SqlStatements EOF + ; + +SqlAutocomplete + : NewStatement SqlStatements EOF + { + return parser.yy.result; + } + | NewStatement SqlStatements_EDIT EOF + { + return parser.yy.result; + } + ; + +NewStatement + : /* empty */ + { + parser.prepareNewStatement(); + } + ; + +SqlStatements + : + | SqlStatement + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatements + ; + +SqlStatements_EDIT + : SqlStatement_EDIT + { + parser.addStatementLocation(@1); + } + | SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT + { + parser.addStatementLocation(@4); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@4); + } + ; + +SqlStatement + : DataDefinition + | DataManipulation + | QuerySpecification + ; + +SqlStatement_EDIT + : AnyCursor + { + parser.suggestDdlAndDmlKeywords(); + } + | CommonTableExpression 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | DataDefinition_EDIT + | DataManipulation_EDIT + | QuerySpecification_EDIT + | SetSpecification_EDIT + ; + +NonReservedKeyword + : 'ROLE' + | 'OPTION' + | 'STRUCT' + ; + +RegularIdentifier + : 'REGULAR_IDENTIFIER' + | 'VARIABLE_REFERENCE' + | NonReservedKeyword + ; + +// This is a work-around for error handling when a statement starts with some token that the parser can understand but +// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) +NonStartingToken + : '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '<' + | '=' + | '>' + | '[' + | ']' + | '~' + | 'ALL' + | 'ANALYTIC' + | 'AND' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'AS' + | 'ASC' + | 'AVG' + | 'BACKTICK' + | 'BETWEEN' + | 'BIGINT' + | 'BOOLEAN' + | 'BY' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'COMPARISON_OPERATOR' + | 'COUNT' + | 'CROSS' + | 'CURRENT' + | 'DATABASE' + | 'DECIMAL' + | 'DESC' + | 'DISTINCT' + | 'DOUBLE' + | 'DOUBLE_QUOTE' + | 'ELSE' + | 'END' + | 'EXISTS' + | 'FALSE' + | 'FLOAT' + | 'FOLLOWING' + | 'FROM' + | 'FULL' + | 'GROUP' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'IF' + | 'IN' + | 'INNER' + | 'INT' + | 'INTO' + | 'IS' + | 'JOIN' + | 'LEFT' + | 'LIKE' + | 'LIMIT' + | 'MAP' + | 'MAX' + | 'MIN' + | 'NOT' + | 'NULL' + | 'ON' + | 'OPTION' + | 'OR' + | 'ORDER' + | 'OUTER' + | 'OVER' + | 'PARTITION' + | 'PRECEDING' + | 'PURGE' + | 'RANGE' + | 'REGEXP' + | 'REGULAR_IDENTIFIER' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROW' + | 'ROWS' + | 'SCHEMA' + | 'SEMI' + | 'SET' + | 'SINGLE_QUOTE' + | 'SMALLINT' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STRING' + | 'STRUCT' + | 'SUM' + | 'TABLE' + | 'THEN' + | 'TIMESTAMP' + | 'TINYINT' + | 'TRUE' + | 'UNION' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'WHEN' + | 'WHERE' + ; + +// ===================================== Commonly used constructs ===================================== + +Commas + : ',' + | Commas ',' + ; + +AnyCursor + : 'CURSOR' + | 'PARTIAL_CURSOR' + ; + +FromOrIn + : 'FROM' + | 'IN' + ; + +DatabaseOrSchema + : 'DATABASE' + | 'SCHEMA' + ; + +SingleQuotedValue + : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 + | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' + ; + +SingleQuotedValue_EDIT + : 'SINGLE_QUOTE' 'PARTIAL_VALUE' + ; + +DoubleQuotedValue + : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 + | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' + ; + +DoubleQuotedValue_EDIT + : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' + ; + +QuotedValue + : SingleQuotedValue + | DoubleQuotedValue + ; + +QuotedValue_EDIT + : SingleQuotedValue_EDIT + | DoubleQuotedValue_EDIT + ; + +OptionalFromDatabase + : + | FromOrIn DatabaseIdentifier + ; + +OptionalFromDatabase_EDIT + : FromOrIn DatabaseIdentifier_EDIT + ; + +OptionalCascade + : + | 'CASCADE' + ; + +OptionalIfExists + : + | 'IF' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalIfNotExists + : + | 'IF' 'NOT' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfNotExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['NOT EXISTS']); + } + | 'IF' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalInDatabase + : + | 'IN' DatabaseIdentifier + | 'IN' DatabaseIdentifier_EDIT + ; + +OptionalPartitionSpec + : + | PartitionSpec + ; + +OptionalPartitionSpec_EDIT + : PartitionSpec_EDIT + ; + +PartitionSpec + : 'PARTITION' '(' PartitionSpecList ')' + ; + +PartitionSpec_EDIT + : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +RangePartitionSpec + : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + ; + +RangePartitionSpec_EDIT + : UnsignedValueSpecification 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + ; + +RangePartitionComparisonOperator + : 'COMPARISON_OPERATOR' + | '=' + | '<' + | '>' + ; + +ConfigurationName + : RegularIdentifier + | 'CURSOR' + ; + +PartialBacktickedOrAnyCursor + : AnyCursor + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrCursor + : 'CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrPartialCursor + : 'PARTIAL_CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedIdentifier + : 'BACKTICK' 'PARTIAL_VALUE' + ; + +RightParenthesisOrError + : ')' + | error + ; + +OptionalParenthesizedColumnList + : + | ParenthesizedColumnList + ; + +OptionalParenthesizedColumnList_EDIT + : ParenthesizedColumnList_EDIT + ; + +ParenthesizedColumnList + : '(' ColumnList ')' + ; + +ParenthesizedColumnList_EDIT + : '(' ColumnList_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +ColumnList + : ColumnIdentifier + | ColumnList ',' ColumnIdentifier + ; + +ColumnList_EDIT + : ColumnList ',' AnyCursor + { + parser.suggestColumns(); + } + | ColumnList ',' AnyCursor ',' ColumnList + { + parser.suggestColumns(); + } + ; + +ParenthesizedSimpleValueList + : '(' SimpleValueList ')' + ; + +SimpleValueList + : UnsignedValueSpecification + | SimpleValueList ',' UnsignedValueSpecification + ; + +SchemaQualifiedTableIdentifier + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +SchemaQualifiedTableIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + +SchemaQualifiedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] + ; + +SchemaQualifiedIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + ; + +DatabaseIdentifier + : RegularOrBacktickedIdentifier + ; + +DatabaseIdentifier_EDIT + : PartialBacktickedOrCursor + { + parser.suggestDatabases(); + } + ; + +PartitionSpecList + : PartitionExpression + | PartitionSpecList ',' PartitionExpression + ; + +PartitionSpecList_EDIT + : PartitionExpression_EDIT + | PartitionSpecList ',' PartitionExpression_EDIT + | PartitionExpression_EDIT ',' PartitionSpecList + | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList + ; + +PartitionExpression + : ColumnIdentifier '=' ValueExpression + ; + +PartitionExpression_EDIT + : ColumnIdentifier '=' ValueExpression_EDIT + | ColumnIdentifier '=' AnyCursor + { + parser.valueExpressionSuggest(); + } + | PartialBacktickedIdentifier '=' ValueExpression + { + parser.suggestColumns(); + } + | AnyCursor + { + parser.suggestColumns(); + } + ; + +RegularOrBacktickedIdentifier + : RegularIdentifier + | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 + | 'BACKTICK' 'BACKTICK' -> '' + ; + +// TODO: Same as SchemaQualifiedTableIdentifier? +RegularOrBackTickedSchemaQualifiedName + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +RegularOrBackTickedSchemaQualifiedName_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + + +LocalOrSchemaQualifiedName + : RegularOrBackTickedSchemaQualifiedName + | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } + ; + +LocalOrSchemaQualifiedName_EDIT + : RegularOrBackTickedSchemaQualifiedName_EDIT + | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier + ; + +ColumnReference + : BasicIdentifierChain + { + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnReference_EDIT + : BasicIdentifierChain_EDIT + ; + +BasicIdentifierChain + : ColumnIdentifier + { + $$ = [ $1.identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); + } + | BasicIdentifierChain '.' ColumnIdentifier + { + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $1.push($3.identifier); + parser.addUnknownLocation($3.location, $1.concat()); + } + ; + +// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) +BasicIdentifierChain_EDIT + : BasicIdentifierChain '.' PartialBacktickedOrPartialCursor + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + ; + +DerivedColumnChain + : ColumnIdentifier -> [ $1.identifier ] + | DerivedColumnChain '.' ColumnIdentifier + { + $1.push($3.identifier); + } + ; + +DerivedColumnChain_EDIT + : PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns(); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns({ identifierChain: $1 }); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns({ identifierChain: $1 }); + } + | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns(); + } + ; + +ColumnIdentifier + : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } + ; + +PartialBacktickedIdentifierOrPartialCursor + : PartialBacktickedIdentifier + | 'PARTIAL_CURSOR' + ; + +PrimitiveType + : 'BIGINT' + | 'BOOLEAN' + | 'CHAR' OptionalTypeLength + | 'DECIMAL' OptionalTypePrecision + | 'DOUBLE' + | 'FLOAT' + | 'INT' + | 'SMALLINT' + | 'STRING' + | 'TIMESTAMP' + | 'TINYINT' + | 'VARCHAR' OptionalTypeLength + ; + +OptionalTypeLength + : + | '(' 'UNSIGNED_INTEGER' ')' + ; + +OptionalTypePrecision + : + | '(' 'UNSIGNED_INTEGER' ')' + | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' + ; + +// ===================================== SELECT statement ===================================== + +QuerySpecification + : SelectStatement OptionalUnions -> $1 + | CommonTableExpression SelectStatement OptionalUnions + | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 + ; + +QuerySpecification_EDIT + : SelectStatement_EDIT OptionalUnions + | SelectStatement OptionalUnions_EDIT + | CommonTableExpression '(' QuerySpecification_EDIT ')' + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement_EDIT OptionalUnions + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement OptionalUnions_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT + | CommonTableExpression_EDIT '(' QuerySpecification ')' + | CommonTableExpression_EDIT SelectStatement OptionalUnions + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3 }; + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3, tableExpression: $4 } + } + ; + +OptionalUnions + : + | Unions + ; + +OptionalUnions_EDIT + : Unions_EDIT + ; + +Unions + : UnionClause + | Unions UnionClause + ; + +Unions_EDIT + : UnionClause_EDIT + | Unions UnionClause_EDIT + | UnionClause_EDIT Unions + | Unions UnionClause_EDIT Unions + ; + +UnionClause + : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement + ; + +UnionClause_EDIT + : 'UNION' NewStatement 'CURSOR' + { + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + } + | 'UNION' NewStatement 'CURSOR' SelectStatement + { + parser.suggestKeywords(['ALL', 'DISTINCT']); + } + | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + if ($3.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($4); + } + if ($3.suggestFunctions) { + parser.suggestFunctions(); + } + if ($3.suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($3.suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($3.suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.selectListNoTableSuggest($3, $2); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + } + ; + +CommonTableExpression + : 'WITH' WithQueries -> $2 + ; + +CommonTableExpression_EDIT + : 'WITH' WithQueries_EDIT + ; + +WithQueries + : WithQuery -> [$1] + | WithQueries ',' WithQuery -> $1.concat([$3]) + ; + +WithQueries_EDIT + : WithQuery_EDIT + | WithQueries ',' WithQuery_EDIT + { + parser.addCommonTableExpressions($1); + } + | WithQuery_EDIT ',' WithQueries + | WithQueries ',' WithQuery_EDIT ',' WithQueries + { + parser.addCommonTableExpressions($1); + } + ; + +WithQuery + : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' + { + parser.addCteAliasLocation(@1, $1); + $4.alias = $1; + $$ = $4; + } + ; + +WithQuery_EDIT + : RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError + ; + +OptionalAllOrDistinct + : + | 'ALL' + | 'DISTINCT' + ; + +TableExpression + : FromClause OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + ; + +TableExpression_EDIT + : FromClause_EDIT OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins + { + var keywords = []; + + parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + + if ($1) { + if (typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); + } + if ($1.tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); + } + if ($1.tableReferenceList.suggestJoins) { + parser.suggestJoins($1.tableReferenceList.suggestJoins); + } + if ($1.tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE') { + keyword.weight = 1.1; + } + }); + + if ($1.tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($1.tableReferenceList); + } + } + } + + if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($3.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); + } + + if ($3.suggestFilters) { + parser.suggestFilters($3.suggestFilters); + } + if ($3.suggestGroupBys) { + parser.suggestGroupBys($3.suggestGroupBys); + } + if ($3.suggestOrderBys) { + parser.suggestOrderBys($3.suggestOrderBys); + } + + if ($3.empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + } + | FromClause OptionalSelectConditions_EDIT OptionalJoins + { + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$2) { + parser.addClauseLocation('whereClause', @1); + parser.addClauseLocation('limitClause', @1); + return; + } + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + var keywords = []; + + if ($2.suggestColRefKeywords) { + parser.suggestColRefKeywords($2.suggestColRefKeywords); + parser.addColRefIfExists($2); + } + + if ($2.suggestKeywords && $2.suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); + } + + if ($2.cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + } + ; + +OptionalJoins + : + | Joins + | Joins_INVALID + ; + +FromClause + : 'FROM' TableReferenceList + { + $$ = { tableReferenceList : $2 } + } + ; + +FromClause_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReferenceList_EDIT + ; + +OptionalSelectConditions + : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$1, $2, $3, $4, $5], + [{ value: 'WHERE', weight: 7 }, { value: 'GROUP BY', weight: 6 }, { value: 'HAVING', weight: 5 }, { value: 'ORDER BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true]); + + if (keywords.length > 0) { + $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 }; + } else { + $$ = {}; + } + + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $5 ? @5 : undefined; + + if (!$1 && !$2 && !$3 && !$4 && !$5) { + $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$2 && !$3 && !$4 && !$5) { + $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$4 && !$5) { + $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + } + | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + } + | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalOrderByClause OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause_EDIT OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause_EDIT + ; + +OptionalSelectConditions_EDIT + : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$3, $4, $5, $6], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true]); + if ($1.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); + } + $$ = parser.getValueExpressionKeywords($1, keywords); + $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6; + if ($1.columnReference) { + $$.columnReference = $1.columnReference; + } + if (!$3) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$3 && !$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $3, @3, $1, @1); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$4, $5, $6], + [{ value: 'HAVING', weight: 7 }, { value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true, true]); + if ($2.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); + } + if ($2.valueExpression) { + $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); + if ($2.valueExpression.columnReference) { + $$.columnReference = $2.valueExpression.columnReference; + } + } else { + $$ = { suggestKeywords: keywords }; + } + $$.cursorAtEnd = !$4 && !$5 && !$6; + if (!$4 && !$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $4, @4, $2, @2); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalOrderByClause OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$5, $6], + [{ value: 'ORDER BY', weight: 5 }, { value: 'LIMIT', weight: 3 }], + [true, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 }; + if (!$5) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($5, @5, $3, @3); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OrderByClause 'CURSOR' OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$6], + [{ value: 'LIMIT', weight: 3 }], + [true]); + if ($4.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($4.suggestKeywords, 4)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4); + $$.limitClauseLocation = $6 ? @6 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalOrderByClause LimitClause 'CURSOR' + { + $$ = { suggestKeywords: [], cursorAtEnd: true }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = @5; + } + ; + +OptionalWhereClause + : + | WhereClause + ; + +WhereClause + : 'WHERE' SearchCondition -> $2 + ; + +WhereClause_EDIT + : 'WHERE' SearchCondition_EDIT + { + if ($2.suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'WHERE' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OptionalGroupByClause + : + | GroupByClause + ; + +GroupByClause + : 'GROUP' 'BY' GroupByColumnList + { + $$ = { valueExpression: $3 }; + } + ; + +GroupByClause_EDIT + : 'GROUP' 'BY' GroupByColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + | 'GROUP' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +ColumnGroupingSets + : + | ColumnReference + | ColumnGroupingSets ',' ColumnGroupingSets + | '(' ColumnGroupingSets ')' + ; + +ColumnGroupingSets_EDIT + : ColumnGroupingSet_EDIT + | ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSet_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + ; + +GroupByColumnList + : ValueExpression + | GroupByColumnList ',' ValueExpression -> $3 + ; + +GroupByColumnList_EDIT + : ValueExpression_EDIT + | 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + } + | 'CURSOR' ',' GroupByColumnList + { + parser.valueExpressionSuggest(); + } + | ValueExpression_EDIT ',' GroupByColumnList + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList + ; + +GroupByColumnListPartTwo_EDIT + : ValueExpression_EDIT + | AnyCursor ValueExpression + { + parser.valueExpressionSuggest(); + } + | AnyCursor + { + parser.valueExpressionSuggest(); + } + ; + +OptionalOrderByClause + : + | OrderByClause + ; + +OrderByClause + : 'ORDER' 'BY' OrderByColumnList -> $3 + ; + +OrderByClause_EDIT + : 'ORDER' 'BY' OrderByColumnList_EDIT + { + if ($3.emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'ORDER' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OrderByColumnList + : OrderByIdentifier + | OrderByColumnList ',' OrderByIdentifier -> $3 + ; + +OrderByColumnList_EDIT + : OrderByIdentifier_EDIT + | 'CURSOR' OrderByIdentifier + { + $$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } + ; + +OrderByIdentifier + : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) + ; + +OrderByIdentifier_EDIT + : ValueExpression_EDIT OptionalAscOrDesc + { + parser.suggestSelectListAliases(); + } + | AnyCursor OptionalAscOrDesc + { + $$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + ; + +OptionalAscOrDesc + : + { + $$ = { suggestKeywords: ['ASC', 'DESC'] }; + } + | 'ASC' + | 'DESC' + ; + +OptionalLimitClause + : + | LimitClause + ; + +LimitClause + : 'LIMIT' UnsignedNumericLiteral + | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral + | 'LIMIT' 'VARIABLE_REFERENCE' + | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' + ; + +LimitClause_EDIT + : 'LIMIT' 'CURSOR' + ; + +SearchCondition + : ValueExpression + ; + +SearchCondition_EDIT + : ValueExpression_EDIT + ; + +ValueExpression + : NonParenthesizedValueExpressionPrimary + ; + +ValueExpression_EDIT + : NonParenthesizedValueExpressionPrimary_EDIT + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpressionList + : ValueExpression + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression + { + $3.position = $1.position + 1; + $$ = $3; + } + ; + +ValueExpressionList_EDIT + : ValueExpression_EDIT + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT + { + $1.position += 1; + } + | ValueExpression_EDIT ',' ValueExpressionList + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList + { + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList 'CURSOR' ',' ValueExpressionList + { + parser.suggestValueExpressionKeywords($1); + } + | AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | AnyCursor ',' + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | ',' AnyCursor + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + | ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + ; + +InValueList + : NonParenthesizedValueExpressionPrimary + | InValueList ',' NonParenthesizedValueExpressionPrimary + ; + +NonParenthesizedValueExpressionPrimary + : UnsignedValueSpecification + | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart + { + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.expression) { + $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } + } else { + $$ = { function: fn, types: parser.findReturnTypes(fn) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | UserDefinedFunction + | 'NULL' -> { types: [ 'NULL' ] } + ; + +NonParenthesizedValueExpressionPrimary_EDIT + : UnsignedValueSpecification_EDIT + | ColumnOrArbitraryFunctionRef_EDIT + { + if ($1.suggestKeywords) { + $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; + } else { + $$ = { types: ['COLREF'], columnReference: $1 }; + } + } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT + { + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.position) { + parser.applyArgumentTypesToSuggestions(fn, $2.position); + } + $$ = { types: parser.findReturnTypes(fn) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | UserDefinedFunction_EDIT + ; + +ColumnOrArbitraryFunctionRef + : BasicIdentifierChain + { + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; + $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnOrArbitraryFunctionRef_EDIT + : BasicIdentifierChain_EDIT + ; + +SignedInteger + : UnsignedNumericLiteral + | '-' UnsignedNumericLiteral + | '+' UnsignedNumericLiteral + ; + +UnsignedValueSpecification + : UnsignedLiteral + ; + +UnsignedValueSpecification_EDIT + : UnsignedLiteral_EDIT + { + parser.suggestValues($1); + } + ; + +UnsignedLiteral + : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } + | GeneralLiteral + ; + +UnsignedLiteral_EDIT + : GeneralLiteral_EDIT + ; + +UnsignedNumericLiteral + : ExactNumericLiteral + | ApproximateNumericLiteral + ; + +ExactNumericLiteral + : 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' -> $1 + $2 + | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 + | '.' 'UNSIGNED_INTEGER' -> $1 + $2 + ; + +ApproximateNumericLiteral + : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + ; + +GeneralLiteral + : SingleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | DoubleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | TruthValue -> { types: [ 'BOOLEAN' ] } + ; + +GeneralLiteral_EDIT + : SingleQuotedValue_EDIT + { + $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + } + | DoubleQuotedValue_EDIT + { + $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + } + ; + +TruthValue + : 'TRUE' + | 'FALSE' + ; + +OptionalNot + : + | 'NOT' + ; + +SelectSpecification + : ValueExpression OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + $$ = { valueExpression: $1, alias: $2.alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); + } else { + $$ = { valueExpression: $1 } + } + } + | '*' + { + parser.addAsteriskLocation(@1, [{ asterisk: true }]); + $$ = { asterisk: true } + } + ; + +SelectSpecification_EDIT + : ValueExpression_EDIT OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + } + } + + | AnyCursor 'AS' RegularOrBacktickedIdentifier + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(@3, $3, @1); + $$ = { suggestAggregateFunctions: true }; + } + | ValueExpression OptionalCorrelationName_EDIT -> $2 + ; + +SelectList + : SelectSpecification -> [ $1 ] + | SelectList ',' SelectSpecification + { + $1.push($3); + } + ; + +SelectList_EDIT + : SelectSpecification_EDIT + | 'CURSOR' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | 'CURSOR' ',' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectSpecification_EDIT ',' SelectList + | SelectList 'CURSOR' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList 'CURSOR' ',' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList ',' AnyCursor + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' SelectSpecification_EDIT -> $3 + | SelectList ',' AnyCursor SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' AnyCursor ',' + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' -> $3 + | SelectList ',' AnyCursor ',' SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 + ; + +TableReferenceList + : TableReference + | TableReferenceList ',' TableReference -> $3 + ; + +TableReferenceList_EDIT + : TableReference_EDIT + | TableReference_EDIT ',' TableReference + | TableReferenceList ',' TableReference_EDIT + | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList + | TableReferenceList ',' AnyCursor + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TableReference + : TablePrimaryOrJoinedTable + ; + +TableReference_EDIT + : TablePrimaryOrJoinedTable_EDIT + ; + +TablePrimaryOrJoinedTable + : TablePrimary + { + $$ = $1; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + $$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + } + | JoinedTable + ; + +TablePrimaryOrJoinedTable_EDIT + : TablePrimary_EDIT + | JoinedTable_EDIT + ; + +JoinedTable + : TablePrimary Joins -> $2 + ; + +JoinedTable_EDIT + : TablePrimary Joins_EDIT + | TablePrimary_EDIT Joins + ; + +Joins + : JoinType TablePrimary OptionalJoinCondition + { + if ($3 && $3.valueExpression) { + $$ = $3.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($3.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($3.suggestKeywords) { + $$.suggestKeywords = $3.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + | Joins JoinType TablePrimary OptionalJoinCondition + { + if ($4 && $4.valueExpression) { + $$ = $4.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($4.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($4.suggestKeywords) { + $$.suggestKeywords = $4.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + ; + +Joins_INVALID + : JoinType -> { joinType: $1 } + | JoinType Joins -> { joinType: $1 } + ; + +Join_EDIT + : JoinType_EDIT TablePrimary OptionalJoinCondition + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType_EDIT + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType TablePrimary_EDIT OptionalJoinCondition + | JoinType TablePrimary JoinCondition_EDIT + | JoinType 'CURSOR' OptionalJoinCondition + { + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $1, + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + ; + +Joins_EDIT + : Join_EDIT + | Join_EDIT Joins + | Joins Join_EDIT + | Joins Join_EDIT Joins + ; + +JoinType + : 'CROSS' 'JOIN' -> 'CROSS JOIN' + | 'FULL' 'JOIN' -> 'FULL JOIN' + | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' + | 'INNER' 'JOIN' -> 'INNER JOIN' + | 'JOIN' -> 'JOIN' + | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' + | 'LEFT' 'JOIN' -> 'LEFT JOIN' + | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' + | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' + | 'OUTER' 'JOIN' -> 'OUTER JOIN' + | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' + | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' + | 'SEMI' 'JOIN' -> 'SEMI JOIN' + ; + +JoinType_EDIT + : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + ; + +OptionalJoinCondition + : -> { noJoinCondition: true, suggestKeywords: ['ON'] } + | 'ON' ValueExpression -> { valueExpression: $2 } + ; + +UsingColList + : RegularOrBacktickedIdentifier + | UsingColList ',' RegularOrBacktickedIdentifier + ; + +JoinCondition_EDIT + : 'ON' ValueExpression_EDIT + | 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + } + ; + +TablePrimary + : TableOrQueryName OptionalCorrelationName + { + $$ = { + primary: $1 + } + if ($1.identifierChain) { + if ($2) { + $1.alias = $2.alias + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } else if ($2.suggestKeywords) { + keywords = $2.suggestKeywords; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + | DerivedTable OptionalCorrelationName + { + $$ = { + primary: $1 + }; + + if ($2) { + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); + } + + var keywords = []; + if (!$2) { + keywords = ['AS']; + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +TablePrimary_EDIT + : TableOrQueryName_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTableAliasLocation($2.location, $2.alias, $1.identifierChain); + } + } + | DerivedTable_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias); + } + } + | DerivedTable OptionalCorrelationName_EDIT + ; + +TableOrQueryName + : SchemaQualifiedTableIdentifier + ; + +TableOrQueryName_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +DerivedTable + : TableSubQuery + ; + +DerivedTable_EDIT + : TableSubQuery_EDIT + ; + +OptionalOnColumn + : + | 'ON' ValueExpression + ; + +OptionalOnColumn_EDIT + : 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'ON' ValueExpression_EDIT + ; + +PushQueryState + : + { + parser.pushQueryState(); + } + ; + +PopQueryState + : + { + parser.popQueryState(); + } + ; + +TableSubQuery + : '(' TableSubQueryInner ')' -> $2 + | '(' DerivedTable OptionalCorrelationName ')' + { + if ($3) { + $2.alias = $3.alias; + parser.addTablePrimary({ subQueryAlias: $3.alias }); + parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); + } + $$ = $2; + } + ; + +TableSubQuery_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + ; + +TableSubQueryInner + : PushQueryState SubQuery + { + var subQuery = parser.getSubQuery($2); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + $$ = subQuery; + } + ; + +TableSubQueryInner_EDIT + : PushQueryState SubQuery_EDIT PopQueryState + ; + +SubQuery + : QueryExpression + ; + +SubQuery_EDIT + : QueryExpression_EDIT + ; + +QueryExpression + : QueryExpressionBody + ; + +QueryExpression_EDIT + : QueryExpressionBody_EDIT + ; + +QueryExpressionBody + : NonJoinQueryExpression + ; + +QueryExpressionBody_EDIT + : NonJoinQueryExpression_EDIT + ; + +NonJoinQueryExpression + : NonJoinQueryTerm + ; + +NonJoinQueryExpression_EDIT + : NonJoinQueryTerm_EDIT + ; + +NonJoinQueryTerm + : NonJoinQueryPrimary + ; + +NonJoinQueryTerm_EDIT + : NonJoinQueryPrimary_EDIT + ; + +NonJoinQueryPrimary + : SimpleTable + ; + +NonJoinQueryPrimary_EDIT + : SimpleTable_EDIT + ; + +SimpleTable + : QuerySpecification + ; + +SimpleTable_EDIT + : QuerySpecification_EDIT + ; + +OptionalCorrelationName + : + | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } + | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | 'AS' QuotedValue -> { alias: $2, location: @2 } + ; + +OptionalCorrelationName_EDIT + : PartialBacktickedIdentifier + | QuotedValue_EDIT + | 'AS' PartialBacktickedIdentifier + | 'AS' QuotedValue_EDIT + | 'AS' 'CURSOR' + ; + +UserDefinedFunction + : AggregateFunction OptionalOverClause + { + if (!$2) { + $1.suggestKeywords = ['OVER']; + } + } + | AnalyticFunction OverClause + | CastFunction + ; + +UserDefinedFunction_EDIT + : AggregateFunction_EDIT + | AggregateFunction OptionalOverClause_EDIT + | AnalyticFunction_EDIT + | AnalyticFunction_EDIT OverClause + | AnalyticFunction 'CURSOR' + { + parser.suggestKeywords(['OVER']); + } + | AnalyticFunction OverClause_EDIT + | CastFunction_EDIT + ; + +ArbitraryFunction + : RegularIdentifier ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + ; + +ArbitraryFunction_EDIT + : RegularIdentifier ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ArbitraryFunctionName + : 'ARRAY' + | 'IF' + | 'MAP' + | 'TRUNCATE' + ; + +ArbitraryFunctionRightPart + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } + ; + +ArbitraryFunctionRightPart_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { position: 1 } + } + | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 + ; + +AggregateFunction + : CountFunction + | SumFunction + | OtherAggregateFunction + ; + +AggregateFunction_EDIT + : CountFunction_EDIT + | SumFunction_EDIT + | OtherAggregateFunction_EDIT + ; + +AnalyticFunction + : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } + ; + +AnalyticFunction_EDIT + : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError + { + parser.applyArgumentTypesToSuggestions($1, $3.position); + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOverClause + : + | OverClause + ; + +OptionalOverClause_EDIT + : OverClause_EDIT + ; + +OverClause + : 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression + ; + +OverClause_EDIT + : 'OVER' WindowExpression_EDIT + ; + +WindowExpression + : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' + ; + +WindowExpression_EDIT + : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$3 && !$4) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$3) { + parser.suggestKeywords(['PARTITION BY']); + } + } + | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$6) { + parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($4); + } + } + ; + +OptionalPartitionBy + : + | PartitionBy + ; + +PartitionBy + : 'PARTITION' 'BY' ValueExpressionList -> $3 + ; + +PartitionBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'PARTITION' 'BY' ValueExpressionList_EDIT + ; + +OptionalOrderByAndWindow + : + | OrderByClause OptionalWindowSpec + ; + +OptionalOrderByAndWindow_EDIT + : OrderByClause_EDIT + { + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + } + | OrderByClause 'CURSOR' OptionalWindowSpec + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); + } + if (!$3) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + } + | OrderByClause WindowSpec_EDIT + ; + +OptionalWindowSpec + : + | WindowSpec + ; + +WindowSpec + : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + ; + +WindowSpec_EDIT + : RowsOrRange 'CURSOR' + { + parser.suggestKeywords(['BETWEEN']); + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' + { + if (!$4 && !$5) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$5) { + parser.suggestKeywords(['AND']); + } + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT + ; + +PopLexerState + : + { + lexer.popState(); + } + ; + +PushHdfsLexerState + : + { + lexer.begin('hdfs'); + } + ; + +HdfsPath + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' + ; + +HdfsPath_EDIT + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: '' }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: '' }); + } + ; + +RowsOrRange + : 'ROWS' + | 'RANGE' + ; + +OptionalCurrentOrPreceding + : + | IntegerOrUnbounded 'PRECEDING' + | 'CURRENT' 'ROW' + ; + +OptionalCurrentOrPreceding_EDIT + : IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['PRECEDING']); + } + | 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + ; + +OptionalAndFollowing + : + | 'AND' 'CURRENT' 'ROW' + | 'AND' IntegerOrUnbounded 'FOLLOWING' + ; + +OptionalAndFollowing_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + } + | 'AND' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + | 'AND' IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['FOLLOWING']); + } + ; + +IntegerOrUnbounded + : 'UNSIGNED_INTEGER' + | 'UNBOUNDED' + ; + +OptionalHavingClause + : + | HavingClause + ; + +HavingClause + : 'HAVING' ValueExpression + ; + +HavingClause_EDIT + : 'HAVING' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + | 'HAVING' ValueExpression_EDIT + { + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + ; + +CastFunction + : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ')' -> { types: [ 'T' ] } + ; + +CastFunction_EDIT + : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + ; + +CountFunction + : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +CountFunction_EDIT + : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +OtherAggregateFunction_EDIT + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, $4.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction_Type + : 'AVG' + | 'MAX' + | 'MIN' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARIANCE' + ; + +FromOrComma + : 'FROM' + | ',' + ; + +SumFunction + : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } + | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } + ; + +SumFunction_EDIT + : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, 1); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; diff --git a/src/jison/sql/phoenix/sql_set.jison b/src/jison/sql/phoenix/sql_set.jison new file mode 100644 index 0000000..14cff5c --- /dev/null +++ b/src/jison/sql/phoenix/sql_set.jison @@ -0,0 +1,46 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : SetSpecification + ; + +DataDefinition_EDIT + : 'SET' 'CURSOR' + { + parser.suggestSetOptions(); + } + ; + +SetSpecification + : 'SET' SetOption '=' SetValue + | 'SET' 'ALL' + ; + +SetOption + : RegularIdentifier + | SetOption '.' RegularIdentifier + ; + +SetValue + : RegularIdentifier + | SignedInteger + | SignedInteger RegularIdentifier + | QuotedValue + | 'TRUE' + | 'FALSE' + | 'NULL' + ; diff --git a/src/jison/sql/phoenix/sql_update.jison b/src/jison/sql/phoenix/sql_update.jison new file mode 100644 index 0000000..1091c41 --- /dev/null +++ b/src/jison/sql/phoenix/sql_update.jison @@ -0,0 +1,122 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : UpdateStatement + ; + +DataManipulation_EDIT + : UpdateStatement_EDIT + ; + +UpdateStatement + : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + ; + +UpdateStatement_EDIT + : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' + { + parser.suggestKeywords([ 'WHERE' ]); + } + | 'UPDATE' TargetTable 'CURSOR' + { + parser.suggestKeywords([ 'SET' ]); + } + | 'UPDATE' TargetTable_EDIT + | 'UPDATE' TargetTable + | 'UPDATE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TargetTable + : TableName + ; + +TargetTable_EDIT + : TableName_EDIT + ; + +TableName + : LocalOrSchemaQualifiedName + { + parser.addTablePrimary($1); + } + ; + +TableName_EDIT + : LocalOrSchemaQualifiedName_EDIT + ; + +SetClauseList + : SetClause + | SetClauseList ',' SetClause + ; + +SetClauseList_EDIT + : SetClause_EDIT + | SetClauseList ',' SetClause_EDIT + | SetClause_EDIT ',' SetClauseList + | SetClauseList ',' SetClause_EDIT ',' SetClauseList + ; + +SetClause + : SetTarget '=' UpdateSource + ; + +SetClause_EDIT + : SetTarget '=' UpdateSource_EDIT + | SetTarget 'CURSOR' + { + parser.suggestKeywords([ '=' ]); + } + | 'CURSOR' + { + parser.suggestColumns(); + } + ; + +SetTarget + : ColumnReference + ; + +UpdateSource + : ValueExpression + ; + +UpdateSource_EDIT + : ValueExpression_EDIT + ; + +OptionalFromJoinedTable + : + | 'FROM' TableReference -> $2 + ; + +FromJoinedTable_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReference_EDIT + ; diff --git a/src/jison/sql/phoenix/sql_use.jison b/src/jison/sql/phoenix/sql_use.jison new file mode 100644 index 0000000..c99b2c2 --- /dev/null +++ b/src/jison/sql/phoenix/sql_use.jison @@ -0,0 +1,39 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : UseStatement + ; + +DataDefinition_EDIT + : UseStatement_EDIT + ; + +UseStatement + : 'USE' RegularIdentifier + { + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $2; + } + } + ; + +UseStatement_EDIT + : 'USE' 'CURSOR' + { + parser.suggestDatabases(); + } + ; diff --git a/src/jison/sql/phoenix/sql_valueExpression.jison b/src/jison/sql/phoenix/sql_valueExpression.jison new file mode 100644 index 0000000..3dcc339 --- /dev/null +++ b/src/jison/sql/phoenix/sql_valueExpression.jison @@ -0,0 +1,839 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +ValueExpression + : 'NOT' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression -> $2 + | '-' ValueExpression %prec NEGATION + { + // verifyType($2, 'NUMBER'); + $$ = $2; + $2.types = ['NUMBER']; + } + | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | 'NOT' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | '!' AnyCursor + { + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | '~' 'PARTIAL_CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + $$ = { types: [ 'T' ] }; + } + | '-' ValueExpression_EDIT %prec NEGATION + { + if (!$2.typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; + } + | '-' 'PARTIAL_CURSOR' %prec NEGATION + { + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'IS' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' + { + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'NULL' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'FALSE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'TRUE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } + } + ; + +// ------------------ EXISTS and parenthesized ------------------ +ValueExpression + : 'EXISTS' TableSubQuery + { + $$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + } + | '(' ValueExpression ')' -> $2 + ; + +ValueExpression_EDIT + : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } + | '(' ValueExpression_EDIT RightParenthesisOrError + { + $$ = $2; + } + | '(' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['T'], typeSet: true }; + } + ; + +// ------------------ COMPARISON ------------------ + +ValueExpression + : ValueExpression '=' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '<' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '>' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '=' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '<' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '>' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT '=' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '<' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '>' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '=' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression '<' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + } + | ValueExpression '>' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; + } + | ValueExpression '=' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '<' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '>' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + + +// ------------------ IN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT + { + if ($4.inValueEdit) { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + parser.applyTypeToSuggestions($1.types); + } + if ($4.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT + { + if ($3.inValueEdit) { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + } + if ($3.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + ; + +ValueExpressionInSecondPart_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } + | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } + ; + +// ------------------ BETWEEN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($4.types[0] === $6.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($4.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $6.types[0] && !$4.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $4.types[0] && !$6.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $5); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($4, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$3.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $3.types[0] && !$5.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $4); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ BOOLEAN ------------------ + +ValueExpression + : ValueExpression 'OR' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'AND' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' 'OR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'OR' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'OR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'OR' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | 'CURSOR' 'AND' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'AND' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'AND' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'AND' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + +// ------------------ ARITHMETIC ------------------ + +ValueExpression + : ValueExpression '-' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression '*' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '*' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression_EDIT '-' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '*' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '-' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '*' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '-' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression '*' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + ; + +// ------------------ LIKE, RLIKE and REGEXP ------------------ + +ValueExpression + : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } + ; + +LikeRightPart + : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + ; + +LikeRightPart_EDIT + : 'LIKE' ValueExpression_EDIT + | 'RLIKE' ValueExpression_EDIT + | 'REGEXP' ValueExpression_EDIT + | 'LIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'RLIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'REGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | 'CURSOR' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'NOT' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ CASE, WHEN, THEN ------------------ + +ValueExpression + : 'CASE' CaseRightPart -> $2 + | 'CASE' ValueExpression CaseRightPart -> $3 + ; + +ValueExpression_EDIT + : 'CASE' CaseRightPart_EDIT -> $2 + | 'CASE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 + | 'CASE' ValueExpression 'CURSOR' EndOrError + { + parser.suggestValueExpressionKeywords($2, ['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression_EDIT CaseRightPart + { + $$ = $3; + $$.suggestFilters = $2.suggestFilters; + } + | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } + ; + +CaseRightPart + : CaseWhenThenList 'END' -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'END' + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + ; + +CaseRightPart_EDIT + : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['END']); + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'CURSOR' ValueExpression EndOrError + { + if ($4.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'CURSOR' EndOrError + { + if ($3.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + $$.suggestFilters = $3.suggestFilters + } + | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = parser.findCaseType($1); + } + | 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CURSOR' 'ELSE' ValueExpression EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = $3; + } + | 'CURSOR' 'ELSE' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ] }; + } + ; + +EndOrError + : 'END' + | error + ; + +CaseWhenThenList + : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } + | CaseWhenThenList CaseWhenThenListPartTwo + { + $1.caseTypes.push($2); + $$ = { caseTypes: $1.caseTypes, lastType: $2 }; + } + ; + +CaseWhenThenList_EDIT + : CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList + | CaseWhenThenList 'CURSOR' CaseWhenThenList + { + parser.suggestValueExpressionKeywords($1, ['WHEN']); + } + | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 + ; + +CaseWhenThenListPartTwo + : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 + ; + +CaseWhenThenListPartTwo_EDIT + : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } + | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } + | 'CURSOR' ValueExpression 'THEN' + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' ValueExpression 'THEN' ValueExpression + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [$4] }; + } + | 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [$4], suggestFilters: true }; + } + | 'WHEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'CURSOR' ValueExpression + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + ; diff --git a/src/jison/sql/phoenix/syntax_footer.jison b/src/jison/sql/phoenix/syntax_footer.jison new file mode 100644 index 0000000..ec25eab --- /dev/null +++ b/src/jison/sql/phoenix/syntax_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/phoenix/syntax_header.jison b/src/jison/sql/phoenix/syntax_header.jison new file mode 100644 index 0000000..e2c6815 --- /dev/null +++ b/src/jison/sql/phoenix/syntax_header.jison @@ -0,0 +1,28 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlSyntax + +%% diff --git a/src/jison/sql/presto/autocomplete_footer.jison b/src/jison/sql/presto/autocomplete_footer.jison new file mode 100644 index 0000000..899433d --- /dev/null +++ b/src/jison/sql/presto/autocomplete_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSqlParser(parser); \ No newline at end of file diff --git a/src/jison/sql/presto/autocomplete_header.jison b/src/jison/sql/presto/autocomplete_header.jison new file mode 100644 index 0000000..3b90682 --- /dev/null +++ b/src/jison/sql/presto/autocomplete_header.jison @@ -0,0 +1,29 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'CURSOR' 'PARTIAL_CURSOR' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlAutocomplete + +%% diff --git a/src/jison/sql/presto/sql.jisonlex b/src/jison/sql/presto/sql.jisonlex new file mode 100644 index 0000000..274b628 --- /dev/null +++ b/src/jison/sql/presto/sql.jisonlex @@ -0,0 +1,406 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%options case-insensitive flex +%s between +%x hdfs doubleQuotedValue singleQuotedValue backtickedValue +%% + +\s { /* skip whitespace */ } +'--'.* { /* skip comments */ } +[/][*][^*]*[*]+([^/*][^*]*[*]+)*[/] { /* skip comments */ } + +'\u2020' { parser.yy.partialCursor = false; parser.yy.cursorFound = yylloc; return 'CURSOR'; } +'\u2021' { parser.yy.partialCursor = true; parser.yy.cursorFound = yylloc; return 'PARTIAL_CURSOR'; } + +// Reserved Keywords +'ALL' { return 'ALL'; } +'ALTER' { parser.determineCase(yytext); parser.addStatementTypeLocation('ALTER', yylloc, yy.lexer.upcomingInput()); return 'ALTER'; } +'AND' { return 'AND'; } +'ARRAY' { return 'ARRAY'; } +'AS' { return 'AS'; } +'ASC' { return 'ASC'; } +'AUTHORIZATION' { return 'AUTHORIZATION'; } +'BETWEEN' { this.begin('between'); return 'BETWEEN'; } +'BIGINT' { return 'BIGINT'; } +'BINARY' { return 'BINARY'; } +'BOOLEAN' { return 'BOOLEAN'; } +'BY' { return 'BY'; } +'CACHE' { return 'CACHE'; } +'CASE' { return 'CASE'; } +'CHAR' { return 'CHAR'; } +'COLUMN' { return 'COLUMN'; } +'CONF' { return 'CONF'; } +'CONSTRAINT' { return 'CONSTRAINT'; } +'CREATE' { parser.determineCase(yytext); return 'CREATE'; } +'CROSS' { return 'CROSS'; } +'CUBE' { return 'CUBE'; } +'CURRENT' { return 'CURRENT'; } +'DATABASE' { return 'DATABASE'; } +'DATE' { return 'DATE'; } +'DECIMAL' { return 'DECIMAL'; } +'DELETE' { parser.determineCase(yytext); return 'DELETE'; } +'DESC' { return 'DESC'; } +'DESCRIBE' { parser.determineCase(yytext); return 'DESCRIBE'; } +'DISTINCT' { return 'DISTINCT'; } +'DIV' { return 'ARITHMETIC_OPERATOR'; } +'DOUBLE' { return 'DOUBLE'; } +'DROP' { parser.determineCase(yytext); parser.addStatementTypeLocation('DROP', yylloc, yy.lexer.upcomingInput()); return 'DROP'; } +'ELSE' { return 'ELSE'; } +'END' { return 'END'; } +'EXISTS' { parser.yy.correlatedSubQuery = true; return 'EXISTS'; } +'EXTENDED' { return 'EXTENDED'; } +'EXTERNAL' { return 'EXTERNAL'; } +'FALSE' { return 'FALSE'; } +'FLOAT' { return 'FLOAT'; } +'FOLLOWING' { return 'FOLLOWING'; } +'FOR' { return 'FOR'; } +'FOREIGN' { return 'FOREIGN'; } +'FROM' { parser.determineCase(yytext); return 'FROM'; } +'FULL' { return 'FULL'; } +'FUNCTION' { return 'FUNCTION'; } +'GRANT' { return 'GRANT'; } +'GROUP' { return 'GROUP'; } +'GROUPING' { return 'GROUPING'; } +'HAVING' { return 'HAVING'; } +'IF' { return 'IF'; } +'IMPORT' { parser.determineCase(yytext); return 'IMPORT'; } +'IN' { return 'IN'; } +'INNER' { return 'INNER'; } +'INSERT' { parser.determineCase(yytext); return 'INSERT'; } +'INT' { return 'INT'; } +'INTEGER' { return 'INTEGER'; } +'INTO' { return 'INTO'; } +'IS' { return 'IS'; } +'JOIN' { return 'JOIN'; } +'LATERAL' { return 'LATERAL'; } +'LEFT' { return 'LEFT'; } +'LIKE' { return 'LIKE'; } +'LIMIT' { return 'LIMIT'; } +'LOCAL' { return 'LOCAL'; } +'MACRO' { return 'MACRO'; } +'MAP' { return 'MAP'; } +'NONE' { return 'NONE'; } +'NOT' { return 'NOT'; } +'NULL' { return 'NULL'; } +'OF' { return 'OF'; } +'ON' { return 'ON'; } +'OPTION' { return 'OPTION'; } +'OR' { return 'OR'; } +'ORDER' { return 'ORDER'; } +'OUT' { return 'OUT'; } +'OUTER' { return 'OUTER'; } +'PARTITION' { return 'PARTITION'; } +'PRECEDING' { return 'PRECEDING'; } +'PRIMARY' { return 'PRIMARY'; } +'PURGE' { return 'PURGE'; } +'RANGE' { return 'RANGE'; } +'REFERENCES' { return 'REFERENCES'; } +'REGEXP' { return 'REGEXP'; } +'REVOKE' { return 'REVOKE'; } +'RIGHT' { return 'RIGHT'; } +'RLIKE' { return 'RLIKE'; } +'ROLLUP' { return 'ROLLUP'; } +'ROW' { return 'ROW'; } +'ROWS' { return 'ROWS'; } +'SCHEMA' { return 'SCHEMA'; } +'SELECT' { parser.determineCase(yytext); parser.addStatementTypeLocation('SELECT', yylloc); return 'SELECT'; } +'SEMI' { return 'SEMI'; } +'SET' { parser.determineCase(yytext); parser.addStatementTypeLocation('SET', yylloc); return 'SET'; } +'SHOW' { parser.determineCase(yytext); parser.addStatementTypeLocation('SHOW', yylloc); return 'SHOW'; } +'SMALLINT' { return 'SMALLINT'; } +'STRING' { return 'STRING'; } +'SYNC' { return 'SYNC'; } +'TABLE' { return 'TABLE'; } +'THEN' { return 'THEN'; } +'TIMESTAMP' { return 'TIMESTAMP'; } +'TINYINT' { return 'TINYINT'; } +'TO' { return 'TO'; } +'TRUE' { return 'TRUE'; } +'TRUNCATE' { parser.determineCase(yytext); parser.addStatementTypeLocation('TRUNCATE', yylloc, yy.lexer.upcomingInput()); return 'TRUNCATE'; } +'UNBOUNDED' { return 'UNBOUNDED'; } +'UNION' { return 'UNION'; } +'UPDATE' { parser.determineCase(yytext); return 'UPDATE'; } +'USE' { parser.determineCase(yytext); parser.addStatementTypeLocation('USE', yylloc); return 'USE'; } +'USER' { return 'USER'; } +'USING' { return 'USING'; } +'UTC_TIMESTAMP' { return 'UTC_TIMESTAMP'; } +'VALUES' { return 'VALUES'; } +'VARCHAR' { return 'VARCHAR'; } +'VIEW' { return 'VIEW'; } +'VIEWS' { return 'VIEWS'; } +'WHEN' { return 'WHEN'; } +'WHERE' { return 'WHERE'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } + +// Non-reserved Keywords +'ABORT' { parser.determineCase(yytext); return 'ABORT'; } +'ADD' { return 'ADD'; } +'ADMIN' { return 'ADMIN'; } +'AFTER' { return 'AFTER'; } +'ANALYZE' { parser.determineCase(yytext); return 'ANALYZE'; } +'ARCHIVE' { return 'ARCHIVE'; } +'ASC' { return 'ASC'; } +'AVRO' { return 'AVRO'; } +'BUCKET' { return 'BUCKET'; } +'BUCKETS' { return 'BUCKETS'; } +'CASCADE' { return 'CASCADE'; } +'CHANGE' { return 'CHANGE'; } +'CLUSTER' { return 'CLUSTER'; } +'CLUSTERED' { return 'CLUSTERED'; } +'COLLECTION' { return 'COLLECTION'; } +'COLUMNS' { return 'COLUMNS'; } +'COMMENT' { return 'COMMENT'; } +'COMPACT' { return 'COMPACT'; } +'COMPACTIONS' { return 'COMPACTIONS'; } +'COMPUTE' { return 'COMPUTE'; } +'CONCATENATE' { return 'CONCATENATE'; } +'DATA' { return 'DATA'; } +'DATABASES' { return 'DATABASES'; } +'DAY' { return 'DAY'; } +'DAYOFWEEK' { return 'DAYOFWEEK'; } +'DBPROPERTIES' { return 'DBPROPERTIES'; } +'DEFERRED' { return 'DEFERRED'; } +'DEFINED' { return 'DEFINED'; } +'DELIMITED' { return 'DELIMITED'; } +'DEPENDENCY' { return 'DEPENDENCY'; } +'DESC' { return 'DESC'; } +'DIRECTORY' { this.begin('hdfs'); return 'DIRECTORY'; } +'DISABLE' { return 'DISABLE'; } +'DISTRIBUTE' { return 'DISTRIBUTE'; } +DOUBLE\s+PRECISION { return 'DOUBLE_PRECISION'; } +'ENABLE' { return 'ENABLE'; } +'ESCAPED' { return 'ESCAPED'; } +'EXCHANGE' { return 'EXCHANGE'; } +'EXPLAIN' { parser.determineCase(yytext); return 'EXPLAIN'; } +'EXPORT' { parser.determineCase(yytext); return 'EXPORT'; } +'FIELDS' { return 'FIELDS'; } +'FILE' { return 'FILE'; } +'FILEFORMAT' { return 'FILEFORMAT'; } +'FIRST' { return 'FIRST'; } +'FORMAT' { return 'FORMAT'; } +'FORMATTED' { return 'FORMATTED'; } +'FUNCTION' { return 'FUNCTION'; } +'FUNCTIONS' { return 'FUNCTIONS'; } +'HOUR' { return 'HOUR'; } +'IDXPROPERTIES' { return 'IDXPROPERTIES'; } +'INDEX' { return 'INDEX'; } +'INDEXES' { return 'INDEXES'; } +'INPATH' { this.begin('hdfs'); return 'INPATH'; } +'INPUTFORMAT' { return 'INPUTFORMAT'; } +'ITEMS' { return 'ITEMS'; } +'JAR' { return 'JAR'; } +'JSONFILE' { return 'JSONFILE'; } +'KEY' { return 'KEY'; } +'KEYS' { return 'KEYS'; } +'LINES' { return 'LINES'; } +'LOAD' { parser.determineCase(yytext); return 'LOAD'; } +'LOCATION' { this.begin('hdfs'); return 'LOCATION'; } +'LOCK' { return 'LOCK'; } +'LOCKS' { return 'LOCKS'; } +'MATCHED' { return 'MATCHED'; } +'MERGE' { return 'MERGE'; } +'METADATA' { return 'METADATA'; } +'MINUTE' { return 'MINUTE'; } +'MONTH' { return 'MONTH'; } +'MSCK' { return 'MSCK'; } +'NO_DROP' { return 'NO_DROP'; } +'NORELY' { return 'NORELY'; } +'NOSCAN' { return 'NOSCAN'; } +'NOVALIDATE' { return 'NOVALIDATE'; } +'OFFLINE' { return 'OFFLINE'; } +'ORC' { return 'ORC'; } +'OUTPUTFORMAT' { return 'OUTPUTFORMAT'; } +'OVER' { return 'OVER'; } +'OVERWRITE' { return 'OVERWRITE'; } +OVERWRITE\s+DIRECTORY { this.begin('hdfs'); return 'OVERWRITE_DIRECTORY'; } +'OWNER' { return 'OWNER'; } +'PARQUET' { return 'PARQUET'; } +'PARTITIONED' { return 'PARTITIONED'; } +'PARTITIONS' { return 'PARTITIONS'; } +'PERCENT' { return 'PERCENT'; } +'PRIVILEGES' { return 'PRIVILEGES'; } +'PURGE' { return 'PURGE'; } +'QUARTER' { return 'QUARTER'; } +'RCFILE' { return 'RCFILE'; } +'REBUILD' { return 'REBUILD'; } +'RECOVER' { return 'RECOVER'; } +'RELOAD' { parser.determineCase(yytext); return 'RELOAD'; } +'RELY' { return 'RELY'; } +'RENAME' { return 'RENAME'; } +'REPAIR' { return 'REPAIR'; } +'REPLACE' { return 'REPLACE'; } +'REPLICATION' { return 'REPLICATION'; } +'RESTRICT' { return 'RESTRICT'; } +'ROLE' { return 'ROLE'; } +'ROLES' { return 'ROLES'; } +'SCHEMA' { return 'SCHEMA'; } +'SCHEMAS' { return 'SCHEMAS'; } +'SECOND' { return 'SECOND'; } +'SEQUENCEFILE' { return 'SEQUENCEFILE'; } +'SERDE' { return 'SERDE'; } +'SERDEPROPERTIES' { return 'SERDEPROPERTIES'; } +'SETS' { return 'SETS'; } +'SHOW' { parser.determineCase(yytext); return 'SHOW'; } +'SHOW_DATABASE' { return 'SHOW_DATABASE'; } +'SKEWED LOCATION' { return 'SKEWED_LOCATION'; } // Hack to prevent hdfs lexer state +'SKEWED' { return 'SKEWED'; } +'SORT' { return 'SORT'; } +'SORTED' { return 'SORTED'; } +'STATISTICS' { return 'STATISTICS'; } +'STORED' { return 'STORED'; } +STORED\s+AS\s+DIRECTORIES { return 'STORED_AS_DIRECTORIES'; } +'STRING' { return 'STRING'; } +'STRUCT' { return 'STRUCT'; } +'TABLES' { return 'TABLES'; } +'TABLESAMPLE' { return 'TABLESAMPLE'; } +'TBLPROPERTIES' { return 'TBLPROPERTIES'; } +'TEMPORARY' { return 'TEMPORARY'; } +'TERMINATED' { return 'TERMINATED'; } +'TEXTFILE' { return 'TEXTFILE'; } +'TINYINT' { return 'TINYINT'; } +'TOUCH' { return 'TOUCH'; } +'TRANSACTIONAL' { return 'TRANSACTIONAL'; } +'TRANSACTIONS' { return 'TRANSACTIONS'; } +'UNARCHIVE' { return 'UNARCHIVE'; } +'UNIONTYPE' { return 'UNIONTYPE'; } +'USE' { parser.determineCase(yytext); return 'USE'; } +'VIEW' { return 'VIEW'; } +'WAIT' { return 'WAIT'; } +'WEEK' { return 'WEEK'; } +'WINDOW' { return 'WINDOW'; } +'WITH' { parser.determineCase(yytext); parser.addStatementTypeLocation('WITH', yylloc); return 'WITH'; } +'YEAR' { return 'YEAR'; } + +'.' { return '.'; } +'[' { return '['; } +']' { return ']'; } + +'AND' { this.popState(); return 'BETWEEN_AND'; } + +// --- UDFs --- +AVG\s*\( { yy.lexer.unput('('); yytext = 'avg'; parser.addFunctionLocation(yylloc, yytext); return 'AVG'; } +CAST\s*\( { yy.lexer.unput('('); yytext = 'cast'; parser.addFunctionLocation(yylloc, yytext); return 'CAST'; } +COLLECT_LIST\s*\( { yy.lexer.unput('('); yytext = 'collect_list'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_LIST'; } +COLLECT_SET\s*\( { yy.lexer.unput('('); yytext = 'collect_set'; parser.addFunctionLocation(yylloc, yytext); return 'COLLECT_SET'; } +CORR\s*\( { yy.lexer.unput('('); yytext = 'corr'; parser.addFunctionLocation(yylloc, yytext); return 'CORR'; } +COUNT\s*\( { yy.lexer.unput('('); yytext = 'count'; parser.addFunctionLocation(yylloc, yytext); return 'COUNT'; } +COVAR_POP\s*\( { yy.lexer.unput('('); yytext = 'covar_pop'; parser.addFunctionLocation(yylloc, yytext); return 'COVAR_POP'; } +COVAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'covar_samp'; parser.addFunctionLocation(yylloc, yytext); return 'COVAR_SAMP'; } +EXTRACT\s*\( { yy.lexer.unput('('); yytext = 'extract'; parser.addFunctionLocation(yylloc, yytext); return 'EXTRACT'; } +HISTOGRAM_NUMERIC\s*\( { yy.lexer.unput('('); yytext = 'histogram_numeric'; parser.addFunctionLocation(yylloc, yytext); return 'HISTOGRAM_NUMERIC'; } +MAX\s*\( { yy.lexer.unput('('); yytext = 'max'; parser.addFunctionLocation(yylloc, yytext); return 'MAX'; } +MIN\s*\( { yy.lexer.unput('('); yytext = 'min'; parser.addFunctionLocation(yylloc, yytext); return 'MIN'; } +NTILE\s*\( { yy.lexer.unput('('); yytext = 'ntile'; parser.addFunctionLocation(yylloc, yytext); return 'NTILE'; } +PERCENTILE\s*\( { yy.lexer.unput('('); yytext = 'percentile'; parser.addFunctionLocation(yylloc, yytext); return 'PERCENTILE'; } +PERCENTILE_APPROX\s*\( { yy.lexer.unput('('); yytext = 'percentile_approx'; parser.addFunctionLocation(yylloc, yytext); return 'PERCENTILE_APPROX'; } +STDDEV_POP\s*\( { yy.lexer.unput('('); yytext = 'stddev_pop'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_POP'; } +STDDEV_SAMP\s*\( { yy.lexer.unput('('); yytext = 'stddev_samp'; parser.addFunctionLocation(yylloc, yytext); return 'STDDEV_SAMP'; } +SUM\s*\( { yy.lexer.unput('('); yytext = 'sum'; parser.addFunctionLocation(yylloc, yytext); return 'SUM'; } +VAR_POP\s*\( { yy.lexer.unput('('); yytext = 'var_pop'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_POP'; } +VAR_SAMP\s*\( { yy.lexer.unput('('); yytext = 'var_samp'; parser.addFunctionLocation(yylloc, yytext); return 'VAR_SAMP'; } +VARIANCE\s*\( { yy.lexer.unput('('); yytext = 'variance'; parser.addFunctionLocation(yylloc, yytext); return 'VARIANCE'; } + +// Analytical functions +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +CUME_DIST\s*\( { yy.lexer.unput('('); yytext = 'cume_dist'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +DENSE_RANK\s*\( { yy.lexer.unput('('); yytext = 'dense_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +FIRST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'first_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAG\s*\( { yy.lexer.unput('('); yytext = 'lag'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LAST_VALUE\s*\( { yy.lexer.unput('('); yytext = 'last_value'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +LEAD\s*\( { yy.lexer.unput('('); yytext = 'lead'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +PERCENT_RANK\s*\( { yy.lexer.unput('('); yytext = 'percent_rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +RANK\s*\( { yy.lexer.unput('('); yytext = 'rank'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } +ROW_NUMBER\s*\( { yy.lexer.unput('('); yytext = 'row_number'; parser.addFunctionLocation(yylloc, yytext); return 'ANALYTIC'; } + +[0-9]+ { return 'UNSIGNED_INTEGER'; } +[0-9]+(?:[YSL]|BD)? { return 'UNSIGNED_INTEGER'; } +[0-9]+E { return 'UNSIGNED_INTEGER_E'; } +[A-Za-z0-9_]+ { return 'REGULAR_IDENTIFIER'; } + +'\u2020' { parser.yy.cursorFound = true; return 'CURSOR'; } +'\u2021' { parser.yy.cursorFound = true; return 'PARTIAL_CURSOR'; } +\s+['"] { return 'HDFS_START_QUOTE'; } +[^'"\u2020\u2021]+ { parser.addFileLocation(yylloc, yytext); return 'HDFS_PATH'; } +['"] { this.popState(); return 'HDFS_END_QUOTE'; } +<> { return 'EOF'; } + +'&&' { return 'AND'; } +'||' { return 'OR'; } +'=' { return '='; } +'<' { return '<'; } +'>' { return '>'; } +'!=' { return 'COMPARISON_OPERATOR'; } +'<=' { return 'COMPARISON_OPERATOR'; } +'>=' { return 'COMPARISON_OPERATOR'; } +'<>' { return 'COMPARISON_OPERATOR'; } +'<=>' { return 'COMPARISON_OPERATOR'; } +'-' { return '-'; } +'*' { return '*'; } +'+' { return 'ARITHMETIC_OPERATOR'; } +'/' { return 'ARITHMETIC_OPERATOR'; } +'%' { return 'ARITHMETIC_OPERATOR'; } +'|' { return 'ARITHMETIC_OPERATOR'; } +'^' { return 'ARITHMETIC_OPERATOR'; } +'&' { return 'ARITHMETIC_OPERATOR'; } +',' { return ','; } +'.' { return '.'; } +':' { return ':'; } +';' { return ';'; } +'~' { return '~'; } +'!' { return '!'; } +'(' { return '('; } +')' { return ')'; } +'[' { return '['; } +']' { return ']'; } + +\$\{[^}]*\} { return 'VARIABLE_REFERENCE'; } + +\` { this.begin('backtickedValue'); return 'BACKTICK'; } +[^`]+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '`')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\` { this.popState(); return 'BACKTICK'; } + +\' { this.begin('singleQuotedValue'); return 'SINGLE_QUOTE'; } +(?:\\\\|\\[']|[^'])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '\'')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\' { this.popState(); return 'SINGLE_QUOTE'; } + +\" { this.begin('doubleQuotedValue'); return 'DOUBLE_QUOTE'; } +(?:\\\\|\\["]|[^"])+ { + if (parser.handleQuotedValueWithCursor(this, yytext, yylloc, '"')) { + return 'PARTIAL_VALUE'; + } + return 'VALUE'; + } +\" { this.popState(); return 'DOUBLE_QUOTE'; } + +<> { return 'EOF'; } + +. { /* To prevent console logging of unknown chars */ } +. { } +. { } +. { } +. { } +. { } diff --git a/src/jison/sql/presto/sql_alter.jison b/src/jison/sql/presto/sql_alter.jison new file mode 100644 index 0000000..c34b191 --- /dev/null +++ b/src/jison/sql/presto/sql_alter.jison @@ -0,0 +1,795 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : AlterStatement + ; + +DataDefinition_EDIT + : AlterStatement_EDIT + ; + +AlterStatement + : AlterDatabase + | AlterIndex + | AlterTable + | AlterView + | Msck + | ReloadFunction + ; + +AlterStatement_EDIT + : AlterDatabase_EDIT + | AlterIndex_EDIT + | AlterTable_EDIT + | AlterView_EDIT + | Msck_EDIT + | ReloadFunction_EDIT + | 'ALTER' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'INDEX', 'SCHEMA', 'TABLE', 'VIEW']); + } + ; + +AlterDatabase + : 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'DBPROPERTIES' ParenthesizedPropertyAssignmentList + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + ; + +AlterDatabase_EDIT + : 'ALTER' DatabaseOrSchema 'CURSOR' + { + parser.suggestDatabases(); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'CURSOR' + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + parser.suggestKeywords(['SET DBPROPERTIES', 'SET LOCATION', 'SET OWNER']); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'CURSOR' + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation_EDIT + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' 'CURSOR' + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification_EDIT + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } + ; + +AlterIndex + : 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'REBUILD' + { + parser.addTablePrimary($5); + } + ; + +AlterIndex_EDIT + : 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier_EDIT + | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + { + parser.addTablePrimary($5); + } + | 'ALTER' 'INDEX' RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($5); + if (!$6) { + parser.suggestKeywords(['PARTITION', 'REBUILD']); + } else { + parser.suggestKeywords(['REBUILD']); + } + } + ; + +AlterTable + : AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs + | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier PrimaryKeySpecification + | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification + | AlterTableLeftSide 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName + | AlterTableLeftSide ClusteredBy + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories + | AlterTableLeftSide ExchangeSpecification + | AlterTableLeftSide 'RECOVER' 'PARTITIONS' + | AlterTableLeftSide 'TOUCH' OptionalPartitionSpec + | AlterTableLeftSide ArchiveOrUnArchive PartitionSpec + | AlterTableLeftSide 'NOT' 'SKEWED' + | AlterTableLeftSide 'NOT' 'STORED_AS_DIRECTORIES' + | AlterTableLeftSide 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList + | AlterTableLeftSide 'SET' 'OWNER' PrincipalSpecification + | AlterTableLeftSide PartitionSpec 'RENAME' 'TO' PartitionSpec + | AlterTableLeftSide PartitionSpec 'CHANGE' 'COLUMN' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict + | AlterTableLeftSide DropOperations + | AlterTableLeftSide OptionalPartitionOperations + | AlterTableLeftSide PartitionSpec OptionalPartitionOperations + ; + +AlterTable_EDIT + : AlterTableLeftSide_EDIT + | AlterTableLeftSide_EDIT 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs + | AlterTableLeftSide_EDIT 'RENAME' 'TO' RegularOrBackTickedSchemaQualifiedName + | AlterTableLeftSide_EDIT ClusteredBy + | AlterTableLeftSide_EDIT 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories + | AlterTableLeftSide_EDIT ExchangeSpecification + | AlterTableLeftSide_EDIT 'RECOVER' 'PARTITIONS' + | AlterTableLeftSide_EDIT 'TOUCH' OptionalPartitionSpec + | AlterTableLeftSide_EDIT ArchiveOrUnArchive PartitionSpec + | AlterTableLeftSide_EDIT 'NOT' 'SKEWED' + | AlterTableLeftSide_EDIT 'NOT' 'STORED_AS_DIRECTORIES' + | AlterTableLeftSide_EDIT 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList + | AlterTableLeftSide_EDIT 'SET' 'OWNER' PrincipalSpecification + | AlterTableLeftSide_EDIT PartitionSpec 'RENAME' 'TO' PartitionSpec + | AlterTableLeftSide_EDIT PartitionSpec 'CHANGE' 'COLUMN' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict + | AlterTableLeftSide_EDIT DropOperations + | AlterTableLeftSide_EDIT OptionalPartitionOperations + | AlterTableLeftSide_EDIT PartitionSpec OptionalPartitionOperations + | AlterTableLeftSide 'ADD' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords([{ value: 'IF NOT EXISTS', weight: 3 }, { value: 'COLUMNS', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }, { value: 'PARTITION', weight: 1 }]); + } else { + parser.suggestKeywords(['PARTITION']); + } + } + | AlterTableLeftSide 'REPLACE' 'CURSOR' + { + parser.suggestKeywords(['COLUMNS']); + } + | AlterTableLeftSide 'ADD' OptionalIfNotExists_EDIT + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec HdfsLocation_EDIT OptionalPartitionSpecs + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs_EDIT + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec OptionalHdfsLocation OptionalPartitionSpecs 'CURSOR' + { + if (!$5 && !$6) { + parser.suggestKeywords(['LOCATION', 'PARTITION']); + } else if ($6 && $6.suggestKeywords) { + var keywords = parser.createWeightedKeywords($6.suggestKeywords, 2); + keywords.push({ value: 'PARTITION', weight: 1 }); + parser.suggestKeywords(keywords); + } else { + parser.suggestKeywords(['PARTITION']); + } + } + | AlterTableLeftSide 'ADD' OptionalIfNotExists PartitionSpec_EDIT OptionalHdfsLocation OptionalPartitionSpecs + | AlterTableLeftSide 'ADD' 'CONSTRAINT' 'CURSOR' + | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['FOREIGN KEY', 'PRIMARY KEY']); + } + | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier PrimaryKeySpecification_EDIT + | AlterTableLeftSide 'ADD' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification_EDIT + | AlterTableLeftSide ArchiveOrUnArchive 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | AlterTableLeftSide ArchiveOrUnArchive PartitionSpec_EDIT + | AlterTableLeftSide ClusteredBy_EDIT + | AlterTableLeftSide ExchangeSpecification_EDIT + | AlterTableLeftSide 'NOT' 'CURSOR' + { + parser.suggestKeywords(['SKEWED', 'STORED AS DIRECTORIES']); + } + | AlterTableLeftSide 'NOT' 'STORED' 'CURSOR' + { + parser.suggestKeywords(['AS DIRECTORIES']); + } + | AlterTableLeftSide 'NOT' 'STORED' 'AS' 'CURSOR' + { + parser.suggestKeywords(['DIRECTORIES']); + } + | AlterTableLeftSide PartitionSpec 'RENAME' 'CURSOR' + { + parser.suggestKeywords(['TO PARTITION']); + } + | AlterTableLeftSide PartitionSpec 'RENAME' 'TO' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | AlterTableLeftSide 'RECOVER' 'CURSOR' + { + parser.suggestKeywords(['PARTITIONS']); + } + | AlterTableLeftSide 'SET' 'SKEWED' 'CURSOR' + { + parser.suggestKeywords(['LOCATION']); + } + | AlterTableLeftSide 'SET' 'SKEWED_LOCATION' ParenthesizedSkewedLocationList_EDIT + | AlterTableLeftSide 'SKEWED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | AlterTableLeftSide 'SET' 'OWNER' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | AlterTableLeftSide 'SET' 'OWNER' PrincipalSpecification_EDIT + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList_EDIT + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList_EDIT 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories 'CURSOR' + { + if (!$7) { + parser.suggestKeywords(['STORED AS DIRECTORIES']); + } + } + | AlterTableLeftSide 'SKEWED' 'BY' ParenthesizedColumnList 'ON' ParenthesizedSkewedValueList OptionalStoredAsDirectories_EDIT + | AlterTableLeftSide 'TOUCH' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | AlterTableLeftSide 'TOUCH' OptionalPartitionSpec_EDIT + | AlterTableLeftSide OptionalPartitionOperations_EDIT + | AlterTableLeftSide DropOperations_EDIT + | AlterTableLeftSide 'CURSOR' + { + parser.suggestKeywords(['ADD COLUMNS', 'ADD IF NOT EXISTS', 'ADD PARTITION', 'ARCHIVE PARTITION', 'CHANGE', + 'CLUSTERED BY', 'CONCATENATE', 'COMPACT', 'DISABLE NO_DROP', 'DISABLE OFFLINE', 'DROP', 'ENABLE NO_DROP', + 'ENABLE OFFLINE', 'EXCHANGE PARTITION', 'NOT SKEWED', 'NOT STORED AS DIRECTORIES', 'PARTITION', + 'RECOVER PARTITIONS', 'RENAME TO', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', 'SET SERDE', + 'SET SERDEPROPERTIES', 'SET SKEWED LOCATION', 'SET TBLPROPERTIES', 'SKEWED BY', 'TOUCH', 'UNARCHIVE PARTITION']); + } + | AlterTableLeftSide PartitionSpec 'CURSOR' + { + parser.suggestKeywords(['ADD COLUMNS', 'CHANGE', 'COMPACT', 'CONCATENATE', 'DISABLE NO_DROP', 'DISABLE OFFLINE', + 'ENABLE NO_DROP', 'ENABLE OFFLINE', 'RENAME TO PARTITION', 'REPLACE COLUMNS', 'SET FILEFORMAT', 'SET LOCATION', + 'SET SERDE', 'SET SERDEPROPERTIES']); + } + | AlterTableLeftSide PartitionSpec AddOrReplace 'CURSOR' + { + parser.suggestKeywords(['COLUMNS']); + } + | AlterTableLeftSide PartitionSpec 'SET' 'CURSOR' + { + parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'SERDE', 'SERDEPROPERTIES']); + } + | AlterTableLeftSide 'SET' 'CURSOR' + { + parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); + } + | AlterTableLeftSide PartitionSpec OptionalPartitionOperations_EDIT + | AlterTableLeftSide 'RENAME' 'CURSOR' + { + parser.suggestKeywords(['TO']); + } + | AlterTableLeftSide 'RENAME' 'TO' 'CURSOR' + { + parser.suggestDatabases({ appendDot: true }); + } + ; + +ParenthesizedStatsList + : '(' StatsList ')' + ; + +ParenthesizedStatsList_EDIT + : '(' StatsList_EDIT RightParenthesisOrError + ; + +StatsList + : StatsAssignment + | StatsList ',' StatsAssignment + ; + +StatsList_EDIT + : StatsAssignment_EDIT + | StatsList ',' StatsAssignment_EDIT + | StatsList ',' StatsAssignment_EDIT ',' StatsList + | StatsAssignment_EDIT ',' StatsList + ; + +StatsAssignment + : QuotedValue '=' QuotedValue + ; + +StatsAssignment_EDIT + : 'CURSOR' + { + parser.suggestIdentifiers(['\'avgSize\'', '\'maxSize\'', '\'numDVs\'', '\'numNulls\'']); + } + ; + +OptionalPartitionOperations + : 'SET' 'FILEFORMAT' FileFormat + | 'SET' HdfsLocation + | 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties + | 'SET' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList + | AddReplaceColumns + | 'CONCATENATE' + | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties + | EnableOrDisable NoDropOrOffline + | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst OptionalCascadeOrRestrict + { + parser.addColumnLocation($3.location, [ $3.identifier ]); + } + ; + +OptionalPartitionOperations_EDIT + : AddReplaceColumns_EDIT + | 'CHANGE' OptionalColumn 'CURSOR' + { + if (!$2) { + parser.suggestKeywords(['COLUMN']); + } + parser.suggestColumns(); + } + | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification_EDIT OptionalAfterOrFirst OptionalCascadeOrRestrict + { + parser.addColumnLocation($3.location, [ $3.identifier ]); + } + | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst OptionalCascadeOrRestrict 'CURSOR' + { + if (!$5 && !$6) { + if ($4.suggestKeywords) { + var keywords = parser.createWeightedKeywords($4.suggestKeywords, 3); + keywords = keywords.concat([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); + parser.suggestKeywords(keywords); + } else { + parser.suggestKeywords([{ value: 'AFTER', weight: 2 }, { value: 'FIRST', weight: 2 }, { value: 'CASCADE', weight: 1 }, { value: 'RESTRICT', weight: 1 }]); + } + } else if ($5 && !$6) { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + parser.addColumnLocation($3.location, [ $3.identifier ]); + } + | 'CHANGE' OptionalColumn ColumnIdentifier ColumnSpecification OptionalAfterOrFirst_EDIT OptionalCascadeOrRestrict + { + parser.addColumnLocation($3.location, [ $3.identifier ]); + } + | 'COMPACT' QuotedValue OptionalAndWait OptionalWithOverwriteTblProperties 'CURSOR' + { + if (!$3 && !$4) { + parser.suggestKeywords(['AND WAIT', 'WITH OVERWRITE TBLPROPERTIES']); + } else if (!$4) { + parser.suggestKeywords(['WITH OVERWRITE TBLPROPERTIES']); + } + } + | 'COMPACT' QuotedValue AndWait_EDIT OptionalWithOverwriteTblProperties + | 'COMPACT' QuotedValue OptionalAndWait WithOverwriteTblProperties_EDIT + | EnableOrDisable 'CURSOR' + { + parser.suggestKeywords(['NO_DROP', 'OFFLINE']); + } + | EnableOrDisable NoDropOrOffline_EDIT + | 'SET' 'FILEFORMAT' 'CURSOR' + { + parser.suggestFileFormats(); + } + | 'SET' HdfsLocation_EDIT + | 'SET' 'SERDE' QuotedValue OptionalWithSerdeproperties 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['WITH SERDEPROPERTIES']); + } + } + | 'SET' 'SERDE' QuotedValue WithSerdeproperties_EDIT + ; + +OptionalAndWait + : + | 'AND' 'WAIT' + ; + +AndWait_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['WAIT']); + } + ; + +OptionalWithOverwriteTblProperties + : + | 'WITH' 'OVERWRITE' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +WithOverwriteTblProperties_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); + } + | 'WITH' 'OVERWRITE' 'CURSOR' + { + parser.suggestKeywords(['TBLPROPERTIES']); + } + ; + +AddReplaceColumns + : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict + ; + +AddReplaceColumns_EDIT + : AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList_EDIT OptionalCascadeOrRestrict + | AddOrReplace 'COLUMNS' ParenthesizedColumnSpecificationList OptionalCascadeOrRestrict 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + } + ; + +ExchangeSpecification + : 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName + ; + +ExchangeSpecification_EDIT + : 'EXCHANGE' 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | 'EXCHANGE' ExchangePartitionSpec 'CURSOR' + { + parser.suggestKeywords(['WITH TABLE']); + } + | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName_EDIT + | 'EXCHANGE' ExchangePartitionSpec_EDIT + | 'EXCHANGE' ExchangePartitionSpec_EDIT 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName + ; + +ExchangePartitionSpec + : 'PARTITION' '(' OneOrMorePartitionSpecLists ')' + | 'PARTITION' '(' PartitionSpecList ')' + ; + +ExchangePartitionSpec_EDIT + : 'PARTITION' '(' OneOrMorePartitionSpecLists_EDIT RightParenthesisOrError + | 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +OneOrMorePartitionSpecLists + : '(' PartitionSpecList ')' + | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList ')' + ; + +OneOrMorePartitionSpecLists_EDIT + : '(' PartitionSpecList_EDIT RightParenthesisOrError + | OneOrMorePartitionSpecLists ',' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +DropOperations + : 'DROP' OptionalIfExists OneOrMorePartitionSpecs OptionalPurge + | 'DROP' 'CONSTRAINT' RegularOrBacktickedIdentifier + ; + +DropOperations_EDIT + : 'DROP' OptionalIfExists 'CURSOR' + { + if (!$2) { + parser.suggestKeywords([{ value: 'CONSTRAINT', weight: 1}, { value: 'PARTITION', weight: 1}, { value: 'IF EXISTS', weight: 2 }]); + } else { + parser.suggestKeywords(['PARTITION']); + } + } + | 'DROP' OptionalIfExists OneOrMorePartitionSpecs_EDIT OptionalPurge + | 'DROP' OptionalIfExists OneOrMorePartitionSpecs OptionalPurge 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['PURGE']); + } + } + | 'DROP' 'CONSTRAINT' 'CURSOR' + | 'DROP' OptionalIfExists_EDIT + | 'DROP' ColumnIdentifier_EDIT + ; + +AlterTableLeftSide + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterTableLeftSide_EDIT + : 'ALTER' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'ALTER' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +AddOrReplace + : 'ADD' + | 'REPLACE' + ; + +OptionalAfterOrFirst + : + | AfterOrFirst ColumnIdentifier + ; + +AfterOrFirst + : 'AFTER' + | 'FIRST' + ; + +OptionalAfterOrFirst_EDIT + : AfterOrFirst 'CURSOR' + { + parser.suggestColumns(); + } + | AfterOrFirst ColumnIdentifier_EDIT + ; + +OptionalColumn + : + | 'COLUMN' + ; + +EnableOrDisable + : 'ENABLE' + | 'DISABLE' + ; + +NoDropOrOffline + : 'NO_DROP' OptionalCascade + | 'OFFLINE' + ; + +NoDropOrOffline_EDIT + : 'NO_DROP' OptionalCascade 'CURSOR' + { + if (!$2) { + parser.suggestKeywords(['CASCADE']); + } + } + ; + +ArchiveOrUnArchive + : 'ARCHIVE' + | 'UNARCHIVE' + ; + +OneOrMorePartitionSpecs + : PartitionSpec + | OneOrMorePartitionSpecs ',' PartitionSpec + ; + +OneOrMorePartitionSpecs_EDIT + : PartitionSpec_EDIT + | OneOrMorePartitionSpecs ',' AnyCursor + { + parser.suggestKeywords(['PARTITION']); + } + | OneOrMorePartitionSpecs ',' AnyCursor ',' OneOrMorePartitionSpecs + { + parser.suggestKeywords(['PARTITION']); + } + | AnyCursor ',' OneOrMorePartitionSpecs + { + parser.suggestKeywords(['PARTITION']); + } + | OneOrMorePartitionSpecs ',' PartitionSpec_EDIT + | PartitionSpec_EDIT ',' OneOrMorePartitionSpecs + | OneOrMorePartitionSpecs ',' PartitionSpec_EDIT ',' OneOrMorePartitionSpecs + ; + +OptionalPartitionSpecs + : + | PartitionSpecWithLocationList + ; + +PartitionSpecWithLocationList + : PartitionSpecWithLocation + | PartitionSpecWithLocationList PartitionSpecWithLocation -> $2 + ; + +OptionalPartitionSpecs_EDIT + : PartitionSpecWithLocation_EDIT + | PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList + | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT + | PartitionSpecWithLocationList PartitionSpecWithLocation_EDIT PartitionSpecWithLocationList + ; + +PartitionSpecWithLocation_EDIT + : PartitionSpec HdfsLocation_EDIT + | PartitionSpec_EDIT OptionalHdfsLocation + ; + +PartitionSpecWithLocation + : PartitionSpec OptionalHdfsLocation + { + if (!$2) { + $$ = { suggestKeywords: ['LOCATION'] }; + } + } + ; + +ParenthesizedSkewedLocationList + : '(' SkewedLocationList ')' + ; + +ParenthesizedSkewedLocationList_EDIT + : '(' SkewedLocationList_EDIT RightParenthesisOrError + ; + +SkewedLocationList + : SkewedLocation + | SkewedLocationList ',' SkewedLocation + ; + +SkewedLocationList_EDIT + : SkewedLocation_EDIT + | SkewedLocationList ',' SkewedLocation_EDIT + | SkewedLocationList ',' SkewedLocation_EDIT ',' SkewedLocationList + | SkewedLocation_EDIT ',' SkewedLocationList + ; + +SkewedLocation + : ColumnReference '=' QuotedValue + ; + +SkewedLocation_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + | AnyCursor '=' QuotedValue + { + parser.suggestColumns(); + } + | ColumnReference_EDIT '=' QuotedValue + | ColumnReferences '=' QuotedValue + ; + +OptionalStoredAsDirectories + : + | 'STORED_AS_DIRECTORIES' + ; + +OptionalStoredAsDirectories_EDIT + : 'STORED' 'CURSOR' + { + parser.suggestKeywords(['AS DIRECTORIES']); + } + | 'STORED' 'AS' 'CURSOR' + { + parser.suggestKeywords(['DIRECTORIES']); + } + ; + +AlterView + : AlterViewLeftSide 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + | AlterViewLeftSide 'AS' QuerySpecification + ; + +AlterView_EDIT + : AlterViewLeftSide_EDIT + | AlterViewLeftSide 'CURSOR' + { + parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); + } + | AlterViewLeftSide 'SET' 'CURSOR' + { + parser.suggestKeywords(['TBLPROPERTIES']); + } + | AlterViewLeftSide 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | AlterViewLeftSide 'AS' QuerySpecification_EDIT + ; + + +AlterViewLeftSide + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($3); + } + ; + +AlterViewLeftSide_EDIT + : 'ALTER' 'VIEW' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'ALTER' 'VIEW' 'CURSOR' + { + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + ; + +Msck + : 'MSCK' 'REPAIR' 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +Msck_EDIT + : 'MSCK' 'CURSOR' + { + parser.suggestKeywords(['REPAIR TABLE']); + } + | 'MSCK' 'REPAIR' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'MSCK' 'REPAIR' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'MSCK' 'REPAIR' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +ReloadFunction + : 'RELOAD' 'FUNCTION' + ; + +ReloadFunction_EDIT + : 'RELOAD' 'CURSOR' + { + parser.suggestKeywords(['FUNCTION']); + } + ; + +NullableComment + : QuotedValue + | 'NULL' + ; diff --git a/src/jison/sql/presto/sql_analyze.jison b/src/jison/sql/presto/sql_analyze.jison new file mode 100644 index 0000000..e5f36af --- /dev/null +++ b/src/jison/sql/presto/sql_analyze.jison @@ -0,0 +1,132 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : AnalyzeStatement + ; + +DataDefinition_EDIT + : AnalyzeStatement_EDIT + ; + +AnalyzeStatement + : 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan + { + parser.addTablePrimary($3); + } + ; + +AnalyzeStatement_EDIT + : 'ANALYZE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'ANALYZE' 'TABLE' 'CURSOR' + { + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + { + parser.addTablePrimary($3); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($3); + if (!$4) { + parser.suggestKeywords([{ value: 'PARTITION', weight: 2 }, { value: 'COMPUTE STATISTICS', weight: 1 }]); + } else { + parser.suggestKeywords(['COMPUTE STATISTICS']); + } + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['STATISTICS']); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' 'CURSOR' OptionalForColumns OptionalCacheMetadata OptionalNoscan + { + parser.addTablePrimary($3); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$8, $9, $10], [{ value: 'FOR COLUMNS', weight: 3 }, { value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' ForColumns 'CURSOR' OptionalCacheMetadata OptionalNoscan + { + parser.addTablePrimary($3); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$9, $10], [{ value: 'CACHE METADATA', weight: 2 }, { value: 'NOSCAN', weight: 1 }])); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns CacheMetadata 'CURSOR' OptionalNoscan + { + parser.addTablePrimary($3); + parser.suggestKeywords(parser.getKeywordsForOptionalsLR([$10], [{ value: 'NOSCAN', weight: 1 }])); + } + | 'ANALYZE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.suggestKeywords(['TABLE']); + parser.addTablePrimary($3); + } + | 'ANALYZE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan + { + parser.suggestKeywords(['TABLE']); + parser.addTablePrimary($3); + } + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT 'COMPUTE' 'STATISTICS' OptionalForColumns OptionalCacheMetadata OptionalNoscan + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' ForColumns_EDIT OptionalCacheMetadata OptionalNoscan + | 'ANALYZE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'COMPUTE' 'STATISTICS' OptionalForColumns CacheMetadata_EDIT OptionalNoscan + ; + +OptionalForColumns + : + | ForColumns + ; + +ForColumns + : 'FOR' 'COLUMNS' + ; + +ForColumns_EDIT + : 'FOR' 'CURSOR' + { + parser.suggestKeywords(['COLUMNS']); + } + ; + +OptionalCacheMetadata + : + | CacheMetadata + ; + +CacheMetadata + : 'CACHE' 'METADATA' + ; + +CacheMetadata_EDIT + : 'CACHE' 'CURSOR' + { + parser.suggestKeywords(['METADATA']); + } + ; + +OptionalNoscan + : + | 'NOSCAN' + ; diff --git a/src/jison/sql/presto/sql_create.jison b/src/jison/sql/presto/sql_create.jison new file mode 100644 index 0000000..1953e81 --- /dev/null +++ b/src/jison/sql/presto/sql_create.jison @@ -0,0 +1,1408 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : CreateStatement + ; + +DataDefinition_EDIT + : CreateStatement_EDIT + ; + +CreateStatement + : DatabaseDefinition + | TableDefinition + | ViewDefinition + | RoleDefinition + | FunctionDefinition + | IndexDefinition + | MacroDefinition + ; + +CreateStatement_EDIT + : DatabaseDefinition_EDIT + | TableDefinition_EDIT + | ViewDefinition_EDIT + | FunctionDefinition_EDIT + | IndexDefinition_EDIT + | MacroDefinition_EDIT + | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'CURSOR' + { + if ($4) { + parser.suggestKeywords(['TABLE']); + } else { + if ($2 && !$3) { + parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); + } else if (!$2 && !$3) { + parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'TRANSACTIONAL TABLE', 'VIEW']); + } else if ($3) { + parser.suggestKeywords(['TABLE']); + } + } + } + ; + +DatabaseDefinition + : 'CREATE' DatabaseOrSchema OptionalIfNotExists + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT + | 'CREATE' DatabaseOrSchema OptionalIfNotExists 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + | 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } + ; + +DatabaseDefinitionOptionals + : OptionalComment OptionalHdfsLocation OptionalDbProperties + { + var keywords = []; + if (!$3) { + keywords.push('WITH DBPROPERTIES'); + } + if (!$2 && !$3) { + keywords.push('LOCATION'); + } + if (!$1 && !$2 && !$3) { + keywords.push('COMMENT'); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + ; + +DatabaseDefinitionOptionals_EDIT + : OptionalComment_INVALID OptionalHdfsLocation OptionalDbProperties + | OptionalComment HdfsLocation_EDIT OptionalDbProperties + ; + +OptionalComment + : + | Comment + ; + +Comment + : 'COMMENT' QuotedValue + ; + +OptionalComment_INVALID + : Comment_INVALID + ; + +Comment_INVALID + : 'COMMENT' SINGLE_QUOTE + | 'COMMENT' DOUBLE_QUOTE + | 'COMMENT' SINGLE_QUOTE VALUE + | 'COMMENT' DOUBLE_QUOTE VALUE + ; + + +OptionalDbProperties + : + | DbProperties + ; + +DbProperties + : 'WITH' 'DBPROPERTIES' ParenthesizedPropertyAssignmentList + | 'WITH' 'DBPROPERTIES' + | 'WITH' 'CURSOR' + { + parser.suggestKeywords(['DBPROPERTIES']); + } + ; + +ParenthesizedPropertyAssignmentList + : '(' PropertyAssignmentList ')' + ; + +PropertyAssignmentList + : PropertyAssignment + | PropertyAssignmentList ',' PropertyAssignment + ; + +PropertyAssignment + : QuotedValue '=' UnsignedValueSpecification + ; + +TableDefinition + : 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart + ; + +TableDefinition_EDIT + : 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists TableDefinitionRightPart_EDIT + | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' OptionalTemporary OptionalTransactional OptionalExternal 'TABLE' OptionalIfNotExists_EDIT + ; + +TableDefinitionRightPart + : TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + ; + +TableDefinitionRightPart_EDIT + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment PartitionedBy_EDIT + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + ClusteredBy_EDIT OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy SkewedBy_EDIT OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy RowFormat_EDIT OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat StoredAsOrBy_EDIT + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + WithSerdeproperties_EDIT OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties HdfsLocation_EDIT OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties OptionalAsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalStoredAsOrBy + OptionalWithSerdeproperties OptionalHdfsLocation OptionalTblproperties 'CURSOR' + { + var keywords = []; + if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'LIKE', weight: 1 }); + } else { + if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'COMMENT', weight: 10 }); + } + if (!$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'PARTITIONED BY', weight: 9 }); + } + if (!$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'CLUSTERED BY', weight: 8 }); + } + if (!$5 && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'SKEWED BY', weight: 7 }); + } else if ($5 && $5.suggestKeywords && !$6 && !$7 && !$8 && !$9 && !$10) { + keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 7)); // Get the last optional from SKEWED BY + } + if (!$6 && !$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'ROW FORMAT', weight: 6 }); + } else if ($6 && $6.suggestKeywords && !$7 && !$8 && !$9 && !$10) { + keywords = keywords.concat(parser.createWeightedKeywords($6.suggestKeywords, 6)); + } + if (!$7 && !$8 && !$9 && !$10) { + keywords.push({ value: 'STORED AS', weight: 5 }); + keywords.push({ value: 'STORED BY', weight: 5 }); + } else if ($7 && $7.storedBy && !$8 && !$9 && !$10) { + keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 4 }); + } + if (!$9 && !$10) { + keywords.push({ value: 'LOCATION', weight: 3 }); + } + if (!$10) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + } + keywords.push({ value: 'AS', weight: 1 }); + } + + parser.suggestKeywords(keywords); + } + ; + +TableIdentifierAndOptionalColumnSpecification + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } + ; + +TableIdentifierAndOptionalColumnSpecification_EDIT + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike_EDIT + | SchemaQualifiedIdentifier_EDIT OptionalColumnSpecificationsOrLike + ; + +OptionalColumnSpecificationsOrLike + : + | ParenthesizedColumnSpecificationList + | 'LIKE' SchemaQualifiedTableIdentifier -> [] + ; + +OptionalColumnSpecificationsOrLike_EDIT + : ParenthesizedColumnSpecificationList_EDIT + | 'LIKE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LIKE' SchemaQualifiedTableIdentifier_EDIT + ; + +ParenthesizedColumnSpecificationList + : '(' ColumnSpecificationList ')' -> $2 + | '(' ColumnSpecificationList ',' ConstraintSpecification ')' -> $2 + ; + +ParenthesizedColumnSpecificationList_EDIT + : '(' ColumnSpecificationList_EDIT RightParenthesisOrError + | '(' ColumnSpecificationList ',' ConstraintSpecification_EDIT RightParenthesisOrError + | '(' ColumnSpecificationList ',' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords([{ value: 'PRIMARY KEY', weight: 2 }, { value: 'CONSTRAINT', weight: 1 }]); + } + ; + +ColumnSpecificationList + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) + ; + +ColumnSpecificationList_EDIT + : ColumnSpecification_EDIT + | ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecificationList ',' ColumnSpecification_EDIT + | ColumnSpecificationList ',' ColumnSpecification_EDIT ',' ColumnSpecificationList + | ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($1); + } + | ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($1); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' + { + parser.checkForKeywords($3); + } + | ColumnSpecificationList ',' ColumnSpecification 'CURSOR' ',' ColumnSpecificationList + { + parser.checkForKeywords($3); + } + ; + +ColumnSpecification + : ColumnIdentifier ColumnDataType OptionalColumnOptions + { + $$ = $1; + $$.type = $2; + var keywords = []; + if (!$3['comment']) { + keywords.push('COMMENT'); + if ($2.toLowerCase() === 'double') { + keywords.push({ value: 'PRECISION', weight: 2 }); + } + } + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +ColumnSpecification_EDIT + : ColumnIdentifier 'CURSOR' OptionalColumnOptions + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnIdentifier ColumnDataType_EDIT OptionalColumnOptions + ; + +OptionalColumnOptions + : -> {} + | ColumnOptions + ; + +ColumnOptions + : ColumnOption + { + $$ = {}; + $$[$1] = true; + } + | ColumnOptions ColumnOption + { + $1[$2] = true; + } + ; + +ColumnOption + : Comment -> 'comment' + ; + +ColumnDataType + : PrimitiveType + | ArrayType + | MapType + | StructType + | UnionType + | ArrayType_INVALID + | MapType_INVALID + | StructType_INVALID + | UnionType_INVALID + ; + +ColumnDataType_EDIT + : ArrayType_EDIT + | MapType_EDIT + | StructType_EDIT + | UnionType_EDIT + ; + +ArrayType + : 'ARRAY' '<' ColumnDataType '>' + ; + +ArrayType_INVALID + : 'ARRAY' '<' '>' + ; + +ArrayType_EDIT + : 'ARRAY' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'ARRAY' '<' ColumnDataType_EDIT GreaterThanOrError + ; + +MapType + : 'MAP' '<' PrimitiveType ',' ColumnDataType '>' + ; + +MapType_INVALID + : 'MAP' '<' '>' + ; + +MapType_EDIT + : 'MAP' '<' PrimitiveType ',' ColumnDataType_EDIT GreaterThanOrError + | 'MAP' '<' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + } + | 'MAP' '<' PrimitiveType ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | 'MAP' '<' ',' AnyCursor GreaterThanOrError + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + ; + +StructType + : 'STRUCT' '<' StructDefinitionList '>' + ; + +StructType_INVALID + : 'STRUCT' '<' '>' + ; + +StructType_EDIT + : 'STRUCT' '<' StructDefinitionList_EDIT GreaterThanOrError + ; + +StructDefinitionList + : StructDefinition + | StructDefinitionList ',' StructDefinition + ; + +StructDefinitionList_EDIT + : StructDefinition_EDIT + | StructDefinition_EDIT Commas + | StructDefinition_EDIT Commas StructDefinitionList + | StructDefinitionList ',' StructDefinition_EDIT + | StructDefinitionList ',' StructDefinition_EDIT Commas StructDefinitionList + ; + +StructDefinition + : RegularOrBacktickedIdentifier ':' ColumnDataType OptionalComment + ; + +StructDefinition_EDIT + : Commas RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | Commas RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + | RegularOrBacktickedIdentifier ':' ColumnDataType 'CURSOR' + { + parser.suggestKeywords(['COMMENT']); + } + | RegularOrBacktickedIdentifier ':' AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularOrBacktickedIdentifier ':' ColumnDataType_EDIT + ; + +UnionType + : 'UNIONTYPE' '<' ColumnDataTypeList '>' + ; + +UnionType_INVALID + : 'UNIONTYPE' '<' '>' + ; + +UnionType_EDIT + : 'UNIONTYPE' '<' ColumnDataTypeList_EDIT GreaterThanOrError + ; + +ColumnDataTypeList + : ColumnDataType + | ColumnDataTypeList ',' ColumnDataType + ; + +ColumnDataTypeList_EDIT + : ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT + | ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + | ColumnDataTypeList ',' ColumnDataTypeListInner_EDIT Commas ColumnDataTypeList + ; + +ColumnDataTypeListInner_EDIT + : Commas AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | Commas ColumnDataType_EDIT + | AnyCursor + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | ColumnDataType_EDIT + ; + +GreaterThanOrError + : '>' + | error + ; + +ConstraintSpecification + : PrimaryKeySpecification + | 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification + | PrimaryKeySpecification ',' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification + ; + +ConstraintSpecification_EDIT + : PrimaryKeySpecification_EDIT + | PrimaryKeySpecification ',' 'CURSOR' + { + parser.suggestKeywords(['CONSTRAINT']); + } + | PrimaryKeySpecification ',' 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['FOREIGN KEY']); + } + | PrimaryKeySpecification ',' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification_EDIT + | PrimaryKeySpecification_EDIT ',' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification + | 'CONSTRAINT' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['FOREIGN KEY']); + } + | 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification_EDIT + | 'CURSOR' 'CONSTRAINT' RegularOrBacktickedIdentifier ForeignKeySpecification + { + parser.suggestKeywords(['PRIMARY KEY']); + } + ; + +PrimaryKeySpecification + : PrimaryKey ParenthesizedColumnList 'DISABLE' 'NOVALIDATE' + ; + +PrimaryKeySpecification_EDIT + : PrimaryKey_EDIT + | PrimaryKey ParenthesizedColumnList_EDIT + | PrimaryKey ParenthesizedColumnList 'CURSOR' + { + parser.suggestKeywords(['DISABLE NOVALIDATE']); + } + | PrimaryKey ParenthesizedColumnList 'DISABLE' 'CURSOR' + { + parser.suggestKeywords(['NOVALIDATE']); + } + | PrimaryKey ParenthesizedColumnList_EDIT 'DISABLE' 'NOVALIDATE' + ; + +ForeignKeySpecification + : 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'DISABLE' 'NOVALIDATE' OptionalRelyNoRely + { + parser.addTablePrimary($5); + } + ; + +ForeignKeySpecification_EDIT + : 'FOREIGN' 'CURSOR' + { + parser.suggestKeywords(['KEY']); + } + | 'FOREIGN' 'KEY' ParenthesizedColumnList_EDIT + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'CURSOR' + { + parser.suggestKeywords(['REFERENCES']); + } + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier_EDIT + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList_EDIT + { + parser.addTablePrimary($5); + } + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'CURSOR' + { + parser.addTablePrimary($5); + parser.suggestKeywords(['DISABLE NOVALIDATE']); + } + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'DISABLE' 'CURSOR' + { + parser.addTablePrimary($5); + parser.suggestKeywords(['NOVALIDATE']); + } + | 'FOREIGN' 'KEY' ParenthesizedColumnList 'REFERENCES' SchemaQualifiedTableIdentifier ParenthesizedColumnList 'DISABLE' 'NOVALIDATE' OptionalRelyNoRely 'CURSOR' + { + parser.addTablePrimary($5); + if (!$9) { + parser.suggestKeywords(['NORELY', 'RELY']); + } + } + ; + +OptionalRelyNoRely + : + | 'RELY' + | 'NORELY' + ; + +PrimaryKey + : 'PRIMARY' 'KEY' + ; + +PrimaryKey_EDIT + : 'PRIMARY' 'CURSOR' + { + parser.suggestKeywords(['KEY']); + } + ; + +OptionalPartitionedBy + : + | PartitionedBy + ; + +PartitionedBy + : 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList + ; + +PartitionedBy_EDIT + : 'PARTITIONED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITIONED' 'CURSOR' ParenthesizedColumnSpecificationList + { + parser.suggestKeywords(['BY']); + } + | 'PARTITIONED' 'BY' ParenthesizedColumnSpecificationList_EDIT + | 'PARTITIONED' ParenthesizedColumnSpecificationList_EDIT + | 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.suggestKeywords(['HASH', 'RANGE']); + } + ; + +LessThanOrEqualTo + : '<' + | 'COMPARISON_OPERATOR' // This is fine for autocompletion + ; + +OptionalClusteredBy + : + | ClusteredBy + ; + +ClusteredBy + : 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' + ; + +ClusteredBy_EDIT + : 'CLUSTERED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'CLUSTERED' 'BY' ParenthesizedColumnList_EDIT OptionalSortedBy + | 'CLUSTERED' 'BY' ParenthesizedColumnList_EDIT OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' + | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'CURSOR' + { + if (!$4) { + parser.suggestKeywords([{ value: 'INTO', weight: 1 }, { value: 'SORTED BY', weight: 2 }]); + } else { + parser.suggestKeywords(['INTO']); + } + } + | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy 'INTO' 'UNSIGNED_INTEGER' 'CURSOR' + { + parser.suggestKeywords(['BUCKETS']); + } + | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy_EDIT 'INTO' 'UNSIGNED_INTEGER' 'BUCKETS' + | 'CLUSTERED' 'BY' ParenthesizedColumnList OptionalSortedBy_EDIT + ; + +OptionalSortedBy + : + | 'SORTED' 'BY' ParenthesizedSortList + ; + +OptionalSortedBy_EDIT + : 'SORTED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'SORTED' 'BY' ParenthesizedSortList_EDIT + ; + +ParenthesizedSortList + : '(' SortList ')' + ; + +ParenthesizedSortList_EDIT + : '(' SortList_EDIT RightParenthesisOrError + ; + +SortList + : SortIdentifier + | SortList ',' SortIdentifier + ; + +SortList_EDIT + : SortIdentifier_EDIT + | SortIdentifier_EDIT ',' SortList + | SortList ',' SortIdentifier_EDIT + | SortList ',' SortIdentifier_EDIT ',' SortList + ; + +SortIdentifier + : ColumnIdentifier OptionalAscOrDesc + ; + +SortIdentifier_EDIT + : ColumnIdentifier OptionalAscOrDesc 'CURSOR' + { + parser.checkForKeywords($2); + } + | ColumnIdentifier_EDIT OptionalAscOrDesc + | AnyCursor OptionalAscOrDesc + { + parser.suggestColumns(); + } + ; + +OptionalSkewedBy + : + | SkewedBy + ; + +SkewedBy + : 'SKEWED' 'BY' ParenthesizedColumnList ON ParenthesizedSkewedValueList -> { suggestKeywords: ['STORED AS DIRECTORIES'] } + | 'SKEWED' 'BY' ParenthesizedColumnList ON ParenthesizedSkewedValueList 'STORED_AS_DIRECTORIES' // Hack otherwise ambiguous with OptionalStoredAsOrBy + ; + +SkewedBy_EDIT + : 'SKEWED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'SKEWED' 'BY' ParenthesizedColumnList 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + ; + +ParenthesizedSkewedValueList + : '(' SkewedValueList ')' + ; + +SkewedValueList + : ParenthesizedSimpleValueList + | SkewedValueList ',' ParenthesizedSimpleValueList + ; + +OptionalRowFormat + : + | RowFormat + ; + +RowFormat + : 'ROW' 'FORMAT' RowFormatSpec + { + $$ = $3 + } + ; + +RowFormat_EDIT + : 'ROW' 'CURSOR' + { + parser.suggestKeywords(['FORMAT']); + } + | 'ROW' 'FORMAT' 'CURSOR' + { + parser.suggestKeywords(['DELIMITED', 'SERDE']); + } + | 'ROW' 'FORMAT' RowFormatSpec_EDIT + ; + +OptionalStoredAsOrBy + : + | StoredAsOrBy + ; + +StoredAsOrBy + : StoredAs + | 'STORED' 'BY' QuotedValue + { + $$ = { storedBy: true } + } + ; + +StoredAsOrBy_EDIT + : 'STORED' 'CURSOR' + { + parser.suggestKeywords(['AS', 'BY']); + } + | StoredAs_EDIT + ; + +OptionalStoredAs + : -> { suggestKeywords: ['STORED AS'] } + | StoredAs + ; + +StoredAs + : 'STORED' 'AS' FileFormat + ; + +StoredAs_EDIT + : 'STORED' 'AS' 'CURSOR' + { + parser.suggestFileFormats(); + } + ; + +FileFormat + : 'AVRO' + | 'INPUTFORMAT' QuotedValue 'OUTPUTFORMAT' QuotedValue + | 'JSONFILE' + | 'ORC' + | 'PARQUET' + | 'RCFILE' + | 'SEQUENCEFILE' + | 'TEXTFILE' + ; + +RowFormatSpec + : DelimitedRowFormat + | 'SERDE' QuotedValue + ; + +RowFormatSpec_EDIT + : DelimitedRowFormat_EDIT + ; + +DelimitedRowFormat + : 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy OptionalLinesTerminatedBy OptionalNullDefinedAs + { + if (!$2 && !$3 && !$4 && !$5 && !$6) { + $$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 5 }, { value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]}; + } else if ($2 && $2.suggestKeywords && !$3 && !$4 && !$5 && !$6) { + $$ = { suggestKeywords: parser.createWeightedKeywords($2.suggestKeywords, 5).concat([{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }]) }; + } else if (!$3 && !$4 && !$5 && !$6) { + $$ = { suggestKeywords: [{ value: 'COLLECTION ITEMS TERMINATED BY', weight: 4 }, { value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$4 && !$5 && !$6) { + $$ = { suggestKeywords: [{ value: 'MAP KEYS TERMINATED BY', weight: 3 }, { value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$5 && !$6) { + $$ = { suggestKeywords: [{ value: 'LINES TERMINATED BY', weight: 2 }, { value: 'NULL DEFINED AS', weight: 1 }] }; + } else if (!$6) { + $$ = { suggestKeywords: [{ value: 'NULL DEFINED AS', weight: 1 }] }; + } + } + ; + +DelimitedRowFormat_EDIT + : 'DELIMITED' OptionalFieldsTerminatedBy_EDIT OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy + OptionalLinesTerminatedBy OptionalNullDefinedAs + | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy_EDIT OptionalMapKeysTerminatedBy + OptionalLinesTerminatedBy OptionalNullDefinedAs + | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy_EDIT + OptionalLinesTerminatedBy OptionalNullDefinedAs + | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy + OptionalLinesTerminatedBy_EDIT OptionalNullDefinedAs + | 'DELIMITED' OptionalFieldsTerminatedBy OptionalCollectionItemsTerminatedBy OptionalMapKeysTerminatedBy + OptionalLinesTerminatedBy OptionalNullDefinedAs_EDIT + ; + +OptionalFieldsTerminatedBy + : + | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue -> { suggestKeywords: ['ESCAPED BY'] } + | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'BY' SingleQuotedValue + ; + +OptionalFieldsTerminatedBy_EDIT + : 'FIELDS' 'CURSOR' + { + parser.suggestKeywords(['TERMINATED BY']); + } + | 'FIELDS' 'TERMINATED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'FIELDS' 'TERMINATED' 'BY' SingleQuotedValue 'ESCAPED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + ; + +OptionalCollectionItemsTerminatedBy + : + | 'COLLECTION' 'ITEMS' 'TERMINATED' 'BY' SingleQuotedValue + ; + +OptionalCollectionItemsTerminatedBy_EDIT + : 'COLLECTION' 'CURSOR' + { + parser.suggestKeywords(['ITEMS TERMINATED BY']); + } + | 'COLLECTION' 'ITEMS' 'CURSOR' + { + parser.suggestKeywords(['TERMINATED BY']); + } + | 'COLLECTION' 'ITEMS' 'TERMINATED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + ; + +OptionalMapKeysTerminatedBy + : + | 'MAP' 'KEYS' 'TERMINATED' 'BY' SingleQuotedValue + ; + +OptionalMapKeysTerminatedBy_EDIT + : 'MAP' 'CURSOR' + { + parser.suggestKeywords(['KEYS TERMINATED BY']); + } + | 'MAP' 'KEYS' 'CURSOR' + { + parser.suggestKeywords(['TERMINATED BY']); + } + | 'MAP' 'KEYS' 'TERMINATED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + ; + +OptionalLinesTerminatedBy + : + | 'LINES' 'TERMINATED' 'BY' SingleQuotedValue + ; + +OptionalLinesTerminatedBy_EDIT + : 'LINES' 'CURSOR' + { + parser.suggestKeywords(['TERMINATED BY']); + } + | 'LINES' 'TERMINATED' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + ; + +OptionalNullDefinedAs + : + | 'NULL' 'DEFINED' 'AS' SingleQuotedValue + ; + +OptionalNullDefinedAs_EDIT + : 'NULL' 'CURSOR' + { + parser.suggestKeywords(['DEFINED AS']); + } + | 'NULL' 'DEFINED' 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + ; + +OptionalWithSerdeproperties + : + | WithSerdeproperties + ; + +WithSerdeproperties + :'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +WithSerdeproperties_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['SERDEPROPERTIES']); + } + | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList + { + parser.suggestKeywords(['SERDEPROPERTIES']); + } + ; + +OptionalTblproperties + : + | TblProperties + ; + +TblProperties + : 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +OptionalAsSelectStatement + : + | 'AS' CommitLocations QuerySpecification + ; + +OptionalAsSelectStatement_EDIT + : 'AS' CommitLocations 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'AS' CommitLocations QuerySpecification_EDIT + ; + +CommitLocations + : /* empty */ + { + parser.commitLocations(); + } + ; + +ViewDefinition + : 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification + ; + +ViewDefinition_EDIT + : 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'VIEW' OptionalIfNotExists 'CURSOR' SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification + { + if (!$3) { + parser.suggestKeywords(['IF NOT EXISTS']); + } + } + | 'CREATE' 'VIEW' OptionalIfNotExists_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier ParenthesizedViewColumnList_EDIT OptionalComment OptionalTblproperties + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'CURSOR' + { + var keywords = [{value: 'AS', weight: 1 }]; + if (!$7) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); + if (!$6) { + keywords.push({ value: 'COMMENT', weight: 3 }); + } + } + parser.suggestKeywords(keywords); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' 'CURSOR' + { + parser.suggestKeywords(['SELECT']); + } + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification_EDIT + | 'CREATE' 'VIEW' OptionalIfNotExists SchemaQualifiedIdentifier_EDIT OptionalParenthesizedViewColumnList OptionalComment OptionalTblproperties 'AS' QuerySpecification + ; + +FunctionDefinition + : TemporaryFunction + ; + +FunctionDefinition_EDIT + : TemporaryFunction_EDIT + ; + +FunctionDefinition + : 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing + ; + +FunctionDefinition_EDIT + : 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing_EDIT + | 'CREATE' 'FUNCTION' SchemaQualifiedIdentifier 'AS' SingleQuotedValue OptionalUsing 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['USING']); + } else { + parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); + } + } + ; + +TemporaryFunction + : 'CREATE' 'TEMPORARY' 'FUNCTION' RegularIdentifier 'AS' SingleQuotedValue + ; + +TemporaryFunction_EDIT + : 'CREATE' 'TEMPORARY' 'FUNCTION' RegularIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + ; + +FunctionReference + : SingleQuotedValue + ; + +FunctionReference_EDIT + : SingleQuotedValue_EDIT + { + parser.suggestFunctions(); + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + ; + +OptionalUsing + : + | 'USING' OneOrMoreFunctionResources + ; + +OptionalUsing_EDIT + : 'USING' 'CURSOR' + { + parser.suggestKeywords(['ARCHIVE', 'FILE', 'JAR']); + } + ; + +OneOrMoreFunctionResources + : FunctionResource + | OneOrMoreFunctionResources ',' FunctionResource + ; + +FunctionResource + : FunctionResourceType SingleQuotedValue + ; + +FunctionResourceType + : 'ARCHIVE' + | 'FILE' + | 'JAR' + ; + +OptionalParenthesizedViewColumnList + : + | ParenthesizedViewColumnList + ; + +ParenthesizedViewColumnList + : '(' ViewColumnList ')' + ; + +ParenthesizedViewColumnList_EDIT + : '(' ViewColumnList_EDIT RightParenthesisOrError + { + if (!$2) { + parser.suggestKeywords(['COMMENT']); + } + } + ; + +ViewColumnList + : ColumnReference OptionalComment + | ViewColumnList ',' ColumnReference OptionalComment + ; + +ViewColumnList_EDIT + : ColumnReference OptionalComment 'CURSOR' -> $2 + | ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $2 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' -> $4 + | ViewColumnList ',' ColumnReference OptionalComment 'CURSOR' ',' ViewColumnList -> $4 + ; + +RoleDefinition + : 'CREATE' 'ROLE' RegularIdentifier + ; + +IndexDefinition + : 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat + OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment + ; + +IndexDefinition_EDIT + : 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['ON TABLE']); + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' 'CURSOR' + { + parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType_EDIT OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild_EDIT OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable_EDIT OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable RowFormat_EDIT OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat StoredAsOrBy_EDIT OptionalHdfsLocation + OptionalTblproperties OptionalComment + { + if ($13 && parser.yy.result.suggestKeywords && parser.yy.result.suggestKeywords.length === 2) { + parser.suggestKeywords(['AS']); + } + } + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy HdfsLocation_EDIT + OptionalTblproperties OptionalComment + | 'CREATE' 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation + OptionalTblproperties OptionalComment 'CURSOR' + { + if (!$10 && !$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$12 && !$13 && !$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$13 && !$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if ($13 && $13.suggestKeywords && !$14 && !$15 && !$16) { + parser.suggestKeywords(parser.createWeightedKeywords($13.suggestKeywords, 5).concat([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); + } else if (!$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$16 && !$17) { + parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$17) { + parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); + } + } + ; + +ExistingTable + : SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($1); + } + ; + +ExistingTable_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +IndexType + : QuotedValue + ; + +IndexType_EDIT + : QuotedValue_EDIT + { + parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); + } + ; + +OptionalWithDeferredRebuild + : + | 'WITH' 'DEFERRED' 'REBUILD' + ; + +OptionalWithDeferredRebuild_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['DEFERRED REBUILD']); + } + | 'WITH' 'DEFERRED' 'CURSOR' + { + parser.suggestKeywords(['REBUILD']); + } + ; + +OptionalIdxProperties + : + | 'IDXPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +OptionalInTable + : + | 'IN' 'TABLE' SchemaQualifiedTableIdentifier + ; + +OptionalInTable_EDIT + : 'IN' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'IN' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'IN' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + ; + + +ParenthesizedIndexColumnList + : '(' IndexColumnList ')' + ; + +ParenthesizedIndexColumnList_EDIT + : '(' IndexColumnList_EDIT RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +IndexColumnList + : ColumnReference + | IndexColumnList ',' ColumnReference + ; + +IndexColumnList_EDIT + : AnyCursor + | IndexColumnList ',' AnyCursor + | AnyCursor ',' IndexColumnList + | IndexColumnList ',' AnyCursor ',' IndexColumnList + ; + +MacroDefinition + : 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments ValueExpression + ; + +MacroDefinition_EDIT + : 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments_EDIT + | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments_EDIT ValueExpression + | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments 'CURSOR' + { + parser.suggestFunctions(); + } + | 'CREATE' 'TEMPORARY' 'MACRO' RegularIdentifier MacroArguments ValueExpression_EDIT + ; + +MacroArguments + : '(' ')' + | '(' MacroArgumentList ')' + ; + +MacroArguments_EDIT + : '(' MacroArgumentList_EDIT RightParenthesisOrError + ; + + +MacroArgumentList + : MacroArgument + | MacroArgumentList ',' MacroArgument + ; + +MacroArgumentList_EDIT + : MacroArgument_EDIT + | MacroArgumentList ',' MacroArgument_EDIT + | MacroArgument_EDIT ',' MacroArgumentList + | MacroArgumentList ',' MacroArgument_EDIT ',' MacroArgumentList + ; + +MacroArgument + : RegularIdentifier ColumnDataType + ; + +MacroArgument_EDIT + : RegularIdentifier 'CURSOR' + { + parser.suggestKeywords(parser.getColumnDataTypeKeywords()); + } + | RegularIdentifier ColumnDataType_EDIT + ; diff --git a/src/jison/sql/presto/sql_drop.jison b/src/jison/sql/presto/sql_drop.jison new file mode 100644 index 0000000..07b94de --- /dev/null +++ b/src/jison/sql/presto/sql_drop.jison @@ -0,0 +1,321 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : DropStatement + | AbortStatement + ; + +DataDefinition_EDIT + : DropStatement_EDIT + | AbortStatement_EDIT + ; + +DataManipulation + : DeleteStatement + ; + +DataManipulation_EDIT + : DeleteStatement_EDIT + ; + +DropStatement + : DropDatabaseStatement + | DropFunctionStatement + | DropRoleStatement + | DropTableStatement + | DropIndexStatement + | DropMacroStatement + | DropViewStatement + | TruncateTableStatement + ; + +DropStatement_EDIT + : DropDatabaseStatement_EDIT + | DropFunctionStatement_EDIT + | DropTableStatement_EDIT + | DropIndexStatement_EDIT + | DropMacroStatement_EDIT + | DropViewStatement_EDIT + | TruncateTableStatement_EDIT + | 'DROP' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'VIEW']); + } + ; + +DropDatabaseStatement + : 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier OptionalCascadeOrRestrict + ; + +DropDatabaseStatement_EDIT + : 'DROP' DatabaseOrSchema OptionalIfExists + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestDatabases(); + } + | 'DROP' DatabaseOrSchema OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['CASCADE', 'RESTRICT']); + } + | 'DROP' DatabaseOrSchema OptionalIfExists_EDIT RegularOrBacktickedIdentifier OptionalCascadeOrRestrict + | 'DROP' DatabaseOrSchema OptionalIfExists 'CURSOR' RegularOrBacktickedIdentifier OptionalCascadeOrRestrict + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + ; + +DropFunctionStatement + : 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier + | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists RegularIdentifier + ; + +DropFunctionStatement_EDIT + : 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'FUNCTION' OptionalIfExists 'CURSOR' SchemaQualifiedIdentifier + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'FUNCTION' OptionalIfExists_EDIT + | 'DROP' 'FUNCTION' OptionalIfExists_EDIT SchemaQualifiedIdentifier + | 'DROP' 'FUNCTION' OptionalIfExists SchemaQualifiedIdentifier_EDIT + | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'TEMPORARY' 'FUNCTION' OptionalIfExists_EDIT + ; + +DropRoleStatement + : 'DROP' 'ROLE' RegularIdentifier + ; + +DropTableStatement + : 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge + { + parser.addTablePrimary($4); + } + ; + +DropTableStatement_EDIT + : 'DROP' 'TABLE' OptionalIfExists_EDIT + | 'DROP' 'TABLE' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyTables: true }); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT OptionalPurge + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyTables = true; + } + } + | 'DROP' 'TABLE' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier OptionalPurge + | 'DROP' 'TABLE' OptionalIfExists SchemaQualifiedTableIdentifier OptionalPurge 'CURSOR' + { + parser.addTablePrimary($4); + if (!$5) { + parser.suggestKeywords(['PURGE']); + } + } + ; + +OptionalPurge + : + | 'PURGE' + ; + + +DropIndexStatement + : 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($6); + } + ; + +DropIndexStatement_EDIT + : 'DROP' 'INDEX' OptionalIfExists 'CURSOR' + { + parser.suggestKeywords(['IF EXISTS']); + } + | 'DROP' 'INDEX' OptionalIfExists_EDIT + | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'INDEX' OptionalIfExists RegularOrBacktickedIdentifier 'ON' SchemaQualifiedTableIdentifier_EDIT + ; + +DropMacroStatement + : 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists RegularIdentifier + ; + +DropMacroStatement_EDIT + : 'DROP' 'TEMPORARY' 'CURSOR' + { + parser.suggestKeywords(['FUNCTION', 'MACRO']); + } + | 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'TEMPORARY' 'MACRO' OptionalIfExists_EDIT + ; + +DropViewStatement + : 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + ; + +DropViewStatement_EDIT + : 'DROP' 'VIEW' OptionalIfExists 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + parser.suggestTables({ onlyViews: true }); + parser.suggestDatabases({ appendDot: true }); + } + | 'DROP' 'VIEW' OptionalIfExists 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($5); + if (!$3) { + parser.suggestKeywords(['IF EXISTS']); + } + } + | 'DROP' 'VIEW' OptionalIfExists_EDIT + | 'DROP' 'VIEW' OptionalIfExists_EDIT SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($4); + } + | 'DROP' 'VIEW' OptionalIfExists SchemaQualifiedTableIdentifier_EDIT + { + if (parser.yy.result.suggestTables) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + ; + +TruncateTableStatement + : 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($3); + } + ; + +TruncateTableStatement_EDIT + : 'TRUNCATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'TRUNCATE' 'TABLE' 'CURSOR' OptionalPartitionSpec + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($3); + if (!$4) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'TRUNCATE' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + { + parser.addTablePrimary($3); + } + | 'TRUNCATE' 'TABLE' 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($4); + } + ; + +DeleteStatement + : 'DELETE' 'FROM' SchemaQualifiedTableIdentifier OptionalWhereClause + { + parser.addTablePrimary($3); + } + ; + +DeleteStatement_EDIT + : 'DELETE' 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + | 'DELETE' 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier 'CURSOR' OptionalWhereClause + { + parser.addTablePrimary($3); + if (!$5) { + parser.suggestKeywords(['WHERE']); + } + } + | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier_EDIT OptionalWhereClause + | 'DELETE' 'FROM' SchemaQualifiedTableIdentifier WhereClause_EDIT + { + parser.addTablePrimary($3); + } + ; + +AbortStatement + : 'ABORT' 'TRANSACTIONS' TransactionIdList + ; + +AbortStatement_EDIT + : 'ABORT' 'CURSOR' + { + parser.suggestKeywords(['TRANSACTIONS']); + } + ; + +TransactionIdList + : UnsignedNumericLiteral + | TransactionIdList ',' UnsignedNumericLiteral + ; diff --git a/src/jison/sql/presto/sql_error.jison b/src/jison/sql/presto/sql_error.jison new file mode 100644 index 0000000..0a623b3 --- /dev/null +++ b/src/jison/sql/presto/sql_error.jison @@ -0,0 +1,169 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlStatements + : error + | NonStartingToken error // Having just ': error' does not work for some reason, jison bug? + ; + +SqlStatement_EDIT + : AnyCursor error + { + parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); + } + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_ERROR + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_ERROR_EDIT TableExpression + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct SelectList_ERROR TableExpression_EDIT + ; + +SelectList_ERROR + : ErrorList + | SelectList ',' ErrorList + | ErrorList ',' SelectList ',' ErrorList + | ErrorList ',' SelectList + | SelectList ',' ErrorList ',' SelectList + ; + +SelectList_ERROR_EDIT + : ErrorList ',' SelectList_EDIT -> $3 + | SelectList ',' ErrorList ',' SelectList_EDIT -> $5 + | ErrorList ',' SelectList ',' ErrorList ',' SelectList_EDIT -> $7 + | ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' ErrorList ',' AnyCursor + { + $$ = { cursorAtStart : false, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | ErrorList ',' SelectList ',' Errors ',' AnyCursor + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + ; + +SetSpecification + : 'SET' SetOption '=' error + ; + +ErrorList + : error + | Errors ',' error + ; + +LateralView + : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier 'AS' error -> { } + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction error -> { } + | 'LATERAL' 'VIEW' OptionalOuter error -> { } + | 'LATERAL' error -> { } + ; + +JoinType_EDIT + : 'FULL' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + | 'LEFT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN', 'SEMI JOIN']); + } + | 'RIGHT' 'CURSOR' error + { + parser.suggestKeywords(['JOIN', 'OUTER JOIN']); + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$4, $5, $6, $7, $8, $9], [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true, true, true]), + cursorAtEnd: !$4 && !$5 && !$6 && !$7 && !$8 && !$9 + }; + } + | OptionalWhereClause OptionalGroupByClause HavingClause error 'CURSOR' OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$6, $7, $8, $9], [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true, true]), + cursorAtEnd: !$6 && !$7 && !$8 && !$9 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error 'CURSOR' OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$7, $8, $9], [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true, true]), + cursorAtEnd: !$7 && !$8 && !$9 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error 'CURSOR' OptionalClusterOrDistributeBy OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$8, $9], [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], [true, true]), + cursorAtEnd: !$8 && !$9 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy error 'CURSOR' OptionalLimitClause + { + $$ = { + suggestKeywords: parser.getKeywordsForOptionalsLR([$9], [{ value: 'LIMIT', weight: 3 }], [true]), + cursorAtEnd: !$9 + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause error 'CURSOR' + { + $$ = { + suggestKeywords: [], + cursorAtEnd: true + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause error GroupByClause_EDIT OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | WhereClause error OptionalGroupByClause HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause + | WhereClause error OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT + | OptionalWhereClause GroupByClause error HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause + | OptionalWhereClause GroupByClause error OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause HavingClause error WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause HavingClause error OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause error OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error ClusterOrDistributeBy_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause error OptionalClusterOrDistributeBy LimitClause_EDIT + ; + +DatabaseDefinition_EDIT + : 'CREATE' DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals_EDIT error + ; diff --git a/src/jison/sql/presto/sql_grant.jison b/src/jison/sql/presto/sql_grant.jison new file mode 100644 index 0000000..36974db --- /dev/null +++ b/src/jison/sql/presto/sql_grant.jison @@ -0,0 +1,378 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : GrantStatement + | RevokeStatement + ; + +DataDefinition_EDIT + : GrantStatement_EDIT + | RevokeStatement_EDIT + ; + +GrantStatement + : 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList OptionalWithGrantOption + | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption + | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption + ; + +GrantStatement_EDIT + : 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); + } + | 'GRANT' PrivilegeTypeList_EDIT OptionalOnSpecification + | 'GRANT' PrivilegeTypeList OnSpecification_EDIT + | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['ON', 'TO']); + } else { + parser.suggestKeywords(['TO']); + } + } + | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList_EDIT + | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList OptionalWithGrantOption 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['WITH GRANT OPTION']); + } + } + | 'GRANT' PrivilegeTypeList OptionalOnSpecification 'TO' PrincipalSpecificationList WithGrantOption_EDIT + | 'GRANT' UserOrRoleList 'CURSOR' + { + parser.suggestKeywords(['TO']); + } + | 'GRANT' UserOrRoleList 'TO' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList_EDIT + | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption 'CURSOR' + { + if (!$5) { + parser.suggestKeywords(['WITH ADMIN OPTION']); + } + } + | 'GRANT' UserOrRoleList 'TO' PrincipalSpecificationList WithAdminOption_EDIT + | 'GRANT' 'ROLE' UserOrRoleList 'TO' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList_EDIT + | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList OptionalWithAdminOption 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['WITH ADMIN OPTION']); + } + } + | 'GRANT' 'ROLE' UserOrRoleList 'TO' PrincipalSpecificationList WithAdminOption_EDIT + ; + +OptionalOnSpecification + : + | 'ON' ObjectSpecification + ; + +OnSpecification_EDIT + : 'ON' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'TABLE']); + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'ON' ObjectSpecification_EDIT + ; + +ObjectSpecification + : 'DATABASE' RegularOrBacktickedIdentifier + | 'TABLE' SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($2); + } + | SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($1); + } + ; + +ObjectSpecification_EDIT + : 'DATABASE' 'CURSOR' + { + parser.suggestDatabases(); + } + | 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'TABLE' SchemaQualifiedTableIdentifier_EDIT + | SchemaQualifiedTableIdentifier_EDIT + ; + +PrivilegeTypeList + : PrivilegeTypeWithOptionalColumn + { + if ($1.toUpperCase() === 'ALL') { + $$ = { singleAll: true }; + } + } + | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn + ; + +PrivilegeTypeList_EDIT + : PrivilegeTypeWithOptionalColumn_EDIT + | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn_EDIT + | PrivilegeTypeWithOptionalColumn_EDIT ',' PrivilegeTypeList + | PrivilegeTypeList ',' PrivilegeTypeWithOptionalColumn_EDIT ',' PrivilegeTypeList + | 'CURSOR' ',' PrivilegeTypeList + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); + } + | PrivilegeTypeList ',' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); + } + | PrivilegeTypeList ',' 'CURSOR' ',' PrivilegeTypeList + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); + } + ; + +PrivilegeTypeWithOptionalColumn + : PrivilegeType OptionalParenthesizedColumnList + ; + +PrivilegeTypeWithOptionalColumn_EDIT + : PrivilegeType ParenthesizedColumnList_EDIT + ; + +PrivilegeType + : 'ALL' + | 'ALTER' + | 'CREATE' + | 'DELETE' + | 'DROP' + | 'INDEX' + | 'INSERT' + | 'LOCK' + | 'SELECT' + | 'SHOW_DATABASE' + | 'UPDATE' + ; + +PrincipalSpecificationList + : PrincipalSpecification + | PrincipalSpecificationList ',' PrincipalSpecification + ; + +PrincipalSpecificationList_EDIT + : PrincipalSpecificationList ',' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'CURSOR' ',' PrincipalSpecificationList + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | PrincipalSpecificationList ',' 'CURSOR' ',' PrincipalSpecificationList + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + ; + +PrincipalSpecification + : 'USER' RegularOrBacktickedIdentifier + | 'GROUP' RegularOrBacktickedIdentifier + | 'ROLE' RegularOrBacktickedIdentifier + ; + +PrincipalSpecification_EDIT + : 'USER' 'CURSOR' + | 'GROUP' 'CURSOR' + | 'ROLE' 'CURSOR' + ; + +UserOrRoleList + : RegularOrBacktickedIdentifier + | UserOrRoleList ',' RegularOrBacktickedIdentifier + ; + +OptionalWithGrantOption + : + | 'WITH' 'GRANT' 'OPTION' + ; + +WithGrantOption_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['GRANT OPTION']); + } + | 'WITH' 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['OPTION']); + } + ; + +OptionalWithAdminOption + : + | 'WITH' 'ADMIN' 'OPTION' + ; + +WithAdminOption_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['ADMIN OPTION']); + } + | 'WITH' 'ADMIN' 'CURSOR' + { + parser.suggestKeywords(['OPTION']); + } + ; + +RevokeStatement + : 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList + | 'REVOKE' UserOrRoleList 'FROM' PrincipalSpecificationList + | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' PrincipalSpecificationList + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList + | 'REVOKE' 'ALL' PrivilegesOrGrantOption 'FROM' UserOrRoleList + ; + +RevokeStatement_EDIT + : 'REVOKE' 'CURSOR' + { + parser.suggestKeywords(['ADMIN OPTION FOR', 'ALL', 'ALL GRANT OPTION FROM', 'ALL PRIVILEGES FROM', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'GRANT OPTION FOR', 'INDEX', 'INSERT', 'LOCK', 'ROLE', 'SELECT', 'UPDATE']); + } + | 'REVOKE' PrivilegeTypeList_EDIT + | 'REVOKE' PrivilegeTypeList OnSpecification_EDIT + | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'CURSOR' + { + if (!$3) { + if ($2.singleAll) { + parser.suggestKeywords(['FROM', 'GRANT OPTION', 'ON', 'PRIVILEGES FROM']); + } else { + parser.suggestKeywords(['FROM', 'ON']); + } + } else { + parser.suggestKeywords(['FROM']); + } + } + | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList_EDIT + | 'REVOKE' 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['OPTION FOR']); + } + | 'REVOKE' 'GRANT' 'OPTION' 'CURSOR' + { + parser.suggestKeywords(['FOR']); + } + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'ALTER', 'CREATE', 'DELETE', 'DROP', 'INDEX', 'INSERT', 'LOCK', 'SELECT', 'SHOW_DATABASE', 'UPDATE']); + } + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList_EDIT + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OnSpecification_EDIT + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['FROM', 'ON']); + } else { + parser.suggestKeywords(['FROM']); + } + } + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' 'GRANT' 'OPTION' 'FOR' PrivilegeTypeList OptionalOnSpecification 'FROM' PrincipalSpecificationList_EDIT + | 'REVOKE' UserOrRoleList 'CURSOR' + { + if ($2.toUpperCase() === 'ADMIN') { + parser.suggestKeywords(['FROM', 'OPTION FOR']); + } else { + parser.suggestKeywords(['FROM']); + } + } + | 'REVOKE' UserOrRoleList 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT + | 'REVOKE' 'ROLE' UserOrRoleList 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT + + | 'REVOKE' 'ADMIN' 'OPTION' 'CURSOR' + { + parser.suggestKeywords(['FOR']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'CURSOR' + { + parser.suggestKeywords(['ROLE']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' 'CURSOR' + { + parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); + } + | 'REVOKE' 'ADMIN' 'OPTION' 'FOR' 'ROLE' UserOrRoleList 'FROM' PrincipalSpecificationList_EDIT + | 'REVOKE' 'ALL' PrivilegesOrGrantOption_EDIT + | 'REVOKE' 'ALL' PrivilegesOrGrantOption 'CURSOR' + { + parser.suggestKeywords(['FROM']); + } + ; + +PrivilegesOrGrantOption + : 'PRIVILEGES' + | 'GRANT' 'OPTION' + ; + +PrivilegesOrGrantOption_EDIT + : 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['OPTION']); + } + ; diff --git a/src/jison/sql/presto/sql_insert.jison b/src/jison/sql/presto/sql_insert.jison new file mode 100644 index 0000000..15c483f --- /dev/null +++ b/src/jison/sql/presto/sql_insert.jison @@ -0,0 +1,536 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : InsertStatement + | CommonTableExpression InsertStatement + | MergeStatement + ; + +DataManipulation_EDIT + : InsertStatement_EDIT + | CommonTableExpression InsertStatement_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT InsertStatement + | MergeStatement_EDIT + ; + +InsertStatement + : InsertWithoutQuery + | InsertWithoutQuery QuerySpecification + | FromClause Inserts + | FromClause SelectWithoutTableExpression OptionalSelectConditions + ; + +InsertStatement_EDIT + : InsertWithoutQuery_EDIT + | InsertWithoutQuery 'CURSOR' + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}]); + } else { + keywords = ['SELECT']; + } + if ($1.addValues) { + keywords.push({ weight: 1.1, value: 'VALUES' }); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + | InsertWithoutQuery_EDIT QuerySpecification + | InsertWithoutQuery QuerySpecification_EDIT + | FromClause Inserts_EDIT + { + if (!$2.keepTables) { + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + } + } + | FromClause_EDIT + | FromClause_EDIT Inserts + | FromClause_EDIT SelectWithoutTableExpression OptionalSelectConditions + | FromClause 'CURSOR' + { + parser.suggestKeywords(['INSERT INTO', 'INSERT OVERWRITE', 'SELECT']); + } + | FromClause SelectWithoutTableExpression_EDIT OptionalSelectConditions + { + if ($2.cursorAtEnd) { + parser.checkForSelectListKeywords($2); + var keywords = parser.yy.result.suggestKeywords || []; + if ($3.suggestKeywords) { + keywords = keywords.concat($3.suggestKeywords); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + delete parser.yy.result.suggestTables; + delete parser.yy.result.suggestDatabases; + } + | FromClause SelectWithoutTableExpression OptionalSelectConditions_EDIT + { + if ($3.cursorAtStart) { + parser.checkForSelectListKeywords($2.tableExpression); + } + } + ; + +InsertWithoutQuery + : 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec 'VALUES' InsertValuesList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalIfNotExists + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (!$5 && !$6) { + $$ = { suggestKeywords: ['PARTITION'] } + } else if (!$6) { + $$ = { suggestKeywords: ['IF NOT EXISTS'] } + } + } + | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs + { + if (!$6 && !$7) { + $$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; + } else if (!$7) { + $$ = { suggestKeywords: ['STORED AS'] }; + } + } + | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs + { + if (!$4 && !$5) { + $$ = { suggestKeywords: [{ value: 'ROW FORMAT', weight: 2 }, { value: 'STORED AS', weight: 1}] }; + } else if (!$5) { + $$ = { suggestKeywords: ['STORED AS'] }; + } + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalParenthesizedColumnList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (!$5 && !$6) { + $$ = { suggestKeywords: ['PARTITION'], addValues: true }; + } else if (!$6) { + $$ = { addValues: true }; + } + } + ; + +InsertWithoutQuery_EDIT + : 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['OVERWRITE', 'INTO']); + } + | 'INSERT' 'OVERWRITE' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['DIRECTORY', 'LOCAL DIRECTORY', 'TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + $$ = { keepTables: true } + } + | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalParenthesizedColumnList + { + $$ = { keepTables: true } + } + | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalIfNotExists + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + } + | 'INSERT' 'OVERWRITE' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalIfNotExists_EDIT + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + } + | 'INSERT' 'OVERWRITE' 'LOCAL' 'CURSOR' + { + parser.suggestKeywords(['DIRECTORY']); + } + | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath_EDIT OptionalInsertRowFormat OptionalStoredAs + | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat_EDIT OptionalStoredAs + | 'INSERT' 'OVERWRITE' 'LOCAL' 'DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs_EDIT + | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath_EDIT OptionalInsertRowFormat OptionalStoredAs // DIRECTORY is a non-reserved keyword + | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat_EDIT OptionalStoredAs + | 'INSERT' 'OVERWRITE_DIRECTORY' HdfsPath OptionalInsertRowFormat OptionalStoredAs_EDIT + | 'INSERT' 'INTO' OptionalTable 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['TABLE']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + $$ = { keepTables: true } + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec OptionalParenthesizedColumnList + { + $$ = { keepTables: true } + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT OptionalParenthesizedColumnList + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + } + | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier OptionalPartitionSpec OptionalParenthesizedColumnList_EDIT + { + $4.owner = 'insert'; + parser.addTablePrimary($4); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.owner = 'insert'; + } + } + ; + +Inserts + : GenericInsert + | Inserts GenericInsert + ; + +Inserts_EDIT + : GenericInsert_EDIT + | Inserts GenericInsert_EDIT + | GenericInsert_EDIT Inserts + | Inserts GenericInsert_EDIT Inserts + ; + +// TODO: Verify unions in insert +GenericInsert + : InsertWithoutQuery SelectWithoutTableExpression OptionalSelectConditions + ; + +GenericInsert_EDIT + : InsertWithoutQuery_EDIT + | InsertWithoutQuery_EDIT SelectWithoutTableExpression OptionalSelectConditions + | InsertWithoutQuery 'CURSOR' + { + if ($1.suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($1.suggestKeywords, 2).concat([{ value: 'SELECT', weight: 1}])); + } else { + parser.suggestKeywords(['SELECT']); + } + } + | InsertWithoutQuery SelectWithoutTableExpression_EDIT OptionalSelectConditions + { + if ($2.cursorAtEnd) { + parser.checkForSelectListKeywords($2); + var keywords = parser.yy.result.suggestKeywords || []; + if ($3.suggestKeywords) { + keywords = keywords.concat($3.suggestKeywords); + } + if (keywords.length > 0) { + parser.suggestKeywords(keywords); + } + } + } + | InsertWithoutQuery SelectWithoutTableExpression OptionalSelectConditions_EDIT + ; + +InsertValuesList + : ParenthesizedRowValuesList + | RowValuesList ',' ParenthesizedRowValuesList + ; + +ParenthesizedRowValuesList + : '(' InValueList ')' + ; + +OptionalTable + : + | 'TABLE' + ; + +OptionalInsertRowFormat + : + | 'ROW' 'FORMAT' DelimitedRowFormat + ; + +OptionalInsertRowFormat_EDIT + : 'ROW' 'CURSOR' + { + parser.suggestKeywords(['FORMAT DELIMITED']); + } + | 'ROW' 'FORMAT' 'CURSOR' + { + parser.suggestKeywords(['DELIMITED']); + } + | 'ROW' 'FORMAT' DelimitedRowFormat_EDIT + ; + +SelectWithoutTableExpression + : 'SELECT' OptionalAllOrDistinct SelectList -> { selectList: $3 } + ; + +SelectWithoutTableExpression_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + $$ = $3; + $$.cursorAtEnd = true; + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.selectListNoTableSuggest($3, $2); + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns(); + } + ; + +MergeStatement + : MergeStatementLeftPart 'ON' ValueExpression WhenList + ; + +MergeStatement_EDIT + : MergeStatementLeftPart_EDIT + | MergeStatementLeftPart 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | MergeStatementLeftPart 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | MergeStatementLeftPart 'ON' ValueExpression_EDIT + | MergeStatementLeftPart 'ON' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, [{ value: 'WHEN', weight: 2 }]); + } + | MergeStatementLeftPart 'ON' ValueExpression WhenList_EDIT + ; + +MergeStatementLeftPart + : 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'AS' RegularIdentifier + { + $3.alias = $5; + parser.addTablePrimary($3); + if ($7.subQuery) { + parser.addTablePrimary({ subQueryAlias: $9 }); + } else { + $7.alias = $9; + } + } + ; + +MergeStatementLeftPart_EDIT + : 'MERGE' 'CURSOR' + { + parser.suggestKeywords(['INTO']); + } + | 'MERGE' 'INTO' 'CURSOR' + { + parser.suggestDatabases({ appendDot: true }); + parser.suggestTables(); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier_EDIT + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['AS T USING']); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['T USING']); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'CURSOR' + { + $3.alias = $5; + parser.addTablePrimary($3); + parser.suggestKeywords(['USING']); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' 'CURSOR' + { + $3.alias = $5; + parser.addTablePrimary($3); + parser.suggestDatabases({ appendDot: true }); + parser.suggestTables(); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource_EDIT + { + $3.alias = $5; + parser.addTablePrimary($3); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'CURSOR' + { + $3.alias = $5; + parser.addTablePrimary($3); + parser.suggestKeywords(['AS S ON']); + } + | 'MERGE' 'INTO' SchemaQualifiedTableIdentifier 'AS' RegularIdentifier 'USING' MergeSource 'AS' 'CURSOR' + { + $3.alias = $5; + parser.addTablePrimary($3); + parser.suggestKeywords(['S ON']); + } + ; + +MergeSource + : '(' TableSubQueryInner ')' -> $2 + | SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($1); + } + ; + +MergeSource_EDIT + : '(' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | '(' TableSubQueryInner_EDIT RightParenthesisOrError + | SchemaQualifiedTableIdentifier_EDIT + ; + +WhenList + : WhenClause + | WhenClause WhenClause + | WhenClause WhenClause WhenClause + ; + +WhenList_EDIT + : WhenClause_EDIT + { + if ($1.suggestThenKeywords) { + parser.suggestKeywords(['DELETE', 'INSERT VALUES', 'UPDATE SET']); + } + } + | WhenClause 'CURSOR' + { + if (!$1.notPresent) { + parser.suggestKeywords(['WHEN']); + } + } + | WhenClause WhenClause_EDIT + { + if (!$1.notPresent && $2.suggestThenKeywords) { + var keywords = []; + if (!$1.isDelete) { + keywords.push('DELETE'); + } + if (!$1.isInsert) { + keywords.push('INSERT VALUES'); + } + if (!$1.isUpdate) { + keywords.push('UPDATE SET'); + } + parser.suggestKeywords(keywords); + } + } + | WhenClause WhenClause 'CURSOR' + { + if (!$2.notPresent) { + parser.suggestKeywords(['WHEN']); + } + } + | WhenClause WhenClause WhenClause_EDIT + { + if (!$2.notPresent && $3.suggestThenKeywords) { + var keywords = []; + if (!$1.isDelete && !$2.isDelete) { + keywords.push('DELETE'); + } + if (!$1.isInsert && !$2.isInsert) { + keywords.push('INSERT VALUES'); + } + if (!$1.isUpdate && !$2.isUpdate) { + keywords.push('UPDATE SET'); + } + parser.suggestKeywords(keywords); + } + } + ; + +WhenClause + : 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' UpdateDeleteOrInsert -> { notPresent: !!$2, isDelete: $6.isDelete, isInsert: $6.isInsert, isUpdate: $6.isUpdate } + ; + +WhenClause_EDIT + : 'WHEN' OptionalNot 'CURSOR' + { + if (!$2) { + parser.suggestKeywords(['NOT MATCHED', 'MATCHED']); + } else { + parser.suggestKeywords(['MATCHED']); + } + } + | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['AND', 'THEN']); + } else { + parser.suggestValueExpressionKeywords($4, [{ value: 'THEN', weight: 2 }]); + } + } + | 'WHEN' OptionalNot 'MATCHED' MatchCondition_EDIT + | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' 'CURSOR' -> { suggestThenKeywords: true } + | 'WHEN' OptionalNot 'MATCHED' OptionalMatchCondition 'THEN' UpdateDeleteOrInsert_EDIT + ; + +OptionalMatchCondition + : + | 'AND' ValueExpression -> $2 + ; + +MatchCondition_EDIT + : 'AND' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + ; + +UpdateDeleteOrInsert + : 'UPDATE' 'SET' SetClauseList -> { isUpdate: true } + | 'DELETE' -> { isDelete: true } + | 'INSERT' 'VALUES' InsertValuesList -> { isInsert: true } + ; + +UpdateDeleteOrInsert_EDIT + : 'UPDATE' 'CURSOR' + { + parser.suggestKeywords(['SET']); + } + | 'UPDATE' 'SET' SetClauseList_EDIT + | 'INSERT' 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + ; diff --git a/src/jison/sql/presto/sql_load.jison b/src/jison/sql/presto/sql_load.jison new file mode 100644 index 0000000..54f121d --- /dev/null +++ b/src/jison/sql/presto/sql_load.jison @@ -0,0 +1,271 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : LoadStatement + | ImportStatement + | ExportStatement + ; + +DataManipulation_EDIT + : LoadStatement_EDIT + | ImportStatement_EDIT + | ExportStatement_EDIT + ; + +LoadStatement + : 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($9); + } + ; + +LoadStatement_EDIT + : 'LOAD' 'CURSOR' + { + parser.suggestKeywords(['DATA LOCAL INPATH', 'DATA INPATH']); + } + | 'LOAD' 'DATA' OptionalLocal 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['INPATH', 'LOCAL INPATH']); + } else { + parser.suggestKeywords(['INPATH']); + } + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath_EDIT OptionalOverwrite + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['OVERWRITE INTO TABLE', 'INTO TABLE']); + } else { + parser.suggestKeywords(['INTO TABLE']); + } + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'CURSOR' + { + parser.suggestKeywords([ 'TABLE' ]); + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($9); + if (!$10) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + { + parser.addTablePrimary($9); + } + | 'LOAD' 'DATA' OptionalLocal 'INPATH' HdfsPath_EDIT OptionalOverwrite 'INTO' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($9); + } + ; + +OptionalOverwrite + : + | 'OVERWRITE' + ; + +OptionalLocal + : + | 'LOCAL' + ; + +ImportStatement + : 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation + ; + +ImportStatement_EDIT + : 'IMPORT' 'CURSOR' OptionalTableWithPartition + { + if (!$3) { + parser.suggestKeywords(['EXTERNAL TABLE', 'FROM', 'TABLE']); + } else if (!$3.hasExternal) { + parser.suggestKeywords(['EXTERNAL']); + } + } + | 'IMPORT' TableWithPartition 'CURSOR' + { + if ($2.suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['FROM'])); + } else { + parser.suggestKeywords(['FROM']); + } + } + | 'IMPORT' TableWithPartition_EDIT + | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath_EDIT OptionalHdfsLocation + | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath HdfsLocation_EDIT + | 'IMPORT' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation 'CURSOR' + { + if (!$6) { + parser.suggestKeywords(['LOCATION']); + } + } + | 'IMPORT' 'CURSOR' OptionalTableWithPartition PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation + { + if (!$3) { + parser.suggestKeywords(['EXTERNAL TABLE', 'TABLE']); + } else if (!$3.hasExternal) { + parser.suggestKeywords(['EXTERNAL']); + } + } +| 'IMPORT' TableWithPartition_EDIT PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation + | 'IMPORT' TableWithPartition 'CURSOR' PushHdfsLexerState 'FROM' HdfsPath OptionalHdfsLocation + { + if ($2.suggestKeywords) { + parser.suggestKeywords(parser.createWeightedKeywords($2.suggestKeywords, 2).concat(['FROM'])); + } + } + ; + +OptionalTableWithPartition + : + | TableWithPartition + ; + +TableWithPartition + : 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($3); + if (!$4) { + $$ = { hasExternal: true, suggestKeywords: ['PARTITION'] }; + } else { + $$ = { hasExternal: true } + } + } + | 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($2); + if (!$3) { + $$ = { suggestKeywords: ['PARTITION'] }; + } + } + ; + +TableWithPartition_EDIT + : 'EXTERNAL' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'EXTERNAL' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'EXTERNAL' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT + { + parser.addTablePrimary($3); + } + | 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + + | 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT + { + parser.addTablePrimary($3); + } + ; + +ExportStatement + : 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath + { + parser.addTablePrimary($3); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' + { + parser.addTablePrimary($3); + } + ; + +ExportStatement_EDIT + : 'EXPORT' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'EXPORT' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' + { + parser.addTablePrimary($3); + if (!$4) { + parser.suggestKeywords([{ weight: 2, value: 'PARTITION' }, { weight: 1, value: 'TO' }]); + } else { + parser.suggestKeywords([ 'TO' ]); + } + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT + { + parser.addTablePrimary($3); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath_EDIT + { + parser.addTablePrimary($3); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['FOR replication()']); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['replication()']); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' PushHdfsLexerState 'TO' HdfsPath + { + parser.addTablePrimary($3); + if (!$4) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' + { + parser.addTablePrimary($3); + if (!$4) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT PushHdfsLexerState 'TO' HdfsPath + { + parser.addTablePrimary($3); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier PartitionSpec_EDIT PushHdfsLexerState 'TO' HdfsPath 'FOR' 'REPLICATION' '(' QuotedValue ')' + { + parser.addTablePrimary($3); + } + | 'EXPORT' 'TABLE' SchemaQualifiedTableIdentifier OptionalPartitionSpec PushHdfsLexerState 'TO' HdfsPath_EDIT 'FOR' 'REPLICATION' '(' QuotedValue ')' + { + parser.addTablePrimary($3); + } + ; diff --git a/src/jison/sql/presto/sql_main.jison b/src/jison/sql/presto/sql_main.jison new file mode 100644 index 0000000..ed6dac5 --- /dev/null +++ b/src/jison/sql/presto/sql_main.jison @@ -0,0 +1,3665 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +SqlSyntax + : NewStatement SqlStatements EOF + ; + +SqlAutocomplete + : NewStatement SqlStatements EOF + { + return parser.yy.result; + } + | NewStatement SqlStatements_EDIT EOF + { + return parser.yy.result; + } + ; + +NewStatement + : /* empty */ + { + parser.prepareNewStatement(); + } + ; + +SqlStatements + : + | SqlStatement + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatements + ; + +SqlStatements_EDIT + : SqlStatement_EDIT + { + parser.addStatementLocation(@1); + } + | SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@1); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT + { + parser.addStatementLocation(@4); + } + | SqlStatements ';' NewStatement SqlStatement_EDIT ';' NewStatement SqlStatements + { + parser.addStatementLocation(@4); + } + ; + +SqlStatement + : DataDefinition + | DataManipulation + | QuerySpecification + | ExplainClause DataDefinition + | ExplainClause DataManipulation + | ExplainClause QuerySpecification + ; + +SqlStatement_EDIT + : AnyCursor + { + parser.suggestDdlAndDmlKeywords(['EXPLAIN', 'FROM']); + } + | CommonTableExpression 'CURSOR' + { + parser.suggestKeywords(['INSERT', 'SELECT']); + } + | ExplainClause_EDIT + | DataDefinition_EDIT + | DataManipulation_EDIT + | QuerySpecification_EDIT + | SetSpecification_EDIT + | ExplainClause DataDefinition_EDIT + | ExplainClause DataManipulation_EDIT + | ExplainClause QuerySpecification_EDIT + | ExplainClause_EDIT DataDefinition + | ExplainClause_EDIT DataManipulation + | ExplainClause_EDIT QuerySpecification + ; + +NonReservedKeyword + : 'ABORT' + | 'ADD' + | 'ADMIN' + | 'AFTER' + | 'ANALYZE' + | 'ARCHIVE' + | 'AVRO' + | 'BUCKET' + | 'BUCKETS' + | 'CASCADE' + | 'CHANGE' + | 'CLUSTERED' + | 'COLLECTION' + | 'COLUMNS' + | 'COMMENT' + | 'COMPACT' + | 'COMPACTIONS' + | 'COMPUTE' + | 'CONCATENATE' + | 'DATA' + | 'DATABASES' + | 'DAY' + | 'DBPROPERTIES' + | 'DEFERRED' + | 'DEFINED' + | 'DELIMITED' + | 'DEPENDENCY' + | 'DIRECTORY' + | 'DISABLE' + | 'DOUBLE_PRECISION' + | 'ENABLE' + | 'ESCAPED' + | 'EXCHANGE' + | 'EXPLAIN' + | 'EXPORT' + | 'FIELDS' + | 'FILE' + | 'FILEFORMAT' + | 'FIRST' + | 'FORMAT' + | 'FUNCTIONS' + | 'HOUR' + | 'IDXPROPERTIES' + | 'INPATH' + | 'INPUTFORMAT' + | 'ITEMS' + | 'JAR' + | 'JSONFILE' + | 'KEY' + | 'KEYS' + | 'LINES' + | 'LOAD' + | 'LOCATION' + | 'LOCKS' + | 'MATCHED' + | 'MERGE' + | 'METADATA' + | 'MINUTE' + | 'MONTH' + | 'MSCK' + | 'NO_DROP' + | 'NORELY' + | 'NOSCAN' + | 'NOVALIDATE' + | 'OFFLINE' + | 'OPTION' + | 'ORC' + | 'OUTPUTFORMAT' + | 'OVERWRITE' + | 'OWNER' + | 'PARQUET' + | 'PARTITIONED' + | 'PARTITIONS' + | 'PERCENT' + | 'PRIVILEGES' + | 'PURGE' + | 'QUARTER' + | 'RCFILE' + | 'REBUILD' + | 'RECOVER' + | 'RELOAD' + | 'RELY' + | 'RENAME' + | 'REPAIR' + | 'REPLACE' + | 'REPLICATION' + | 'RESTRICT' + | 'ROLE' + | 'ROLES' + | 'SCHEMAS' + | 'SECOND' + | 'SEQUENCEFILE' + | 'SERDE' + | 'SERDEPROPERTIES' + | 'SETS' + | 'SHOW' + | 'SKEWED' + | 'SORTED' + | 'STATISTICS' + | 'STORED' + | 'STRING' + | 'STRUCT' + | 'TABLES' + | 'TBLPROPERTIES' + | 'TEMPORARY' + | 'TERMINATED' + | 'TEXTFILE' + | 'TIMESTAMP' + | 'TINYINT' + | 'TOUCH' + | 'TRANSACTIONAL' + | 'TRANSACTIONS' + | 'UNARCHIVE' + | 'UNIONTYPE' + | 'USE' + | 'USER' + | 'VIEW' + | 'WAIT' + | 'WEEK' + | 'YEAR' +// | 'ASC' // These cause conflicts, we could use a separate lexer state for DESCRIBE, ALTER, GRANT, REVOKE and SHOW +// | 'CLUSTER' +// | 'DESC' +// | 'DISTRIBUTE' +// | 'FORMATTED' +// | 'FUNCTION' +// | 'INDEX' +// | 'INDEXES' +// | 'LOCK' +// | 'SCHEMA' +// | 'SHOW_DATABASE' +// | 'SORT' + ; + +RegularIdentifier + : 'REGULAR_IDENTIFIER' + | 'VARIABLE_REFERENCE' + | NonReservedKeyword + ; + +ExplainClause + : 'EXPLAIN' OptionalExplainTypes + ; + +ExplainClause_EDIT + : 'EXPLAIN' OptionalExplainTypes 'CURSOR' + { + if (!$2) { + parser.suggestDdlAndDmlKeywords([{ value: 'AUTHORIZATION', weight: 2 }, { value: 'DEPENDENCY', weight: 2 }, { value: 'EXTENDED', weight: 2 }]); + } else { + parser.suggestDdlAndDmlKeywords(); + } + } + ; + +OptionalExplainTypes + : + | 'AUTHORIZATION' + | 'DEPENDENCY' + | 'EXTENDED' + ; + +// This is a work-around for error handling when a statement starts with some token that the parser can understand but +// it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) +NonStartingToken + : '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '<' + | '=' + | '>' + | '[' + | ']' + | 'ADMIN' + | 'ALL' + | 'ANALYTIC' + | 'AND' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'AS' + | 'ASC' + | 'AUTHORIZATION' + | 'AVG' + | 'AVRO' + | 'BACKTICK' + | 'BETWEEN' + | 'BIGINT' + | 'BINARY' + | 'BOOLEAN' + | 'BUCKET' + | 'BUCKETS' + | 'BY' + | 'CACHE' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'CLUSTER' + | 'CLUSTERED' + | 'COLLECT_LIST' + | 'COLLECT_SET' + | 'COLLECTION' + | 'COLUMNS' + | 'COMMENT' + | 'COMPACTIONS' + | 'COMPARISON_OPERATOR' + | 'COMPUTE' + | 'CONF' + | 'CONSTRAINT' + | 'CORR' + | 'COUNT' + | 'COVAR_POP' + | 'COVAR_SAMP' + | 'CROSS' + | 'CUBE' + | 'CURRENT' + | 'DATA' + | 'DATABASE' + | 'DATABASES' + | 'DATE' + | 'DAY' + | 'DAYOFWEEK' + | 'DBPROPERTIES' + | 'DECIMAL' + | 'DEFERRED' + | 'DEFINED' + | 'DELIMITED' + | 'DEPENDENCY' + | 'DESC' + | 'DIRECTORY' + | 'DISTINCT' + | 'DISTRIBUTE' + | 'DISTRIBUTED' + | 'DOUBLE' + | 'DOUBLE_PRECISION' + | 'DOUBLE_QUOTE' + | 'ELSE' + | 'END' + | 'ESCAPED' + | 'EXISTS' + | 'EXTENDED' + | 'EXTERNAL' + | 'FALSE' + | 'FIELDS' + | 'FILE' + | 'FLOAT' + | 'FOLLOWING' + | 'FOR' + | 'FOREIGN' + | 'FORMAT' + | 'FORMATTED' + | 'FROM' + | 'FULL' + | 'FUNCTION' + | 'FUNCTIONS' + | 'GRANT' + | 'GROUP' + | 'GROUPING' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'HISTOGRAM_NUMERIC' + | 'HOUR' + | 'IDXPROPERTIES' + | 'IF' + | 'IN' + | 'INDEX' + | 'INDEXES' + | 'INNER' + | 'INPATH' + | 'INPUTFORMAT' + | 'INT' + | 'INTEGER' + | 'INTO' + | 'IS' + | 'ITEMS' + | 'JAR' + | 'JOIN' + | 'JSONFILE' + | 'KEY' + | 'KEYS' + | 'LATERAL' + | 'LEFT' + | 'LIKE' + | 'LIMIT' + | 'LINES' + | 'LOCAL' + | 'LOCATION' + | 'LOCK' + | 'LOCKS' + | 'MACRO' + | 'MAP' + | 'MATCHED' + | 'MAX' + | 'METADATA' + | 'MIN' + | 'MINUTE' + | 'MONTH' + | 'NONE' + | 'NORELY' + | 'NOSCAN' + | 'NOT' + | 'NOVALIDATE' + | 'NTILE' + | 'NULL' + | 'OF' + | 'ON' + | 'OPTION' + | 'OR' + | 'ORC' + | 'ORDER' + | 'OUT' + | 'OUTER' + | 'OUTPUTFORMAT' + | 'OVER' + | 'OVERWRITE' + | 'OWNER' + | 'PARQUET' + | 'PARTITION' + | 'PARTITIONED' + | 'PARTITIONS' + | 'PERCENT' + | 'PERCENTILE' + | 'PERCENTILE_APPROX' + | 'PRECEDING' + | 'PRIMARY' + | 'PRIVILEGES' + | 'PURGE' + | 'QUARTER' + | 'RANGE' + | 'RCFILE' + | 'REBUILD' + | 'REFERENCES' + | 'REGEXP' + | 'REGULAR_IDENTIFIER' + | 'RELY' + | 'REPAIR' + | 'REPLICATION' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROLES' + | 'ROLLUP' + | 'ROW' + | 'ROWS' + | 'SCHEMA' + | 'SCHEMAS' + | 'SECOND' + | 'SEMI' + | 'SEQUENCEFILE' + | 'SERDE' + | 'SERDEPROPERTIES' + | 'SET' + | 'SETS' + | 'SHOW_DATABASE' + | 'SINGLE_QUOTE' + | 'SKEWED' + | 'SMALLINT' + | 'SORTED' + | 'STATISTICS' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STORED' + | 'STORED_AS_DIRECTORIES' + | 'STRING' + | 'STRUCT' + | 'SUM' + | 'TABLE' + | 'TABLES' + | 'TABLESAMPLE' + | 'TBLPROPERTIES' + | 'TEMPORARY' + | 'TERMINATED' + | 'TEXTFILE' + | 'THEN' + | 'TIMESTAMP' + | 'TINYINT' + | 'TRANSACTIONAL' + | 'TRANSACTIONS' + | 'TRUE' + | 'UNION' + | 'UNIONTYPE' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'USER' + | 'USING' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'VIEW' + | 'VIEWS' + | 'WAIT' + | 'WEEK' + | 'WHEN' + | 'WHERE' + | 'WINDOW' + | 'YEAR' + | '~' + ; + +DataDefinition + : DescribeStatement + ; + +DataDefinition_EDIT + : DescribeStatement_EDIT + ; + +// ===================================== Commonly used constructs ===================================== + +Commas + : ',' + | Commas ',' + ; + +AnyCursor + : 'CURSOR' + | 'PARTIAL_CURSOR' + ; + +FromOrIn + : 'FROM' + | 'IN' + ; + +DatabaseOrSchema + : 'DATABASE' + | 'SCHEMA' + ; + +IndexOrIndexes + : 'INDEX' + | 'INDEXES' + ; + +DatabasesOrSchemas + : 'DATABASES' + | 'SCHEMAS' + ; + +RoleOrUser + : 'ROLE' + | 'USER' + ; + +SingleQuotedValue + : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 + | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' + ; + +SingleQuotedValue_EDIT + : 'SINGLE_QUOTE' 'PARTIAL_VALUE' + ; + +DoubleQuotedValue + : 'DOUBLE_QUOTE' 'VALUE' 'DOUBLE_QUOTE' -> $2 + | 'DOUBLE_QUOTE' 'DOUBLE_QUOTE' -> '' + ; + +DoubleQuotedValue_EDIT + : 'DOUBLE_QUOTE' 'PARTIAL_VALUE' + ; + +QuotedValue + : SingleQuotedValue + | DoubleQuotedValue + ; + +QuotedValue_EDIT + : SingleQuotedValue_EDIT + | DoubleQuotedValue_EDIT + ; + +OptionalExtended + : + | 'EXTENDED' + ; + +OptionalExtendedOrFormatted + : + | 'EXTENDED' + | 'FORMATTED' + ; + +OptionalExternal + : + | 'EXTERNAL' + ; + +OptionallyFormattedIndex + : 'FORMATTED' IndexOrIndexes + | IndexOrIndexes + ; + +OptionallyFormattedIndex_EDIT + : 'FORMATTED' 'CURSOR' + { + parser.suggestKeywords(['INDEX', 'INDEXES']); + } + | 'CURSOR' IndexOrIndexes + { + parser.suggestKeywords(['FORMATTED']); + } + ; + +OptionalFromDatabase + : + | FromOrIn DatabaseIdentifier + ; + +OptionalFromDatabase_EDIT + : FromOrIn DatabaseIdentifier_EDIT + ; + +OptionalCascade + : + | 'CASCADE' + ; + +OptionalCascadeOrRestrict + : + | 'CASCADE' + | 'RESTRICT' + ; + +OptionalTemporary + : + | 'TEMPORARY' + ; + +OptionalTransactional + : + | 'TRANSACTIONAL' + ; + +OptionalIfExists + : + | 'IF' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalIfNotExists + : + | 'IF' 'NOT' 'EXISTS' + { + parser.yy.correlatedSubQuery = false; + } + ; + +OptionalIfNotExists_EDIT + : 'IF' 'CURSOR' + { + parser.suggestKeywords(['NOT EXISTS']); + } + | 'IF' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['EXISTS']); + } + ; + +OptionalInDatabase + : + | 'IN' DatabaseIdentifier + | 'IN' DatabaseIdentifier_EDIT + ; + +OptionalPartitionSpec + : + | PartitionSpec + ; + +OptionalPartitionSpec_EDIT + : PartitionSpec_EDIT + ; + +PartitionSpec + : 'PARTITION' '(' PartitionSpecList ')' + ; + +PartitionSpec_EDIT + : 'PARTITION' '(' PartitionSpecList_EDIT RightParenthesisOrError + ; + +RangePartitionSpec + : UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + ; + +RangePartitionSpec_EDIT + : UnsignedValueSpecification 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification 'CURSOR' 'VALUES' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'CURSOR' RangePartitionComparisonOperator UnsignedValueSpecification + { + parser.suggestKeywords(['VALUES']); + } + | UnsignedValueSpecification RangePartitionComparisonOperator 'VALUES' 'CURSOR' UnsignedValueSpecification + { + parser.suggestKeywords(['<', '<=', '<>', '=', '>', '>=']); + } + ; + +RangePartitionComparisonOperator + : 'COMPARISON_OPERATOR' + | '=' + | '<' + | '>' + ; + +ConfigurationName + : RegularIdentifier + | 'CURSOR' + | ConfigurationName '.' RegularIdentifier + | ConfigurationName '.' 'PARTIAL_CURSOR' + ; + +PartialBacktickedOrAnyCursor + : AnyCursor + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrCursor + : 'CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedOrPartialCursor + : 'PARTIAL_CURSOR' + | PartialBacktickedIdentifier + ; + +PartialBacktickedIdentifier + : 'BACKTICK' 'PARTIAL_VALUE' + ; + +RightParenthesisOrError + : ')' + | error + ; + +OptionalParenthesizedColumnList + : + | ParenthesizedColumnList + ; + +OptionalParenthesizedColumnList_EDIT + : ParenthesizedColumnList_EDIT + ; + +ParenthesizedColumnList + : '(' ColumnList ')' + ; + +ParenthesizedColumnList_EDIT + : '(' ColumnList_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestColumns(); + } + ; + +ColumnList + : ColumnIdentifier + | ColumnList ',' ColumnIdentifier + ; + +ColumnList_EDIT + : ColumnIdentifier_EDIT + | ColumnList ',' AnyCursor + { + parser.suggestColumns(); + } + | ColumnList ',' ColumnIdentifier_EDIT + | ColumnIdentifier_EDIT ',' ColumnList + | ColumnList ',' ColumnIdentifier_EDIT ',' ColumnList + | ColumnList ',' AnyCursor ',' ColumnList + { + parser.suggestColumns(); + } + ; + +ParenthesizedSimpleValueList + : '(' SimpleValueList ')' + ; + +SimpleValueList + : UnsignedValueSpecification + | SimpleValueList ',' UnsignedValueSpecification + ; + +SchemaQualifiedTableIdentifier + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +SchemaQualifiedTableIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + +SchemaQualifiedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] + ; + +SchemaQualifiedIdentifier_EDIT + : PartialBacktickedIdentifier + { + parser.suggestDatabases({ appendDot: true }); + } + | PartialBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.suggestDatabases(); + $$ = { identifierChain: [{ name: $1 }] }; + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + ; + +DatabaseIdentifier + : RegularOrBacktickedIdentifier + ; + +DatabaseIdentifier_EDIT + : PartialBacktickedOrCursor + { + parser.suggestDatabases(); + } + ; + +PartitionSpecList + : PartitionExpression + | PartitionSpecList ',' PartitionExpression + ; + +PartitionSpecList_EDIT + : PartitionExpression_EDIT + | PartitionSpecList ',' PartitionExpression_EDIT + | PartitionExpression_EDIT ',' PartitionSpecList + | PartitionSpecList ',' PartitionExpression_EDIT ',' PartitionSpecList + ; + +PartitionExpression + : ColumnIdentifier '=' ValueExpression + | ColumnIdentifier // Partial partition specs are allowed in some cases + ; + +PartitionExpression_EDIT + : ColumnIdentifier '=' ValueExpression_EDIT + | ColumnIdentifier '=' AnyCursor + { + parser.valueExpressionSuggest(); + } + | PartialBacktickedIdentifier '=' ValueExpression + { + parser.suggestColumns(); + } + | AnyCursor + { + parser.suggestColumns(); + } + ; + +OptionalHdfsLocation + : + | HdfsLocation + ; + +HdfsLocation + : 'LOCATION' HdfsPath + ; + +HdfsLocation_EDIT + : 'LOCATION' HdfsPath_EDIT + ; + +RegularOrBacktickedIdentifier + : RegularIdentifier + | 'BACKTICK' 'VALUE' 'BACKTICK' -> $2 + | 'BACKTICK' 'BACKTICK' -> '' + ; + +// TODO: Same as SchemaQualifiedTableIdentifier? +RegularOrBackTickedSchemaQualifiedName + : RegularOrBacktickedIdentifier + { + parser.addTableLocation(@1, [ { name: $1 } ]); + $$ = { identifierChain: [ { name: $1 } ] }; + } + | RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@1, [ { name: $1 } ]); + parser.addTableLocation(@3, [ { name: $1 }, { name: $3 } ]); + $$ = { identifierChain: [ { name: $1 }, { name: $3 } ] }; + } + ; + +RegularOrBackTickedSchemaQualifiedName_EDIT + : PartialBacktickedIdentifier + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + | RegularOrBacktickedIdentifier '.' PartialBacktickedOrPartialCursor + { + parser.suggestTablesOrColumns($1); + } + ; + + +LocalOrSchemaQualifiedName + : RegularOrBackTickedSchemaQualifiedName + | RegularOrBackTickedSchemaQualifiedName RegularOrBacktickedIdentifier -> { identifierChain: $1.identifierChain, alias: $2 } + ; + +LocalOrSchemaQualifiedName_EDIT + : RegularOrBackTickedSchemaQualifiedName_EDIT + | RegularOrBackTickedSchemaQualifiedName_EDIT RegularOrBacktickedIdentifier + ; + +ColumnReference + : BasicIdentifierChain + { + parser.yy.locations[parser.yy.locations.length - 1].type = 'column'; + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnReference_EDIT + : BasicIdentifierChain_EDIT + ; + +BasicIdentifierChain + : ColumnIdentifier + { + $$ = [ $1.identifier ]; + parser.yy.firstChainLocation = parser.addUnknownLocation($1.location, [ $1.identifier ]); + } + | BasicIdentifierChain '.' ColumnIdentifier + { + if (parser.yy.firstChainLocation) { + parser.yy.firstChainLocation.firstInChain = true; + delete parser.yy.firstChainLocation; + } + $1.push($3.identifier); + parser.addUnknownLocation($3.location, $1.concat()); + } + ; + +// TODO: Merge with DerivedColumnChain_EDIT ( issue is starting with PartialBacktickedOrPartialCursor) +BasicIdentifierChain_EDIT + : ColumnIdentifier_EDIT + { + if ($1.insideKey) { + parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | BasicIdentifierChain '.' ColumnIdentifier_EDIT + { + if ($3.insideKey) { + parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | BasicIdentifierChain '.' ColumnIdentifier_EDIT '.' BasicIdentifierChain + | ColumnIdentifier_EDIT '.' BasicIdentifierChain + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + | BasicIdentifierChain '.' PartialBacktickedOrPartialCursor '.' BasicIdentifierChain + { + parser.suggestColumns({ + identifierChain: $1 + }); + $$ = { suggestKeywords: [{ value: '*', weight: 10000 }] }; + } + ; + +DerivedColumnChain + : ColumnIdentifier -> [ $1.identifier ] + | DerivedColumnChain '.' ColumnIdentifier + { + $1.push($3.identifier); + } + ; + +DerivedColumnChain_EDIT + : ColumnIdentifier_EDIT + { + if ($1.insideKey) { + parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | DerivedColumnChain '.' ColumnIdentifier_EDIT + { + if ($3.insideKey) { + parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | DerivedColumnChain '.' ColumnIdentifier_EDIT '.' DerivedColumnChain + { + if ($3.insideKey) { + parser.suggestKeyValues({ identifierChain: $1.concat([ $3.identifier ]) }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | ColumnIdentifier_EDIT '.' DerivedColumnChain + { + if ($1.insideKey) { + parser.suggestKeyValues({ identifierChain: [ $1.identifier ] }); + parser.suggestColumns(); + parser.suggestFunctions(); + } + } + | PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns(); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor + { + parser.suggestColumns({ identifierChain: $1 }); + } + | DerivedColumnChain '.' PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns({ identifierChain: $1 }); + } + | PartialBacktickedIdentifierOrPartialCursor '.' DerivedColumnChain + { + parser.suggestColumns(); + } + ; + +ColumnIdentifier + : RegularOrBacktickedIdentifier -> { identifier: { name: $1 }, location: @1 } + | RegularOrBacktickedIdentifier '[' ValueExpression ']' -> { identifier: { name: $1, keySet: true }, location: @1 } + | RegularOrBacktickedIdentifier '[' ']' -> { identifier: { name: $1, keySet: true }, location: @1 } + ; + +ColumnIdentifier_EDIT + : RegularOrBacktickedIdentifier '[' AnyCursor RightSquareBracketOrError -> { identifier: { name: $1 }, insideKey: true } + | RegularOrBacktickedIdentifier '[' ValueExpression_EDIT RightSquareBracketOrError -> { identifier: { name: $1 }} + ; + +PartialBacktickedIdentifierOrPartialCursor + : PartialBacktickedIdentifier + | 'PARTIAL_CURSOR' + ; + +RightSquareBracketOrError + : ']' + | error + ; + +// TODO: Support | DECIMAL(precision, scale) -- (Note: Available in Hive 0.13.0 and later) +PrimitiveType + : 'BIGINT' + | 'BINARY' + | 'BOOLEAN' + | 'CHAR' OptionalTypeLength + | 'DATE' + | 'DECIMAL' OptionalTypePrecision + | 'DOUBLE' + | 'DOUBLE_PRECISION' + | 'FLOAT' + | 'INT' + | 'INTEGER' + | 'SMALLINT' + | 'STRING' + | 'TIMESTAMP' + | 'TINYINT' + | 'VARCHAR' OptionalTypeLength + ; + +OptionalTypeLength + : + | '(' 'UNSIGNED_INTEGER' ')' + ; + +OptionalTypePrecision + : + | '(' 'UNSIGNED_INTEGER' ')' + | '(' 'UNSIGNED_INTEGER' ',' 'UNSIGNED_INTEGER' ')' + ; + +// ===================================== DESCRIBE statement ===================================== + +DescribeStatement + : 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec + { + parser.addTablePrimary($3); + parser.addColumnLocation(@4, $4); + } + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + parser.addTablePrimary($3); + } + | 'DESCRIBE' DatabaseOrSchema OptionalExtended DatabaseIdentifier + { + parser.addDatabaseLocation(@4, [{ name: $4 }]); + } + | 'DESCRIBE' 'FUNCTION' OptionalExtended RegularIdentifier + ; + +DescribeStatement_EDIT + : 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain_EDIT OptionalPartitionSpec + { + parser.addTablePrimary($3); + } + | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec + { + if (!$2) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + } + | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec + { + if (!$2) { + parser.suggestKeywords(['EXTENDED', 'FORMATTED']); + } + } + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier 'CURSOR' OptionalPartitionSpec + { + parser.addTablePrimary($3); + parser.suggestColumns(); + if (!$5) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain 'CURSOR' OptionalPartitionSpec + { + if (!$6) { + parser.suggestKeywords(['PARTITION']); + } + } + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec_EDIT + | 'DESCRIBE' OptionalExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + + | 'DESCRIBE' OptionalExtendedOrFormatted 'CURSOR' + { + if (!$2) { + parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); + } + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'DESCRIBE' DatabaseOrSchema OptionalExtended DatabaseIdentifier_EDIT + { + if (!$3) { + parser.suggestKeywords(['EXTENDED']); + } + } + | 'DESCRIBE' DatabaseOrSchema OptionalExtended 'CURSOR' DatabaseIdentifier + { + if (!$3) { + parser.suggestKeywords(['EXTENDED']); + } + } + | 'DESCRIBE' 'FUNCTION' OptionalExtended 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['EXTENDED']); + } + } + | 'DESCRIBE' 'FUNCTION' OptionalExtended 'CURSOR' RegularIdentifier + { + if (!$3) { + parser.suggestKeywords(['EXTENDED']); + } + } + ; + +// ===================================== SELECT statement ===================================== + +QuerySpecification + : SelectStatement OptionalUnions -> $1 + | CommonTableExpression SelectStatement OptionalUnions + | CommonTableExpression '(' QuerySpecification ')' OptionalUnions -> $3 + ; + +QuerySpecification_EDIT + : SelectStatement_EDIT OptionalUnions + | SelectStatement OptionalUnions_EDIT + | CommonTableExpression '(' QuerySpecification_EDIT ')' + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement_EDIT OptionalUnions + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression SelectStatement OptionalUnions_EDIT + { + parser.addCommonTableExpressions($1); + } + | CommonTableExpression_EDIT + | CommonTableExpression_EDIT '(' QuerySpecification ')' + | CommonTableExpression_EDIT SelectStatement OptionalUnions + ; + +SelectStatement + : 'SELECT' OptionalAllOrDistinct SelectList + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3 }; + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + $$ = { selectList: $3, tableExpression: $4 } + } + ; + +OptionalUnions + : + | Unions + ; + +OptionalUnions_EDIT + : Unions_EDIT + ; + +Unions + : UnionClause + | Unions UnionClause + ; + +Unions_EDIT + : UnionClause_EDIT + | Unions UnionClause_EDIT + | UnionClause_EDIT Unions + | Unions UnionClause_EDIT Unions + ; + +UnionClause + : 'UNION' NewStatement OptionalAllOrDistinct SelectStatement + ; + +UnionClause_EDIT + : 'UNION' NewStatement 'CURSOR' + { + parser.suggestKeywords(['ALL', 'DISTINCT', 'SELECT']); + } + | 'UNION' NewStatement 'CURSOR' SelectStatement + { + parser.suggestKeywords(['ALL', 'DISTINCT']); + } + | 'UNION' NewStatement OptionalAllOrDistinct SelectStatement_EDIT + ; + +SelectStatement_EDIT + : 'SELECT' OptionalAllOrDistinct SelectList_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + if ($3.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + } else { + parser.checkForSelectListKeywords($3); + } + if ($3.suggestFunctions) { + parser.suggestFunctions(); + } + if ($3.suggestColumns) { + parser.suggestColumns({ identifierChain: [], source: 'select' }); + } + if ($3.suggestTables) { + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + } + if ($3.suggestDatabases) { + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + if ($3.suggestAggregateFunctions && (!$2 || $2 === 'ALL')) { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList TableExpression_EDIT + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + } + | 'SELECT' OptionalAllOrDistinct SelectList_EDIT TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.selectListNoTableSuggest($3, $2); + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'select'; + } + } + | 'SELECT' OptionalAllOrDistinct 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3, true); + var keywords = parser.getSelectListKeywords(); + if (!$2 || $2 === 'ALL') { + parser.suggestAggregateFunctions(); + parser.suggestAnalyticFunctions(); + } + if (!$2) { + keywords.push({ value: 'ALL', weight: 2 }); + keywords.push({ value: 'DISTINCT', weight: 2 }); + } + parser.suggestKeywords(keywords); + parser.suggestFunctions(); + parser.suggestColumns({ identifierChain: [], source: 'select' }); + parser.suggestTables({ prependQuestionMark: true, prependFrom: true }); + parser.suggestDatabases({ prependQuestionMark: true, prependFrom: true, appendDot: true }); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' ',' TableExpression + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + } + | 'SELECT' OptionalAllOrDistinct SelectList 'CURSOR' + { + parser.addClauseLocation('selectList', parser.firstDefined($2, @2, $1, @1), @3); + parser.checkForSelectListKeywords($3); + var keywords = ['FROM']; + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.suggestTables({ prependFrom: true }); + parser.suggestDatabases({ prependFrom: true, appendDot: true }); + } + ; + +CommonTableExpression + : 'WITH' WithQueries -> $2 + ; + +CommonTableExpression_EDIT + : 'WITH' WithQueries_EDIT + ; + +WithQueries + : WithQuery -> [$1] + | WithQueries ',' WithQuery -> $1.concat([$3]) + ; + +WithQueries_EDIT + : WithQuery_EDIT + | WithQueries ',' WithQuery_EDIT + { + parser.addCommonTableExpressions($1); + } + | WithQuery_EDIT ',' WithQueries + | WithQueries ',' WithQuery_EDIT ',' WithQueries + { + parser.addCommonTableExpressions($1); + } + ; + +WithQuery + : RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner ')' + { + parser.addCteAliasLocation(@1, $1); + $4.alias = $1; + $$ = $4; + } + ; + +WithQuery_EDIT + : RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | RegularOrBacktickedIdentifier 'AS' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + | RegularOrBacktickedIdentifier 'AS' '(' TableSubQueryInner_EDIT RightParenthesisOrError + ; + +OptionalAllOrDistinct + : + | 'ALL' + | 'DISTINCT' + ; + +TableExpression + : FromClause OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + ; + +TableExpression_EDIT + : FromClause_EDIT OptionalSelectConditions + { + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + } + | FromClause 'CURSOR' OptionalSelectConditions OptionalJoins + { + var keywords = []; + + parser.addClauseLocation('whereClause', @1, $3.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + + if ($1) { + if (!$1.hasLateralViews && typeof $1.tableReferenceList.hasJoinCondition !== 'undefined' && !$1.tableReferenceList.hasJoinCondition) { + keywords.push({ value: 'ON', weight: 3 }); + } + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 3); + } + if ($1.tableReferenceList.suggestJoinConditions) { + parser.suggestJoinConditions($1.tableReferenceList.suggestJoinConditions); + } + if ($1.tableReferenceList.suggestJoins) { + parser.suggestJoins($1.tableReferenceList.suggestJoins); + } + if (!$1.hasLateralViews && $1.tableReferenceList.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.tableReferenceList.suggestKeywords, 3)); + } + + // Lower the weights for 'TABLESAMPLE' and 'LATERAL VIEW' + keywords.forEach(function (keyword) { + if (keyword.value === 'TABLESAMPLE' || keyword.value === 'LATERAL VIEW') { + keyword.weight = 1.1; + } + }); + + if (!$1.hasLateralViews && $1.tableReferenceList.types) { + var veKeywords = parser.getValueExpressionKeywords($1.tableReferenceList); + keywords = keywords.concat(veKeywords.suggestKeywords); + if (veKeywords.suggestColRefKeywords) { + parser.suggestColRefKeywords(veKeywords.suggestColRefKeywords); + parser.addColRefIfExists($1.tableReferenceList); + } + } + } + + if ($3.empty && $4 && $4.joinType.toUpperCase() === 'JOIN') { + keywords = keywords.concat(['CROSS', 'FULL', 'FULL OUTER', 'INNER', 'LEFT', 'LEFT OUTER', 'LEFT SEMI', 'RIGHT', 'RIGHT OUTER']); + parser.suggestKeywords(keywords); + return; + } + + if ($3.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($3.suggestKeywords, 2)); + } + + if ($3.suggestFilters) { + parser.suggestFilters($3.suggestFilters); + } + if ($3.suggestGroupBys) { + parser.suggestGroupBys($3.suggestGroupBys); + } + if ($3.suggestOrderBys) { + parser.suggestOrderBys($3.suggestOrderBys); + } + + if ($3.empty) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + + keywords = keywords.concat([ + { value: 'CROSS JOIN', weight: 1 }, + { value: 'FULL JOIN', weight: 1 }, + { value: 'FULL OUTER JOIN', weight: 1 }, + { value: 'INNER JOIN', weight: 1 }, + { value: 'JOIN', weight: 1 }, + { value: 'LEFT JOIN', weight: 1 }, + { value: 'LEFT OUTER JOIN', weight: 1 }, + { value: 'LEFT SEMI JOIN', weight: 1 }, + { value: 'RIGHT JOIN', weight: 1 }, + { value: 'RIGHT OUTER JOIN', weight: 1 } + ]); + parser.suggestKeywords(keywords); + } + | FromClause OptionalSelectConditions_EDIT OptionalJoins + { + // A couple of things are going on here: + // - If there are no SelectConditions (WHERE, GROUP BY, etc.) we should suggest complete join options + // - If there's an OptionalJoin at the end, i.e. 'SELECT * FROM foo | JOIN ...' we should suggest + // different join types + // - The FromClause could end with a valueExpression, in which case we should suggest keywords like '=' + // or 'AND' based on type + + if (!$2) { + parser.addClauseLocation('whereClause', @1); + parser.addClauseLocation('limitClause', @1); + return; + } + parser.addClauseLocation('whereClause', @1, $2.whereClauseLocation); + parser.addClauseLocation('limitClause', $2.limitClausePreceding || @1, $2.limitClauseLocation); + var keywords = []; + + if ($2.suggestColRefKeywords) { + parser.suggestColRefKeywords($2.suggestColRefKeywords); + parser.addColRefIfExists($2); + } + + if ($2.suggestKeywords && $2.suggestKeywords.length) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 2)); + } + + if ($2.cursorAtEnd) { + keywords.push({ value: 'UNION', weight: 2.11 }); + } + parser.suggestKeywords(keywords); + } + ; + +OptionalJoins + : + | Joins + | Joins_INVALID + ; + +FromClause + : 'FROM' TableReferenceList OptionalLateralViews + { + $$ = { tableReferenceList : $2, suggestKeywords: ['LATERAL VIEW'] } + if ($3) { + parser.yy.lateralViews = $3.lateralViews; + $$.hasLateralViews = true; + if ($3.suggestKeywords) { + $$.suggestKeywords = $$.suggestKeywords.concat($3.suggestKeywords); + } + } + } + ; + +FromClause_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReferenceList_EDIT OptionalLateralViews + { + if ($3) { + parser.yy.lateralViews = $3.lateralViews; + } + } + | 'FROM' TableReferenceList OptionalLateralViews_EDIT + ; + +OptionalSelectConditions + : OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$1, $2, $3, $4, $5, $6, $6, $7], + [{ value: 'WHERE', weight: 9 }, { value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true, true, !$5, true]); + + if (keywords.length > 0) { + $$ = { suggestKeywords: keywords, empty: !$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 }; + } else { + $$ = {}; + } + + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($6, @6, $5, @5, $4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $7 ? @7 : undefined; + + if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7) { + $$.suggestFilters = { prefix: 'WHERE', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7) { + $$.suggestGroupBys = { prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + if (!$5 && !$6 && !$7) { + $$.suggestOrderBys = { prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }; + } + } + ; + +OptionalSelectConditions_EDIT + : WhereClause_EDIT OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'where'; + } + } + | OptionalWhereClause GroupByClause_EDIT OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'group by'; + } + } + | OptionalWhereClause OptionalGroupByClause HavingClause_EDIT OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause_EDIT OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause_EDIT OptionalClusterOrDistributeBy OptionalLimitClause + { + if (parser.yy.result.suggestColumns) { + parser.yy.result.suggestColumns.source = 'order by'; + } + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy_EDIT OptionalLimitClause + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause_EDIT + ; + +OptionalSelectConditions_EDIT + : WhereClause 'CURSOR' OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$3, $4, $5, $6, $7, $7, $8], + [{ value: 'GROUP BY', weight: 8 }, { value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, true, !$6, true]); + if ($1.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($1.suggestKeywords, 1)); + } + $$ = parser.getValueExpressionKeywords($1, keywords); + $$.cursorAtEnd = !$3 && !$4 && !$5 && !$6 && !$7 && !$8; + if ($1.columnReference) { + $$.columnReference = $1.columnReference; + } + if (!$3) { + parser.suggestGroupBys({ prefix: 'GROUP BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + if (!$3 && !$4 && !$5 && !$6) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $4, @4, $3, @3, $1, @1); + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause GroupByClause 'CURSOR' OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$4, $5, $6, $7, $7, $8], + [{ value: 'HAVING', weight: 7 }, { value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, true, !$6, true]); + if ($2.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($2.suggestKeywords, 8)); + } + if ($2.valueExpression) { + $$ = parser.getValueExpressionKeywords($2.valueExpression, keywords); + if ($2.valueExpression.columnReference) { + $$.columnReference = $2.valueExpression.columnReference; + } + } else { + $$ = { suggestKeywords: keywords }; + } + $$.cursorAtEnd = !$4 && !$5 && !$6 && !$7 && !$8; + if (!$4 && !$5 && !$6) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $4, @4, $2, @2); + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause OptionalGroupByClause HavingClause 'CURSOR' OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$5, $6, $7, $7, $8], + [{ value: 'WINDOW', weight: 6 }, { value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'SORT BY', weight: 4 }, { value: 'LIMIT', weight: 3 }], + [true, true, true, !$6, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$5 && !$6 && !$7 && !$8 }; + if (!$5 && !$6) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $5, @5, $3, @3); + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause WindowClause 'CURSOR' OptionalOrderByClause OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$6, $7, $8], + [{ value: 'ORDER BY', weight: 5 }, [{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }, { value: 'SORT BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], + [true, true, true]); + $$ = { suggestKeywords: keywords, cursorAtEnd: !$6 && !$7 && !$8 }; + if (!$6) { + parser.suggestOrderBys({ prefix: 'ORDER BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($7, @7, $6, @6, $4, @4); + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OrderByClause 'CURSOR' OptionalClusterOrDistributeBy OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR( + [$7, $8], + [[{ value: 'CLUSTER BY', weight: 4 }, { value: 'DISTRIBUTE BY', weight: 4 }], { value: 'LIMIT', weight: 3 }], + [true, true]); + if ($5.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($5.suggestKeywords, 5)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$7 && !$8 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($7, @7, $5, @5); + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause ClusterOrDistributeBy 'CURSOR' OptionalLimitClause + { + var keywords = parser.getKeywordsForOptionalsLR([$8], [{ value: 'LIMIT', weight: 3 }], [true]); + if ($6.suggestKeywords) { + keywords = keywords.concat(parser.createWeightedKeywords($6.suggestKeywords, 4)); + } + $$ = { suggestKeywords: keywords, cursorAtEnd: !$8 }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = @6; + $$.limitClauseLocation = $8 ? @8 : undefined; + } + | OptionalWhereClause OptionalGroupByClause OptionalHavingClause OptionalWindowClause OptionalOrderByClause OptionalClusterOrDistributeBy LimitClause 'CURSOR' + { + $$ = { suggestKeywords: [], cursorAtEnd: true }; + $$.whereClauseLocation = $1 ? @1 : undefined; + $$.limitClausePreceding = parser.firstDefined($6, @6, $5, @5, $4, @4, $3, @3, $2, @2, $1, @1); + $$.limitClauseLocation = $7 ? @7 : undefined; + } + ; + +OptionalWhereClause + : + | WhereClause + ; + +WhereClause + : 'WHERE' SearchCondition -> $2 + ; + +WhereClause_EDIT + : 'WHERE' SearchCondition_EDIT + { + if ($2.suggestFilters) { + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'WHERE' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS', 'NOT EXISTS']); + parser.suggestFilters({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OptionalGroupByClause + : + | GroupByClause + ; + +GroupByClause + : 'GROUP' 'BY' GroupByColumnList OptionalGroupingSetsCubeOrRollup + { + $$ = { valueExpression: $4 ? false : $3 }; + if (!$4) { + $$.suggestKeywords = ['GROUPING SETS', 'WITH CUBE', 'WITH ROLLUP']; + } + } + ; + +GroupByClause_EDIT + : 'GROUP' 'BY' GroupByColumnList_EDIT OptionalGroupingSetsCubeOrRollup + { + parser.suggestSelectListAliases(); + } + | 'GROUP' 'BY' 'CURSOR' OptionalGroupingSetsCubeOrRollup + { + parser.valueExpressionSuggest(); + parser.suggestSelectListAliases(); + parser.suggestGroupBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestGroupBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + | 'GROUP' 'BY' GroupByColumnList OptionalGroupingSetsCubeOrRollup_EDIT + ; + +OptionalGroupingSetsCubeOrRollup + : + | GroupingSets + | 'WITH' 'CUBE' + | 'WITH' 'ROLLUP' + ; + +OptionalGroupingSetsCubeOrRollup_EDIT + : GroupingSets_EDIT + | 'WITH' 'CURSOR' + { + parser.suggestKeywords(['CUBE', 'ROLLUP']); + } + ; + +GroupingSets + : 'GROUPING' 'SETS' '(' ColumnGroupingSets ')' + ; + +GroupingSets_EDIT + : 'GROUPING' 'CURSOR' + { + parser.suggestKeywords(['SETS']); + } + | 'GROUPING' 'SETS' '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSets + : + | ColumnReference + | ColumnGroupingSets ',' ColumnGroupingSets + | '(' ColumnGroupingSets ')' + ; + +ColumnGroupingSets_EDIT + : ColumnGroupingSet_EDIT + | ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT + | ColumnGroupingSets ',' ColumnGroupingSet_EDIT ',' ColumnGroupingSets + | '(' ColumnGroupingSets_EDIT RightParenthesisOrError + ; + +ColumnGroupingSet_EDIT + : AnyCursor + { + parser.suggestColumns(); + } + | ColumnReference_EDIT + ; + +GroupByColumnList + : ValueExpression + | GroupByColumnList ',' ValueExpression -> $3 + ; + +GroupByColumnList_EDIT + : ValueExpression_EDIT + | 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + } + | 'CURSOR' ',' GroupByColumnList + { + parser.valueExpressionSuggest(); + } + | ValueExpression_EDIT ',' GroupByColumnList + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' + | GroupByColumnList ',' GroupByColumnListPartTwo_EDIT ',' GroupByColumnList + ; + +GroupByColumnListPartTwo_EDIT + : ValueExpression_EDIT + | AnyCursor ValueExpression + { + parser.valueExpressionSuggest(); + } + | AnyCursor + { + parser.valueExpressionSuggest(); + } + ; + +OptionalOrderByClause + : + | OrderByClause + ; + +OrderByClause + : 'ORDER' 'BY' OrderByColumnList -> $3 + ; + +OrderByClause_EDIT + : 'ORDER' 'BY' OrderByColumnList_EDIT + { + if ($3.emptyOrderBy) { + parser.suggestOrderBys({ tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + } + | 'ORDER' 'CURSOR' + { + parser.suggestKeywords(['BY']); + parser.suggestOrderBys({ prefix: 'BY', tablePrimaries: parser.yy.latestTablePrimaries.concat() }); + } + ; + +OrderByColumnList + : OrderByIdentifier + | OrderByColumnList ',' OrderByIdentifier -> $3 + ; + +OrderByColumnList_EDIT + : OrderByIdentifier_EDIT + | 'CURSOR' OrderByIdentifier + { + $$ = { emptyOrderBy: false } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + | OrderByColumnList ',' OrderByIdentifier_EDIT -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' -> { emptyOrderBy: false } + | OrderByColumnList ',' OrderByIdentifier_EDIT ',' OrderByColumnList -> { emptyOrderBy: false } + ; + +OrderByIdentifier + : ValueExpression OptionalAscOrDesc -> parser.mergeSuggestKeywords($2) + ; + +OrderByIdentifier_EDIT + : ValueExpression_EDIT OptionalAscOrDesc + { + parser.suggestSelectListAliases(); + } + | AnyCursor OptionalAscOrDesc + { + $$ = { emptyOrderBy: true } + parser.valueExpressionSuggest(); + parser.suggestAnalyticFunctions(); + parser.suggestSelectListAliases(); + } + ; + +OptionalAscOrDesc + : + { + $$ = { suggestKeywords: ['ASC', 'DESC'] }; + } + | 'ASC' + | 'DESC' + ; + +OptionalClusterOrDistributeBy + : + | ClusterOrDistributeBy + ; + +ClusterOrDistributeBy + : ClusterByClause + | DistributeByClause -> { suggestKeywords: ['SORT BY'] } + | DistributeByClause SortByClause + | SortByClause + ; + +ClusterOrDistributeBy_EDIT + : ClusterByClause_EDIT + | DistributeByClause_EDIT + | DistributeByClause SortByClause_EDIT + | DistributeByClause_EDIT SortByClause + | SortByClause_EDIT + ; + +ClusterByClause + : 'CLUSTER' 'BY' ColumnList + ; + +ClusterByClause_EDIT + : 'CLUSTER' 'CURSOR' + { + suggestKeywords: ['BY']; + } + | 'CLUSTER' 'BY' 'CURSOR' + { + parser.suggestColumns(); + parser.suggestSelectListAliases(); + } + | 'CLUSTER' 'BY' ColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + ; + +DistributeByClause + : 'DISTRIBUTE' 'BY' ColumnList + ; + +DistributeByClause_EDIT + : 'DISTRIBUTE' 'CURSOR' + { + suggestKeywords: ['BY']; + } + | 'DISTRIBUTE' 'BY' 'CURSOR' + { + parser.suggestColumns(); + parser.suggestSelectListAliases(); + } + | 'DISTRIBUTE' 'BY' ColumnList_EDIT + { + parser.suggestSelectListAliases(); + } + ; + +SortByClause + : 'SORT' 'BY' SortByList -> $3 + ; + +SortByClause_EDIT + : 'SORT' 'CURSOR' + { + suggestKeywords: ['BY']; + } + | 'SORT' 'BY' SortByList_EDIT + { + parser.suggestSelectListAliases(); + } + ; + +SortByList + : SortByIdentifier + | SortByList ',' SortByIdentifier -> $3 + ; + +SortByList_EDIT + : SortByIdentifier_EDIT + | SortByIdentifier_EDIT ',' SortByList + | SortByList ',' SortByIdentifier_EDIT + | SortByList ',' SortByIdentifier_EDIT ',' SortByList + ; + +SortByIdentifier + : ColumnIdentifier OptionalAscOrDesc + { + parser.addColumnLocation($1.location, [ $1.identifier ]); + $$ = $2; + } + ; + +SortByIdentifier_EDIT + : ColumnIdentifier_EDIT OptionalAscOrDesc + | AnyCursor OptionalAscOrDesc + { + parser.suggestColumns(); + } + ; + +OptionalLimitClause + : + | LimitClause + ; + +LimitClause + : 'LIMIT' UnsignedNumericLiteral + | 'LIMIT' UnsignedNumericLiteral ',' UnsignedNumericLiteral + | 'LIMIT' 'VARIABLE_REFERENCE' + | 'LIMIT' 'VARIABLE_REFERENCE' ',' 'VARIABLE_REFERENCE' + ; + +LimitClause_EDIT + : 'LIMIT' 'CURSOR' + ; + +SearchCondition + : ValueExpression + ; + +SearchCondition_EDIT + : ValueExpression_EDIT + ; + +ValueExpression + : NonParenthesizedValueExpressionPrimary + ; + +ValueExpression_EDIT + : NonParenthesizedValueExpressionPrimary_EDIT + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'EXISTS', 'IN', 'LIKE', 'REGEXP', 'RLIKE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpressionList + : ValueExpression + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression + { + $3.position = $1.position + 1; + $$ = $3; + } + ; + +ValueExpressionList_EDIT + : ValueExpression_EDIT + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT + { + $1.position += 1; + } + | ValueExpression_EDIT ',' ValueExpressionList + { + $1.position = 1; + } + | ValueExpressionList ',' ValueExpression_EDIT ',' ValueExpressionList + { + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $1.position += 1; + } + | ValueExpressionList 'CURSOR' ',' ValueExpressionList + { + parser.suggestValueExpressionKeywords($1); + } + | AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | AnyCursor ',' + { + parser.valueExpressionSuggest(); + $$ = { cursorAtStart : true, position: 1 }; + } + | ',' AnyCursor + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + | ',' AnyCursor ',' ValueExpressionList + { + parser.valueExpressionSuggest(); + $$ = { position: 2 }; + } + ; + +InValueList + : NonParenthesizedValueExpressionPrimary + | InValueList ',' NonParenthesizedValueExpressionPrimary + ; + +NonParenthesizedValueExpressionPrimary + : UnsignedValueSpecification + | ColumnOrArbitraryFunctionRef -> { types: ['COLREF'], columnReference: $1.chain } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart + { + // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict + // with columnReference for functions like: db.udf(foo) + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.expression) { + $$ = { function: fn, expression: $2.expression, types: parser.findReturnTypes(fn) } + } else { + $$ = { function: fn, types: parser.findReturnTypes(fn) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | UserDefinedFunction + | 'NULL' -> { types: [ 'NULL' ] } + ; + +NonParenthesizedValueExpressionPrimary_EDIT + : UnsignedValueSpecification_EDIT + | ColumnOrArbitraryFunctionRef_EDIT + { + if ($1.suggestKeywords) { + $$ = { types: ['COLREF'], columnReference: $1, suggestKeywords: $1.suggestKeywords }; + } else { + $$ = { types: ['COLREF'], columnReference: $1 }; + } + } + | ColumnOrArbitraryFunctionRef ArbitraryFunctionRightPart_EDIT + { + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + $1.lastLoc.type = 'function'; + $1.lastLoc.function = fn; + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 + } + if ($1.lastLoc !== $1.firstLoc) { + $1.firstLoc.type = 'database'; + } else { + delete $1.lastLoc.identifierChain; + } + if ($2.position) { + parser.applyArgumentTypesToSuggestions(fn, $2.position); + } + $$ = { types: parser.findReturnTypes(fn) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | UserDefinedFunction_EDIT + ; + +ColumnOrArbitraryFunctionRef + : BasicIdentifierChain + { + var lastLoc = parser.yy.locations[parser.yy.locations.length - 1]; + if (lastLoc.type !== 'variable') { + lastLoc.type = 'column'; + } + // used for function references with db prefix + var firstLoc = parser.yy.locations[parser.yy.locations.length - $1.length]; + $$ = { chain: $1, firstLoc: firstLoc, lastLoc: lastLoc } + } + | BasicIdentifierChain '.' '*' + { + parser.addAsteriskLocation(@3, $1.concat({ asterisk: true })); + } + ; + +ColumnOrArbitraryFunctionRef_EDIT + : BasicIdentifierChain_EDIT + ; + +SignedInteger + : UnsignedNumericLiteral + | '-' UnsignedNumericLiteral + | '+' UnsignedNumericLiteral + ; + +UnsignedValueSpecification + : UnsignedLiteral + ; + +UnsignedValueSpecification_EDIT + : UnsignedLiteral_EDIT + { + parser.suggestValues($1); + } + ; + +UnsignedLiteral + : UnsignedNumericLiteral -> { types: [ 'NUMBER' ] } + | GeneralLiteral + ; + +UnsignedLiteral_EDIT + : GeneralLiteral_EDIT + ; + +UnsignedNumericLiteral + : ExactNumericLiteral + | ApproximateNumericLiteral + ; + +ExactNumericLiteral + : 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' -> $1 + $2 + | 'UNSIGNED_INTEGER' '.' 'UNSIGNED_INTEGER' -> $1 + $2 + $3 + | '.' 'UNSIGNED_INTEGER' -> $1 + $2 + ; + +ApproximateNumericLiteral + : UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER' '.' UNSIGNED_INTEGER_E 'UNSIGNED_INTEGER' + ; + +GeneralLiteral + : SingleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | DoubleQuotedValue + { + if (/\$\{[^}]*\}/.test($1)) { + parser.addVariableLocation(@1, $1); + $$ = { types: [ 'STRING' ], columnReference: [{ name: $1 }] } + } else { + $$ = { types: [ 'STRING' ] } + } + } + | TruthValue -> { types: [ 'BOOLEAN' ] } + ; + +GeneralLiteral_EDIT + : SingleQuotedValue_EDIT + { + $$ = { partialQuote: '\'', missingEndQuote: parser.yy.missingEndQuote }; + } + | DoubleQuotedValue_EDIT + { + $$ = { partialQuote: '"', missingEndQuote: parser.yy.missingEndQuote }; + } + ; + +TruthValue + : 'TRUE' + | 'FALSE' + ; + +OptionalNot + : + | 'NOT' + ; + +SelectSpecification + : ValueExpression OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + $$ = { valueExpression: $1, alias: $2.alias }; + if (!parser.yy.selectListAliases) { + parser.yy.selectListAliases = []; + } + parser.yy.selectListAliases.push({ name: $2.alias, types: $1.types || ['T'] }); + } else { + $$ = { valueExpression: $1 } + } + } + | '*' + { + parser.addAsteriskLocation(@1, [{ asterisk: true }]); + $$ = { asterisk: true } + } + ; + +SelectSpecification_EDIT + : ValueExpression_EDIT OptionalCorrelationName + { + if ($2) { + parser.addColumnAliasLocation($2.location, $2.alias, @1); + } + } + + | AnyCursor 'AS' RegularOrBacktickedIdentifier + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.addColumnAliasLocation(@3, $3, @1); + $$ = { suggestAggregateFunctions: true }; + } + | ValueExpression OptionalCorrelationName_EDIT -> $2 + ; + +SelectList + : SelectSpecification -> [ $1 ] + | SelectList ',' SelectSpecification + { + $1.push($3); + } + ; + +SelectList_EDIT + : SelectSpecification_EDIT + | 'CURSOR' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | 'CURSOR' ',' SelectList + { + $$ = { cursorAtStart : true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectSpecification_EDIT ',' SelectList + | SelectList 'CURSOR' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList 'CURSOR' ',' SelectList + { + parser.checkForSelectListKeywords($1); + } + | SelectList ',' AnyCursor + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestTables: true, suggestDatabases: true, suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true }; + } + | SelectList ',' SelectSpecification_EDIT -> $3 + | SelectList ',' AnyCursor SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' AnyCursor ',' + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' -> $3 + | SelectList ',' AnyCursor ',' SelectList + { + $$ = { suggestKeywords: parser.getSelectListKeywords(), suggestFunctions: true, suggestColumns: true, suggestAggregateFunctions: true, }; + } + | SelectList ',' SelectSpecification_EDIT ',' SelectList -> $3 + ; + +TableReferenceList + : TableReference + | TableReferenceList ',' TableReference -> $3 + ; + +TableReferenceList_EDIT + : TableReference_EDIT + | TableReference_EDIT ',' TableReference + | TableReferenceList ',' TableReference_EDIT + | TableReferenceList ',' TableReference_EDIT ',' TableReferenceList + | TableReferenceList ',' AnyCursor + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TableReference + : TablePrimaryOrJoinedTable + ; + +TableReference_EDIT + : TablePrimaryOrJoinedTable_EDIT + ; + +TablePrimaryOrJoinedTable + : TablePrimary + { + $$ = $1; + + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + $$.suggestJoins = { + prependJoin: true, + tables: tables + }; + } + } + } + | JoinedTable + ; + +TablePrimaryOrJoinedTable_EDIT + : TablePrimary_EDIT + | JoinedTable_EDIT + ; + +JoinedTable + : TablePrimary Joins -> $2 + ; + +JoinedTable_EDIT + : TablePrimary Joins_EDIT + | TablePrimary_EDIT Joins + ; + +Joins + : JoinType TablePrimary OptionalJoinCondition + { + if ($3 && $3.valueExpression) { + $$ = $3.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($3.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($3.suggestKeywords) { + $$.suggestKeywords = $3.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + | Joins JoinType TablePrimary OptionalJoinCondition + { + if ($4 && $4.valueExpression) { + $$ = $4.valueExpression; + } else { + $$ = {}; + } + $$.joinType = $1; + if ($4.noJoinCondition) { + $$.suggestJoinConditions = { prependOn: true, tablePrimaries: parser.yy.latestTablePrimaries.concat() } + } + if ($4.suggestKeywords) { + $$.suggestKeywords = $4.suggestKeywords; + } + if (parser.yy.latestTablePrimaries.length > 0) { + parser.yy.latestTablePrimaries[parser.yy.latestTablePrimaries.length - 1].join = true; + } + } + ; + +Joins_INVALID + : JoinType -> { joinType: $1 } + | JoinType Joins -> { joinType: $1 } + ; + +Join_EDIT + : JoinType_EDIT TablePrimary OptionalJoinCondition + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType_EDIT + { + if ($1.suggestKeywords) { + parser.suggestKeywords($1.suggestKeywords); + } + } + | JoinType TablePrimary_EDIT OptionalJoinCondition + | JoinType TablePrimary JoinCondition_EDIT + | JoinType 'CURSOR' OptionalJoinCondition + { + if (parser.yy.latestTablePrimaries.length > 0) { + var idx = parser.yy.latestTablePrimaries.length - 1; + var tables = []; + do { + var tablePrimary = parser.yy.latestTablePrimaries[idx]; + if (!tablePrimary.subQueryAlias) { + tables.unshift(tablePrimary.alias ? { identifierChain: tablePrimary.identifierChain, alias: tablePrimary.alias } : { identifierChain: tablePrimary.identifierChain }) + } + idx--; + } while (idx >= 0 && tablePrimary.join && !tablePrimary.subQueryAlias) + + if (tables.length > 0) { + parser.suggestJoins({ + prependJoin: false, + joinType: $1, + tables: tables + }) + } + } + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + ; + +Joins_EDIT + : Join_EDIT + | Join_EDIT Joins + | Joins Join_EDIT + | Joins Join_EDIT Joins + ; + +JoinType + : 'CROSS' 'JOIN' -> 'CROSS JOIN' + | 'FULL' 'JOIN' -> 'FULL JOIN' + | 'FULL' 'OUTER' 'JOIN' -> 'FULL OUTER JOIN' + | 'INNER' 'JOIN' -> 'INNER JOIN' + | 'JOIN' -> 'JOIN' + | 'LEFT' 'INNER' 'JOIN' -> 'LEFT INNER JOIN' + | 'LEFT' 'JOIN' -> 'LEFT JOIN' + | 'LEFT' 'OUTER' 'JOIN' -> 'LEFT OUTER JOIN' + | 'LEFT' 'SEMI' 'JOIN' -> 'LEFT SEMI JOIN' + | 'OUTER' 'JOIN' -> 'OUTER JOIN' + | 'RIGHT' 'INNER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'JOIN' -> 'RIGHT JOIN' + | 'RIGHT' 'OUTER' 'JOIN' -> 'RIGHT OUTER JOIN' + | 'RIGHT' 'SEMI' 'JOIN' -> 'RIGHT SEMI JOIN' + | 'SEMI' 'JOIN' -> 'SEMI JOIN' + ; + +JoinType_EDIT + : 'CROSS' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'FULL' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'FULL' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER', 'SEMI'] } + | 'LEFT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'LEFT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'CURSOR' 'JOIN' -> { suggestKeywords: ['OUTER'] } + | 'RIGHT' 'INNER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'OUTER' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'RIGHT' 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + | 'SEMI' 'CURSOR' -> { suggestKeywords: ['JOIN'] } + ; + +OptionalJoinCondition + : -> { noJoinCondition: true, suggestKeywords: ['ON'] } + | 'ON' ValueExpression -> { valueExpression: $2 } + ; + +UsingColList + : RegularOrBacktickedIdentifier + | UsingColList ',' RegularOrBacktickedIdentifier + ; + +JoinCondition_EDIT + : 'ON' ValueExpression_EDIT + | 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestJoinConditions({ prependOn: false }); + } + ; + +TablePrimary + : TableOrQueryName OptionalTableSample OptionalCorrelationName + { + $$ = { + primary: $1 + } + if ($1.identifierChain) { + if ($3) { + $1.alias = $3.alias + parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + var keywords = []; + // Right-to-left for cursor after TablePrimary + keywords = parser.getKeywordsForOptionalsLR([$3, $2], [{ value: 'AS', weight: 2 }, { value: 'TABLESAMPLE', weight: 3 }], [true, true]); + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + | DerivedTable OptionalCorrelationName + { + $$ = { + primary: $1 + }; + + if ($2) { + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); + } + + var keywords = []; + keywords = parser.getKeywordsForOptionalsLR([$2], [{ value: 'AS', weight: 2 }], [true]); + if (keywords.length > 0) { + $$.suggestKeywords = keywords; + } + } + ; + +TablePrimary_EDIT + : TableOrQueryName_EDIT OptionalTableSample OptionalCorrelationName + { + if ($3) { + parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); + } + } + | TableOrQueryName OptionalTableSample_EDIT OptionalCorrelationName + { + if ($3) { + $1.alias = $3.alias; + parser.addTableAliasLocation($3.location, $3.alias, $1.identifierChain); + } + parser.addTablePrimary($1); + } + | DerivedTable_EDIT OptionalCorrelationName + { + if ($2) { + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias); + } + } + | DerivedTable OptionalCorrelationName_EDIT + ; + +TableOrQueryName + : SchemaQualifiedTableIdentifier + ; + +TableOrQueryName_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + +DerivedTable + : TableSubQuery + ; + +DerivedTable_EDIT + : TableSubQuery_EDIT + ; + +OptionalTableSample + : + | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn ')' + | 'TABLESAMPLE' '(' ExactNumericLiteral 'PERCENT' ')' + | 'TABLESAMPLE' '(' ExactNumericLiteral 'ROWS' ')' + | 'TABLESAMPLE' '(' 'REGULAR_IDENTIFIER' ')' + ; + +OptionalTableSample_EDIT + : 'TABLESAMPLE' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['BUCKET']); + } + | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['OUT OF']); + } + | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['OF']); + } + | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn 'CURSOR' RightParenthesisOrError + { + if (!$8) { + parser.suggestKeywords(['ON']); + } + } + | 'TABLESAMPLE' '(' 'BUCKET' 'UNSIGNED_INTEGER' 'OUT' 'OF' 'UNSIGNED_INTEGER' OptionalOnColumn_EDIT RightParenthesisOrError + | 'TABLESAMPLE' '(' ExactNumericLiteral 'CURSOR' RightParenthesisOrError + { + if ($3.indexOf('.') === -1 ) { + parser.suggestKeywords(['PERCENT', 'ROWS']); + } else { + parser.suggestKeywords(['PERCENT']); + } + } + ; + +OptionalOnColumn + : + | 'ON' ValueExpression + ; + +OptionalOnColumn_EDIT + : 'ON' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'ON' ValueExpression_EDIT + ; + +PushQueryState + : + { + parser.pushQueryState(); + } + ; + +PopQueryState + : + { + parser.popQueryState(); + } + ; + +TableSubQuery + : '(' TableSubQueryInner ')' -> $2 + | '(' DerivedTable OptionalCorrelationName ')' + { + if ($3) { + $2.alias = $3.alias; + parser.addTablePrimary({ subQueryAlias: $3.alias }); + parser.addSubqueryAliasLocation($3.location, $3.alias, $2.identifierChain); + } + $$ = $2; + } + ; + +TableSubQuery_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['SELECT']); + } + ; + +TableSubQueryInner + : PushQueryState SubQuery + { + var subQuery = parser.getSubQuery($2); + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; + }); + parser.popQueryState(subQuery); + $$ = subQuery; + } + ; + +TableSubQueryInner_EDIT + : PushQueryState SubQuery_EDIT PopQueryState + ; + +SubQuery + : QueryExpression + ; + +SubQuery_EDIT + : QueryExpression_EDIT + ; + +QueryExpression + : QueryExpressionBody + ; + +QueryExpression_EDIT + : QueryExpressionBody_EDIT + ; + +QueryExpressionBody + : NonJoinQueryExpression + ; + +QueryExpressionBody_EDIT + : NonJoinQueryExpression_EDIT + ; + +NonJoinQueryExpression + : NonJoinQueryTerm + ; + +NonJoinQueryExpression_EDIT + : NonJoinQueryTerm_EDIT + ; + +NonJoinQueryTerm + : NonJoinQueryPrimary + ; + +NonJoinQueryTerm_EDIT + : NonJoinQueryPrimary_EDIT + ; + +NonJoinQueryPrimary + : SimpleTable + ; + +NonJoinQueryPrimary_EDIT + : SimpleTable_EDIT + ; + +SimpleTable + : QuerySpecification + ; + +SimpleTable_EDIT + : QuerySpecification_EDIT + ; + +OptionalCorrelationName + : + | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } + | 'AS' RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | 'AS' QuotedValue -> { alias: $2, location: @2 } + ; + +OptionalCorrelationName_EDIT + : PartialBacktickedIdentifier + | QuotedValue_EDIT + | 'AS' PartialBacktickedIdentifier + | 'AS' QuotedValue_EDIT + | 'AS' 'CURSOR' + ; + +OptionalLateralViews + : + | OptionalLateralViews LateralView + { + if ($1 && $2.lateralView) { + $1.lateralViews.push($2.lateralView); + $$ = $1; + } else if ($2.lateralView) { + $$ = { lateralViews: [ $2.lateralView ] }; + } + if ($2.suggestKeywords) { + $$.suggestKeywords = $2.suggestKeywords + } + } + ; + +OptionalLateralViews_EDIT + : OptionalLateralViews LateralView_EDIT OptionalLateralViews + ; + +UserDefinedFunction + : AggregateFunction OptionalOverClause + { + if (!$2) { + $1.suggestKeywords = ['OVER']; + } + } + | AnalyticFunction OverClause + | CastFunction + | ExtractFunction + ; + +UserDefinedFunction_EDIT + : AggregateFunction_EDIT + | AggregateFunction OptionalOverClause_EDIT + | AnalyticFunction_EDIT + | AnalyticFunction_EDIT OverClause + | AnalyticFunction 'CURSOR' + { + parser.suggestKeywords(['OVER']); + } + | AnalyticFunction OverClause_EDIT + | CastFunction_EDIT + | ExtractFunction_EDIT + ; + +ArbitraryFunction + : RegularIdentifier ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + | ArbitraryFunctionName ArbitraryFunctionRightPart + { + parser.addFunctionLocation(@1, $1); + if ($2.expression) { + $$ = { function: $1, expression: $2.expression, types: parser.findReturnTypes($1) } + } else { + $$ = { function: $1, types: parser.findReturnTypes($1) } + } + } + ; + +ArbitraryFunction_EDIT + : RegularIdentifier ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + | ArbitraryFunctionName ArbitraryFunctionRightPart_EDIT + { + parser.addFunctionLocation(@1, $1); + if ($2.position) { + parser.applyArgumentTypesToSuggestions($1, $2.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ArbitraryFunctionName + : 'ARRAY' + | 'BINARY' + | 'IF' + | 'MAP' + | 'TRUNCATE' + ; + +ArbitraryFunctionRightPart + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } + ; + +ArbitraryFunctionRightPart_EDIT + : '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { position: 1 } + } + | '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + } + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> $2 + ; + +AggregateFunction + : CountFunction + | SumFunction + | OtherAggregateFunction + ; + +AggregateFunction_EDIT + : CountFunction_EDIT + | SumFunction_EDIT + | OtherAggregateFunction_EDIT + ; + +AnalyticFunction + : 'ANALYTIC' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'ANALYTIC' '(' ValueExpressionList ')' -> { function: $1, expression: $2, types: parser.findReturnTypes($1) } + ; + +AnalyticFunction_EDIT + : 'ANALYTIC' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'ANALYTIC' '(' ValueExpressionList_EDIT RightParenthesisOrError + { + parser.applyArgumentTypesToSuggestions($1, $3.position); + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OptionalOverClause + : + | OverClause + ; + +OptionalOverClause_EDIT + : OverClause_EDIT + ; + +OverClause + : 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression + ; + +OverClause_EDIT + : 'OVER' WindowExpression_EDIT + ; + +WindowExpression + : '(' OptionalPartitionBy OptionalOrderByAndWindow ')' + ; + +WindowExpression_EDIT + : '(' PartitionBy_EDIT OptionalOrderByAndWindow RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' OptionalPartitionBy OptionalOrderByAndWindow_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions) { + parser.suggestAggregateFunctions(); + } + } + | '(' AnyCursor OptionalPartitionBy OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$3 && !$4) { + parser.suggestKeywords([{ value: 'PARTITION BY', weight: 2 }, { value: 'ORDER BY', weight: 1 }]); + } else if (!$3) { + parser.suggestKeywords(['PARTITION BY']); + } + } + | '(' 'PARTITION' 'BY' ValueExpressionList 'CURSOR' OptionalOrderByAndWindow RightParenthesisOrError + { + if (!$6) { + parser.suggestValueExpressionKeywords($4, [{ value: 'ORDER BY', weight: 2 }]); + } else { + parser.suggestValueExpressionKeywords($4); + } + } + ; + +OptionalPartitionBy + : + | PartitionBy + ; + +PartitionBy + : 'PARTITION' 'BY' ValueExpressionList -> $3 + ; + +PartitionBy_EDIT + : 'PARTITION' 'CURSOR' + { + parser.suggestKeywords(['BY']); + } + | 'PARTITION' 'BY' 'CURSOR' + { + parser.valueExpressionSuggest(); + } + | 'PARTITION' 'BY' ValueExpressionList_EDIT + ; + +OptionalOrderByAndWindow + : + | OrderByClause OptionalWindowSpec + ; + +OptionalOrderByAndWindow_EDIT + : OrderByClause_EDIT + { + // Only allowed in last order by + delete parser.yy.result.suggestAnalyticFunctions; + } + | OrderByClause 'CURSOR' OptionalWindowSpec + { + var keywords = []; + if ($1.suggestKeywords) { + keywords = parser.createWeightedKeywords($1.suggestKeywords, 2); + } + if (!$3) { + keywords = keywords.concat([{ value: 'RANGE BETWEEN', weight: 1 }, { value: 'ROWS BETWEEN', weight: 1 }]); + } + parser.suggestKeywords(keywords); + } + | OrderByClause WindowSpec_EDIT + ; + +OptionalWindowSpec + : + | WindowSpec + ; + +WindowSpec + : RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing + ; + +WindowSpec_EDIT + : RowsOrRange 'CURSOR' + { + parser.suggestKeywords(['BETWEEN', 'UNBOUNDED']); + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing 'CURSOR' + { + if (!$4 && !$5) { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED PRECEDING']); + } else if (!$5) { + parser.suggestKeywords(['AND']); + } + } + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding_EDIT OptionalAndFollowing + | RowsOrRange 'BETWEEN' PopLexerState OptionalCurrentOrPreceding OptionalAndFollowing_EDIT + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding 'CURSOR' + { + if (!$4) { + parser.suggestKeywords(['PRECEDING']); + } + } + | RowsOrRange 'UNBOUNDED' PopLexerState OptionalCurrentOrPreceding_EDIT + ; + +PopLexerState + : + { + lexer.popState(); + } + ; + +PushHdfsLexerState + : + { + lexer.begin('hdfs'); + } + ; + +HdfsPath + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'HDFS_END_QUOTE' + ; + +HdfsPath_EDIT + : 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_PATH' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'HDFS_PATH' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: $2 }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' 'HDFS_END_QUOTE' + { + parser.suggestHdfs({ path: '' }); + } + | 'HDFS_START_QUOTE' 'PARTIAL_CURSOR' + { + parser.suggestHdfs({ path: '' }); + } + ; + +RowsOrRange + : 'ROWS' + | 'RANGE' + ; + +OptionalCurrentOrPreceding + : + | IntegerOrUnbounded 'PRECEDING' + | 'CURRENT' 'ROW' + ; + +OptionalCurrentOrPreceding_EDIT + : IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['PRECEDING']); + } + | 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + ; + +OptionalAndFollowing + : + | 'AND' 'CURRENT' 'ROW' + | 'AND' IntegerOrUnbounded 'FOLLOWING' + ; + +OptionalAndFollowing_EDIT + : 'AND' 'CURSOR' + { + parser.suggestKeywords(['CURRENT ROW', 'UNBOUNDED FOLLOWING']); + } + | 'AND' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords(['ROW']); + } + | 'AND' IntegerOrUnbounded 'CURSOR' + { + parser.suggestKeywords(['FOLLOWING']); + } + ; + +IntegerOrUnbounded + : 'UNSIGNED_INTEGER' + | 'UNBOUNDED' + ; + +OptionalHavingClause + : + | HavingClause + ; + +HavingClause + : 'HAVING' ValueExpression + ; + +HavingClause_EDIT + : 'HAVING' 'CURSOR' + { + parser.valueExpressionSuggest(); + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + | 'HAVING' ValueExpression_EDIT + { + parser.suggestAggregateFunctions(); + parser.suggestSelectListAliases(true); + } + ; + +OptionalWindowClause + : + | WindowClause + ; + +WindowClause + : 'WINDOW' RegularOrBacktickedIdentifier 'AS' WindowExpression + ; + +WindowClause_EDIT + : 'WINDOW' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['AS']); + } + | 'WINDOW' RegularOrBacktickedIdentifier 'AS' WindowExpression_EDIT + ; + +CastFunction + : 'CAST' '(' ValueExpression 'AS' PrimitiveType ')' -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ')' -> { types: [ 'T' ] } + ; + +CastFunction_EDIT + : 'CAST' '(' AnyCursor 'AS' PrimitiveType RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' AnyCursor 'AS' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression_EDIT 'AS' PrimitiveType RightParenthesisOrError -> { types: [ $5.toUpperCase() ] } + | 'CAST' '(' ValueExpression_EDIT 'AS' RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression_EDIT RightParenthesisOrError -> { types: [ 'T' ] } + | 'CAST' '(' ValueExpression 'CURSOR' PrimitiveType RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ $5.toUpperCase() ] }; + } + | 'CAST' '(' ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($3, [{ value: 'AS', weight: 2 }]); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' ValueExpression 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + | 'CAST' '(' 'AS' 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(parser.getTypeKeywords()); + $$ = { types: [ 'T' ] }; + } + ; + +CountFunction + : 'COUNT' '(' '*' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' ')' -> { types: parser.findReturnTypes($1) } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +CountFunction_EDIT + : 'COUNT' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'COUNT' '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(); + if (!$3) { + keywords.push('DISTINCT'); + } + parser.suggestKeywords(keywords); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +ExtractFunction + : 'EXTRACT' '(' DateField 'FROM' ValueExpression ')' -> { types: ['INT', 'INTEGER'] } + ; + +ExtractFunction_EDIT + : 'EXTRACT' '(' AnyCursor RightParenthesisOrError + { + parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); + $$ = { types: ['INT', 'INTEGER'] } + } + | 'EXTRACT' '(' DateField 'CURSOR' RightParenthesisOrError + { + parser.suggestKeywords(['FROM']); + $$ = { types: ['INT', 'INTEGER'] } + } + | 'EXTRACT' '(' DateField 'FROM' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['INT', 'INTEGER'] } + } + | 'EXTRACT' '(' DateField 'FROM' ValueExpression_EDIT RightParenthesisOrError -> { types: ['INT', 'INTEGER'] } + | 'EXTRACT' '(' AnyCursor 'FROM' ValueExpression RightParenthesisOrError + { + parser.suggestKeywords(['DAY', 'DAYOFWEEK', 'HOUR', 'MINUTE', 'MONTH', 'QUARTER', 'SECOND', 'WEEK', 'YEAR']); + $$ = { types: ['INT', 'INTEGER'] } + } + | 'EXTRACT' '(' DateField 'CURSOR' ValueExpression RightParenthesisOrError + { + parser.suggestKeywords(['FROM']); + $$ = { types: ['INT', 'INTEGER'] } + } + ; + +DateField + : 'DAY' + | 'DAYOFWEEK' + | 'HOUR' + | 'MINUTE' + | 'MONTH' + | 'QUARTER' + | 'SECOND' + | 'WEEK' + | 'YEAR' + ; + +OtherAggregateFunction + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct ')' -> { types: parser.findReturnTypes($1) } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList ')' -> { types: parser.findReturnTypes($1) } + ; + +OtherAggregateFunction_EDIT + : OtherAggregateFunction_Type '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + parser.applyArgumentTypesToSuggestions($1, 1); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | OtherAggregateFunction_Type '(' OptionalAllOrDistinct ValueExpressionList_EDIT RightParenthesisOrError + { + if ($4.cursorAtStart) { + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + if ($1.toLowerCase() === 'group_concat') { + keywords.push('ALL'); + } else { + keywords.push('DISTINCT'); + } + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + } + if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, $4.position); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +OtherAggregateFunction_Type + : 'AVG' + | 'COLLECT_LIST' + | 'COLLECT_SET' + | 'CORR' + | 'COVAR_POP' + | 'COVAR_SAMP' + | 'HISTOGRAM_NUMERIC' + | 'MAX' + | 'MIN' + | 'NTILE' + | 'PERCENTILE' + | 'PERCENTILE_APPROX' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARIANCE' + ; + +FromOrComma + : 'FROM' + | ',' + ; + +SumFunction + : 'SUM' '(' OptionalAllOrDistinct ValueExpression ')' -> { types: parser.findReturnTypes($1) } + | 'SUM' '(' ')' -> { types: parser.findReturnTypes($1) } + ; + +SumFunction_EDIT + : 'SUM' '(' OptionalAllOrDistinct AnyCursor RightParenthesisOrError + { + parser.valueExpressionSuggest(); + parser.applyArgumentTypesToSuggestions($1, 1); + var keywords = parser.getSelectListKeywords(true); + if (!$3) { + keywords.push('DISTINCT'); + } + if (parser.yy.result.suggestKeywords) { + keywords = parser.yy.result.suggestKeywords.concat(keywords); + } + parser.suggestKeywords(keywords); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression 'CURSOR' RightParenthesisOrError + { + parser.suggestValueExpressionKeywords($4); + $$ = { types: parser.findReturnTypes($1) }; + } + | 'SUM' '(' OptionalAllOrDistinct ValueExpression_EDIT RightParenthesisOrError + { + if (parser.yy.result.suggestFunctions && ! parser.yy.result.suggestFunctions.types) { + parser.applyArgumentTypesToSuggestions($1, 1); + } + $$ = { types: parser.findReturnTypes($1) }; + } + ; + +LateralView + : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier LateralViewColumnAliases -> { lateralView: { udtf: $4, tableAlias: $5, columnAliases: $6 }} + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier + { + if ($4.function.toLowerCase() === 'explode') { + $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: ['key', 'value'] }, suggestKeywords: ['AS'] }; + } else if ($4.function.toLowerCase() === 'posexplode') { + $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: ['pos', 'val'] }, suggestKeywords: ['AS'] }; + } else { + $$ = { lateralView: { udtf: $4, tableAlias: $5, columnAliases: [] }, suggestKeywords: ['AS'] }; + } + } + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction LateralViewColumnAliases -> { lateralView: { udtf: $4, columnAliases: $5 }} + ; + +LateralView_EDIT + : 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT RegularOrBacktickedIdentifier + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction_EDIT RegularOrBacktickedIdentifier LateralViewColumnAliases + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction RegularOrBacktickedIdentifier LateralViewColumnAliases_EDIT + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction PartialBacktickedOrCursor + | 'LATERAL' 'VIEW' OptionalOuter ArbitraryFunction PartialBacktickedOrCursor LateralViewColumnAliases + | 'LATERAL' 'VIEW' OptionalOuter 'CURSOR' + { + if (!$3) { + parser.suggestKeywords([{ value: 'OUTER', weight: 2 }, { value: 'explode', weight: 1 }, { value: 'posexplode', weight: 1 }]); + } else { + parser.suggestKeywords(['explode', 'posexplode']); + } + } + | 'LATERAL' 'CURSOR' + { + parser.suggestKeywords(['VIEW']); + } + ; + +OptionalOuter + : + | 'OUTER' + ; + +LateralViewColumnAliases + : 'AS' RegularOrBacktickedIdentifier -> [ $2 ] + | 'AS' RegularOrBacktickedIdentifier ',' RegularOrBacktickedIdentifier -> [ $2, $4 ] + ; + +LateralViewColumnAliases_EDIT + : 'AS' PartialBacktickedOrCursor + | 'AS' RegularOrBacktickedIdentifier ',' PartialBacktickedOrAnyCursor + ; diff --git a/src/jison/sql/presto/sql_set.jison b/src/jison/sql/presto/sql_set.jison new file mode 100644 index 0000000..6ff041a --- /dev/null +++ b/src/jison/sql/presto/sql_set.jison @@ -0,0 +1,62 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : SetRoleStatement + | SetSpecification + ; + +DataDefinition_EDIT + : SetRoleStatement_EDIT + | 'SET' 'CURSOR' + { + parser.suggestSetOptions(); + parser.suggestKeywords(['ROLE']); + } + ; + +SetSpecification + : 'SET' SetOption '=' SetValue + | 'SET' 'ALL' + ; + +SetOption + : RegularIdentifier + | SetOption '.' RegularIdentifier + ; + +SetValue + : RegularIdentifier + | SignedInteger + | SignedInteger RegularIdentifier + | QuotedValue + | 'TRUE' + | 'FALSE' + | 'NULL' + ; + +SetRoleStatement + : 'SET' 'ROLE' RegularIdentifier + | 'SET' 'ROLE' 'ALL' + | 'SET' 'ROLE' 'NONE' + ; + +SetRoleStatement_EDIT + : 'SET' 'ROLE' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'NONE']); + } + ; diff --git a/src/jison/sql/presto/sql_show.jison b/src/jison/sql/presto/sql_show.jison new file mode 100644 index 0000000..7f9b8de --- /dev/null +++ b/src/jison/sql/presto/sql_show.jison @@ -0,0 +1,512 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : ShowStatement + ; + +DataDefinition_EDIT + : ShowStatement_EDIT + ; + +ShowStatement + : ShowColumnsStatement + | ShowCompactionsStatement + | ShowConfStatement + | ShowCreateTableStatement + | ShowCurrentRolesStatement + | ShowDatabasesStatement + | ShowFunctionsStatement + | ShowGrantStatement + | ShowIndexStatement + | ShowLocksStatement + | ShowPartitionsStatement + | ShowRolesStatement + | ShowRoleStatement + | ShowTablesStatement + | ShowTableStatement + | ShowTblPropertiesStatement + | ShowTransactionsStatement + | ShowViewsStatement + ; + +ShowStatement_EDIT + : 'SHOW' 'CURSOR' + { + parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); + } + | 'SHOW' 'CURSOR' RegularOrBackTickedSchemaQualifiedName + { + // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT + if ($3.identifierChain && $3.identifierChain.length === 1 && $3.identifierChain[0].name.toLowerCase() === 'roles') { + parser.suggestKeywords(['CURRENT']); + parser.yy.locations.pop(); + } else { + parser.addTablePrimary($3); + } + } + | 'SHOW' 'CURSOR' LIKE SingleQuotedValue + { + parser.suggestKeywords(['DATABASES', 'SCHEMAS', 'TABLE EXTENDED']); + } + | ShowColumnsStatement_EDIT + | ShowCreateTableStatement_EDIT + | ShowCurrentRolesStatement_EDIT + | ShowDatabasesStatement_EDIT + | ShowGrantStatement_EDIT + | ShowIndexStatement_EDIT + | ShowLocksStatement_EDIT + | ShowPartitionsStatement_EDIT + | ShowRoleStatement_EDIT + | ShowTablesStatement_EDIT + | ShowTableStatement_EDIT + | ShowTblPropertiesStatement_EDIT + | ShowViewsStatement_EDIT + ; + +ShowColumnsStatement + : 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier + | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier + ; + +ShowColumnsStatement_EDIT + : 'SHOW' 'COLUMNS' 'CURSOR' + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' 'COLUMNS' 'CURSOR' RegularOrBacktickedIdentifier + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' + { + parser.suggestTables(); + } + | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' FromOrIn + { + parser.suggestTables(); + } + | 'SHOW' 'COLUMNS' FromOrIn 'CURSOR' FromOrIn RegularOrBacktickedIdentifier + { + parser.suggestTables(); + } + | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier 'CURSOR' RegularOrBacktickedIdentifier + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' 'COLUMNS' FromOrIn RegularOrBacktickedIdentifier FromOrIn 'CURSOR' + { + parser.suggestDatabases(); + } + ; + +ShowCompactionsStatement + : 'SHOW' 'COMPACTIONS' + ; + +ShowConfStatement + : 'SHOW' 'CONF' ConfigurationName + ; + +ShowCreateTableStatement + : 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($4); + } + ; + +ShowCreateTableStatement_EDIT + : 'SHOW' 'CREATE' 'CURSOR' + { + parser.suggestKeywords(['TABLE']); + } + | 'SHOW' 'CREATE' TableOrView 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'SHOW' 'CREATE' TableOrView RegularOrBackTickedSchemaQualifiedName_EDIT + { + if (parser.yy.result.suggestTables && $3.isView) { + parser.yy.result.suggestTables.onlyViews = true; + } + } + | 'SHOW' 'CREATE' 'CURSOR' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($4); + parser.suggestKeywords(['TABLE']); + } + ; + +TableOrView + : 'TABLE' + | 'VIEW' -> { isView: true } + ; + +ShowCurrentRolesStatement + : 'SHOW' 'CURRENT' 'ROLES' + ; + +ShowCurrentRolesStatement_EDIT + : 'SHOW' 'CURRENT' 'CURSOR' + { + parser.suggestKeywords([ 'ROLES' ]); + } + ; + +ShowDatabasesStatement + : 'SHOW' DatabasesOrSchemas 'LIKE' SingleQuotedValue + ; + +ShowDatabasesStatement_EDIT + : 'SHOW' DatabasesOrSchemas 'CURSOR' + { + parser.suggestKeywords(['LIKE']); + } + ; + +ShowFunctionsStatement + : 'SHOW' 'FUNCTIONS' + | 'SHOW' 'FUNCTIONS' DoubleQuotedValue + ; + +ShowGrantStatement + : 'SHOW' 'GRANT' OptionalPrincipalName + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'ALL' + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'TABLE' SchemaQualifiedTableIdentifier + ; + +ShowGrantStatement_EDIT + : 'SHOW' 'GRANT' OptionalPrincipalName_EDIT + { + parser.suggestKeywords(['ON']); + } + | 'SHOW' 'GRANT' OptionalPrincipalName_EDIT 'ON' 'ALL' + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' + { + parser.suggestKeywords(['ALL', 'TABLE']); + parser.suggestTables(); + } + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier_EDIT + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'TABLE' 'CURSOR' + { + parser.suggestTables(); + } + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier + { + parser.suggestKeywords(['TABLE']); + } + | 'SHOW' 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier_EDIT + ; + +OptionalPrincipalName + : + | RegularIdentifier + ; + +OptionalPrincipalName_EDIT + : 'CURSOR' + | RegularIdentifier 'CURSOR' + ; + +ShowIndexStatement + : 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier + | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier + ; + +ShowIndexStatement_EDIT + : 'SHOW' OptionallyFormattedIndex + | 'SHOW' OptionallyFormattedIndex_EDIT + | 'SHOW' OptionallyFormattedIndex_EDIT 'ON' RegularOrBacktickedIdentifier + | 'SHOW' OptionallyFormattedIndex_EDIT 'ON' RegularOrBacktickedIdentifier FromOrIn RegularOrBacktickedIdentifier + | 'SHOW' OptionallyFormattedIndex 'CURSOR' + { + parser.suggestKeywords(['ON']); + } + | 'SHOW' OptionallyFormattedIndex 'ON' 'CURSOR' + { + parser.suggestTables(); + } + | 'SHOW' OptionallyFormattedIndex 'CURSOR' RegularOrBacktickedIdentifier + { + parser.suggestKeywords(['ON']); + } + | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier 'CURSOR' RegularOrBacktickedIdentifier + { + parser.suggestKeywords(['FROM', 'IN']); + } + | 'SHOW' OptionallyFormattedIndex 'ON' RegularOrBacktickedIdentifier FromOrIn 'CURSOR' + { + parser.suggestDatabases(); + } + | 'SHOW' OptionallyFormattedIndex 'ON' 'CURSOR' FromOrIn RegularOrBacktickedIdentifier + { + parser.suggestTables({identifierChain: [{name: $6}]}); + } + ; + +ShowLocksStatement + : 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($3); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName 'EXTENDED' + { + parser.addTablePrimary($3); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec + { + parser.addTablePrimary($3); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec 'EXTENDED' + { + parser.addTablePrimary($3); + } + | 'SHOW' 'LOCKS' DatabaseOrSchema RegularOrBacktickedIdentifier + ; + +ShowLocksStatement_EDIT + : 'SHOW' 'LOCKS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + parser.suggestKeywords(['DATABASE', 'SCHEMA']); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['EXTENDED', 'PARTITION']); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT 'EXTENDED' + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName PartitionSpec 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['EXTENDED']); + } + | 'SHOW' 'LOCKS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec 'EXTENDED' + | 'SHOW' 'LOCKS' DatabaseOrSchema 'CURSOR' + { + parser.suggestDatabases(); + } + ; + +ShowPartitionsStatement + : 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($3); + } + | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName PartitionSpec + { + parser.addTablePrimary($3); + } + ; + +ShowPartitionsStatement_EDIT + : 'SHOW' 'PARTITIONS' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ + appendDot: true + }); + } + | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT + | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName 'CURSOR' + { + parser.addTablePrimary($3); + parser.suggestKeywords(['PARTITION']); + } + | 'SHOW' 'PARTITIONS' RegularOrBackTickedSchemaQualifiedName_EDIT PartitionSpec + ; + +ShowRoleStatement + : 'SHOW' 'ROLE' 'GRANT' RoleOrUser RegularIdentifier + ; + +ShowRoleStatement_EDIT + : 'SHOW' 'ROLE' 'CURSOR' + { + parser.suggestKeywords(['GRANT']); + } + | 'SHOW' 'ROLE' 'CURSOR' RoleOrUser RegularIdentifier + { + parser.suggestKeywords(['GRANT']); + } + | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' + { + parser.suggestKeywords(['ROLE', 'USER']); + } + | 'SHOW' 'ROLE' 'GRANT' 'CURSOR' RegularIdentifier + { + parser.suggestKeywords(['ROLE', 'USER']); + } + ; + +ShowRolesStatement + : 'SHOW' 'ROLES' + ; + +ShowTableStatement + : 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue PartitionSpec + ; + +ShowTableStatement_EDIT + : 'SHOW' 'TABLE' 'CURSOR' + { + parser.suggestKeywords(['EXTENDED']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' + { + if ($4) { + parser.suggestKeywords(['LIKE']); + } else { + parser.suggestKeywords(['FROM', 'IN', 'LIKE']); + } + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT 'LIKE' SingleQuotedValue + | 'SHOW' 'TABLE' 'CURSOR' OptionalFromDatabase 'LIKE' SingleQuotedValue + { + parser.suggestKeywords(['EXTENDED']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' SingleQuotedValue + { + parser.suggestKeywords(['LIKE']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue 'CURSOR' + { + parser.suggestKeywords(['PARTITION']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase_EDIT 'LIKE' SingleQuotedValue PartitionSpec + | 'SHOW' 'TABLE' 'CURSOR' OptionalFromDatabase 'LIKE' SingleQuotedValue PartitionSpec + { + parser.suggestKeywords(['EXTENDED']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'CURSOR' SingleQuotedValue PartitionSpec + { + parser.suggestKeywords(['LIKE']); + } + | 'SHOW' 'TABLE' 'EXTENDED' OptionalFromDatabase 'LIKE' SingleQuotedValue 'CURSOR' PartitionSpecList + { + parser.suggestKeywords(['PARTITION']); + } + ; + +ShowTablesStatement + : 'SHOW' 'TABLES' OptionalInDatabase + | 'SHOW' 'TABLES' OptionalInDatabase SingleQuotedValue + | 'SHOW' 'TABLES' OptionalInDatabase 'LIKE' SingleQuotedValue + ; + +ShowTablesStatement_EDIT + : 'SHOW' 'TABLES' OptionalInDatabase 'CURSOR' + { + if (!$3) { + parser.suggestKeywords(['IN', 'LIKE']); + } else { + parser.suggestKeywords(['LIKE']); + } + } + ; + +ShowTblPropertiesStatement + : 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName + { + parser.addTablePrimary($3); + } + | 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName '(' QuotedValue ')' + { + parser.addTablePrimary($3); + } + ; + +ShowTblPropertiesStatement_EDIT + : 'SHOW' 'TBLPROPERTIES' RegularOrBackTickedSchemaQualifiedName_EDIT + | 'SHOW' 'TBLPROPERTIES' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ prependDot: true }); + } + ; + +ShowTransactionsStatement + : 'SHOW' 'TRANSACTIONS' + ; + +ShowViewsStatement + : 'SHOW' 'VIEWS' OptionalInOrFromDatabase OptionalLike + ; + +ShowViewsStatement_EDIT + : 'SHOW' 'VIEWS' OptionalInOrFromDatabase OptionalLike 'CURSOR' + { + if (!$4 && !$3) { + parser.suggestKeywords([{ value: 'IN', weight: 2 }, { value: 'FROM', weight: 2 }, { value: 'LIKE', weight: 1 }]); + } else if (!$4) { + parser.suggestKeywords(['LIKE']); + } + } + | 'SHOW' 'VIEWS' InOrFromDatabase_EDIT OptionalLike + | 'SHOW' 'VIEWS' OptionalInOrFromDatabase Like_EDIT + ; + +OptionalInOrFromDatabase + : + | 'IN' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@2, [ { name: $2 } ]); + } + | 'FROM' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@2, [ { name: $2 } ]); + } + ; + +InOrFromDatabase_EDIT + : 'IN' 'CURSOR' + { + parser.suggestDatabases(); + } + | 'FROM' 'CURSOR' + { + parser.suggestDatabases(); + } + ; + +OptionalLike + : + | 'LIKE' SingleQuotedValue + ; + +Like_EDIT + : 'LIKE' 'CURSOR' + ; diff --git a/src/jison/sql/presto/sql_update.jison b/src/jison/sql/presto/sql_update.jison new file mode 100644 index 0000000..18dd53f --- /dev/null +++ b/src/jison/sql/presto/sql_update.jison @@ -0,0 +1,124 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataManipulation + : UpdateStatement + ; + +DataManipulation_EDIT + : UpdateStatement_EDIT + ; + +UpdateStatement + : 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + ; + +UpdateStatement_EDIT + : 'UPDATE' TargetTable_EDIT 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList_EDIT OptionalFromJoinedTable OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList FromJoinedTable_EDIT OptionalWhereClause + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable WhereClause_EDIT + | 'UPDATE' TargetTable 'SET' SetClauseList OptionalFromJoinedTable OptionalWhereClause 'CURSOR' + { + if (!$6) { + parser.suggestKeywords([ 'WHERE' ]); + } + } + | 'UPDATE' TargetTable 'CURSOR' + { + parser.suggestKeywords([ 'SET' ]); + } + | 'UPDATE' TargetTable_EDIT + | 'UPDATE' TargetTable + | 'UPDATE' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + ; + +TargetTable + : TableName + ; + +TargetTable_EDIT + : TableName_EDIT + ; + +TableName + : LocalOrSchemaQualifiedName + { + parser.addTablePrimary($1); + } + ; + +TableName_EDIT + : LocalOrSchemaQualifiedName_EDIT + ; + +SetClauseList + : SetClause + | SetClauseList ',' SetClause + ; + +SetClauseList_EDIT + : SetClause_EDIT + | SetClauseList ',' SetClause_EDIT + | SetClause_EDIT ',' SetClauseList + | SetClauseList ',' SetClause_EDIT ',' SetClauseList + ; + +SetClause + : SetTarget '=' UpdateSource + ; + +SetClause_EDIT + : SetTarget '=' UpdateSource_EDIT + | SetTarget 'CURSOR' + { + parser.suggestKeywords([ '=' ]); + } + | 'CURSOR' + { + parser.suggestColumns(); + } + ; + +SetTarget + : ColumnReference + ; + +UpdateSource + : ValueExpression + ; + +UpdateSource_EDIT + : ValueExpression_EDIT + ; + +OptionalFromJoinedTable + : + | 'FROM' TableReference -> $2 + ; + +FromJoinedTable_EDIT + : 'FROM' 'CURSOR' + { + parser.suggestTables(); + parser.suggestDatabases({ appendDot: true }); + } + | 'FROM' TableReference_EDIT + ; diff --git a/src/jison/sql/presto/sql_use.jison b/src/jison/sql/presto/sql_use.jison new file mode 100644 index 0000000..0ceedb7 --- /dev/null +++ b/src/jison/sql/presto/sql_use.jison @@ -0,0 +1,42 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +DataDefinition + : UseStatement + ; + +DataDefinition_EDIT + : UseStatement_EDIT + ; + +UseStatement + : 'USE' RegularIdentifier + { + if (! parser.yy.cursorFound) { + parser.yy.result.useDatabase = $2; + } + } + ; + +UseStatement_EDIT + : 'USE' 'CURSOR' + { + parser.suggestDatabases(); + } + ; + + +// ===================================== Fin ===================================== diff --git a/src/jison/sql/presto/sql_valueExpression.jison b/src/jison/sql/presto/sql_valueExpression.jison new file mode 100644 index 0000000..3dcc339 --- /dev/null +++ b/src/jison/sql/presto/sql_valueExpression.jison @@ -0,0 +1,839 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +ValueExpression + : 'NOT' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression + { + // verifyType($2, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression -> $2 + | '-' ValueExpression %prec NEGATION + { + // verifyType($2, 'NUMBER'); + $$ = $2; + $2.types = ['NUMBER']; + } + | ValueExpression 'IS' OptionalNot 'NULL' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'TRUE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'FALSE' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : 'NOT' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | 'NOT' 'CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + parser.suggestKeywords(['EXISTS']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '!' ValueExpression_EDIT -> { types: [ 'BOOLEAN' ], suggestFilters: $2.suggestFilters } + | '!' AnyCursor + { + parser.suggestFunctions({ types: [ 'BOOLEAN' ] }); + parser.suggestColumns({ types: [ 'BOOLEAN' ] }); + $$ = { types: [ 'BOOLEAN' ] }; + } + | '~' ValueExpression_EDIT -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | '~' 'PARTIAL_CURSOR' + { + parser.suggestFunctions(); + parser.suggestColumns(); + $$ = { types: [ 'T' ] }; + } + | '-' ValueExpression_EDIT %prec NEGATION + { + if (!$2.typeSet) { + parser.applyTypeToSuggestions('NUMBER'); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $2.suggestFilters }; + } + | '-' 'PARTIAL_CURSOR' %prec NEGATION + { + parser.suggestFunctions({ types: [ 'NUMBER' ] }); + parser.suggestColumns({ types: [ 'NUMBER' ] }); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'IS' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NOT NULL', 'NOT TRUE', 'NOT FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'NOT' 'CURSOR' + { + parser.suggestKeywords(['FALSE', 'NULL', 'TRUE']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'CURSOR' + { + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'NULL' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'FALSE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' 'CURSOR' 'TRUE' + { + parser.suggestKeywords(['NOT']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $3 ? 'IS NOT DISTINCT FROM' : 'IS DISTINCT FROM'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'IS' OptionalNot 'DISTINCT' 'FROM' ValueExpression_EDIT + { + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters } + } + ; + +// ------------------ EXISTS and parenthesized ------------------ +ValueExpression + : 'EXISTS' TableSubQuery + { + $$ = { types: [ 'BOOLEAN' ] }; + // clear correlated flag after completed sub-query (set by lexer) + parser.yy.correlatedSubQuery = false; + } + | '(' ValueExpression ')' -> $2 + ; + +ValueExpression_EDIT + : 'EXISTS' TableSubQuery_EDIT -> { types: [ 'BOOLEAN' ] } + | '(' ValueExpression_EDIT RightParenthesisOrError + { + $$ = $2; + } + | '(' 'CURSOR' RightParenthesisOrError + { + parser.valueExpressionSuggest(); + $$ = { types: ['T'], typeSet: true }; + } + ; + +// ------------------ COMPARISON ------------------ + +ValueExpression + : ValueExpression '=' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '<' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression '>' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression + { + parser.addColRefToVariableIfExists($1, $3); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '=' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '<' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' '>' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'COMPARISON_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest($3, $2); + parser.applyTypeToSuggestions($3.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT '=' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '<' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '>' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'COMPARISON_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions($3.types); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '=' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression '<' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ] , typeSet: true, endsWithLessThanOrEqual: true }; + } + | ValueExpression '>' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'COMPARISON_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, endsWithLessThanOrEqual: $2 === '<=' }; + } + | ValueExpression '=' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '<' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression '>' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | ValueExpression 'COMPARISON_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions($1.types); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + + +// ------------------ IN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' TableSubQueryInner ')' -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'IN' '(' ValueExpressionList ')' -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression 'NOT' 'IN' ValueExpressionInSecondPart_EDIT + { + if ($4.inValueEdit) { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + parser.applyTypeToSuggestions($1.types); + } + if ($4.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'IN' ValueExpressionInSecondPart_EDIT + { + if ($3.inValueEdit) { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + } + if ($3.cursorAtStart) { + parser.suggestKeywords(['SELECT']); + } + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'NOT' 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' ValueExpressionList RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'IN' '(' TableSubQueryInner RightParenthesisOrError -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + ; + +ValueExpressionInSecondPart_EDIT + : '(' TableSubQueryInner_EDIT RightParenthesisOrError + | '(' ValueExpressionList_EDIT RightParenthesisOrError -> { inValueEdit: true } + | '(' AnyCursor RightParenthesisOrError -> { inValueEdit: true, cursorAtStart: true } + ; + +// ------------------ BETWEEN ------------------ + +ValueExpression + : ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression -> { types: [ 'BOOLEAN' ] } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($4.types[0] === $6.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($4.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $6.types[0] && !$4.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $4.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $4.types[0] && !$6.typeSet) { + parser.applyTypeToSuggestions($1.types); + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $6.suggestFilters }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $5); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'NOT' 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($4, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'NOT' 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2 + ' ' + $3); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression_EDIT 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$1.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression_EDIT 'BETWEEN_AND' ValueExpression + { + if ($1.types[0] === $3.types[0] && !$3.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' ValueExpression_EDIT + { + if ($1.types[0] === $3.types[0] && !$5.typeSet) { + parser.applyTypeToSuggestions($1.types) + } + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $5.suggestFilters }; + } + | ValueExpression 'BETWEEN' ValueExpression 'BETWEEN_AND' 'CURSOR' + { + parser.valueExpressionSuggest($1, $4); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | ValueExpression 'BETWEEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['AND']); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'BETWEEN' 'CURSOR' + { + parser.valueExpressionSuggest($1, $2); + parser.applyTypeToSuggestions($1.types); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ BOOLEAN ------------------ + +ValueExpression + : ValueExpression 'OR' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + | ValueExpression 'AND' ValueExpression + { + // verifyType($1, 'BOOLEAN'); + // verifyType($3, 'BOOLEAN'); + $$ = { types: [ 'BOOLEAN' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' 'OR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'OR' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'OR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'OR' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + | 'CURSOR' 'AND' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression_EDIT 'AND' ValueExpression + { + parser.addColRefIfExists($3); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression 'AND' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + $$ = { types: [ 'BOOLEAN' ], typeSet: true, suggestFilters: true }; + } + | ValueExpression 'AND' ValueExpression_EDIT + { + parser.addColRefIfExists($1); + $$ = { types: [ 'BOOLEAN' ], suggestFilters: $3.suggestFilters } + } + ; + +// ------------------ ARITHMETIC ------------------ + +ValueExpression + : ValueExpression '-' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression '*' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression + { + // verifyType($1, 'NUMBER'); + // verifyType($3, 'NUMBER'); + $$ = { types: [ 'NUMBER' ] }; + } + ; + +ValueExpression_EDIT + : 'CURSOR' '*' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | 'CURSOR' 'ARITHMETIC_OPERATOR' ValueExpression + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'NUMBER' ]); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression_EDIT '-' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT '*' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression_EDIT 'ARITHMETIC_OPERATOR' ValueExpression + { + if (!$1.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($3); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $1.suggestFilters } + } + | ValueExpression '-' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '*' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' PartialBacktickedOrAnyCursor + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions(['NUMBER']); + $$ = { types: [ 'NUMBER' ], typeSet: true }; + } + | ValueExpression '-' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression '*' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + | ValueExpression 'ARITHMETIC_OPERATOR' ValueExpression_EDIT + { + if (!$3.typeSet) { + parser.applyTypeToSuggestions(['NUMBER']); + parser.addColRefIfExists($1); + } + $$ = { types: [ 'NUMBER' ], suggestFilters: $3.suggestFilters }; + } + ; + +// ------------------ LIKE, RLIKE and REGEXP ------------------ + +ValueExpression + : ValueExpression LikeRightPart -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ] } + ; + +LikeRightPart + : 'LIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'RLIKE' ValueExpression -> { suggestKeywords: ['NOT'] } + | 'REGEXP' ValueExpression -> { suggestKeywords: ['NOT'] } + ; + +LikeRightPart_EDIT + : 'LIKE' ValueExpression_EDIT + | 'RLIKE' ValueExpression_EDIT + | 'REGEXP' ValueExpression_EDIT + | 'LIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'RLIKE' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + | 'REGEXP' PartialBacktickedOrCursor + { + parser.suggestFunctions({ types: [ 'STRING' ] }); + parser.suggestColumns({ types: [ 'STRING' ] }); + $$ = { types: ['BOOLEAN'] } + } + ; + +ValueExpression_EDIT + : ValueExpression_EDIT LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression_EDIT 'NOT' LikeRightPart -> { types: [ 'BOOLEAN' ], suggestFilters: $1.suggestFilters } + | ValueExpression LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | ValueExpression 'NOT' LikeRightPart_EDIT -> { types: [ 'BOOLEAN' ] } + | 'CURSOR' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + | 'CURSOR' 'NOT' LikeRightPart + { + parser.valueExpressionSuggest(undefined, $2 + ' ' + $3); + parser.applyTypeToSuggestions([ 'STRING' ]); + $$ = { types: [ 'BOOLEAN' ], typeSet: true }; + } + ; + +// ------------------ CASE, WHEN, THEN ------------------ + +ValueExpression + : 'CASE' CaseRightPart -> $2 + | 'CASE' ValueExpression CaseRightPart -> $3 + ; + +ValueExpression_EDIT + : 'CASE' CaseRightPart_EDIT -> $2 + | 'CASE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression CaseRightPart_EDIT -> $3 + | 'CASE' ValueExpression 'CURSOR' EndOrError + { + parser.suggestValueExpressionKeywords($2, ['WHEN']); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CASE' ValueExpression_EDIT CaseRightPart + { + $$ = $3; + $$.suggestFilters = $2.suggestFilters; + } + | 'CASE' ValueExpression_EDIT EndOrError -> { types: [ 'T' ], suggestFilters: $2.suggestFilters } + | 'CASE' 'CURSOR' CaseRightPart -> { types: [ 'T' ] } + ; + +CaseRightPart + : CaseWhenThenList 'END' -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'END' + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + ; + +CaseRightPart_EDIT + : CaseWhenThenList_EDIT EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'ELSE' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($3, ['END']); + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' ValueExpression EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + } + | CaseWhenThenList_EDIT 'ELSE' EndOrError -> parser.findCaseType($1) + | CaseWhenThenList 'CURSOR' ValueExpression EndOrError + { + if ($4.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'CURSOR' EndOrError + { + if ($3.toLowerCase() !== 'end') { + parser.suggestValueExpressionKeywords($1, [{ value: 'END', weight: 3 }, { value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } else { + parser.suggestValueExpressionKeywords($1, [{ value: 'ELSE', weight: 2 }, { value: 'WHEN', weight: 1 }]); + } + $$ = parser.findCaseType($1); + } + | CaseWhenThenList 'ELSE' ValueExpression_EDIT EndOrError + { + $1.caseTypes.push($3); + $$ = parser.findCaseType($1); + $$.suggestFilters = $3.suggestFilters + } + | CaseWhenThenList 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = parser.findCaseType($1); + } + | 'ELSE' 'CURSOR' EndOrError + { + parser.valueExpressionSuggest(); + $$ = { types: [ 'T' ], typeSet: true }; + } + | 'CURSOR' 'ELSE' ValueExpression EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = $3; + } + | 'CURSOR' 'ELSE' EndOrError + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { types: [ 'T' ] }; + } + ; + +EndOrError + : 'END' + | error + ; + +CaseWhenThenList + : CaseWhenThenListPartTwo -> { caseTypes: [ $1 ], lastType: $1 } + | CaseWhenThenList CaseWhenThenListPartTwo + { + $1.caseTypes.push($2); + $$ = { caseTypes: $1.caseTypes, lastType: $2 }; + } + ; + +CaseWhenThenList_EDIT + : CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT + | CaseWhenThenList CaseWhenThenListPartTwo_EDIT CaseWhenThenList + | CaseWhenThenList 'CURSOR' CaseWhenThenList + { + parser.suggestValueExpressionKeywords($1, ['WHEN']); + } + | CaseWhenThenListPartTwo_EDIT CaseWhenThenList -> $2 + ; + +CaseWhenThenListPartTwo + : 'WHEN' ValueExpression 'THEN' ValueExpression -> $4 + ; + +CaseWhenThenListPartTwo_EDIT + : 'WHEN' ValueExpression_EDIT -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' -> { caseTypes: [{ types: ['T'] }], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression_EDIT 'THEN' ValueExpression -> { caseTypes: [$4], suggestFilters: $2.suggestFilters } + | 'WHEN' ValueExpression 'THEN' ValueExpression_EDIT -> { caseTypes: [$4], suggestFilters: $4.suggestFilters } + | 'WHEN' 'THEN' ValueExpression_EDIT -> { caseTypes: [$3], suggestFilters: $3.suggestFilters } + | 'CURSOR' ValueExpression 'THEN' + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' ValueExpression 'THEN' ValueExpression + { + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [$4] }; + } + | 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['WHEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + parser.suggestKeywords(['THEN']); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }], suggestFilters: true }; + } + | 'WHEN' 'CURSOR' 'THEN' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [$4], suggestFilters: true }; + } + | 'WHEN' ValueExpression 'CURSOR' + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'CURSOR' ValueExpression + { + parser.suggestValueExpressionKeywords($2, ['THEN']); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' ValueExpression 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' ValueExpression + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + | 'WHEN' 'THEN' 'CURSOR' + { + parser.valueExpressionSuggest(); + $$ = { caseTypes: [{ types: ['T'] }] }; + } + ; diff --git a/src/jison/sql/presto/syntax_footer.jison b/src/jison/sql/presto/syntax_footer.jison new file mode 100644 index 0000000..ec25eab --- /dev/null +++ b/src/jison/sql/presto/syntax_footer.jison @@ -0,0 +1,19 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%% + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/sql/presto/syntax_header.jison b/src/jison/sql/presto/syntax_header.jison new file mode 100644 index 0000000..2d13c95 --- /dev/null +++ b/src/jison/sql/presto/syntax_header.jison @@ -0,0 +1,28 @@ +// Licensed to Cloudera, Inc. under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. Cloudera, Inc. licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +%left 'AND' 'OR' +%left 'BETWEEN' +%left 'NOT' '!' '~' +%left '=' '<' '>' 'COMPARISON_OPERATOR' +%left '-' '*' 'ARITHMETIC_OPERATOR' + +%left ';' ',' +%nonassoc 'IN' 'IS' 'LIKE' 'RLIKE' 'REGEXP' 'EXISTS' NEGATION + +%start SqlSyntax + +%% diff --git a/src/jison/sqlParseSupport.js b/src/jison/sqlParseSupport.js deleted file mode 100755 index 42d64da..0000000 --- a/src/jison/sqlParseSupport.js +++ /dev/null @@ -1,2278 +0,0 @@ -// Licensed to Cloudera, Inc. under one -// or more contributor license agreements. See the NOTICE file -// distributed with this work for additional information -// regarding copyright ownership. Cloudera, Inc. licenses this file -// to you under the Apache License, Version 2.0 (the -// "License"); you may not use this file except in compliance -// with the License. You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -var SqlParseSupport = (function () { - - // endsWith polyfill from hue_utils.js, needed as workers live in their own js environment - if (!String.prototype.endsWith) { - String.prototype.endsWith = function (searchString, position) { - var subjectString = this.toString(); - if (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > subjectString.length) { - position = subjectString.length; - } - position -= searchString.length; - var lastIndex = subjectString.lastIndexOf(searchString, position); - return lastIndex !== -1 && lastIndex === position; - }; - } - - /** - * Calculates the Optimal String Alignment distance between two strings. Returns 0 when the strings are equal and the - * distance when not, distances is less than or equal to the length of the longest string. - * - * @param strA - * @param strB - * @param [ignoreCase] - * @returns {number} The similarity - */ - var stringDistance = function (strA, strB, ignoreCase) { - if (ignoreCase) { - strA = strA.toLowerCase(); - strB = strB.toLowerCase(); - } - - // TODO: Consider other algorithms for performance - var strALength = strA.length; - var strBLength = strB.length; - if (strALength === 0) { - return strBLength; - } - if (strBLength === 0) { - return strALength; - } - - var distances = new Array(strALength); - - var cost, deletion, insertion, substitution, transposition; - for (var i = 0; i <= strALength; i++) { - distances[i] = new Array(strBLength); - distances[i][0] = i; - for (var j = 1; j <= strBLength; j++) { - if (!i){ - distances[0][j] = j; - } else { - cost = strA[i-1] === strB[j-1] ? 0 : 1; - deletion = distances[i - 1][j] + 1; - insertion = distances[i][j - 1] + 1; - substitution = distances[i - 1][j - 1] + cost; - if (deletion <= insertion && deletion <= substitution) { - distances[i][j] = deletion; - } else if (insertion <= deletion && insertion <= substitution) { - distances[i][j] = insertion; - } else { - distances[i][j] = substitution; - } - - if (i > 1 && j > 1 && strA[i] === strB[j - 1] && strA[i - 1] === strB[j]) { - transposition = distances[i - 2][j - 2] + cost; - if (transposition < distances[i][j]) { - distances[i][j] = transposition; - } - } - } - } - } - - return distances[strALength][strBLength]; - }; - - var equalIgnoreCase = function (a, b) { - return a && b && a.toLowerCase() === b.toLowerCase(); - }; - - var initSqlParser = function (parser) { - - var SIMPLE_TABLE_REF_SUGGESTIONS = ['suggestJoinConditions', 'suggestAggregateFunctions', 'suggestFilters', 'suggestGroupBys', 'suggestOrderBys']; - - parser.prepareNewStatement = function () { - linkTablePrimaries(); - parser.commitLocations(); - - delete parser.yy.lateralViews; - delete parser.yy.latestCommonTableExpressions; - delete parser.yy.correlatedSubQuery; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - prioritizeSuggestions(); - }; - - parser.yy.parseError = function (message, error) { - parser.yy.errors.push(error); - return message; - }; - - parser.addCommonTableExpressions = function (identifiers) { - parser.yy.result.commonTableExpressions = identifiers; - parser.yy.latestCommonTableExpressions = identifiers; - }; - - parser.isInSubquery = function () { - return !!parser.yy.primariesStack.length - }; - - parser.pushQueryState = function () { - parser.yy.resultStack.push(parser.yy.result); - parser.yy.locationsStack.push(parser.yy.locations); - parser.yy.lateralViewsStack.push(parser.yy.lateralViews); - parser.yy.selectListAliasesStack.push(parser.yy.selectListAliases); - parser.yy.primariesStack.push(parser.yy.latestTablePrimaries); - parser.yy.subQueriesStack.push(parser.yy.subQueries); - - parser.yy.result = {}; - parser.yy.locations = []; - parser.yy.selectListAliases = []; // Not allowed in correlated sub-queries - parser.yy.lateralViews = []; // Not allowed in correlated sub-queries - - if (parser.yy.correlatedSubQuery) { - parser.yy.latestTablePrimaries = parser.yy.latestTablePrimaries.concat(); - parser.yy.subQueries = parser.yy.subQueries.concat(); - } else { - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - } - }; - - parser.popQueryState = function (subQuery) { - linkTablePrimaries(); - parser.commitLocations(); - - if (Object.keys(parser.yy.result).length === 0) { - parser.yy.result = parser.yy.resultStack.pop(); - } else { - parser.yy.resultStack.pop(); - } - var oldSubQueries = parser.yy.subQueries; - parser.yy.subQueries = parser.yy.subQueriesStack.pop(); - if (subQuery) { - if (oldSubQueries.length > 0) { - subQuery.subQueries = oldSubQueries; - } - parser.yy.subQueries.push(subQuery); - } - - parser.yy.lateralViews = parser.yy.lateralViewsStack.pop(); - parser.yy.latestTablePrimaries = parser.yy.primariesStack.pop(); - parser.yy.locations = parser.yy.locationsStack.pop(); - parser.yy.selectListAliases = parser.yy.selectListAliasesStack.pop(); - }; - - parser.suggestSelectListAliases = function () { - if (parser.yy.selectListAliases && parser.yy.selectListAliases.length > 0 && parser.yy.result.suggestColumns - && (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || parser.yy.result.suggestColumns.identifierChain.length === 0)) { - parser.yy.result.suggestColumnAliases = parser.yy.selectListAliases; - } - }; - - parser.isHive = function () { - return parser.yy.activeDialect === 'hive'; - }; - - parser.isImpala = function () { - return parser.yy.activeDialect === 'impala'; - }; - - parser.mergeSuggestKeywords = function () { - var result = []; - Array.prototype.slice.call(arguments).forEach(function (suggestion) { - if (typeof suggestion !== 'undefined' && typeof suggestion.suggestKeywords !== 'undefined') { - result = result.concat(suggestion.suggestKeywords); - } - }); - if (result.length > 0) { - return {suggestKeywords: result}; - } - return {}; - }; - - parser.suggestValueExpressionKeywords = function (valueExpression, extras) { - var expressionKeywords = parser.getValueExpressionKeywords(valueExpression, extras); - parser.suggestKeywords(expressionKeywords.suggestKeywords); - if (expressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(expressionKeywords.suggestColRefKeywords); - } - if (valueExpression.lastType) { - parser.addColRefIfExists(valueExpression.lastType); - } else { - parser.addColRefIfExists(valueExpression); - } - }; - - parser.getSelectListKeywords = function (excludeAsterisk) { - var keywords = [{ value: 'CASE', weight: 450 }, 'FALSE', 'TRUE', 'NULL']; - if (!excludeAsterisk) { - keywords.push({ value: '*', weight: 10000 }); - } - if (parser.isHive()) { - keywords = keywords.concat(['EXISTS', 'NOT']); - } - return keywords; - }; - - parser.getValueExpressionKeywords = function (valueExpression, extras) { - var types = valueExpression.lastType ? valueExpression.lastType.types : valueExpression.types; - // We could have valueExpression.columnReference to suggest based on column type - var keywords = ['<', '<=', '<=>', '<>', '=', '>', '>=', 'BETWEEN', 'IN', 'IS NOT NULL', 'IS NULL', 'IS NOT TRUE', 'IS TRUE', 'IS NOT FALSE', 'IS FALSE', 'NOT BETWEEN', 'NOT IN']; - if (parser.isImpala()) { - keywords = keywords.concat(['IS DISTINCT FROM', 'IS NOT DISTINCT FROM', 'IS NOT UNKNOWN', 'IS UNKNOWN']); - } - if (extras) { - keywords = keywords.concat(extras); - } - if (valueExpression.suggestKeywords) { - keywords = keywords.concat(valueExpression.suggestKeywords); - } - if (types.length === 1 && types[0] === 'COLREF') { - return { - suggestKeywords: keywords, - suggestColRefKeywords: { - BOOLEAN: ['AND', 'OR'], - NUMBER: ['+', '-', '*', '/', '%', 'DIV'], - STRING: parser.isImpala() ? ['ILIKE', 'IREGEXP', 'LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] : ['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] - } - } - } - if (typeof SqlFunctions === 'undefined' || SqlFunctions.matchesType(parser.yy.activeDialect, ['BOOLEAN'], types)) { - keywords = keywords.concat(['AND', 'OR']); - } - if (typeof SqlFunctions === 'undefined' || SqlFunctions.matchesType(parser.yy.activeDialect, ['NUMBER'], types)) { - keywords = keywords.concat(['+', '-', '*', '/', '%', 'DIV']); - } - if (typeof SqlFunctions === 'undefined' || SqlFunctions.matchesType(parser.yy.activeDialect, ['STRING'], types)) { - keywords = keywords.concat(parser.isImpala() ? ['ILIKE', 'IREGEXP', 'LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE'] : ['LIKE', 'NOT LIKE', 'REGEXP', 'RLIKE']); - } - return { suggestKeywords: keywords }; - }; - - parser.getTypeKeywords = function () { - if (parser.isHive()) { - return ['BIGINT', 'BINARY', 'BOOLEAN', 'CHAR', 'DATE', 'DECIMAL', 'DOUBLE', 'DOUBLE PRECISION', 'FLOAT', 'INT', 'SMALLINT', 'TIMESTAMP', 'STRING', 'TINYINT', 'VARCHAR']; - } - if (parser.isImpala()) { - return ['BIGINT', 'BOOLEAN', 'CHAR', 'DECIMAL', 'DOUBLE', 'FLOAT', 'INT', 'REAL', 'SMALLINT', 'TIMESTAMP', 'STRING', 'TINYINT', 'VARCHAR']; - } - return ['BIGINT', 'BOOLEAN', 'CHAR', 'DECIMAL', 'DOUBLE', 'FLOAT', 'INT', 'SMALLINT', 'TIMESTAMP', 'STRING', 'TINYINT', 'VARCHAR']; - }; - - parser.getColumnDataTypeKeywords = function () { - if (parser.isHive()) { - return parser.getTypeKeywords().concat(['ARRAY<>', 'MAP<>', 'STRUCT<>', 'UNIONTYPE<>']); - } - if (parser.isImpala()) { - return parser.getTypeKeywords().concat(['ARRAY<>', 'MAP<>', 'STRUCT<>']); - } - return parser.getTypeKeywords(); - }; - - parser.addColRefIfExists = function (valueExpression) { - if (valueExpression.columnReference) { - parser.yy.result.colRef = {identifierChain: valueExpression.columnReference}; - } - }; - - parser.selectListNoTableSuggest = function (selectListEdit, hasDistinctOrAll) { - if (selectListEdit.cursorAtStart) { - var keywords = parser.getSelectListKeywords(); - if (!hasDistinctOrAll) { - keywords = keywords.concat([{ value: 'ALL', weight: 2 }, { value: 'DISTINCT', weight: 2 }]); - } - if (parser.isImpala()) { - keywords.push('STRAIGHT_JOIN'); - } - parser.suggestKeywords(keywords); - } else { - parser.checkForKeywords(selectListEdit); - } - if (selectListEdit.suggestFunctions) { - parser.suggestFunctions(); - } - if (selectListEdit.suggestColumns) { - parser.suggestColumns(); - } - if (selectListEdit.suggestAggregateFunctions && (!hasDistinctOrAll || hasDistinctOrAll === 'ALL')) { - parser.suggestAggregateFunctions(); - parser.suggestAnalyticFunctions(); - } - }; - - parser.suggestJoinConditions = function (details) { - parser.yy.result.suggestJoinConditions = details || {}; - if (parser.yy.latestTablePrimaries && !parser.yy.result.suggestJoinConditions.tablePrimaries) { - parser.yy.result.suggestJoinConditions.tablePrimaries = parser.yy.latestTablePrimaries.concat(); - } - }; - - parser.suggestJoins = function (details) { - parser.yy.result.suggestJoins = details || {}; - }; - - parser.valueExpressionSuggest = function (oppositeValueExpression, operator) { - if (oppositeValueExpression && oppositeValueExpression.columnReference) { - parser.suggestValues(); - parser.yy.result.colRef = {identifierChain: oppositeValueExpression.columnReference}; - } - parser.suggestColumns(); - parser.suggestFunctions(); - var keywords = [{ value: 'CASE', weight: 450 }, { value: 'FALSE', weight: 450 }, { value: 'NULL', weight: 450 }, { value: 'TRUE', weight: 450 }]; - if (parser.isHive() || typeof oppositeValueExpression === 'undefined' || typeof operator === 'undefined') { - keywords = keywords.concat(['EXISTS', 'NOT']); - } - if (oppositeValueExpression && oppositeValueExpression.types[0] === 'NUMBER') { - parser.applyTypeToSuggestions(['NUMBER']); - } else if (parser.isImpala() && (typeof operator === 'undefined' || operator === '-' || operator === '+')) { - keywords.push('INTERVAL'); - } - parser.suggestKeywords(keywords); - }; - - parser.applyTypeToSuggestions = function (types) { - if (types[0] === 'BOOLEAN') { - return; - } - if (parser.yy.result.suggestFunctions && !parser.yy.result.suggestFunctions.types) { - parser.yy.result.suggestFunctions.types = types; - } - if (parser.yy.result.suggestColumns && !parser.yy.result.suggestColumns.types) { - parser.yy.result.suggestColumns.types = types; - } - }; - - parser.findCaseType = function (whenThenList) { - var types = {}; - whenThenList.caseTypes.forEach(function (valueExpression) { - valueExpression.types.forEach(function (type) { - types[type] = true; - }); - }); - if (Object.keys(types).length === 1) { - return {types: [Object.keys(types)[0]]}; - } - return {types: ['T']}; - }; - - parser.findReturnTypes = function (functionName) { - return typeof SqlFunctions === 'undefined' ? ['T'] : SqlFunctions.getReturnTypes(parser.yy.activeDialect, functionName.toLowerCase()); - }; - - parser.applyArgumentTypesToSuggestions = function (functionName, position) { - var foundArguments = typeof SqlFunctions === 'undefined' ? ['T'] : SqlFunctions.getArgumentTypes(parser.yy.activeDialect, functionName.toLowerCase(), position); - if (foundArguments.length == 0 && parser.yy.result.suggestColumns) { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.suggestKeyValues; - delete parser.yy.result.suggestValues; - delete parser.yy.result.suggestFunctions; - delete parser.yy.result.suggestIdentifiers; - delete parser.yy.result.suggestKeywords; - } else { - parser.applyTypeToSuggestions(foundArguments); - } - }; - - var getCleanImpalaPrimaries = function (primaries) { - var cleanPrimaries = []; - for (var i = primaries.length - 1; i >= 0; i--) { - var cleanPrimary = primaries[i]; - if (cleanPrimary.identifierChain && cleanPrimary.identifierChain.length > 0) { - for (var j = i - 1; j >=0; j--) { - var parentPrimary = primaries[j]; - if (parentPrimary.alias && cleanPrimary.identifierChain[0].name === parentPrimary.alias) { - var restOfChain = cleanPrimary.identifierChain.concat(); - restOfChain.shift(); - if (cleanPrimary.alias) { - cleanPrimary = { identifierChain: parentPrimary.identifierChain.concat(restOfChain), alias: cleanPrimary.alias, impalaComplex: true }; - } else { - cleanPrimary = { identifierChain: parentPrimary.identifierChain.concat(restOfChain), impalaComplex: true }; - } - } - } - } - cleanPrimaries.push(cleanPrimary); - } - return cleanPrimaries; - }; - - parser.commitLocations = function () { - if (parser.yy.locations.length === 0) { - return; - } - - var tablePrimaries = parser.yy.latestTablePrimaries; - - if (parser.isImpala()) { - tablePrimaries = []; - getCleanImpalaPrimaries(parser.yy.latestTablePrimaries).forEach(function (primary) { - var cleanPrimary = primary; - if (primary.identifierChain && primary.identifierChain.length > 0) { - for (var j = parser.yy.primariesStack.length - 1; j >= 0; j--) { - getCleanImpalaPrimaries(parser.yy.primariesStack[j]).every(function (parentPrimary) { - if (parentPrimary.alias && parentPrimary.alias === primary.identifierChain[0].name) { - var identifierChain = primary.identifierChain.concat(); - identifierChain.shift(); - cleanPrimary = { identifierChain: parentPrimary.identifierChain.concat(identifierChain) }; - if (primary.alias) { - cleanPrimary.alias = primary.alias; - } - return false; - } - return true; - }); - } - } - tablePrimaries.unshift(cleanPrimary); - }); - } - var i = parser.yy.locations.length; - - while (i--) { - var location = parser.yy.locations[i]; - if (location.type === 'variable' && location.colRef) { - parser.expandIdentifierChain({ wrapper: location.colRef, tablePrimaries: tablePrimaries, isColumnWrapper: true }); - delete location.colRef.linked; - } - - // Impala can have references to previous tables after FROM, i.e. FROM testTable t, t.testArray - // In this testArray would be marked a type table so we need to switch it to column. - if (location.type === 'table' && typeof location.identifierChain !== 'undefined' && location.identifierChain.length > 1 && tablePrimaries) { - var allPrimaries = tablePrimaries; - parser.yy.primariesStack.forEach(function (parentPrimaries) { - allPrimaries = getCleanImpalaPrimaries(parentPrimaries).concat(allPrimaries); - }); - var found = allPrimaries.filter(function (primary) { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name); - }); - if (found.length > 0) { - location.type = 'column'; - } - } - - if (location.type === 'database' && typeof location.identifierChain !== 'undefined' && location.identifierChain.length > 0 && tablePrimaries) { - var allPrimaries = tablePrimaries; - parser.yy.primariesStack.forEach(function (parentPrimaries) { - allPrimaries = getCleanImpalaPrimaries(parentPrimaries).concat(allPrimaries); - }); - var foundAlias = allPrimaries.filter(function (primary) { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name); - }); - if (foundAlias.length > 0 && parser.isImpala()) { - // Impala complex reference in FROM clause, i.e. FROM testTable t, t.testMap tm - location.type = 'table'; - parser.expandIdentifierChain({ tablePrimaries: allPrimaries, wrapper: location, anyOwner: true }); - location.type = location.identifierChain.length === 1 ? 'table' : 'complex'; - continue; - } - } - - if (location.type === 'unknown') { - if (typeof location.identifierChain !== 'undefined' && location.identifierChain.length > 0 && location.identifierChain.length <= 2 && tablePrimaries) { - var found = tablePrimaries.filter(function (primary) { - return equalIgnoreCase(primary.alias, location.identifierChain[0].name) || (primary.identifierChain && equalIgnoreCase(primary.identifierChain[0].name, location.identifierChain[0].name)); - }); - if (!found.length && location.firstInChain) { - found = tablePrimaries.filter(function (primary) { - return !primary.alias && primary.identifierChain && equalIgnoreCase(primary.identifierChain[primary.identifierChain.length - 1].name, location.identifierChain[0].name); - }); - } - - if (found.length) { - if (found[0].identifierChain.length > 1 && location.identifierChain.length === 1 && equalIgnoreCase(found[0].identifierChain[0].name, location.identifierChain[0].name)) { - location.type = 'database'; - } else if (found[0].alias && equalIgnoreCase(location.identifierChain[0].name, found[0].alias) && location.identifierChain.length > 1) { - location.type = 'column'; - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true }); - } else if (!found[0].alias && found[0].identifierChain && equalIgnoreCase(location.identifierChain[0].name, found[0].identifierChain[found[0].identifierChain.length - 1].name) && location.identifierChain.length > 1) { - location.type = 'column'; - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true }); - } else { - location.type = found[0].impalaComplex ? 'column' : 'table'; - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true }); - } - } else { - if (parser.yy.subQueries) { - found = parser.yy.subQueries.filter(function (subQuery) { - return equalIgnoreCase(subQuery.alias, location.identifierChain[0].name); - }); - if (found.length > 0) { - location.type = 'subQuery'; - location.identifierChain = [{subQuery: found[0].alias}]; - } - } - } - } - } - - if (location.type === 'asterisk' && !location.linked) { - - if (tablePrimaries && tablePrimaries.length > 0) { - location.tables = []; - location.linked = false; - if (!location.identifierChain) { - location.identifierChain = [{ asterisk: true }]; - } - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: false }); - if (location.tables.length === 0) { - parser.yy.locations.splice(i, 1); - } - } else { - parser.yy.locations.splice(i, 1); - } - } - - if (location.type === 'table' && typeof location.identifierChain !== 'undefined' && location.identifierChain.length === 1 && location.identifierChain[0].name) { - // Could be a cte reference - parser.yy.locations.some(function (otherLocation) { - if (otherLocation.type === 'alias' && otherLocation.source === 'cte' && SqlUtils.identifierEquals(otherLocation.alias, location.identifierChain[0].name)) { - // TODO: Possibly add the other location if we want to show the link in the future. - // i.e. highlight select definition on hover over alias, also for subquery references. - location.type = 'alias'; - location.target = 'cte'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - return true; - } - }); - } - - if (location.type === 'table' && (typeof location.identifierChain === 'undefined' || location.identifierChain.length === 0)) { - parser.yy.locations.splice(i, 1); - } - - if (location.type === 'unknown') { - location.type = 'column'; - } - - // A column location might refer to a previously defined alias, i.e. last 'foo' in "SELECT cast(id AS int) foo FROM tbl ORDER BY foo;" - if (location.type === 'column') { - for (var j = i - 1; j >= 0; j--) { - var otherLocation = parser.yy.locations[j]; - if (otherLocation.type === 'alias' && otherLocation.source === 'column' && location.identifierChain && location.identifierChain.length === 1 && location.identifierChain[0].name && otherLocation.alias && location.identifierChain[0].name.toLowerCase() === otherLocation.alias.toLowerCase()) { - location.type = 'alias'; - location.source = 'column'; - location.alias = location.identifierChain[0].name; - delete location.identifierChain; - location.parentLocation = otherLocation.parentLocation; - break; - } - } - } - - if (location.type === 'column') { - if (parser.isHive() && !location.linked) { - location.identifierChain = parser.expandLateralViews(parser.yy.lateralViews, location.identifierChain); - } - - var initialIdentifierChain = location.identifierChain ? location.identifierChain.concat() : undefined; - - parser.expandIdentifierChain({ tablePrimaries: tablePrimaries, wrapper: location, anyOwner: true, isColumnWrapper: true, isColumnLocation: true }); - - if (typeof location.identifierChain === 'undefined') { - parser.yy.locations.splice(i, 1); - } else if (location.identifierChain.length === 0 && initialIdentifierChain && initialIdentifierChain.length === 1) { - // This is for the case "SELECT tblOrColName FROM db.tblOrColName"; - location.identifierChain = initialIdentifierChain; - } - } - if (location.type === 'column' && location.identifierChain) { - if (location.identifierChain.length > 1 && location.tables && location.tables.length > 0) { - location.type = 'complex'; - } - } - delete location.firstInChain; - if (location.type !== 'column' && location.type !== 'complex') { - delete location.qualified; - } else if (typeof location.qualified === 'undefined') { - location.qualified = false; - } - } - - if (parser.yy.locations.length > 0) { - parser.yy.allLocations = parser.yy.allLocations.concat(parser.yy.locations); - parser.yy.locations = []; - } - }; - - var prioritizeSuggestions = function () { - parser.yy.result.lowerCase = parser.yy.lowerCase || false; - - var cteIndex = {}; - - if (typeof parser.yy.latestCommonTableExpressions !== 'undefined') { - parser.yy.latestCommonTableExpressions.forEach(function (cte) { - cteIndex[cte.alias.toLowerCase()] = cte; - }) - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) { - if (suggestionType !== 'suggestAggregateFunctions' && typeof parser.yy.result[suggestionType] !== 'undefined' && parser.yy.result[suggestionType].tables.length === 0) { - delete parser.yy.result[suggestionType]; - } else if (typeof parser.yy.result[suggestionType] !== 'undefined' && typeof parser.yy.result[suggestionType].tables !== 'undefined') { - for (var i = parser.yy.result[suggestionType].tables.length - 1; i >= 0; i--) { - var table = parser.yy.result[suggestionType].tables[i]; - if (table.identifierChain.length === 1 && typeof table.identifierChain[0].name !== 'undefined' && typeof cteIndex[table.identifierChain[0].name.toLowerCase()] !== 'undefined') { - parser.yy.result[suggestionType].tables.splice(i, 1); - } - } - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - if (!parser.yy.result.colRef.linked || typeof parser.yy.result.colRef.identifierChain === 'undefined' || parser.yy.result.colRef.identifierChain.length === 0) { - delete parser.yy.result.colRef; - if (typeof parser.yy.result.suggestColRefKeywords !== 'undefined') { - Object.keys(parser.yy.result.suggestColRefKeywords).forEach(function (type) { - parser.yy.result.suggestKeywords = parser.yy.result.suggestKeywords.concat(parser.createWeightedKeywords(parser.yy.result.suggestColRefKeywords[type], -1)); - }); - delete parser.yy.result.suggestColRefKeywords; - } - if (parser.yy.result.suggestColumns && parser.yy.result.suggestColumns.types.length === 1 && parser.yy.result.suggestColumns.types[0] === 'COLREF') { - parser.yy.result.suggestColumns.types = ['T']; - } - delete parser.yy.result.suggestValues; - } - } - - if (typeof parser.yy.result.colRef !== 'undefined') { - if (!parser.yy.result.suggestValues && !parser.yy.result.suggestColRefKeywords && - (!parser.yy.result.suggestColumns || - parser.yy.result.suggestColumns.types[0] !== 'COLREF')) { - delete parser.yy.result.colRef; - } - } - if (typeof parser.yy.result.suggestIdentifiers !== 'undefined' && parser.yy.result.suggestIdentifiers.length > 0) { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - } - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - var suggestColumns = parser.yy.result.suggestColumns; - if (typeof suggestColumns.tables === 'undefined' || suggestColumns.tables.length === 0) { - // Impala supports statements like SELECT * FROM tbl1, tbl2 WHERE db.tbl1.col = tbl2.bla - if (parser.yy.result.suggestColumns.linked && parser.isImpala() && typeof suggestColumns.identifierChain !== 'undefined' && suggestColumns.identifierChain.length > 0) { - if (suggestColumns.identifierChain.length === 1) { - parser.yy.result.suggestTables = suggestColumns; - delete parser.yy.result.suggestColumns - } else { - suggestColumns.tables = [{identifierChain: suggestColumns.identifierChain}]; - delete suggestColumns.identifierChain; - } - } else { - delete parser.yy.result.suggestColumns; - delete parser.yy.result.subQueries; - } - } else { - delete parser.yy.result.suggestTables; - delete parser.yy.result.suggestDatabases; - - suggestColumns.tables.forEach(function (table) { - if (typeof table.identifierChain !== 'undefined' && table.identifierChain.length === 1 && typeof table.identifierChain[0].name !== 'undefined') { - var cte = cteIndex[table.identifierChain[0].name.toLowerCase()]; - if (typeof cte !== 'undefined') { - delete table.identifierChain[0].name; - table.identifierChain[0].cte = cte.alias; - } - } else if (typeof table.identifierChain === 'undefined' && table.subQuery) { - table.identifierChain = [{ subQuery: table.subQuery }]; - delete table.subQuery; - } - }); - - if (typeof suggestColumns.identifierChain !== 'undefined' && suggestColumns.identifierChain.length === 0) { - delete suggestColumns.identifierChain; - } - } - } else { - delete parser.yy.result.subQueries; - } - - if (typeof parser.yy.result.suggestJoinConditions !== 'undefined') { - if (typeof parser.yy.result.suggestJoinConditions.tables === 'undefined' || parser.yy.result.suggestJoinConditions.tables.length === 0) { - delete parser.yy.result.suggestJoinConditions; - } - } - - if (typeof parser.yy.result.suggestTables !== 'undefined' && typeof parser.yy.latestCommonTableExpressions !== 'undefined') { - var ctes = []; - parser.yy.latestCommonTableExpressions.forEach(function (cte) { - var suggestion = {name: cte.alias}; - if (parser.yy.result.suggestTables.prependFrom) { - suggestion.prependFrom = true - } - if (parser.yy.result.suggestTables.prependQuestionMark) { - suggestion.prependQuestionMark = true; - } - ctes.push(suggestion); - }); - if (ctes.length > 0) { - parser.yy.result.suggestCommonTableExpressions = ctes; - } - } - }; - - /** - * Impala supports referencing maps and arrays in the the table reference list i.e. - * - * SELECT m['foo'].bar.| FROM someDb.someTable t, t.someMap m; - * - * From this the tablePrimaries would look like: - * - * [ { alias: 't', identifierChain: [ { name: 'someDb' }, { name: 'someTable' } ] }, - * { alias: 'm', identifierChain: [ { name: 't' }, { name: 'someMap' } ] } ] - * - * with an identifierChain from the select list: - * - * [ { name: 'm', keySet: true }, { name: 'bar' } ] - * - * Calling this would return an expanded identifierChain, given the above it would be: - * - * [ { name: 't' }, { name: 'someMap', keySet: true }, { name: 'bar' } ] - */ - parser.expandImpalaIdentifierChain = function (tablePrimaries, identifierChain) { - var expandedChain = identifierChain.concat(); // Clone in case it's called multiple times. - if (typeof expandedChain === 'undefined' || expandedChain.length === 0) { - return identifierChain; - } - var expand = function (identifier, expandedChain) { - var foundPrimary = tablePrimaries.filter(function (tablePrimary) { - var primaryIdentifier = tablePrimary.alias; - if (!primaryIdentifier && tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { - primaryIdentifier = tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1].name; - } - return equalIgnoreCase(primaryIdentifier, identifier); - }); - - if (foundPrimary.length === 1 && foundPrimary[0].identifierChain) { - var parentPrimary = tablePrimaries.filter(function (tablePrimary) { - return equalIgnoreCase(tablePrimary.alias, foundPrimary[0].identifierChain[0].name); - }); - if (parentPrimary.length === 1) { - var keySet = expandedChain[0].keySet; - var secondPart = expandedChain.slice(1); - var firstPart = []; - // Clone to make sure we don't add keySet to the primaries - foundPrimary[0].identifierChain.forEach(function (identifier) { - firstPart.push({name: identifier.name}); - }); - if (keySet && firstPart.length > 0) { - firstPart[firstPart.length - 1].keySet = true; - } - - if (firstPart.length === 0 || typeof secondPart === 'undefined' || secondPart.length === 0) { - return firstPart; - } - var result = firstPart.concat(secondPart); - if (result.length > 0) { - return expand(firstPart[0].name, result); - } else { - return result; - } - } - } - return expandedChain; - }; - return expand(expandedChain[0].name, expandedChain); - }; - - parser.identifyPartials = function (beforeCursor, afterCursor) { - var beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - var afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return {left: beforeMatch ? beforeMatch[0].length : 0, right: afterMatch ? afterMatch[0].length : 0}; - }; - - parser.expandLateralViews = function (lateralViews, originalIdentifierChain, columnSuggestion) { - var identifierChain = originalIdentifierChain.concat(); // Clone in case it's re-used - var firstIdentifier = identifierChain[0]; - if (typeof lateralViews !== 'undefined') { - lateralViews.concat().reverse().forEach(function (lateralView) { - if (!lateralView.udtf.expression.columnReference) { - return; - } - if (equalIgnoreCase(firstIdentifier.name, lateralView.tableAlias) && identifierChain.length > 1) { - identifierChain.shift(); - firstIdentifier = identifierChain[0]; - if (columnSuggestion) { - delete parser.yy.result.suggestKeywords; - } - } else if (equalIgnoreCase(firstIdentifier.name, lateralView.tableAlias) && identifierChain.length === 1 && typeof parser.yy.result.suggestColumns !== 'undefined') { - if (columnSuggestion) { - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = []; - } - lateralView.columnAliases.forEach(function (columnAlias) { - parser.yy.result.suggestIdentifiers.push({name: columnAlias, type: 'alias'}); - }); - delete parser.yy.result.suggestColumns; - delete parser.yy.result.suggestKeywords; - } - return identifierChain; - } - if (lateralView.columnAliases.indexOf(firstIdentifier.name) !== -1) { - if (lateralView.columnAliases.length === 2 && lateralView.udtf.function.toLowerCase() === 'explode' && equalIgnoreCase(firstIdentifier.name, lateralView.columnAliases[0])) { - identifierChain[0] = {name: 'key'}; - } else if (lateralView.columnAliases.length === 2 && lateralView.udtf.function.toLowerCase() === 'explode' && equalIgnoreCase(firstIdentifier.name, lateralView.columnAliases[1])) { - identifierChain[0] = {name: 'value'}; - } else { - identifierChain[0] = {name: 'item'}; - } - identifierChain = lateralView.udtf.expression.columnReference.concat(identifierChain); - firstIdentifier = identifierChain[0]; - } - }); - } - return identifierChain; - }; - - var addCleanTablePrimary = function (tables, tablePrimary) { - if (tablePrimary.alias) { - tables.push({alias: tablePrimary.alias, identifierChain: tablePrimary.identifierChain}); - } else { - tables.push({identifierChain: tablePrimary.identifierChain}); - } - }; - - parser.expandIdentifierChain = function (options) { - var wrapper = options.wrapper; - var anyOwner = options.anyOwner; - var isColumnWrapper = options.isColumnWrapper; - var isColumnLocation = options.isColumnLocation; - var tablePrimaries = options.tablePrimaries || parser.yy.latestTablePrimaries; - - if (typeof wrapper.identifierChain === 'undefined' || typeof tablePrimaries === 'undefined') { - return; - } - var identifierChain = wrapper.identifierChain.concat(); - - if (tablePrimaries.length === 0) { - delete wrapper.identifierChain; - return; - } - - if (!anyOwner) { - tablePrimaries = filterTablePrimariesForOwner(tablePrimaries, wrapper.owner); - } - - if (identifierChain.length > 0 && identifierChain[identifierChain.length - 1].asterisk) { - var tables = []; - tablePrimaries.forEach(function (tablePrimary) { - if (identifierChain.length > 1 && !tablePrimary.subQueryAlias) { - if (identifierChain.length === 2 && equalIgnoreCase(tablePrimary.alias, identifierChain[0].name)) { - addCleanTablePrimary(tables, tablePrimary); - } else if (identifierChain.length === 2 && equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name)) { - addCleanTablePrimary(tables, tablePrimary); - } else if (identifierChain.length === 3 && tablePrimary.identifierChain.length > 1 && - equalIgnoreCase(tablePrimary.identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimary.identifierChain[1].name, identifierChain[1].name)) { - addCleanTablePrimary(tables, tablePrimary); - } - } else { - if (tablePrimary.subQueryAlias) { - tables.push({identifierChain: [{subQuery: tablePrimary.subQueryAlias}]}); - } else { - addCleanTablePrimary(tables, tablePrimary); - } - } - }); - // Possible Joins - if (tables.length > 0) { - wrapper.tables = tables; - delete wrapper.identifierChain; - return; - } - } - - // Impala can have references to maps or array, i.e. FROM table t, t.map m - // We need to replace those in the identifierChain - if (parser.isImpala()) { - var lengthBefore = identifierChain.length; - identifierChain = parser.expandImpalaIdentifierChain(tablePrimaries, identifierChain); - // Change type of any locations marked as table - if (wrapper.type === 'table' && identifierChain.length > lengthBefore) { - wrapper.type = 'column'; - } - wrapper.identifierChain = identifierChain; - } - // Expand exploded views in the identifier chain - if (parser.isHive() && identifierChain.length > 0) { - identifierChain = parser.expandLateralViews(parser.yy.lateralViews, identifierChain); - wrapper.identifierChain = identifierChain; - } - - // IdentifierChain contains a possibly started identifier or empty, example: a.b.c = ['a', 'b', 'c'] - // Reduce the tablePrimaries to the one that matches the first identifier if found - var foundPrimary; - var doubleMatch = false; - var aliasMatch = false; - if (identifierChain.length > 0) { - for (var i = 0; i < tablePrimaries.length; i++) { - if (tablePrimaries[i].subQueryAlias) { - if (equalIgnoreCase(tablePrimaries[i].subQueryAlias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - } - } else if (equalIgnoreCase(tablePrimaries[i].alias, identifierChain[0].name)) { - foundPrimary = tablePrimaries[i]; - aliasMatch = true; - break; - } else if (tablePrimaries[i].identifierChain.length > 1 && identifierChain.length > 1 && - equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && - equalIgnoreCase(tablePrimaries[i].identifierChain[1].name, identifierChain[1].name)) { - foundPrimary = tablePrimaries[i]; - doubleMatch = true; - break; - } else if (!foundPrimary && equalIgnoreCase(tablePrimaries[i].identifierChain[0].name, identifierChain[0].name) && identifierChain.length > (isColumnLocation ? 1 : 0)) { - foundPrimary = tablePrimaries[i]; - // No break as first two can still match. - } else if (!foundPrimary && tablePrimaries[i].identifierChain.length > 1 && !tablePrimaries[i].alias - && equalIgnoreCase(tablePrimaries[i].identifierChain[tablePrimaries[i].identifierChain.length - 1].name, identifierChain[0].name)) { - // This is for the case SELECT baa. FROM bla.baa, blo.boo; - foundPrimary = tablePrimaries[i]; - break; - } - } - } - - if (foundPrimary) { - if (foundPrimary.impalaComplex && wrapper.type === 'column') { - wrapper.type = 'complex'; - } - identifierChain.shift(); - if (doubleMatch) { - identifierChain.shift(); - } - } else if (tablePrimaries.length === 1 && !isColumnWrapper) { - foundPrimary = tablePrimaries[0]; - } - - if (foundPrimary) { - if (isColumnWrapper) { - wrapper.identifierChain = identifierChain; - if (foundPrimary.subQueryAlias) { - wrapper.tables = [{ subQuery: foundPrimary.subQueryAlias }]; - } else if (foundPrimary.alias) { - if (!isColumnLocation && isColumnWrapper && aliasMatch) { - // TODO: add alias on table in suggestColumns (needs support in sqlAutocomplete3.js) - // the case is: SELECT cu.| FROM customers cu; - // This prevents alias from being added automatically in sqlAutocompleter3.js - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } else { - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain, alias: foundPrimary.alias }]; - } - } else { - wrapper.tables = [{ identifierChain: foundPrimary.identifierChain }]; - } - } else { - if (foundPrimary.subQueryAlias) { - identifierChain.unshift({ subQuery: foundPrimary.subQueryAlias }); - } else { - identifierChain = foundPrimary.identifierChain.concat(identifierChain); - } - if (wrapper.tables) { - wrapper.tables.push({identifierChain: identifierChain}); - delete wrapper.identifierChain; - } else { - wrapper.identifierChain = identifierChain; - } - } - } else { - if (isColumnWrapper) { - wrapper.tables = []; - } - tablePrimaries.forEach(function (tablePrimary) { - var targetTable = tablePrimary.subQueryAlias ? { subQuery: tablePrimary.subQueryAlias } : { identifierChain: tablePrimary.identifierChain } ; - if (tablePrimary.alias) { - targetTable.alias = tablePrimary.alias; - } - if (wrapper.tables) { - wrapper.tables.push(targetTable) - } - }); - } - delete wrapper.owner; - wrapper.linked = true; - }; - - var suggestLateralViewAliasesAsIdentifiers = function () { - if (typeof parser.yy.lateralViews === 'undefined' || parser.yy.lateralViews.length === 0) { - return; - } - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = []; - } - parser.yy.lateralViews.forEach(function (lateralView) { - if (typeof lateralView.tableAlias !== 'undefined') { - parser.yy.result.suggestIdentifiers.push({name: lateralView.tableAlias + '.', type: 'alias'}); - } - lateralView.columnAliases.forEach(function (columnAlias) { - parser.yy.result.suggestIdentifiers.push({name: columnAlias, type: 'alias'}); - }); - }); - if (parser.yy.result.suggestIdentifiers.length === 0) { - delete parser.yy.result.suggestIdentifiers; - } - }; - - var filterTablePrimariesForOwner = function (tablePrimaries, owner) { - var result = []; - tablePrimaries.forEach(function (primary) { - if (typeof owner === 'undefined' && typeof primary.owner === 'undefined') { - result.push(primary); - } else if (owner === primary.owner) { - result.push(primary); - } - }); - return result; - }; - - var convertTablePrimariesToSuggestions = function (tablePrimaries) { - var tables = []; - var identifiers = []; - tablePrimaries.forEach(function (tablePrimary) { - if (tablePrimary.identifierChain && tablePrimary.identifierChain.length > 0) { - var table = {identifierChain: tablePrimary.identifierChain}; - if (tablePrimary.alias) { - table.alias = tablePrimary.alias; - identifiers.push({name: table.alias + '.', type: 'alias'}); - if (parser.isImpala()) { - var testForImpalaAlias = [{name: table.alias}]; - var result = parser.expandImpalaIdentifierChain(tablePrimaries, testForImpalaAlias); - if (result.length > 1) { - // Continue if it's a reference to a complex type - return; - } - } - } else { - var lastIdentifier = tablePrimary.identifierChain[tablePrimary.identifierChain.length - 1]; - if (typeof lastIdentifier.name !== 'undefined') { - identifiers.push({name: lastIdentifier.name + '.', type: 'table'}); - } else if (typeof lastIdentifier.subQuery !== 'undefined') { - identifiers.push({name: lastIdentifier.subQuery + '.', type: 'sub-query'}); - } - } - tables.push(table); - } else if (tablePrimary.subQueryAlias) { - identifiers.push({name: tablePrimary.subQueryAlias + '.', type: 'sub-query'}); - tables.push({identifierChain: [{subQuery: tablePrimary.subQueryAlias}]}); - } - }); - if (identifiers.length > 0) { - if (typeof parser.yy.result.suggestIdentifiers === 'undefined') { - parser.yy.result.suggestIdentifiers = identifiers; - } else { - parser.yy.result.suggestIdentifiers = identifiers.concat(parser.yy.result.suggestIdentifiers); - } - } - parser.yy.result.suggestColumns.tables = tables; - if (parser.yy.result.suggestColumns.identifierChain && parser.yy.result.suggestColumns.identifierChain.length === 0) { - delete parser.yy.result.suggestColumns.identifierChain; - } - parser.yy.result.suggestColumns.linked = true; - }; - - var linkTablePrimaries = function () { - if (!parser.yy.cursorFound || typeof parser.yy.latestTablePrimaries === 'undefined') { - return; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) { - if (typeof parser.yy.result[suggestionType] !== 'undefined' && parser.yy.result[suggestionType].tablePrimaries && !parser.yy.result[suggestionType].linked) { - parser.yy.result[suggestionType].tables = []; - parser.yy.result[suggestionType].tablePrimaries.forEach(function (tablePrimary) { - if (!tablePrimary.subQueryAlias) { - parser.yy.result[suggestionType].tables.push(tablePrimary.alias ? { - identifierChain: tablePrimary.identifierChain.concat(), - alias: tablePrimary.alias - } : {identifierChain: tablePrimary.identifierChain.concat()}); - } - }); - delete parser.yy.result[suggestionType].tablePrimaries; - parser.yy.result[suggestionType].linked = true; - } - }); - - if (typeof parser.yy.result.suggestColumns !== 'undefined' && !parser.yy.result.suggestColumns.linked) { - var tablePrimaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries, parser.yy.result.suggestColumns.owner); - if (!parser.yy.result.suggestColumns.tables) { - parser.yy.result.suggestColumns.tables = []; - } - if (parser.yy.subQueries.length > 0) { - parser.yy.result.subQueries = parser.yy.subQueries; - } - if (typeof parser.yy.result.suggestColumns.identifierChain === 'undefined' || parser.yy.result.suggestColumns.identifierChain.length === 0) { - if (tablePrimaries.length > 1) { - convertTablePrimariesToSuggestions(tablePrimaries); - } else { - suggestLateralViewAliasesAsIdentifiers(); - if (tablePrimaries.length === 1 && (tablePrimaries[0].alias || tablePrimaries[0].subQueryAlias)) { - convertTablePrimariesToSuggestions(tablePrimaries); - } - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestColumns, anyOwner: false, isColumnWrapper: true }); - } - } else { - // Expand exploded views in the identifier chain - if (parser.isHive() && !parser.yy.result.suggestColumns.linked) { - var originalLength = parser.yy.result.suggestColumns.identifierChain.length; - parser.yy.result.suggestColumns.identifierChain = parser.expandLateralViews(parser.yy.lateralViews, parser.yy.result.suggestColumns.identifierChain, true); - // Drop '*' keyword for lateral views - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - if (parser.yy.result.suggestColumns.identifierChain.length > originalLength && - typeof parser.yy.result.suggestKeywords !== 'undefined' && - parser.yy.result.suggestKeywords.length === 1 && - parser.yy.result.suggestKeywords[0].value === '*') { - delete parser.yy.result.suggestKeywords; - } - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestColumns, anyOwner: false, isColumnWrapper: true }); - } - } else { - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestColumns, anyOwner: false, isColumnWrapper: true }); - } - } - } - - if (typeof parser.yy.result.colRef !== 'undefined' && !parser.yy.result.colRef.linked) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.colRef }); - - var primaries = filterTablePrimariesForOwner(parser.yy.latestTablePrimaries); - if (primaries.length === 0 || (primaries.length > 1 && parser.yy.result.colRef.identifierChain.length === 1)) { - parser.yy.result.colRef.identifierChain = []; - } - } - if (typeof parser.yy.result.suggestKeyValues !== 'undefined' && !parser.yy.result.suggestKeyValues.linked) { - parser.expandIdentifierChain({ wrapper: parser.yy.result.suggestKeyValues }); - } - }; - - parser.getSubQuery = function (cols) { - var columns = []; - cols.selectList.forEach(function (col) { - var result = {}; - if (col.alias) { - result.alias = col.alias; - } - if (col.valueExpression && col.valueExpression.columnReference) { - result.identifierChain = col.valueExpression.columnReference - } else if (col.asterisk) { - result.identifierChain = [{asterisk: true}]; - } - if (col.valueExpression && col.valueExpression.types && col.valueExpression.types.length === 1) { - result.type = col.valueExpression.types[0]; - } - - columns.push(result); - }); - - return { - columns: columns - }; - }; - - parser.addTablePrimary = function (ref) { - if (typeof parser.yy.latestTablePrimaries === 'undefined') { - parser.yy.latestTablePrimaries = []; - } - parser.yy.latestTablePrimaries.push(ref); - }; - - parser.suggestFileFormats = function () { - if (parser.isHive()) { - parser.suggestKeywords(['AVRO', 'INPUTFORMAT', 'ORC', 'PARQUET', 'RCFILE', 'SEQUENCEFILE', 'TEXTFILE']); - } else { - parser.suggestKeywords(['AVRO', 'KUDU', 'ORC', 'PARQUET', 'RCFILE', 'SEQUENCEFILE', 'TEXTFILE']); - } - }; - - parser.getKeywordsForOptionalsLR = function (optionals, keywords, override) { - var result = []; - - for (var i = 0; i < optionals.length; i++) { - if (!optionals[i] && (typeof override === 'undefined' || override[i])) { - if (keywords[i] instanceof Array) { - result = result.concat(keywords[i]); - } else { - result.push(keywords[i]); - } - } else if (optionals[i]) { - break; - } - } - return result; - }; - - parser.suggestDdlAndDmlKeywords = function (extraKeywords) { - var keywords = ['ALTER', 'CREATE', 'DESCRIBE', 'DROP', 'GRANT', 'INSERT', 'REVOKE', 'SELECT', 'SET', 'SHOW', 'TRUNCATE', 'UPDATE', 'USE', 'WITH']; - - if (extraKeywords) { - keywords = keywords.concat(extraKeywords); - } - - if (parser.isHive()) { - keywords = keywords.concat(['ABORT', 'ANALYZE TABLE', 'DELETE', 'EXPORT', 'IMPORT', 'LOAD', 'MERGE', 'MSCK', 'RELOAD FUNCTION', 'RESET']); - } - - if (parser.isImpala()) { - keywords = keywords.concat(['COMMENT ON', 'COMPUTE', 'DELETE', 'INVALIDATE METADATA', 'LOAD', 'REFRESH', 'UPSERT']); - } - - parser.suggestKeywords(keywords); - }; - - parser.checkForSelectListKeywords = function (selectList) { - if (selectList.length === 0) { - return; - } - var last = selectList[selectList.length - 1]; - if (!last || !last.valueExpression) { - return; - } - var valueExpressionKeywords = parser.getValueExpressionKeywords(last.valueExpression); - var keywords = []; - if (last.suggestKeywords) { - keywords = keywords.concat(last.suggestKeywords); - } - if (valueExpressionKeywords.suggestKeywords) { - keywords = keywords.concat(valueExpressionKeywords.suggestKeywords); - } - if (valueExpressionKeywords.suggestColRefKeywords) { - parser.suggestColRefKeywords(valueExpressionKeywords.suggestColRefKeywords); - parser.addColRefIfExists(last.valueExpression); - } - if (!last.alias) { - keywords.push('AS'); - } - if (keywords.length > 0) { - parser.suggestKeywords(keywords); - } - }; - - parser.checkForKeywords = function (expression) { - if (expression) { - if (expression.suggestKeywords && expression.suggestKeywords.length > 0) { - parser.suggestKeywords(expression.suggestKeywords); - } - if (expression.suggestColRefKeywords) { - parser.suggestColRefKeywords(expression.suggestColRefKeywords); - parser.addColRefIfExists(expression); - } - } - }; - - parser.createWeightedKeywords = function (keywords, weight) { - var result = []; - keywords.forEach(function (keyword) { - if (typeof keyword.weight !== 'undefined') { - keyword.weight = weight + (keyword.weight / 10); - result.push(keyword); - } else { - result.push({value: keyword, weight: weight}); - } - }); - return result; - }; - - parser.suggestKeywords = function (keywords) { - var weightedKeywords = []; - if (keywords.length == 0) { - return; - } - keywords.forEach(function (keyword) { - if (typeof keyword.weight !== 'undefined') { - weightedKeywords.push(keyword); - } else { - weightedKeywords.push({value: keyword, weight: -1}) - } - }); - weightedKeywords.sort(function (a, b) { - if (a.weight !== b.weight) { - return b.weight - a.weight; - } - return a.value.localeCompare(b.value); - }); - parser.yy.result.suggestKeywords = weightedKeywords; - }; - - parser.suggestColRefKeywords = function (colRefKeywords) { - parser.yy.result.suggestColRefKeywords = colRefKeywords; - }; - - parser.suggestTablesOrColumns = function (identifier) { - if (typeof parser.yy.latestTablePrimaries == 'undefined') { - parser.suggestTables({identifierChain: [{name: identifier}]}); - return; - } - var tableRef = parser.yy.latestTablePrimaries.filter(function (tablePrimary) { - return equalIgnoreCase(tablePrimary.alias, identifier); - }); - if (tableRef.length > 0) { - parser.suggestColumns({identifierChain: [{name: identifier}]}); - } else { - parser.suggestTables({identifierChain: [{name: identifier}]}); - } - }; - - parser.suggestFunctions = function (details) { - parser.yy.result.suggestFunctions = details || {}; - }; - - parser.suggestAggregateFunctions = function () { - var primaries = []; - var aliases = {}; - parser.yy.latestTablePrimaries.forEach(function (primary) { - if (typeof primary.alias !== 'undefined') { - aliases[primary.alias] = true; - } - // Drop if the first one refers to a table alias (...FROM tbl t, t.map tm ...) - if (typeof primary.identifierChain !== 'undefined' && !aliases[primary.identifierChain[0].name] && typeof primary.owner === 'undefined') { - primaries.push(primary); - } - }); - parser.yy.result.suggestAggregateFunctions = {tablePrimaries: primaries}; - }; - - parser.suggestAnalyticFunctions = function () { - parser.yy.result.suggestAnalyticFunctions = true; - }; - - parser.suggestSetOptions = function () { - parser.yy.result.suggestSetOptions = true; - }; - - parser.suggestIdentifiers = function (identifiers) { - parser.yy.result.suggestIdentifiers = identifiers; - }; - - parser.suggestColumns = function (details) { - if (typeof details === 'undefined') { - details = {identifierChain: []}; - } else if (typeof details.identifierChain === 'undefined') { - details.identifierChain = []; - } - parser.yy.result.suggestColumns = details; - }; - - parser.suggestGroupBys = function (details) { - parser.yy.result.suggestGroupBys = details || {}; - }; - - parser.suggestOrderBys = function (details) { - parser.yy.result.suggestOrderBys = details || {}; - }; - - parser.suggestFilters = function (details) { - parser.yy.result.suggestFilters = details || {}; - }; - - parser.suggestKeyValues = function (details) { - parser.yy.result.suggestKeyValues = details || {}; - }; - - parser.suggestTables = function (details) { - parser.yy.result.suggestTables = details || {}; - }; - - var adjustLocationForCursor = function (location) { - // columns are 0-based and lines not, so add 1 to cols - var newLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - }; - if (parser.yy.cursorFound) { - if (parser.yy.cursorFound.first_line === newLocation.first_line && parser.yy.cursorFound.last_column <= newLocation.first_column) { - var additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - additionalSpace -= parser.yy.partialCursor ? 1 : 3; // For some reason the normal cursor eats 3 positions. - newLocation.first_column = newLocation.first_column + additionalSpace; - newLocation.last_column = newLocation.last_column + additionalSpace; - } - } - return newLocation; - }; - - parser.addFunctionLocation = function (location, functionName) { - // Remove trailing '(' from location - var adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column, - last_column: location.last_column - 1 - }; - parser.yy.locations.push({ - type: 'function', - location: adjustLocationForCursor(adjustedLocation), - function: functionName.toLowerCase() - }); - }; - - parser.addStatementLocation = function (location) { - // Don't report lonely cursor as a statement - if (location.first_line === location.last_line && Math.abs(location.last_column - location.first_column) === 1) { - return; - } - var adjustedLocation; - if (parser.yy.cursorFound && parser.yy.cursorFound.last_line === location.last_line && - parser.yy.cursorFound.first_column >= location.first_column && parser.yy.cursorFound.last_column <= location.last_column) { - var additionalSpace = parser.yy.partialLengths.left + parser.yy.partialLengths.right; - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + additionalSpace - (parser.yy.partialCursor ? 0 : 2) - } - } else { - adjustedLocation = { - first_line: location.first_line, - last_line: location.last_line, - first_column: location.first_column + 1, - last_column: location.last_column + 1 - } - } - - parser.yy.locations.push({ - type: 'statement', - location: adjustedLocation - }); - }; - - parser.firstDefined = function () { - for (var i = 0; i + 1 < arguments.length; i += 2) { - if (arguments[i]) { - return arguments[i + 1]; - } - } - }; - - parser.addClauseLocation = function (type, precedingLocation, locationIfPresent, isCursor) { - var location; - if (isCursor) { - if (parser.yy.partialLengths.left === 0 && parser.yy.partialLengths.right === 0) { - location = { - type: type, - missing: true, - location: adjustLocationForCursor({ - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - }) - } - } else { - location = { - type: type, - missing: false, - location: { - first_line: locationIfPresent.last_line, - first_column: locationIfPresent.last_column - 1, - last_line: locationIfPresent.last_line, - last_column: locationIfPresent.last_column - 1 + parser.yy.partialLengths.right + parser.yy.partialLengths.left - } - } - } - } else { - location = { - type: type, - missing: !locationIfPresent, - location: adjustLocationForCursor(locationIfPresent || { - first_line: precedingLocation.last_line, - first_column: precedingLocation.last_column, - last_line: precedingLocation.last_line, - last_column: precedingLocation.last_column - }) - }; - } - if (parser.isInSubquery()) { - location.subquery = true; - } - parser.yy.locations.push(location) - }; - - parser.addStatementTypeLocation = function (identifier, location, additionalText) { - if (!parser.isImpala()) { - return; - } - var loc = { - type: 'statementType', - location: adjustLocationForCursor(location), - identifier: identifier - }; - if (typeof additionalText !== 'undefined') { - switch (identifier) { - case 'ALTER': - if (/ALTER\s+VIEW/i.test(additionalText)) { - loc.identifier = 'ALTER VIEW'; - } else { - loc.identifier = 'ALTER TABLE'; - } - break; - case 'COMPUTE': - loc.identifier = 'COMPUTE STATS'; - break; - case 'CREATE': - if (/CREATE\s+VIEW/i.test(additionalText)) { - loc.identifier = 'CREATE VIEW'; - } else if (/CREATE\s+TABLE/i.test(additionalText)) { - loc.identifier = 'CREATE TABLE'; - } else if (/CREATE\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'CREATE DATABASE'; - } else if (/CREATE\s+ROLE/i.test(additionalText)) { - loc.identifier = 'CREATE ROLE'; - } else if (/CREATE\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'CREATE FUNCTION'; - } else { - loc.identifier = 'CREATE TABLE'; - } - break; - case 'DROP': - if (/DROP\s+VIEW/i.test(additionalText)) { - loc.identifier = 'DROP VIEW'; - } else if (/DROP\s+TABLE/i.test(additionalText)) { - loc.identifier = 'DROP TABLE'; - } else if (/DROP\s+DATABASE/i.test(additionalText)) { - loc.identifier = 'DROP DATABASE'; - } else if (/DROP\s+ROLE/i.test(additionalText)) { - loc.identifier = 'DROP ROLE'; - } else if (/DROP\s+STATS/i.test(additionalText)) { - loc.identifier = 'DROP STATS'; - } else if (/DROP\s+FUNCTION/i.test(additionalText)) { - loc.identifier = 'DROP FUNCTION'; - } else { - loc.identifier = 'DROP TABLE'; - } - break; - case 'INVALIDATE': - loc.identifier = 'INVALIDATE METADATA'; - break; - case 'LOAD': - loc.identifier = 'LOAD DATA'; - break; - case 'TRUNCATE': - loc.identifier = 'TRUNCATE TABLE'; - break; - default: - } - } - parser.yy.locations.push(loc); - }; - - parser.addFileLocation = function (location, path) { - parser.yy.locations.push({ - type: 'file', - location: adjustLocationForCursor(location), - path: path - }); - }; - - parser.addDatabaseLocation = function (location, identifierChain) { - parser.yy.locations.push({ - type: 'database', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addTableLocation = function (location, identifierChain) { - parser.yy.locations.push({ - type: 'table', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addColumnAliasLocation = function (location, alias, parentLocation) { - var aliasLocation = { - type: 'alias', - source: 'column', - alias: alias, - location: adjustLocationForCursor(location), - parentLocation: adjustLocationForCursor(parentLocation) - }; - if (parser.yy.locations.length && parser.yy.locations[parser.yy.locations.length - 1].type === 'column') { - var closestColumn = parser.yy.locations[parser.yy.locations.length - 1]; - if (closestColumn.location.first_line === aliasLocation.parentLocation.first_line && - closestColumn.location.last_line === aliasLocation.parentLocation.last_line && - closestColumn.location.first_column === aliasLocation.parentLocation.first_column && - closestColumn.location.last_column === aliasLocation.parentLocation.last_column) { - parser.yy.locations[parser.yy.locations.length - 1].alias = alias; - } - } - parser.yy.locations.push(aliasLocation); - }; - - parser.addTableAliasLocation = function (location, alias, identifierChain) { - parser.yy.locations.push({ - type: 'alias', - source: 'table', - alias: alias, - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addSubqueryAliasLocation = function (location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'subquery', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addAsteriskLocation = function (location, identifierChain) { - parser.yy.locations.push({ - type: 'asterisk', - location: adjustLocationForCursor(location), - identifierChain: identifierChain - }); - }; - - parser.addVariableLocation = function (location, value) { - if (/\$\{[^}]*\}/.test(value)) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: value - }); - } - }; - - parser.addColumnLocation = function (location, identifierChain) { - var isVariable = identifierChain.length && /\$\{[^}]*\}/.test(identifierChain[identifierChain.length - 1].name); - if (isVariable) { - parser.yy.locations.push({ - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }); - } else { - parser.yy.locations.push({ - type: 'column', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }); - } - }; - - parser.addCteAliasLocation = function (location, alias) { - parser.yy.locations.push({ - type: 'alias', - source: 'cte', - alias: alias, - location: adjustLocationForCursor(location) - }); - }; - - parser.addUnknownLocation = function (location, identifierChain) { - var isVariable = identifierChain.length && /\$\{[^}]*\}/.test(identifierChain[identifierChain.length - 1].name); - var loc; - if (isVariable) { - loc = { - type: 'variable', - location: adjustLocationForCursor(location), - value: identifierChain[identifierChain.length - 1].name - }; - } else { - loc = { - type: 'unknown', - location: adjustLocationForCursor(location), - identifierChain: identifierChain, - qualified: identifierChain.length > 1 - }; - } - parser.yy.locations.push(loc); - return loc; - }; - - parser.addColRefToVariableIfExists = function (left, right) { - if (left && left.columnReference && left.columnReference.length && right && right.columnReference && right.columnReference.length && parser.yy.locations.length > 1) { - var addColRefToVariableLocation = function (variableValue, colRef) { - // See if colref is actually an alias - if (colRef.length === 1 && colRef[0].name) { - parser.yy.locations.some(function (location) { - if (location.type === 'column' && location.alias === colRef[0].name) { - colRef = location.identifierChain; - return true; - } - }); - } - - for (var i = parser.yy.locations.length - 1; i > 0; i--) { - var location = parser.yy.locations[i]; - if (location.type === 'variable' && location.value === variableValue) { - location.colRef = { identifierChain: colRef }; - break; - } - } - }; - - if (/\$\{[^}]*\}/.test(left.columnReference[0].name)) { - // left is variable - addColRefToVariableLocation(left.columnReference[0].name, right.columnReference); - } else if (/\$\{[^}]*\}/.test(right.columnReference[0].name)) { - // right is variable - addColRefToVariableLocation(right.columnReference[0].name, left.columnReference); - } - } - }; - - parser.suggestDatabases = function (details) { - parser.yy.result.suggestDatabases = details || {}; - }; - - parser.suggestHdfs = function (details) { - parser.yy.result.suggestHdfs = details || {}; - }; - - parser.suggestValues = function (details) { - parser.yy.result.suggestValues = details || {}; - }; - - parser.determineCase = function (text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.handleQuotedValueWithCursor = function (lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - var cursorIndex = parser.yy.partialCursor ? yytext.indexOf('\u2021') : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - var remainder = yytext.substring(cursorIndex + 1); - var remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []).length; - if (remainingQuotes > 0 && remainingQuotes & 1 != 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - var lexerModified = false; - - /** - * Main parser function - */ - parser.parseSql = function (beforeCursor, afterCursor, dialect, debug) { - // Jison counts CRLF as two lines in the locations - beforeCursor = beforeCursor.replace(/\r\n|\n\r/gm, '\n'); - afterCursor = afterCursor.replace(/\r\n|\n\r/gm, '\n'); - parser.yy.result = {locations: []}; - parser.yy.lowerCase = false; - parser.yy.locations = []; - parser.yy.allLocations = []; - parser.yy.subQueries = []; - parser.yy.errors = []; - parser.yy.selectListAliases = []; - - parser.yy.locationsStack = []; - parser.yy.primariesStack = []; - parser.yy.lateralViewsStack = []; - parser.yy.subQueriesStack = []; - parser.yy.resultStack = []; - parser.yy.selectListAliasesStack = []; - - delete parser.yy.caseDetermined; - delete parser.yy.cursorFound; - delete parser.yy.partialCursor; - - parser.prepareNewStatement(); - - var REASONABLE_SURROUNDING_LENGTH = 150000; // About 3000 lines before and after - - if (beforeCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if ((beforeCursor.length - beforeCursor.lastIndexOf(';')) > REASONABLE_SURROUNDING_LENGTH) { - // Bail out if the last complete statement is more than 150000 chars before - return {}; - } - // Cut it at the first statement found within 150000 chars before - var lastReasonableChunk = beforeCursor.substring(beforeCursor.length - REASONABLE_SURROUNDING_LENGTH); - beforeCursor = lastReasonableChunk.substring(lastReasonableChunk.indexOf(';') + 1); - } - - if (afterCursor.length > REASONABLE_SURROUNDING_LENGTH) { - if ((afterCursor.length - afterCursor.indexOf(';')) > REASONABLE_SURROUNDING_LENGTH) { - // No need to bail out for what's comes after, we can still get keyword completion - afterCursor = ''; - } else { - // Cut it at the last statement found within 150000 chars after - var firstReasonableChunk = afterCursor.substring(0, REASONABLE_SURROUNDING_LENGTH); - afterCursor = firstReasonableChunk.substring(0, firstReasonableChunk.lastIndexOf(';')); - } - } - - parser.yy.partialLengths = parser.identifyPartials(beforeCursor, afterCursor); - - if (parser.yy.partialLengths.left > 0) { - beforeCursor = beforeCursor.substring(0, beforeCursor.length - parser.yy.partialLengths.left); - } - - if (parser.yy.partialLengths.right > 0) { - afterCursor = afterCursor.substring(parser.yy.partialLengths.right); - } - - parser.yy.activeDialect = (dialect !== 'hive' && dialect !== 'impala') ? undefined : dialect; - - // Hack to set the inital state of the lexer without first having to hit a token - // has to be done as the first token found can be dependant on dialect - if (!lexerModified) { - var originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function (input, yy) { - var lexer = originalSetInput.bind(parser.lexer)(input, yy); - if (typeof parser.yy.activeDialect !== 'undefined') { - lexer.begin(parser.yy.activeDialect); - } - return lexer; - }; - lexerModified = true; - } - - var result; - try { - // Add |CURSOR| or |PARTIAL_CURSOR| to represent the different cursor states in the lexer - result = parser.parse(beforeCursor + (beforeCursor.length == 0 || /[\s\(]$$/.test(beforeCursor) ? ' \u2020 ' : '\u2021') + afterCursor); - } catch (err) { - // On any error try to at least return any existing result - if (typeof parser.yy.result === 'undefined') { - throw err; - } - if (debug) { - console.log(err); - console.error(err.stack); - } - result = parser.yy.result; - } - if (parser.yy.errors.length > 0) { - parser.yy.result.errors = parser.yy.errors; - if (debug) { - console.log(parser.yy.errors); - } - } - try { - linkTablePrimaries(); - parser.commitLocations(); - // Clean up and prioritize - prioritizeSuggestions(); - } catch (err) { - if (debug) { - console.log(err); - console.error(err.stack); - } - } - - - parser.yy.allLocations.sort(function (a, b) { - if (a.location.first_line !== b.location.first_line) { - return a.location.first_line - b.location.first_line; - } - if (a.location.first_column !== b.location.first_column) { - return a.location.first_column - b.location.first_column; - } - if (a.location.last_column !== b.location.last_column) { - return b.location.last_column - a.location.last_column; - } - return b.type.localeCompare(a.type); - }); - parser.yy.result.locations = parser.yy.allLocations; - - parser.yy.result.locations.forEach(function (location) { - delete location.linked; - }); - if (typeof parser.yy.result.suggestColumns !== 'undefined') { - delete parser.yy.result.suggestColumns.linked; - } - - SIMPLE_TABLE_REF_SUGGESTIONS.forEach(function (suggestionType) { - if (typeof parser.yy.result[suggestionType] !== 'undefined') { - delete parser.yy.result[suggestionType].linked; - } - }); - - if (typeof parser.yy.result.colRef !== 'undefined') { - delete parser.yy.result.colRef.linked; - } - if (typeof parser.yy.result.suggestKeyValues !== 'undefined') { - delete parser.yy.result.suggestKeyValues.linked; - } - - if (typeof result.error !== 'undefined' && typeof result.error.expected !== 'undefined') { - // Remove any expected tokens from other dialects, jison doesn't remove tokens from other lexer states. - var actualExpected = {}; - result.error.expected.forEach(function (expected) { - var match = expected.match(/\<([a-z]+)\>(.*)/); - if (match !== null) { - if (typeof parser.yy.activeDialect !== 'undefined' && parser.yy.activeDialect === match[1]) { - actualExpected[("'" + match[2])] = true; - } - } else if (expected.indexOf('CURSOR') == -1) { - actualExpected[expected] = true; - } - }); - result.error.expected = Object.keys(actualExpected); - } - - if (typeof result.error !== 'undefined' && result.error.recoverable) { - delete result.error; - } - - // Adjust all the statement locations to include white space surrounding them - var lastStatementLocation = null; - result.locations.forEach(function (location) { - if (location.type === 'statement') { - if (lastStatementLocation === null) { - location.location.first_line = 1; - location.location.first_column = 1; - } else { - location.location.first_line = lastStatementLocation.location.last_line; - location.location.first_column = lastStatementLocation.location.last_column + 1; - } - lastStatementLocation = location; - } - }); - - return result; - }; - }; - - var SYNTAX_PARSER_NOOP_FUNCTIONS = ['prepareNewStatement', 'addCommonTableExpressions', 'pushQueryState', 'popQueryState', 'suggestSelectListAliases', - 'suggestValueExpressionKeywords', 'getSelectListKeywords', 'getValueExpressionKeywords', 'addColRefIfExists', 'selectListNoTableSuggest', 'suggestJoinConditions', - 'suggestJoins', 'valueExpressionSuggest', 'applyTypeToSuggestions', 'applyArgumentTypesToSuggestions', 'commitLocations', 'identifyPartials', - 'getSubQuery', 'addTablePrimary', 'suggestFileFormats', 'suggestDdlAndDmlKeywords', 'checkForSelectListKeywords', 'checkForKeywords', - 'suggestKeywords', 'suggestColRefKeywords', 'suggestTablesOrColumns', 'suggestFunctions', 'suggestAggregateFunctions', 'suggestAnalyticFunctions', - 'suggestColumns', 'suggestGroupBys', 'suggestIdentifiers', 'suggestOrderBys', 'suggestFilters', 'suggestKeyValues', 'suggestTables', 'addFunctionLocation', - 'addStatementLocation', 'firstDefined', 'addClauseLocation', 'addStatementTypeLocation', 'addFileLocation', 'addDatabaseLocation', 'addColumnAliasLocation', - 'addTableAliasLocation', 'addSubqueryAliasLocation', 'addTableLocation', 'addAsteriskLocation', 'addVariableLocation', 'addColumnLocation', 'addCteAliasLocation', - 'addUnknownLocation', 'addColRefToVariableIfExists', 'suggestDatabases', 'suggestHdfs', 'suggestValues']; - - var SYNTAX_PARSER_NOOP = function () {}; - - var initSyntaxParser = function (parser) { - - // Noop functions for compatibility with the autocomplete parser as the grammar is shared - SYNTAX_PARSER_NOOP_FUNCTIONS.forEach(function (noopFn) { - parser[noopFn] = SYNTAX_PARSER_NOOP - }); - - parser.yy.locations = [{}]; - - parser.determineCase = function (text) { - if (!parser.yy.caseDetermined) { - parser.yy.lowerCase = text.toLowerCase() === text; - parser.yy.caseDetermined = true; - } - }; - - parser.getKeywordsForOptionalsLR = function () { - return []; - }; - - parser.mergeSuggestKeywords = function () { - return {}; - }; - - parser.getTypeKeywords = function () { - return []; - }; - - parser.getColumnDataTypeKeywords = function () { - return []; - }; - - parser.findCaseType = function () { - return {types: ['T']}; - }; - - parser.findReturnTypes = function (functionName) { - return ['T']; - }; - - parser.isHive = function () { - return parser.yy.activeDialect === 'hive'; - }; - - parser.isImpala = function () { - return parser.yy.activeDialect === 'impala'; - }; - - parser.expandImpalaIdentifierChain = function () { - return []; - }; - - parser.expandIdentifierChain = function () { - return []; - }; - - parser.expandLateralViews = function () { - return []; - }; - - parser.createWeightedKeywords = function () { - return []; - }; - - parser.handleQuotedValueWithCursor = function (lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - parser.yy.partialCursor = yytext.indexOf('\u2021') !== -1; - var cursorIndex = parser.yy.partialCursor ? yytext.indexOf('\u2021') : yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - var remainder = yytext.substring(cursorIndex + 1); - var remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []).length; - if (remainingQuotes > 0 && remainingQuotes & 1 != 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - var lexerModified = false; - - parser.yy.parseError = function (str, hash) { - parser.yy.error = hash; - }; - - var IGNORED_EXPECTED = { - ';': true, - '.': true, - 'EOF': true, - 'UNSIGNED_INTEGER': true, - 'UNSIGNED_INTEGER_E': true, - 'REGULAR_IDENTIFIER': true, // TODO: Indicate that an identifier was expected - 'CURSOR': true, - 'PARTIAL_CURSOR': true, - 'HDFS_START_QUOTE': true, - 'HDFS_PATH': true, - 'HDFS_END_QUOTE' : true, - 'COMPARISON_OPERATOR': true, // TODO: Expand in results when found - 'ARITHMETIC_OPERATOR' : true, // TODO: Expand in results when found - 'VARIABLE_REFERENCE': true, - 'BACKTICK': true, - 'VALUE': true, - 'PARTIAL_VALUE': true, - 'SINGLE_QUOTE': true, - 'DOUBLE_QUOTE': true - }; - - var CLEAN_EXPECTED = { - 'BETWEEN_AND': 'AND', - 'OVERWRITE_DIRECTORY' : 'OVERWRITE', - 'STORED_AS_DIRECTORIES' : 'STORED', - 'LIKE_PARQUET' : 'LIKE', - 'PARTITION_VALUE' : 'PARTITION' - }; - - parser.parseSyntax = function (beforeCursor, afterCursor, dialect, debug) { - parser.yy.caseDetermined = false; - parser.yy.error = undefined; - - parser.yy.latestTablePrimaries = []; - parser.yy.subQueries = []; - parser.yy.selectListAliases = []; - parser.yy.latestTablePrimaries = []; - - parser.yy.activeDialect = (dialect !== 'hive' && dialect !== 'impala') ? undefined : dialect; - - // Hack to set the inital state of the lexer without first having to hit a token - // has to be done as the first token found can be dependant on dialect - if (!lexerModified) { - var originalSetInput = parser.lexer.setInput; - parser.lexer.setInput = function (input, yy) { - var lexer = originalSetInput.bind(parser.lexer)(input, yy); - if (typeof parser.yy.activeDialect !== 'undefined') { - lexer.begin(parser.yy.activeDialect); - } - return lexer; - }; - lexerModified = true; - } - - // TODO: Find a way around throwing an exception when the parser finds a syntax error - try { - parser.yy.error = false; - parser.parse(beforeCursor + afterCursor); - } catch (err) { - if (debug) { - console.log(err); - console.error(err.stack); - console.log(parser.yy.error); - } - } - - if (parser.yy.error && (parser.yy.error.loc.last_column < beforeCursor.length || !beforeCursor.endsWith(parser.yy.error.text))) { - var weightedExpected = []; - - var addedExpected = {}; - - var isLowerCase = parser.yy.caseDetermined && parser.yy.lowerCase || parser.yy.error.text.toLowerCase() === parser.yy.error.text; - - if (parser.yy.error.expected.length == 2 && parser.yy.error.expected.indexOf('\';\'') !== -1 && parser.yy.error.expected.indexOf('\'EOF\'') !== -1) { - parser.yy.error.expected = []; - parser.yy.error.expectedStatementEnd = true; - return parser.yy.error; - } - for (var i = 0; i < parser.yy.error.expected.length; i++) { - var expected = parser.yy.error.expected[i]; - // Strip away the surrounding ' chars - expected = expected.substring(1, expected.length - 1); - // TODO: Only suggest alphanumeric? - if (!IGNORED_EXPECTED[expected] && /[a-z_]+/i.test(expected)) { - if (dialect && expected.indexOf('<' + dialect + '>') == 0) { - expected = expected.substring(dialect.length + 2); - } else if (/^<[a-z]+>/.test(expected)) { - continue; - } - expected = CLEAN_EXPECTED[expected] || expected; - if (expected === parser.yy.error.text.toUpperCase()) { - // Can happen when the lexer entry for a rule contains multiple words like 'stored' in 'stored as parquet' - return false; - } - var text = isLowerCase ? expected.toLowerCase() : expected; - if (text && !addedExpected[text]) { - addedExpected[text] = true; - weightedExpected.push({ - text: text, - distance: stringDistance(parser.yy.error.text, text, true) - }); - } - } - } - if (weightedExpected.length === 0) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - weightedExpected.sort(function (a, b) { - if (a.distance === b.distance) { - return a.text.localeCompare(b.text); - } - return a.distance - b.distance - }); - parser.yy.error.expected = weightedExpected; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } else if (parser.yy.error) { - parser.yy.error.expected = []; - parser.yy.error.incompleteStatement = true; - return parser.yy.error; - } - return false; - } - }; - - var initGlobalSearchParser = function (parser) { - - parser.identifyPartials = function (beforeCursor, afterCursor) { - var beforeMatch = beforeCursor.match(/[0-9a-zA-Z_]*$/); - var afterMatch = afterCursor.match(/^[0-9a-zA-Z_]*(?:\((?:[^)]*\))?)?/); - return {left: beforeMatch ? beforeMatch[0].length : 0, right: afterMatch ? afterMatch[0].length : 0}; - }; - - parser.mergeFacets = function (a, b) { - if (!a.facets) { - a.facets = {}; - } - if (!b.facets) { - return; - } - Object.keys(b.facets).forEach(function (key) { - if (a.facets[key]) { - Object.keys(b.facets[key]).forEach(function (val) { - a.facets[key][val.toLowerCase()] = true; - }); - } else { - a.facets[key] = b.facets[key]; - } - }); - }; - - parser.mergeText = function (a, b) { - if (!a.text) { - a.text = []; - } - if (!b.text) { - return; - } - a.text = a.text.concat(b.text); - }; - - parser.handleQuotedValueWithCursor = function (lexer, yytext, yylloc, quoteChar) { - if (yytext.indexOf('\u2020') !== -1 || yytext.indexOf('\u2021') !== -1) { - var cursorIndex = yytext.indexOf('\u2020'); - parser.yy.cursorFound = { - first_line: yylloc.first_line, - last_line: yylloc.last_line, - first_column: yylloc.first_column + cursorIndex, - last_column: yylloc.first_column + cursorIndex + 1 - }; - var remainder = yytext.substring(cursorIndex + 1); - var remainingQuotes = (lexer.upcomingInput().match(new RegExp(quoteChar, 'g')) || []).length; - if (remainingQuotes > 0 && remainingQuotes & 1 != 0) { - parser.yy.missingEndQuote = false; - lexer.input(); - } else { - parser.yy.missingEndQuote = true; - lexer.unput(remainder); - } - lexer.popState(); - return true; - } - return false; - }; - - parser.parseGlobalSearch = function (beforeCursor, afterCursor, debug) { - delete parser.yy.cursorFound; - - var result; - try { - result = parser.parse(beforeCursor + '\u2020' + afterCursor); - } catch (err) { - if (debug) { - console.log(err); - console.error(err.stack); - console.log(parser.yy.error); - } - return { - facets: {}, - text: [] - } - } - return result; - }; - }; - - return { - initSqlParser: initSqlParser, - initSyntaxParser: initSyntaxParser, - stringDistance: stringDistance, - initGlobalSearchParser: initGlobalSearchParser - }; -})(); diff --git a/src/jison/sqlStatementsParser.jison b/src/jison/sqlStatementsParser.jison old mode 100755 new mode 100644 index 328bbd4..9195d1c --- a/src/jison/sqlStatementsParser.jison +++ b/src/jison/sqlStatementsParser.jison @@ -41,7 +41,13 @@ '\'' { this.popState(); return 'PART_OF_STATEMENT'; } '`' { this.begin("backTick"); return 'PART_OF_STATEMENT'; } -[^`]+ { return 'PART_OF_STATEMENT'; } +[^`]+ { + if (parser.yy.usePreceding) { + parser.yy.useDatabase = yytext; + parser.yy.usePreceding = false; + } + return 'PART_OF_STATEMENT'; + } <> { this.popState(); return 'EOF'; } '`' { this.popState(); return 'PART_OF_STATEMENT'; } @@ -51,7 +57,17 @@ if (firstWordMatch) { parser.yy.firstToken = firstWordMatch[0]; } - }; + var useDatabaseMatch = yytext.match(/USE\s+(\S+)/i); + if (useDatabaseMatch) { + parser.yy.useDatabase = useDatabaseMatch[1]; + } else { + // For backticked + parser.yy.usePreceding = /USE/i.test(yytext); + } + } else if (parser.yy.usePreceding) { + parser.yy.useDatabase = yytext; + parser.yy.usePreceding = false; + } return 'PART_OF_STATEMENT'; } [-][^;-]? { return 'PART_OF_STATEMENT'; } @@ -101,29 +117,22 @@ SqlStatementsParser } | 'EOF' { - return []; + var result = []; + parser.addEntry(result, 'statement', $1, @1); + return result; } ; Statements : StatementParts { - if (parser.yy.firstToken) { - $$ = [{ type: 'statement', statement: $1, location: @1, firstToken: parser.yy.firstToken }]; - parser.yy.firstToken = null; - } else { - $$ = [{ type: 'statement', statement: $1, location: @1 }]; - } + $$ = []; + parser.addEntry($$, 'statement', $1, @1); } | Statements OneOrMoreSeparators StatementParts { parser.handleTrailingStatements($1, $2); - if (parser.yy.firstToken) { - $1.push({ type: 'statement', statement: $3, location: @3, firstToken: parser.yy.firstToken }); - parser.yy.firstToken = null; - } else { - $1.push({ type: 'statement', statement: $3, location: @3 }); - } + parser.addEntry($1, 'statement', $3, @3); } ; @@ -142,6 +151,20 @@ OneOrMoreSeparators %% +parser.addEntry = function (statements, type, statement, location) { + if (parser.yy.firstToken) { + if (parser.yy.useDatabase) { + statements.push({ type: type, statement: statement, location: location, firstToken: parser.yy.firstToken, database: parser.yy.useDatabase }); + delete parser.yy.useDatabase; + } else { + statements.push({ type: type, statement: statement, location: location, firstToken: parser.yy.firstToken }); + } + delete parser.yy.firstToken; + } else { + statements.push({ type: type, statement: statement, location: location }); + } +} + parser.handleLeadingStatements = function (emptyStatements, result) { for (var i = emptyStatements.length - 1; i >= 0; i--) { result.unshift({ type: 'statement', statement: ';', location: emptyStatements[i] }); @@ -165,8 +188,10 @@ parser.handleTrailingStatements = function (result, emptyStatements) { } parser.removeTrailingWhiteSpace = function (result) { - var lastStatement = result[result.length - 1]; - if (/^\s+$/.test(lastStatement.statement)) { - result.pop() + if (result.length > 1) { + var lastStatement = result[result.length - 1]; + if (/^\s+$/.test(lastStatement.statement)) { + result.pop() + } } -} \ No newline at end of file +} diff --git a/src/jison/sql_alter.jison b/src/jison/sql_alter.jison old mode 100755 new mode 100644 index d2e93e9..4e980fd --- a/src/jison/sql_alter.jison +++ b/src/jison/sql_alter.jison @@ -63,6 +63,10 @@ AlterDatabase { parser.addDatabaseLocation(@3, [ { name: $3 } ]); } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' ImpalaRoleOrUser RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + } ; AlterDatabase_EDIT @@ -84,6 +88,8 @@ AlterDatabase_EDIT parser.addDatabaseLocation(@3, [ { name: $3 } ]); if (parser.isHive()) { parser.suggestKeywords(['DBPROPERTIES', 'LOCATION', 'OWNER']); + } else if (parser.isImpala()) { + parser.suggestKeywords(['OWNER']); } } | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' HdfsLocation_EDIT @@ -95,6 +101,11 @@ AlterDatabase_EDIT parser.addDatabaseLocation(@3, [ { name: $3 } ]); parser.suggestKeywords(['GROUP', 'ROLE', 'USER']); } + | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' 'CURSOR' + { + parser.addDatabaseLocation(@3, [ { name: $3 } ]); + parser.suggestKeywords(['ROLE', 'USER']); + } | 'ALTER' DatabaseOrSchema RegularOrBacktickedIdentifier 'SET' 'OWNER' PrincipalSpecification_EDIT { parser.addDatabaseLocation(@3, [ { name: $3 } ]); @@ -236,8 +247,8 @@ AlterTable_EDIT } else if (parser.isImpala()) { parser.suggestKeywords(['ADD COLUMNS', 'ADD PARTITION', 'ADD RANGE PARTITION', 'ALTER', 'ALTER COLUMN', 'CHANGE', 'DROP COLUMN', 'DROP PARTITION', 'DROP RANGE PARTITION', 'PARTITION', 'RECOVER PARTITIONS', 'RENAME TO', - 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET ROW FORMAT', - 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); + 'REPLACE COLUMNS', 'SET CACHED IN', 'SET COLUMN STATS', 'SET FILEFORMAT', 'SET LOCATION', 'SET OWNER', + 'SET ROW FORMAT', 'SET SERDEPROPERTIES', 'SET TBLPROPERTIES', 'SET UNCACHED']); } } | AlterTableLeftSide PartitionSpec 'CURSOR' @@ -268,7 +279,7 @@ AlterTable_EDIT if (parser.isHive()) { parser.suggestKeywords(['FILEFORMAT', 'LOCATION', 'OWNER', 'SERDE', 'SERDEPROPERTIES', 'SKEWED LOCATION', 'TBLPROPERTIES']); } else if (parser.isImpala()) { - parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); + parser.suggestKeywords(['CACHED IN', 'COLUMN STATS', 'FILEFORMAT', 'LOCATION', 'OWNER ROLE', 'OWNER USER', 'ROW FORMAT', 'SERDEPROPERTIES', 'TBLPROPERTIES', 'UNCACHED']); } } | AlterTableLeftSide PartitionSpec OptionalPartitionOperations_EDIT @@ -382,6 +393,7 @@ ImpalaSpecificOperations { parser.addColumnLocation($4.location, [ $4.identifier ]); } + | 'SET' 'OWNER' ImpalaRoleOrUser RegularOrBacktickedIdentifier ; ImpalaSpecificOperations_EDIT @@ -436,6 +448,11 @@ ImpalaSpecificOperations_EDIT { parser.addColumnLocation($4.location, [ $4.identifier ]); } + | 'SET' 'OWNER' 'CURSOR' + { + parser.suggestKeywords(['ROLE', 'USER']); + } + | 'SET' 'OWNER' ImpalaRoleOrUser 'CURSOR' ; KuduStorageAttribute @@ -601,15 +618,15 @@ AndWait_EDIT OptionalWithOverwriteTblProperties : - | 'WITH' 'OVERWRITE' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + | 'WITH' 'OVERWRITE' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList ; WithOverwriteTblProperties_EDIT - : 'WITH' 'CURSOR' + : AnyWith 'CURSOR' { parser.suggestKeywords(['OVERWRITE TBLPROPERTIES']); } - | 'WITH' 'OVERWRITE' 'CURSOR' + | 'WITH' 'OVERWRITE' 'CURSOR' { parser.suggestKeywords(['TBLPROPERTIES']); } @@ -635,7 +652,7 @@ AnyColumns ; HiveExchange - : 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName + : 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName ; HiveExchange_EDIT @@ -647,18 +664,18 @@ HiveExchange_EDIT { parser.suggestKeywords(['WITH TABLE']); } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'CURSOR' + | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'CURSOR' { parser.suggestKeywords(['TABLE']); } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' 'CURSOR' + | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' 'CURSOR' { parser.suggestTables(); parser.suggestDatabases({ appendDot: true }); } - | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName_EDIT + | 'EXCHANGE' ExchangePartitionSpec 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName_EDIT | 'EXCHANGE' ExchangePartitionSpec_EDIT - | 'EXCHANGE' ExchangePartitionSpec_EDIT 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName + | 'EXCHANGE' ExchangePartitionSpec_EDIT 'WITH' 'TABLE' RegularOrBackTickedSchemaQualifiedName ; ExchangePartitionSpec @@ -962,6 +979,7 @@ OptionalStoredAsDirectories_EDIT AlterView : AlterViewLeftSide 'SET' 'TBLPROPERTIES' ParenthesizedPropertyAssignmentList + | AlterViewLeftSide 'SET' 'OWNER' ImpalaRoleOrUser RegularOrBacktickedIdentifier | AlterViewLeftSide AnyAs QuerySpecification | AlterViewLeftSide 'RENAME' 'TO' RegularOrBacktickedIdentifier | AlterViewLeftSide 'RENAME' 'TO' RegularOrBacktickedIdentifier '.' RegularOrBacktickedIdentifier @@ -974,7 +992,7 @@ AlterView_EDIT if (parser.isHive()) { parser.suggestKeywords(['AS', 'SET TBLPROPERTIES']); } else if (parser.isImpala()) { - parser.suggestKeywords(['AS', 'RENAME TO']); + parser.suggestKeywords(['AS', 'RENAME TO', 'SET OWNER']); } else { parser.suggestKeywords(['AS']); } @@ -983,8 +1001,15 @@ AlterView_EDIT { if (parser.isHive()) { parser.suggestKeywords(['TBLPROPERTIES']); + } else if (parser.isImpala()) { + parser.suggestKeywords(['OWNER ROLE', 'OWNER USER']); } } + | AlterViewLeftSide 'SET' 'OWNER' 'CURSOR' + { + parser.suggestKeywords(['ROLE', 'USER']); + } + | AlterViewLeftSide 'SET' 'OWNER' ImpalaRoleOrUser 'CURSOR' | AlterViewLeftSide AnyAs 'CURSOR' { parser.suggestKeywords(['SELECT']); diff --git a/src/jison/sql_analyze.jison b/src/jison/sql_analyze.jison old mode 100755 new mode 100644 index 5ebd10d..0d64473 --- a/src/jison/sql_analyze.jison +++ b/src/jison/sql_analyze.jison @@ -146,6 +146,7 @@ RefreshStatement { parser.addDatabaseLocation(@3, [{ name: $3 }]); } + | 'REFRESH' 'AUTHORIZATION' ; RefreshStatement_EDIT @@ -153,7 +154,7 @@ RefreshStatement_EDIT { parser.suggestTables(); parser.suggestDatabases({ appendDot: true }); - parser.suggestKeywords(['FUNCTIONS']); + parser.suggestKeywords(['AUTHORIZATION', 'FUNCTIONS']); } | 'REFRESH' SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec | 'REFRESH' SchemaQualifiedTableIdentifier OptionalPartitionSpec 'CURSOR' diff --git a/src/jison/sql_create.jison b/src/jison/sql_create.jison old mode 100755 new mode 100644 index 24de402..5e2cf72 --- a/src/jison/sql_create.jison +++ b/src/jison/sql_create.jison @@ -39,15 +39,17 @@ CreateStatement_EDIT | FunctionDefinition_EDIT | IndexDefinition_EDIT | MacroDefinition_EDIT - | AnyCreate OptionalHiveTemporary OptionalExternal 'CURSOR' + | AnyCreate OptionalHiveTemporary OptionalHiveTransactional OptionalExternal 'CURSOR' { - if ($3) { + if ($4) { parser.suggestKeywords(['TABLE']); } else if (parser.isHive()) { - if ($2) { + if ($2 && !$3) { parser.suggestKeywords(['EXTERNAL TABLE', 'FUNCTION', 'MACRO', 'TABLE']); - } else { - parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'VIEW']); + } else if (!$2 && !$3) { + parser.suggestKeywords(['DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'INDEX', 'ROLE', 'SCHEMA', 'TABLE', 'TEMPORARY EXTERNAL TABLE', 'TEMPORARY FUNCTION', 'TEMPORARY MACRO', 'TEMPORARY TABLE', 'TRANSACTIONAL TABLE', 'VIEW']); + } else if ($3) { + parser.suggestKeywords(['TABLE']); } } else if (parser.isImpala()) { parser.suggestKeywords(['AGGREGATE FUNCTION', 'DATABASE', 'EXTERNAL TABLE', 'FUNCTION', 'ROLE', 'SCHEMA', 'TABLE', 'VIEW']); @@ -60,6 +62,9 @@ CreateStatement_EDIT DatabaseDefinition : AnyCreate DatabaseOrSchema OptionalIfNotExists | AnyCreate DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } ; DatabaseDefinition_EDIT @@ -75,9 +80,16 @@ DatabaseDefinition_EDIT if (!$3) { parser.suggestKeywords(['IF NOT EXISTS']); } + parser.addNewDatabaseLocation(@5, [{ name: $5 }]); } | AnyCreate DatabaseOrSchema OptionalIfNotExists_EDIT RegularIdentifier + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } | AnyCreate DatabaseOrSchema OptionalIfNotExists RegularIdentifier DatabaseDefinitionOptionals 'CURSOR' + { + parser.addNewDatabaseLocation(@4, [{ name: $4 }]); + } ; DatabaseDefinitionOptionals @@ -104,6 +116,24 @@ DatabaseDefinitionOptionals_EDIT | OptionalComment HdfsLocation_EDIT OptionalHiveDbProperties ; +OptionalHiveComment + : + | HiveComment + ; + +HiveComment + : 'COMMENT' QuotedValue + ; + +OptionalImpalaComment + : + | ImpalaComment + ; + +ImpalaComment + : 'COMMENT' QuotedValue + ; + OptionalComment : | Comment @@ -113,6 +143,10 @@ Comment : HiveOrImpalaComment QuotedValue ; +OptionalComment_INVALID + : Comment_INVALID + ; + Comment_INVALID : HiveOrImpalaComment SINGLE_QUOTE | HiveOrImpalaComment DOUBLE_QUOTE @@ -120,9 +154,6 @@ Comment_INVALID | HiveOrImpalaComment DOUBLE_QUOTE VALUE ; -OptionalComment_INVALID - : Comment_INVALID - ; OptionalHiveDbProperties : @@ -152,104 +183,127 @@ PropertyAssignment ; TableDefinition - : AnyCreate OptionalHiveTemporary OptionalExternal AnyTable OptionalIfNotExists TableDefinitionRightPart LifeCyclePart + : AnyCreate OptionalHiveTemporary OptionalHiveTransactional OptionalExternal AnyTable OptionalIfNotExists TableDefinitionRightPart ; -LifeCyclePart -: -| 'LIFECYCLE' 'UNSIGNED_INTEGER' -; - TableDefinition_EDIT - : AnyCreate OptionalHiveTemporary OptionalExternal AnyTable OptionalIfNotExists TableDefinitionRightPart_EDIT - | AnyCreate OptionalHiveTemporary OptionalExternal AnyTable OptionalIfNotExists 'CURSOR' + : AnyCreate OptionalHiveTemporary OptionalHiveTransactional OptionalExternal AnyTable OptionalIfNotExists TableDefinitionRightPart_EDIT + | AnyCreate OptionalHiveTemporary OptionalHiveTransactional OptionalExternal AnyTable OptionalIfNotExists 'CURSOR' { - if (!$5) { + if (!$6) { parser.suggestKeywords(['IF NOT EXISTS']); } } - | AnyCreate OptionalHiveTemporary OptionalExternal AnyTable OptionalIfNotExists_EDIT + | AnyCreate OptionalHiveTemporary OptionalHiveTransactional OptionalExternal AnyTable OptionalIfNotExists_EDIT ; TableDefinitionRightPart - : TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy OptionalSortBy OptionalClusteredBy OptionalSkewedBy - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalCachedInOrUncached OptionalAsSelectStatement + : TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement ; TableDefinitionRightPart_EDIT - : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalComment OptionalPartitionedBy OptionalSortBy OptionalClusteredBy OptionalSkewedBy - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalCachedInOrUncached OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment PartitionedBy_EDIT OptionalSortBy OptionalClusteredBy OptionalSkewedBy - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalCachedInOrUncached OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy SortBy_EDIT OptionalClusteredBy OptionalSkewedBy - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalCachedInOrUncached OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy OptionalSortBy ClusteredBy_EDIT OptionalSkewedBy - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalCachedInOrUncached OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy OptionalSortBy OptionalClusteredBy SkewedBy_EDIT - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalCachedInOrUncached OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy OptionalSortBy OptionalClusteredBy OptionalSkewedBy - StoredAsOrBy_EDIT OptionalHdfsLocation OptionalTblproperties OptionalCachedInOrUncached OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy OptionalSortBy OptionalClusteredBy OptionalSkewedBy - OptionalStoredAsOrBy HdfsLocation_EDIT OptionalTblproperties OptionalCachedInOrUncached OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy OptionalSortBy OptionalClusteredBy OptionalSkewedBy - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties CachedIn_EDIT OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy OptionalSortBy OptionalClusteredBy OptionalSkewedBy - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties CachedIn WithReplication_EDIT OptionalAsSelectStatement - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy OptionalSortBy OptionalClusteredBy OptionalSkewedBy - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalCachedInOrUncached OptionalAsSelectStatement_EDIT - | TableIdentifierAndOptionalColumnSpecification OptionalComment OptionalPartitionedBy OptionalSortBy OptionalClusteredBy OptionalSkewedBy - OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalCachedInOrUncached 'CURSOR' + : TableIdentifierAndOptionalColumnSpecification_EDIT OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment PartitionedBy_EDIT OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy SortBy_EDIT OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + ClusteredBy_EDIT OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy SkewedBy_EDIT OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy RowFormat_EDIT OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat ImpalaWithSerdeproperties_EDIT OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties StoredAsOrBy_EDIT + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + HiveWithSerdeproperties_EDIT OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties HdfsLocation_EDIT OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation CachedIn_EDIT OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation CachedIn WithReplication_EDIT OptionalTblproperties OptionalAsSelectStatement + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties OptionalAsSelectStatement_EDIT + | TableIdentifierAndOptionalColumnSpecification OptionalHiveComment OptionalPartitionedBy OptionalSortBy OptionalImpalaComment + OptionalClusteredBy OptionalSkewedBy OptionalRowFormat OptionalImpalaWithSerdeproperties OptionalStoredAsOrBy + OptionalHiveWithSerdeproperties OptionalHdfsLocation OptionalCachedInOrUncached OptionalTblproperties 'CURSOR' { var keywords = []; - if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11) { + if (!$1 && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { keywords.push({ value: 'LIKE', weight: 1 }); if (parser.isImpala()) { keywords.push({ value: 'LIKE PARQUET', weight: 1 }); } } else { - if (!$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11) { - keywords.push({ value: 'COMMENT', weight: 11 }); + if (parser.isHive() && !$2 && !$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { + keywords.push({ value: 'COMMENT', weight: 13 }); } - if (!$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11) { - keywords.push({ value: 'PARTITIONED BY', weight: 10 }); + if (!$3 && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { + keywords.push({ value: 'PARTITIONED BY', weight: 12 }); if (parser.isImpala()) { - keywords.push({ value: 'PARTITION BY', weight: 10 }); + keywords.push({ value: 'PARTITION BY', weight: 12 }); } } - if (parser.isImpala() && !$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11) { - keywords.push({ value: 'SORT BY', weight: 9 }); + if (!$4 && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { + keywords.push({ value: 'SORT BY', weight: 11 }); } - if (parser.isHive() && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11) { - keywords.push({ value: 'CLUSTERED BY', weight: 8 }); + if (parser.isImpala() && !$5 && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { + keywords.push({ value: 'COMMENT', weight: 10 }); } - if (parser.isHive() && !$6 && !$7 && !$8 && !$9 && !$10 && !$11) { - keywords.push({ value: 'SKEWED BY', weight: 7 }); - } else if (parser.isHive() && $6 && $6.suggestKeywords && !$7 && !$8 && !$9 && !$10 && !$10) { - keywords = keywords.concat(parser.createWeightedKeywords($6.suggestKeywords, 7)); // Get the last optional from SKEWED BY + if (parser.isHive() && !$6 && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { + keywords.push({ value: 'CLUSTERED BY', weight: 9 }); } - if (!$7 && !$8 && !$9 && !$10 && !$11) { - keywords.push({ value: 'ROW FORMAT', weight: 6 }); - keywords.push({ value: 'STORED AS', weight: 6 }); + if (parser.isHive() && !$7 && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { + keywords.push({ value: 'SKEWED BY', weight: 8 }); + } else if (parser.isHive() && $7 && $7.suggestKeywords && !$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { + keywords = keywords.concat(parser.createWeightedKeywords($7.suggestKeywords, 8)); // Get the last optional from SKEWED BY + } + if (!$8 && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { + keywords.push({ value: 'ROW FORMAT', weight: 7 }); + } else if ($8 && $8.suggestKeywords && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { + keywords = keywords.concat(parser.createWeightedKeywords($8.suggestKeywords, 7)); + } + if (parser.isImpala() && !$9 && !$10 && !$11 && !$12 && !$13 && !$14) { + keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 6 }); + } + if (!$10 && !$11 && !$12 && !$13 && !$14) { + keywords.push({ value: 'STORED AS', weight: 5 }); if (parser.isHive()) { - keywords.push({ value: 'STORED BY', weight: 6 }); + keywords.push({ value: 'STORED BY', weight: 5 }); } - } else if ($7 && $7.suggestKeywords && !$8 && !$9 && !$10 && !$11) { - keywords = keywords.concat(parser.createWeightedKeywords($7.suggestKeywords, 6)); } - if ((($7 && $7.storedBy) || parser.isImpala()) && !$8 && !$9 && !$10 && !$11) { - keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 5 }); + if (parser.isHive() && $10 && $10.storedBy && !$11 && !$12 && !$13 && !$14) { + keywords.push({ value: 'WITH SERDEPROPERTIES', weight: 6 }); } - if (!$9 && !$10 && !$11) { + if (!$12 && !$13 && !$14) { keywords.push({ value: 'LOCATION', weight: 4 }); } - if (!$10 && !$11) { - keywords.push({ value: 'TBLPROPERTIES', weight: 3 }); + if (parser.isImpala() && !$13 && !$14) { + keywords.push({ value: 'CACHED IN', weight: 3 }, { value: 'UNCACHED', weight: 3 }); + } else if (parser.isImpala() && $13 && $13.suggestKeywords && !$14) { + keywords = keywords.concat(parser.createWeightedKeywords($13.suggestKeywords, 3)); } - if (parser.isImpala() && !$11) { - keywords.push({ value: 'CACHED IN', weight: 2 }, { value: 'UNCACHED', weight: 2 }); - } - if (parser.isImpala() && $11 && $11.suggestKeywords) { - keywords = keywords.concat(parser.createWeightedKeywords($11.suggestKeywords, 2)); + if (!$14) { + keywords.push({ value: 'TBLPROPERTIES', weight: 2 }); } keywords.push({ value: 'AS', weight: 1 }); } @@ -261,7 +315,11 @@ TableDefinitionRightPart_EDIT ; TableIdentifierAndOptionalColumnSpecification - : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike -> $2 + : SchemaQualifiedIdentifier OptionalColumnSpecificationsOrLike + { + parser.addNewTableLocation(@1, $1, $2); + $$ = $2; + } ; TableIdentifierAndOptionalColumnSpecification_EDIT @@ -272,8 +330,8 @@ TableIdentifierAndOptionalColumnSpecification_EDIT OptionalColumnSpecificationsOrLike : | ParenthesizedColumnSpecificationList - | 'LIKE_PARQUET' HdfsPath - | 'LIKE' SchemaQualifiedTableIdentifier + | 'LIKE_PARQUET' HdfsPath -> [] + | 'LIKE' SchemaQualifiedTableIdentifier -> [] ; OptionalColumnSpecificationsOrLike_EDIT @@ -291,8 +349,8 @@ OptionalColumnSpecificationsOrLike_EDIT ; ParenthesizedColumnSpecificationList - : '(' ColumnSpecificationList ')' - | '(' ColumnSpecificationList ',' ConstraintSpecification ')' + : '(' ColumnSpecificationList ')' -> $2 + | '(' ColumnSpecificationList ',' ConstraintSpecification ')' -> $2 ; ParenthesizedColumnSpecificationList_EDIT @@ -309,8 +367,8 @@ ParenthesizedColumnSpecificationList_EDIT ; ColumnSpecificationList - : ColumnSpecification - | ColumnSpecificationList ',' ColumnSpecification -> $3 + : ColumnSpecification -> [$1] + | ColumnSpecificationList ',' ColumnSpecification -> $1.concat($3) ; ColumnSpecificationList_EDIT @@ -340,6 +398,7 @@ ColumnSpecification : ColumnIdentifier ColumnDataType OptionalColumnOptions { $$ = $1; + $$.type = $2; var keywords = []; if (parser.isImpala()) { if (!$3['primary']) { @@ -720,8 +779,9 @@ OptionalPartitionedBy PartitionedBy : HiveOrImpalaPartitioned 'BY' ParenthesizedColumnSpecificationList - | 'PARTITION' 'BY' AnyRange ParenthesizedColumnList ParenthesizedPartitionValuesList - | 'PARTITION' 'BY' 'HASH' ParenthesizedColumnList 'PARTITIONS' UnsignedNumericLiteral + | 'PARTITION' 'BY' HashClauses + | 'PARTITION' 'BY' HashClauses ',' RangeClause + | 'PARTITION' 'BY' RangeClause ; PartitionedBy_EDIT @@ -743,14 +803,51 @@ PartitionedBy_EDIT { parser.suggestKeywords(['HASH', 'RANGE']); } - | 'PARTITION' 'BY' AnyRange ParenthesizedColumnList_EDIT - | 'PARTITION' 'BY' AnyRange ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT - | 'PARTITION' 'BY' 'HASH' ParenthesizedColumnList_EDIT - | 'PARTITION' 'BY' 'HASH' ParenthesizedColumnList 'CURSOR' + | 'PARTITION' 'BY' HashClauses_EDIT + | 'PARTITION' 'BY' RangeClause_EDIT + | 'PARTITION' 'BY' HashClauses ',' 'CURSOR' + { + parser.suggestKeywords(['HASH', 'RANGE']); + } + | 'PARTITION' 'BY' HashClauses ',' RangeClause_EDIT + | 'PARTITION' 'BY' HashClauses_EDIT ',' RangeClause + ; + +HashClauses + : HashClause + | HashClauses ',' HashClause + ; + +HashClauses_EDIT + : HashClause_EDIT + | HashClauses ',' HashClause_EDIT + | HashClauses ',' HashClause_EDIT ',' HashClauses + ; + +HashClause + : 'HASH' OptionalParenthesizedColumnList 'PARTITIONS' UnsignedNumericLiteral + ; + +HashClause_EDIT + : 'HASH' OptionalParenthesizedColumnList 'CURSOR' { parser.suggestKeywords(['PARTITIONS']); } - | 'PARTITION' 'BY' 'HASH' ParenthesizedColumnList_EDIT 'PARTITIONS' UnsignedNumericLiteral + | 'HASH' ParenthesizedColumnList_EDIT + | 'HASH' OptionalParenthesizedColumnList 'PARTITIONS' 'CURSOR' + | 'HASH' ParenthesizedColumnList_EDIT 'PARTITIONS' UnsignedNumericLiteral + ; + +RangeClause + : AnyRange ParenthesizedColumnList ParenthesizedPartitionValuesList + ; + +RangeClause_EDIT + : AnyRange 'CURSOR' + | AnyRange ParenthesizedColumnList_EDIT + | AnyRange ParenthesizedColumnList 'CURSOR' + | AnyRange ParenthesizedColumnList ParenthesizedPartitionValuesList_EDIT + | AnyRange ParenthesizedColumnList_EDIT ParenthesizedPartitionValuesList ; OptionalSortBy @@ -992,38 +1089,20 @@ SkewedValueList | SkewedValueList ',' ParenthesizedSimpleValueList ; -OptionalStoredAsOrBy +OptionalRowFormat : - | StoredAsOrBy + | RowFormat ; -StoredAsOrBy - : StoredAs - | 'ROW' HiveOrImpalaFormat HiveOrImpalaRowFormat OptionalStoredAs +RowFormat + : 'ROW' HiveOrImpalaFormat HiveOrImpalaRowFormat { - $$ = parser.mergeSuggestKeywords($3, $4) + $$ = $3 } - | 'STORED' 'BY' QuotedValue OptionalWithSerdeproperties - { - $$ = { storedBy: true } - } -| 'STORED' 'BY' QuotedValue WithSerdeproperties_EDIT - { - $$ = { storedBy: true } - } ; -StoredAsOrBy_EDIT - : HiveOrImpalaStored 'CURSOR' - { - if (parser.isHive()) { - parser.suggestKeywords(['AS', 'BY']); - } else { - parser.suggestKeywords(['AS']); - } - } - | StoredAs_EDIT - | 'ROW' 'CURSOR' +RowFormat_EDIT + : 'ROW' 'CURSOR' { parser.suggestKeywords(['FORMAT']); } @@ -1036,11 +1115,31 @@ StoredAsOrBy_EDIT } } | 'ROW' HiveOrImpalaFormat HiveOrImpalaRowFormat_EDIT - | 'ROW' HiveOrImpalaFormat HiveOrImpalaRowFormat HiveOrImpalaStored 'CURSOR' + ; + +OptionalStoredAsOrBy + : + | StoredAsOrBy + ; + +StoredAsOrBy + : StoredAs + | 'STORED' 'BY' QuotedValue + { + $$ = { storedBy: true } + } + ; + +StoredAsOrBy_EDIT + : HiveOrImpalaStored 'CURSOR' { - parser.suggestKeywords(['AS']); + if (parser.isHive()) { + parser.suggestKeywords(['AS', 'BY']); + } else { + parser.suggestKeywords(['AS']); + } } - | 'ROW' HiveOrImpalaFormat HiveOrImpalaRowFormat StoredAs_EDIT + | StoredAs_EDIT ; OptionalStoredAs @@ -1062,6 +1161,7 @@ StoredAs_EDIT FileFormat : 'AVRO' | 'INPUTFORMAT' QuotedValue 'OUTPUTFORMAT' QuotedValue + | 'JSONFILE' | 'ORC' | 'PARQUET' | 'RCFILE' @@ -1088,8 +1188,7 @@ HiveOrImpalaRowFormat_EDIT HiveRowFormat : HiveDelimitedRowFormat - | 'SERDE' QuotedValue OptionalWithSerdeproperties - | 'SERDE' QuotedValue WithSerdeproperties_EDIT + | 'SERDE' QuotedValue ; HiveRowFormat_EDIT @@ -1130,7 +1229,7 @@ HiveDelimitedRowFormat_EDIT ; ImpalaRowFormat - : 'DELIMITED' OptionalFieldsTerminatedBy OptionalLinesTerminatedBy OptionalWithSerdeproperties + : 'DELIMITED' OptionalFieldsTerminatedBy OptionalLinesTerminatedBy { if (!$2 && !$3) { $$ = { suggestKeywords: [{ value: 'FIELDS TERMINATED BY', weight: 2 }, { value: 'LINES TERMINATED BY', weight: 1 }] }; @@ -1143,8 +1242,8 @@ ImpalaRowFormat ; ImpalaRowFormat_EDIT - : 'DELIMITED' OptionalFieldsTerminatedBy_EDIT OptionalLinesTerminatedBy OptionalWithSerdeproperties - | 'DELIMITED' OptionalFieldsTerminatedBy OptionalLinesTerminatedBy_EDIT OptionalWithSerdeproperties + : 'DELIMITED' OptionalFieldsTerminatedBy_EDIT OptionalLinesTerminatedBy + | 'DELIMITED' OptionalFieldsTerminatedBy OptionalLinesTerminatedBy_EDIT ; OptionalFieldsTerminatedBy @@ -1242,20 +1341,50 @@ OptionalNullDefinedAs_EDIT OptionalWithSerdeproperties : - | WithSerdeproperties + | ImpalaWithSerdeproperties + | HiveWithSerdeproperties ; -WithSerdeproperties - : 'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList - | 'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList +OptionalImpalaWithSerdeproperties + : + | ImpalaWithSerdeproperties ; +OptionalHiveWithSerdeproperties + : + | HiveWithSerdeproperties + ; + +ImpalaWithSerdeproperties + :'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList + ; + +HiveWithSerdeproperties + :'WITH' 'SERDEPROPERTIES' ParenthesizedPropertyAssignmentList + ; + WithSerdeproperties_EDIT - : 'WITH' 'CURSOR' + : HiveWithSerdeproperties_EDIT + | ImpalaWithSerdeproperties_EDIT + ; + +HiveWithSerdeproperties_EDIT + : 'WITH' 'CURSOR' { parser.suggestKeywords(['SERDEPROPERTIES']); } - | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList + | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList + { + parser.suggestKeywords(['SERDEPROPERTIES']); + } + ; + +ImpalaWithSerdeproperties_EDIT + : 'WITH' 'CURSOR' + { + parser.suggestKeywords(['SERDEPROPERTIES']); + } + | 'WITH' 'CURSOR' ParenthesizedPropertyAssignmentList { parser.suggestKeywords(['SERDEPROPERTIES']); } @@ -1728,19 +1857,8 @@ AnyRole IndexDefinition : AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalStoredAsOrBy OptionalHdfsLocation - OptionalTblproperties OptionalComment - ; - -ExistingTable - : SchemaQualifiedTableIdentifier - { - parser.addTablePrimary($1); - } - ; - -ExistingTable_EDIT - : SchemaQualifiedTableIdentifier_EDIT + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat + OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment ; IndexDefinition_EDIT @@ -1769,50 +1887,71 @@ IndexDefinition_EDIT parser.suggestKeywords(['\'BITMAP\'', '\'COMPACT\'']); } | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType_EDIT OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalStoredAsOrBy OptionalHdfsLocation + 'AS' IndexType_EDIT OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable_EDIT ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalStoredAsOrBy OptionalHdfsLocation + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList_EDIT - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalStoredAsOrBy OptionalHdfsLocation + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild_EDIT OptionalIdxProperties OptionalInTable OptionalStoredAsOrBy OptionalHdfsLocation + 'AS' IndexType OptionalWithDeferredRebuild_EDIT OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable_EDIT OptionalStoredAsOrBy OptionalHdfsLocation + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable_EDIT OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable StoredAsOrBy_EDIT OptionalHdfsLocation + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable RowFormat_EDIT OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalStoredAsOrBy HdfsLocation_EDIT + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat StoredAsOrBy_EDIT OptionalHdfsLocation + OptionalTblproperties OptionalComment + { + if ($13 && parser.yy.result.suggestKeywords && parser.yy.result.suggestKeywords.length === 2) { + parser.suggestKeywords(['AS']); + } + } + | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy HdfsLocation_EDIT OptionalTblproperties OptionalComment | AnyCreate 'INDEX' RegularOrBacktickedIdentifier 'ON' 'TABLE' ExistingTable ParenthesizedIndexColumnList - 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalStoredAsOrBy OptionalHdfsLocation + 'AS' IndexType OptionalWithDeferredRebuild OptionalIdxProperties OptionalInTable OptionalRowFormat OptionalStoredAsOrBy OptionalHdfsLocation OptionalTblproperties OptionalComment 'CURSOR' { - if (!$10 && !$11 && !$12 && !$13 && !$14 && !$15 && !$16) { + if (!$10 && !$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { parser.suggestKeywords([{ value: 'WITH DEFERRED REBUILD', weight: 7 }, { value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$11 && !$12 && !$13 && !$14 && !$15 && !$16) { + } else if (!$11 && !$12 && !$13 && !$14 && !$15 && !$16 && !$17) { parser.suggestKeywords([{ value: 'IDXPROPERTIES', weight: 6 }, { value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$12 && !$13 && !$14 && !$15 && !$16) { + } else if (!$12 && !$13 && !$14 && !$15 && !$16 && !$17) { parser.suggestKeywords([{ value: 'IN TABLE', weight: 5 }, { value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$13 && !$14 && !$15 && !$16) { + } else if (!$13 && !$14 && !$15 && !$16 && !$17) { parser.suggestKeywords([{ value: 'ROW FORMAT', weight: 4 }, { value: 'STORED AS', weight: 4 }, { value: 'STORED BY', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); } else if ($13 && $13.suggestKeywords && !$14 && !$15 && !$16) { - parser.suggestKeywords(parser.createWeightedKeywords($13.suggestKeywords, 4).concat([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); - } else if (!$14 && !$15 && !$16) { + parser.suggestKeywords(parser.createWeightedKeywords($13.suggestKeywords, 5).concat([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }])); + } else if (!$14 && !$15 && !$16 && !$17) { + parser.suggestKeywords([{ value: 'STORED AS', weight: 4 }, { value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); + } else if (!$15 && !$16 && !$17) { parser.suggestKeywords([{ value: 'LOCATION', weight: 3 }, { value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$15 && !$16) { + } else if (!$16 && !$17) { parser.suggestKeywords([{ value: 'TBLPROPERTIES', weight: 2 }, { value: 'COMMENT', weight: 1 }]); - } else if (!$16) { + } else if (!$17) { parser.suggestKeywords([{ value: 'COMMENT', weight: 1 }]); } } ; +ExistingTable + : SchemaQualifiedTableIdentifier + { + parser.addTablePrimary($1); + } + ; + +ExistingTable_EDIT + : SchemaQualifiedTableIdentifier_EDIT + ; + IndexType : QuotedValue ; @@ -1826,15 +1965,15 @@ IndexType_EDIT OptionalWithDeferredRebuild : - | 'WITH' 'DEFERRED' 'REBUILD' + | 'WITH' 'DEFERRED' 'REBUILD' ; OptionalWithDeferredRebuild_EDIT - : 'WITH' 'CURSOR' + : 'WITH' 'CURSOR' { parser.suggestKeywords(['DEFERRED REBUILD']); } - | 'WITH' 'DEFERRED' 'CURSOR' + | 'WITH' 'DEFERRED' 'CURSOR' { parser.suggestKeywords(['REBUILD']); } diff --git a/src/jison/sql_drop.jison b/src/jison/sql_drop.jison old mode 100755 new mode 100644 diff --git a/src/jison/sql_error.jison b/src/jison/sql_error.jison old mode 100755 new mode 100644 diff --git a/src/jison/sql_grant.jison b/src/jison/sql_grant.jison old mode 100755 new mode 100644 index 0b09ddb..bd9dfc9 --- a/src/jison/sql_grant.jison +++ b/src/jison/sql_grant.jison @@ -185,6 +185,9 @@ HiveObjectSpecification_EDIT ImpalaObjectSpecification : 'DATABASE' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@2, [ { name: $2 } ]); + } | 'TABLE' SchemaQualifiedTableIdentifier { parser.addTablePrimary($2); @@ -310,20 +313,20 @@ UserOrRoleList OptionalWithGrantOption : - | 'WITH' 'GRANT' 'OPTION' - | 'WITH' 'GRANT' 'OPTION' + | 'WITH' 'GRANT' 'OPTION' + | 'WITH' 'GRANT' 'OPTION' ; WithGrantOption_EDIT - : 'WITH' 'CURSOR' + : AnyWith 'CURSOR' { parser.suggestKeywords(['GRANT OPTION']); } - | 'WITH' 'GRANT' 'CURSOR' + | 'WITH' 'GRANT' 'CURSOR' { parser.suggestKeywords(['OPTION']); } - | 'WITH' 'GRANT' 'CURSOR' + | 'WITH' 'GRANT' 'CURSOR' { parser.suggestKeywords(['OPTION']); } @@ -331,15 +334,15 @@ WithGrantOption_EDIT OptionalWithAdminOption : - | 'WITH' 'ADMIN' 'OPTION' + | 'WITH' 'ADMIN' 'OPTION' ; WithAdminOption_EDIT - : 'WITH' 'CURSOR' + : 'WITH' 'CURSOR' { parser.suggestKeywords(['ADMIN OPTION']); } - | 'WITH' 'ADMIN' 'CURSOR' + | 'WITH' 'ADMIN' 'CURSOR' { parser.suggestKeywords(['OPTION']); } diff --git a/src/jison/sql_insert.jison b/src/jison/sql_insert.jison old mode 100755 new mode 100644 index 4611b40..10b4dc7 --- a/src/jison/sql_insert.jison +++ b/src/jison/sql_insert.jison @@ -267,11 +267,6 @@ InsertValuesStatement $4.owner = 'insert'; parser.addTablePrimary($4); } - | 'INSERT' 'OVERWRITE' OptionalHiveTable SchemaQualifiedTableIdentifier OptionalPartitionSpec 'VALUES' InsertValuesList - { - $4.owner = 'insert'; - parser.addTablePrimary($4); - } | 'INSERT' 'INTO' OptionalTable SchemaQualifiedTableIdentifier 'VALUES' InsertValuesList { $4.owner = 'insert'; @@ -304,7 +299,7 @@ InsertValuesStatement_EDIT InsertValuesList : ParenthesizedRowValuesList - | ParenthesizedRowValuesList ',' InsertValuesList + | RowValuesList ',' ParenthesizedRowValuesList ; ParenthesizedRowValuesList diff --git a/src/jison/sql_load.jison b/src/jison/sql_load.jison old mode 100755 new mode 100644 diff --git a/src/jison/sql_main.jison b/src/jison/sql_main.jison old mode 100755 new mode 100644 index 58bc4bb..9e6a883 --- a/src/jison/sql_main.jison +++ b/src/jison/sql_main.jison @@ -149,6 +149,7 @@ NonReservedKeyword | 'INPATH' | 'INPUTFORMAT' | 'JAR' + | 'JSONFILE' | 'IDXPROPERTIES' | 'ITEMS' | 'KEY' @@ -199,7 +200,6 @@ NonReservedKeyword | 'STATISTICS' | 'STORED' | 'STRING' - | 'STRUCT' | 'TABLES' | 'TBLPROPERTIES' | 'TEMPORARY' @@ -208,6 +208,7 @@ NonReservedKeyword | 'TIMESTAMP' | 'TINYINT' | 'TOUCH' + | 'TRANSACTIONAL' | 'TRANSACTIONS' | 'UNARCHIVE' | 'UNIONTYPE' @@ -238,30 +239,17 @@ NonReservedKeyword ; NonReservedKeyword - : 'ANALYTIC' -// | 'ANTI' - | 'CURRENT' - | 'GRANT' - | 'RECOVER' - | 'ROLE' - | 'ROLES' - | 'URI' - | 'SERVER' - | 'UNKNOWN' -// | 'BROADCAST' -// | 'NOSHUFFLE' -// | 'SHUFFLE' -// TODO: Check if following are true - | 'BLOCK_SIZE' - | 'COMPRESSION' - | 'DEFAULT' - | 'ENCODING' + : 'DEFAULT' | 'KEY' + | 'OWNER' + | 'SERVER' + | 'URI' ; NonReservedKeyword : 'ROLE' | 'OPTION' + | 'STRUCT' ; RegularIdentifier @@ -300,14 +288,545 @@ OptionalHiveExplainTypes // This is a work-around for error handling when a statement starts with some token that the parser can understand but // it's not a valid statement (see ErrorStatement). It contains everything except valid starting tokens ('SELECT', 'USE' etc.) NonStartingToken - : 'ADMIN' | 'ALL' | 'AS' | 'AUTHORIZATION' | 'AVRO' | 'BINARY' | 'BUCKET' | 'BUCKETS' | 'CACHE' | 'CLUSTER' | 'CLUSTERED' | 'COLLECTION' | 'COMPUTE' | 'CONF' | 'CONSTRAINT' | 'CUBE' | 'CURRENT' | 'DBPROPERTIES' | 'DATE' | 'DEFERRED' | 'DELIMITED' | 'DEPENDENCY' | 'DIRECTORY' | 'DISTRIBUTE' | 'DISTRIBUTED' | 'DOUBLE_PRECISION' |'ESCAPED' | 'EXTENDED' | 'EXTERNAL' | 'FIELDS' | 'FILE' | 'FOR' | 'FOREIGN' | 'FORMAT' | 'FUNCTION' | 'GRANT' | 'GROUPING' | 'IDXPROPERTIES' | 'KEY' | 'LATERAL' | 'LOCAL' | 'LOCK' | 'MACRO' | 'MATCHED' | 'NORELY' | 'NOVALIDATE' | 'OVERWRITE' | 'OWNER' | 'PARTITION' | 'PERCENT' | 'PRIVILEGES' | 'PRIMARY' | 'REBUILD' | 'REFERENCES' | 'RELY' | 'REPAIR' | 'REPLICATION' |'ROLLUP' | 'SETS' | 'STATISTICS' | 'SHOW_DATABASE' | 'TABLE' | 'TIMESTAMP' |'USER' | 'ASC' | 'COLUMNS' | 'COMMENT' | 'COMPACTIONS' | 'DATA' | 'DATABASES' | 'DEFINED' | 'FORMATTED' | 'FUNCTIONS' | 'INDEX' | 'INDEXES' | 'INPATH' | 'INPUTFORMAT' | 'ITEMS' | 'JAR' | 'KEYS' | 'LINES' | 'LOCATION' | 'LOCKS' | 'METADATA' | 'NONE' | 'NOSCAN' | 'OF' | 'ORC' | 'OUT' | 'OUTPUTFORMAT' | 'PARQUET' | 'PARTITIONED' | 'PARTITIONS' | 'RCFILE' | 'ROLE' | 'ROLES' | 'SCHEMA' | 'SCHEMAS' | 'SEQUENCEFILE' | 'SERDE' | 'SERDEPROPERTIES' | 'SKEWED' | 'SORTED' | 'STORED' | 'STORED_AS_DIRECTORIES' | 'STRING' | 'TABLES' | 'TABLESAMPLE' | 'TBLPROPERTIES' | 'TEMPORARY' | 'TERMINATED' | 'TEXTFILE' | 'TINYINT' | 'TRANSACTIONS' | 'UNIONTYPE' | 'USING' | 'VIEW' | 'VIEWS' | 'WAIT' | 'WINDOW' | '.' | '[' | ']' - | 'AGGREGATE' | 'AVRO' | 'CACHED' | 'CASCADE' | 'CLOSE_FN' | 'COLUMN' | 'DATA' | 'DATABASES' | 'DELETE' | 'DELIMITED' | 'ESCAPED' | 'EXTENDED' |'EXTERNAL' | 'FIELDS' | 'FILES' | 'FINALIZE_FN' | 'FIRST' | 'FORMAT' | 'FORMATTED' | 'FUNCTION' | 'FUNCTIONS' | 'GROUP' | 'HASH' | 'ILIKE' | 'INCREMENTAL' | 'INTERMEDIATE' | 'INTERVAL' | 'INIT_FN' | 'INPATH' | 'IREGEXP' | 'KEY' | 'KUDU' | 'LAST' | 'LIMIT' | 'LINES' | 'LOCATION' | 'MERGE_FN' | 'NULLS' | 'PARTITIONS' | 'PREPARE_FN' | 'PRIMARY' | 'RANGE' | 'REAL' | 'RECOVER' | 'REPEATABLE' | 'REPLICATION' | 'RESTRICT' | 'RETURNS' | 'SCHEMAS' | 'SERIALIZE_FN' | 'SERVER' | 'SORT' | 'STATS' | 'STRAIGHT_JOIN' | 'SYMBOL' | 'TABLE' | 'TABLES' | 'TABLESAMPLE' | 'URI' | 'USING' | 'ANALYTIC' | 'ANTI' | 'CURRENT' | 'GRANT' | 'NOSHUFFLE' | 'PARQUET' | 'PARTITIONED' | 'RCFILE' | 'ROLE' | 'ROLES' | 'SEQUENCEFILE' | 'SERDEPROPERTIES' | 'SHUFFLE' | 'STORED' | 'TBLPROPERTIES' | 'TERMINATED' | 'TEXTFILE' | 'UPDATE_FN' | 'BROADCAST' | '...' | '.' | '[' | ']' - | 'ALL' | 'ARRAY' | 'AS' | 'ASC' | 'BETWEEN' | 'BIGINT' | 'BOOLEAN' | 'BY' | 'CASE' | 'CHAR' | 'CROSS' | 'CURRENT' | 'DATABASE' | 'DECIMAL' | 'DISTINCT' | 'DOUBLE' | 'DESC' | 'ELSE' | 'END' | 'EXISTS' | 'FALSE' | 'FLOAT' | 'FOLLOWING' | 'FROM' | 'FULL' | 'GROUP' | 'HAVING' | 'IF' | 'IN' | 'INNER' | 'INT' | 'INTO' | 'IS' | 'JOIN' | 'LEFT' | 'LIKE' | 'LIMIT' | 'MAP' | 'NOT' | 'NULL' | 'ON' | 'OPTION' | 'ORDER' | 'OUTER' | 'OVER' | 'PARTITION' | 'PRECEDING' | 'PURGE' | 'RANGE' | 'REGEXP' | 'RIGHT' | 'RLIKE' | 'ROW' | 'ROWS' | 'SCHEMA' | 'SEMI' | 'SET' | 'SMALLINT' | 'STRING' | 'STRUCT' | 'TABLE' | 'THEN' | 'TIMESTAMP' | 'TINYINT' | 'TRUE' | 'UNION' | 'VALUES' | 'VARCHAR' | 'WHEN' | 'WHERE' | 'WITH' | 'ROLE' - | 'AVG' | 'CAST' | 'COUNT' | 'MAX' | 'MIN' | 'STDDEV_POP' | 'STDDEV_SAMP' | 'SUM' | 'VARIANCE' | 'VAR_POP' | 'VAR_SAMP' - | 'COLLECT_SET' | 'COLLECT_LIST' | 'CORR' | 'COVAR_POP' | 'COVAR_SAMP' | 'DAY' | 'DAYOFWEEK' | 'HISTOGRAM_NUMERIC' | 'HOUR' | 'MINUTE' | 'MONTH' | 'NTILE' | 'PERCENTILE' | 'PERCENTILE_APPROX' | 'QUARTER' | 'SECOND' | 'WEEK' | 'YEAR' - | 'APPX_MEDIAN' | 'EXTRACT' | 'GROUP_CONCAT' | 'NDV' | 'STDDEV' | 'VARIANCE_POP' | 'VARIANCE_SAMP' + : '.' + | '[' + | ']' + | 'ADMIN' + | 'ALL' + | 'AS' + | 'ASC' + | 'AUTHORIZATION' + | 'AVRO' + | 'BINARY' + | 'BUCKET' + | 'BUCKETS' + | 'CACHE' + | 'CLUSTER' + | 'CLUSTERED' + | 'COLLECT_LIST' + | 'COLLECT_SET' + | 'COLLECTION' + | 'COLUMNS' + | 'COMMENT' + | 'COMPACTIONS' + | 'COMPUTE' + | 'CONF' + | 'CONSTRAINT' + | 'CORR' + | 'COVAR_POP' + | 'COVAR_SAMP' + | 'CUBE' + | 'CURRENT' + | 'DATA' + | 'DATABASES' + | 'DATE' + | 'DAY' + | 'DAYOFWEEK' + | 'DBPROPERTIES' + | 'DEFERRED' + | 'DEFINED' + | 'DELIMITED' + | 'DEPENDENCY' + | 'DESC' + | 'DIRECTORY' + | 'DISTRIBUTE' + | 'DISTRIBUTED' + | 'DOUBLE_PRECISION' |'ESCAPED' + | 'EXTENDED' + | 'EXTERNAL' + | 'FIELDS' + | 'FILE' + | 'FOR' + | 'FOREIGN' + | 'FORMAT' + | 'FORMATTED' + | 'FUNCTION' + | 'FUNCTIONS' + | 'GRANT' + | 'GROUPING' + | 'HISTOGRAM_NUMERIC' + | 'HOUR' + | 'IDXPROPERTIES' + | 'INDEX' + | 'INDEXES' + | 'INPATH' + | 'INPUTFORMAT' + | 'ITEMS' + | 'JAR' + | 'JSONFILE' + | 'KEY' + | 'KEYS' + | 'LATERAL' + | 'LINES' + | 'LOCAL' + | 'LOCATION' + | 'LOCK' + | 'LOCKS' + | 'MACRO' + | 'MATCHED' + | 'METADATA' + | 'MINUTE' + | 'MONTH' + | 'NONE' + | 'NORELY' + | 'NOSCAN' + | 'NOVALIDATE' + | 'NTILE' + | 'OF' + | 'ORC' + | 'OUT' + | 'OUTPUTFORMAT' + | 'OVERWRITE' + | 'OWNER' + | 'PARQUET' + | 'PARTITION' + | 'PARTITIONED' + | 'PARTITIONS' + | 'PERCENT' + | 'PERCENTILE' + | 'PERCENTILE_APPROX' + | 'PRIMARY' + | 'PRIVILEGES' + | 'QUARTER' + | 'RCFILE' + | 'REBUILD' + | 'REFERENCES' + | 'RELY' + | 'REPAIR' + | 'REPLICATION' |'ROLLUP' + | 'ROLE' + | 'ROLES' + | 'SCHEMA' + | 'SCHEMAS' + | 'SECOND' + | 'SEQUENCEFILE' + | 'SERDE' + | 'SERDEPROPERTIES' + | 'SETS' + | 'SHOW_DATABASE' + | 'SKEWED' + | 'SORTED' + | 'STATISTICS' + | 'STORED' + | 'STORED_AS_DIRECTORIES' + | 'STRING' + | 'TABLE' + | 'TABLES' + | 'TABLESAMPLE' + | 'TBLPROPERTIES' + | 'TEMPORARY' + | 'TERMINATED' + | 'TEXTFILE' + | 'TIMESTAMP' |'USER' + | 'TINYINT' + | 'TRANSACTIONAL' + | 'TRANSACTIONS' + | 'UNIONTYPE' + | 'USING' + | 'VIEW' + | 'VIEWS' + | 'WAIT' + | 'WEEK' + | 'WINDOW' + | 'YEAR' + | '.' + | '...' + | '[' + | ']' + | 'AGGREGATE' + | 'ALLOCATE' + | 'ANALYTIC' + | 'ANTI' + | 'ANY' + | 'APPX_MEDIAN' + | 'ARE' + | 'ARRAY_AGG' + | 'ARRAY_MAX_CARDINALITY' + | 'ASENSITIVE' + | 'ASYMMETRIC' + | 'AT' + | 'ATOMIC' + | 'AUTHORIZATION' + | 'AVRO' + | 'BEGIN_FRAME' + | 'BEGIN_PARTITION' + | 'BLOB' + | 'BLOCK_SIZE' + | 'BOTH' + | 'BROADCAST' + | 'CACHED' + | 'CALLED' + | 'CARDINALITY' + | 'CASCADE' + | 'CASCADED' + | 'CHARACTER' + | 'CLOB' + | 'CLOSE_FN' + | 'COLLATE' + | 'COLLECT' + | 'COLUMN' + | 'COMMIT' + | 'CONDITION' + | 'CONNECT' + | 'CONSTRAINT' + | 'CONTAINS' + | 'CONVERT' + | 'COPY' + | 'CORR' + | 'CORRESPONDING' + | 'COVAR_POP' + | 'COVAR_SAMP' + | 'CUBE' + | 'CURRENT' + | 'CURRENT_DATE' + | 'CURRENT_DEFAULT_TRANSFORM_GROUP' + | 'CURRENT_PATH' + | 'CURRENT_ROLE' + | 'CURRENT_ROW' + | 'CURRENT_SCHEMA' + | 'CURRENT_TIME' + | 'CURRENT_TRANSFORM_GROUP_FOR_TYPE' + | 'CURSOR' + | 'CYCLE' + | 'DATA' + | 'DATABASES' + | 'DEALLOCATE' + | 'DEC' + | 'DECFLOAT' + | 'DECLARE' + | 'DEFINE' + | 'DELETE' + | 'DELIMITED' + | 'DEREF' + | 'DETERMINISTIC' + | 'DISCONNECT' + | 'DYNAMIC' + | 'EACH' + | 'ELEMENT' + | 'EMPTY' + | 'END_FRAME' + | 'END_PARTITION' + | 'EQUALS' + | 'ESCAPE' + | 'ESCAPED' + | 'EVERY' + | 'EXCEPT' + | 'EXEC' + | 'EXECUTE' + | 'EXTENDED' + | 'EXTERNAL' + | 'EXTRACT' + | 'FETCH' + | 'FIELDS' + | 'FILES' + | 'FILTER' + | 'FINALIZE_FN' + | 'FIRST' + | 'FOR' + | 'FOREIGN' + | 'FORMAT' + | 'FORMATTED' + | 'FRAME_ROW' + | 'FREE' + | 'FUNCTION' + | 'FUNCTIONS' + | 'FUSION' + | 'GET' + | 'GLOBAL' + | 'GRANT' + | 'GROUP' + | 'GROUP_CONCAT' + | 'GROUPING' + | 'GROUPS' + | 'HASH' + | 'HOLD' + | 'IGNORE' + | 'ILIKE' + | 'INCREMENTAL' + | 'INDICATOR' + | 'INIT_FN' + | 'INITIAL' + | 'INOUT' + | 'INPATH' + | 'INSENSITIVE' + | 'INTERMEDIATE' + | 'INTERSECT' + | 'INTERSECTION' + | 'INTERVAL' + | 'IREGEXP' + | 'JSON_ARRAY' + | 'JSON_ARRAYAGG' + | 'JSON_EXISTS' + | 'JSON_OBJECT' + | 'JSON_OBJECTAGG' + | 'JSON_QUERY' + | 'JSON_TABLE' + | 'JSON_TABLE_PRIMITIVE' + | 'JSON_VALUE' + | 'KEY' + | 'KUDU' + | 'LARGE' + | 'LAST' + | 'LATERAL' + | 'LEADING' + | 'LIKE_REGEX' + | 'LIMIT' + | 'LINES' + | 'LISTAGG' + | 'LOCAL' + | 'LOCALTIMESTAMP' + | 'LOCATION' + | 'MATCH' + | 'MATCH_NUMBER' + | 'MATCH_RECOGNIZE' + | 'MATCHES' + | 'MERGE' + | 'MERGE_FN' + | 'METHOD' + | 'MODIFIES' + | 'MULTISET' + | 'NATIONAL' + | 'NATURAL' + | 'NCHAR' + | 'NCLOB' + | 'NDV' + | 'NO' + | 'NONE' + | 'NORMALIZE' + | 'NOSHUFFLE' + | 'NTH_VALUE' + | 'NULLS' + | 'NUMERIC' + | 'OCCURRENCES_REGEX' + | 'OCTET_LENGTH' + | 'OF' + | 'OMIT' + | 'ONE' + | 'ONLY' + | 'OUT' + | 'OVER' + | 'OVERLAPS' + | 'OVERLAY' + | 'OWNER' + | 'PARQUET' + | 'PARTITIONED' + | 'PARTITIONS' + | 'PATTERN' + | 'PER' + | 'PERCENT' + | 'PERCENTILE_CONT' + | 'PERCENTILE_DISC' + | 'PORTION' + | 'POSITION' + | 'POSITION_REGEX' + | 'PRECEDES' + | 'PREPARE' + | 'PREPARE_FN' + | 'PRIMARY' + | 'PROCEDURE' + | 'PTF' + | 'RANGE' + | 'RCFILE' + | 'READS' + | 'REAL' + | 'RECOVER' + | 'RECURSIVE' + | 'REF' + | 'REFERENCES' + | 'REFERENCING' + | 'REGR_AVGX' + | 'REGR_AVGY' + | 'REGR_COUNT' + | 'REGR_INTERCEPT' + | 'REGR_R2REGR_SLOPE' + | 'REGR_SXX' + | 'REGR_SXY' + | 'REGR_SYY' + | 'RELEASE' + | 'REPEATABLE' + | 'REPLICATION' + | 'RESTRICT' + | 'RETURNS' + | 'ROLE' + | 'ROLES' + | 'ROLLBACK' + | 'ROLLUP' + | 'RUNNING' + | 'SAVEPOINT' + | 'SCHEMAS' + | 'SCOPE' + | 'SCROLL' + | 'SEARCH' + | 'SEEK' + | 'SENSITIVE' + | 'SEQUENCEFILE' + | 'SERDEPROPERTIES' + | 'SERIALIZE_FN' + | 'SERVER' + | 'SHUFFLE' + | 'SIMILAR' + | 'SKIP' + | 'SOME' + | 'SORT' + | 'SPECIFIC' + | 'SPECIFICTYPE' + | 'SQLEXCEPTION' + | 'SQLSTATE' + | 'SQLWARNING' + | 'STATIC' + | 'STATS' + | 'STDDEV' + | 'STORED' + | 'STRAIGHT_JOIN' + | 'SUBMULTISET' + | 'SUBSET' + | 'SUBSTRING_REGEX' + | 'SUCCEEDS' + | 'SYMBOL' + | 'SYMMETRIC' + | 'SYSTEM_TIME' + | 'SYSTEM_USER' + | 'TABLE' + | 'TABLES' + | 'TABLESAMPLE' + | 'TBLPROPERTIES' + | 'TERMINATED' + | 'TEXTFILE' + | 'TIMEZONE_HOUR' + | 'TIMEZONE_MINUTE' + | 'TRAILING' + | 'TRANSLATE_REGEX' + | 'TRANSLATION' + | 'TREAT' + | 'TRIGGER' + | 'TRIM_ARRAY' + | 'UESCAPE' + | 'UNIQUE' + | 'UNNEST' + | 'UPDATE_FN' + | 'URI' + | 'USER' + | 'USING' + | 'VALUE_OF' + | 'VARBINARY' + | 'VARCHAR' + | 'VARIANCE_POP' + | 'VARIANCE_SAMP' + | 'VARYING' + | 'VERSIONING' + | 'WHENEVER' + | 'WIDTH_BUCKET' + | 'WINDOW' + | 'WITHIN' + | 'WITHOUT' + | '!' + | '(' + | ')' + | '*' + | ',' + | '-' + | '.' + | '<' + | '=' + | '>' + | '[' + | ']' + | '~' + | 'ALL' | 'ANALYTIC' - | 'UNSIGNED_INTEGER' | 'UNSIGNED_INTEGER_E' | 'REGULAR_IDENTIFIER' | 'HDFS_START_QUOTE' | 'AND' | 'OR' | '=' | '<' | '>' | 'COMPARISON_OPERATOR' | '-' | '*' | 'ARITHMETIC_OPERATOR' | ',' | '.' | '~' | '!' | '(' | ')' | '[' | ']' | 'VARIABLE_REFERENCE' | 'BACKTICK' | 'SINGLE_QUOTE' | 'DOUBLE_QUOTE' + | 'AND' + | 'ARITHMETIC_OPERATOR' + | 'ARRAY' + | 'AS' + | 'ASC' + | 'AVG' + | 'BACKTICK' + | 'BETWEEN' + | 'BIGINT' + | 'BOOLEAN' + | 'BY' + | 'CASE' + | 'CAST' + | 'CHAR' + | 'COMPARISON_OPERATOR' + | 'COUNT' + | 'CROSS' + | 'CURRENT' + | 'DATABASE' + | 'DECIMAL' + | 'DESC' + | 'DISTINCT' + | 'DOUBLE' + | 'DOUBLE_QUOTE' + | 'ELSE' + | 'END' + | 'EXISTS' + | 'FALSE' + | 'FLOAT' + | 'FOLLOWING' + | 'FROM' + | 'FULL' + | 'GROUP' + | 'HAVING' + | 'HDFS_START_QUOTE' + | 'IF' + | 'IN' + | 'INNER' + | 'INT' + | 'INTO' + | 'IS' + | 'JOIN' + | 'LEFT' + | 'LIKE' + | 'LIMIT' + | 'MAP' + | 'MAX' + | 'MIN' + | 'NOT' + | 'NULL' + | 'ON' + | 'OPTION' + | 'OR' + | 'ORDER' + | 'OUTER' + | 'OVER' + | 'PARTITION' + | 'PRECEDING' + | 'PURGE' + | 'RANGE' + | 'REGEXP' + | 'REGULAR_IDENTIFIER' + | 'RIGHT' + | 'RLIKE' + | 'ROLE' + | 'ROW' + | 'ROWS' + | 'SCHEMA' + | 'SEMI' + | 'SET' + | 'SINGLE_QUOTE' + | 'SMALLINT' + | 'STDDEV_POP' + | 'STDDEV_SAMP' + | 'STRING' + | 'STRUCT' + | 'SUM' + | 'TABLE' + | 'THEN' + | 'TIMESTAMP' + | 'TINYINT' + | 'TRUE' + | 'UNION' + | 'UNSIGNED_INTEGER' + | 'UNSIGNED_INTEGER_E' + | 'VALUES' + | 'VAR_POP' + | 'VAR_SAMP' + | 'VARCHAR' + | 'VARIABLE_REFERENCE' + | 'VARIANCE' + | 'WHEN' + | 'WHERE' ; DataDefinition @@ -374,6 +893,12 @@ AnyTable | 'TABLE' ; +AnyWith + : 'WITH' + | 'WITH' + | 'WITH' + ; + DatabaseOrSchema : 'DATABASE' | 'SCHEMA' @@ -472,6 +997,11 @@ HiveRoleOrUser | 'USER' ; +ImpalaRoleOrUser + : 'ROLE' + | 'USER' + ; + SingleQuotedValue : 'SINGLE_QUOTE' 'VALUE' 'SINGLE_QUOTE' -> $2 | 'SINGLE_QUOTE' 'SINGLE_QUOTE' -> '' @@ -577,6 +1107,11 @@ OptionalHiveTemporary | 'TEMPORARY' ; +OptionalHiveTransactional + : + | 'TRANSACTIONAL' + ; + OptionalIfExists : | 'IF' 'EXISTS' @@ -821,8 +1356,8 @@ ImpalaField_EDIT ; SchemaQualifiedIdentifier - : RegularOrBacktickedIdentifier - | RegularOrBacktickedIdentifier AnyDot RegularOrBacktickedIdentifier + : RegularOrBacktickedIdentifier -> [{ name: $1 }] + | RegularOrBacktickedIdentifier AnyDot RegularOrBacktickedIdentifier -> [{ name: $1 }, { name: $2 }] ; SchemaQualifiedIdentifier_EDIT @@ -934,15 +1469,15 @@ OptionalWithReplication ; WithReplication - : 'WITH' 'REPLICATION' '=' SignedInteger + : 'WITH' 'REPLICATION' '=' SignedInteger ; WithReplication_EDIT - : 'WITH' 'CURSOR' + : 'WITH' 'CURSOR' { parser.suggestKeywords(['REPLICATION =']); } - | 'WITH' 'REPLICATION' 'CURSOR' + | 'WITH' 'REPLICATION' 'CURSOR' { parser.suggestKeywords(['=']); } @@ -1187,41 +1722,41 @@ DescribeStatement_EDIT ; HiveDescribeStatement - : HiveDesc OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec + : 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec { parser.addTablePrimary($3); parser.addColumnLocation(@4, $4); } - | HiveDesc OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec + | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec { parser.addTablePrimary($3); } - | HiveDesc DatabaseOrSchema OptionalHiveExtended DatabaseIdentifier + | 'DESCRIBE' DatabaseOrSchema OptionalHiveExtended DatabaseIdentifier { parser.addDatabaseLocation(@4, [{ name: $4 }]); } - | HiveDesc 'FUNCTION' OptionalHiveExtended RegularIdentifier + | 'DESCRIBE' 'FUNCTION' OptionalHiveExtended RegularIdentifier ; HiveDescribeStatement_EDIT - : HiveDesc OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec - | HiveDesc OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain_EDIT OptionalPartitionSpec + : 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier_EDIT OptionalPartitionSpec + | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain_EDIT OptionalPartitionSpec { parser.addTablePrimary($3); } - | HiveDesc OptionalHiveExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec + | 'DESCRIBE' OptionalHiveExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec { if (!$2) { parser.suggestKeywords(['EXTENDED', 'FORMATTED']); } } - | HiveDesc OptionalHiveExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec + | 'DESCRIBE' OptionalHiveExtendedOrFormatted 'CURSOR' SchemaQualifiedTableIdentifier OptionalPartitionSpec { if (!$2) { parser.suggestKeywords(['EXTENDED', 'FORMATTED']); } } - | HiveDesc OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier 'CURSOR' OptionalPartitionSpec + | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier 'CURSOR' OptionalPartitionSpec { parser.addTablePrimary($3); parser.suggestColumns(); @@ -1229,16 +1764,16 @@ HiveDescribeStatement_EDIT parser.suggestKeywords(['PARTITION']); } } - | HiveDesc OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain 'CURSOR' OptionalPartitionSpec + | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain 'CURSOR' OptionalPartitionSpec { if (!$6) { parser.suggestKeywords(['PARTITION']); } } - | HiveDesc OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec_EDIT - | HiveDesc OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT + | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier DerivedColumnChain OptionalPartitionSpec_EDIT + | 'DESCRIBE' OptionalHiveExtendedOrFormatted SchemaQualifiedTableIdentifier OptionalPartitionSpec_EDIT - | HiveDesc OptionalHiveExtendedOrFormatted 'CURSOR' + | 'DESCRIBE' OptionalHiveExtendedOrFormatted 'CURSOR' { if (!$2) { parser.suggestKeywords(['DATABASE', 'EXTENDED', 'FORMATTED', 'FUNCTION', 'SCHEMA']); @@ -1246,25 +1781,25 @@ HiveDescribeStatement_EDIT parser.suggestTables(); parser.suggestDatabases({ appendDot: true }); } - | HiveDesc DatabaseOrSchema OptionalHiveExtended DatabaseIdentifier_EDIT + | 'DESCRIBE' DatabaseOrSchema OptionalHiveExtended DatabaseIdentifier_EDIT { if (!$3) { parser.suggestKeywords(['EXTENDED']); } } - | HiveDesc DatabaseOrSchema OptionalHiveExtended 'CURSOR' DatabaseIdentifier + | 'DESCRIBE' DatabaseOrSchema OptionalHiveExtended 'CURSOR' DatabaseIdentifier { if (!$3) { parser.suggestKeywords(['EXTENDED']); } } - | HiveDesc 'FUNCTION' OptionalHiveExtended 'CURSOR' + | 'DESCRIBE' 'FUNCTION' OptionalHiveExtended 'CURSOR' { if (!$3) { parser.suggestKeywords(['EXTENDED']); } } - | HiveDesc 'FUNCTION' OptionalHiveExtended 'CURSOR' RegularIdentifier + | 'DESCRIBE' 'FUNCTION' OptionalHiveExtended 'CURSOR' RegularIdentifier { if (!$3) { parser.suggestKeywords(['EXTENDED']); @@ -1316,11 +1851,6 @@ ImpalaDescribeStatement_EDIT } ; - HiveDesc - : 'DESCRIBE' - | 'DESC' - ; - // ===================================== SELECT statement ===================================== QuerySpecification @@ -1517,11 +2047,11 @@ OptionalStraightJoin ; CommonTableExpression - : 'WITH' WithQueries -> $2 + : AnyWith WithQueries -> $2 ; CommonTableExpression_EDIT - : 'WITH' WithQueries_EDIT + : AnyWith WithQueries_EDIT ; WithQueries @@ -1990,17 +2520,15 @@ GroupByClause_EDIT OptionalHiveGroupingSetsCubeOrRollup : | HiveGroupingSets - | 'WITH' 'CUBE' - | 'WITH' 'ROLLUP' + | 'WITH' 'CUBE' + | 'WITH' 'ROLLUP' ; OptionalHiveGroupingSetsCubeOrRollup_EDIT : HiveGroupingSets_EDIT - | 'WITH' 'CURSOR' + | 'WITH' 'CURSOR' { - if (parser.isHive()) { - parser.suggestKeywords(['CUBE', 'ROLLUP']); - } + parser.suggestKeywords(['CUBE', 'ROLLUP']); } ; @@ -2417,16 +2945,14 @@ NonParenthesizedValueExpressionPrimary { // We need to handle arbitrary UDFs here instead of inside UserDefinedFunction or there will be a conflict // with columnReference for functions like: db.udf(foo) - var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); + var fn = $1.chain[$1.chain.length - 1].name.toLowerCase(); $1.lastLoc.type = 'function'; $1.lastLoc.function = fn; - if($1.lastLoc.location){ - $1.lastLoc.location = { - first_line: $1.lastLoc.location.first_line, - last_line: $1.lastLoc.location.last_line, - first_column: $1.lastLoc.location.first_column, - last_column: $1.lastLoc.location.last_column - 1 - } + $1.lastLoc.location = { + first_line: $1.lastLoc.location.first_line, + last_line: $1.lastLoc.location.last_line, + first_column: $1.lastLoc.location.first_column, + last_column: $1.lastLoc.location.last_column - 1 } if ($1.lastLoc !== $1.firstLoc) { $1.firstLoc.type = 'database'; @@ -2963,11 +3489,9 @@ TablePrimary }; if ($2) { - if($$.primary){ - $$.primary.alias = $2.alias; - parser.addTablePrimary({ subQueryAlias: $2.alias }); - parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); - } + $$.primary.alias = $2.alias; + parser.addTablePrimary({ subQueryAlias: $2.alias }); + parser.addSubqueryAliasLocation($2.location, $2.alias, $1.identifierChain); } var keywords = []; @@ -3134,12 +3658,10 @@ TableSubQueryInner : PushQueryState SubQuery { var subQuery = parser.getSubQuery($2); - if(subQuery){ - subQuery.columns.forEach(function (column) { - parser.expandIdentifierChain({ wrapper: column }); - delete column.linked; + subQuery.columns.forEach(function (column) { + parser.expandIdentifierChain({ wrapper: column }); + delete column.linked; }); - } parser.popQueryState(subQuery); $$ = subQuery; } @@ -3208,12 +3730,16 @@ SimpleTable_EDIT OptionalCorrelationName : | RegularOrBacktickedIdentifier -> { alias: $1, location: @1 } + | QuotedValue -> { alias: $1, location: @1 } | AnyAs RegularOrBacktickedIdentifier -> { alias: $2, location: @2 } + | AnyAs QuotedValue -> { alias: $2, location: @2 } ; OptionalCorrelationName_EDIT : PartialBacktickedIdentifier + | QuotedValue_EDIT | AnyAs PartialBacktickedIdentifier + | AnyAs QuotedValue_EDIT | AnyAs 'CURSOR' ; @@ -3312,17 +3838,12 @@ ArbitraryFunctionName | 'MAP' | 'REPLACE' | 'TRUNCATE' - | 'LEFT' + | 'USER' ; -OptionalFunctionSquareBracket - : HiveOrImpalaLeftSquareBracket ValueExpression HiveOrImpalaRightSquareBracket - | HiveOrImpalaLeftSquareBracket HiveOrImpalaRightSquareBracket - | -; ArbitraryFunctionRightPart - : '(' ')' OptionalFunctionSquareBracket - | '(' ValueExpressionList ')' OptionalFunctionSquareBracket -> { expression: $2 } + : '(' ')' + | '(' ValueExpressionList ')' -> { expression: $2 } ; ArbitraryFunctionRightPart_EDIT @@ -3386,10 +3907,13 @@ OptionalOverClause_EDIT OverClause : 'OVER' RegularOrBacktickedIdentifier | 'OVER' WindowExpression + | 'OVER' RegularOrBacktickedIdentifier + | 'OVER' WindowExpression ; OverClause_EDIT : 'OVER' WindowExpression_EDIT + | 'OVER' WindowExpression_EDIT ; WindowExpression diff --git a/src/jison/sql_set.jison b/src/jison/sql_set.jison old mode 100755 new mode 100644 diff --git a/src/jison/sql_show.jison b/src/jison/sql_show.jison old mode 100755 new mode 100644 index 19d96b9..a5ddc4b --- a/src/jison/sql_show.jison +++ b/src/jison/sql_show.jison @@ -56,7 +56,7 @@ ShowStatement_EDIT if (parser.isHive()) { parser.suggestKeywords(['COLUMNS', 'COMPACTIONS', 'CONF', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FORMATTED', 'FUNCTIONS', 'GRANT', 'INDEX', 'INDEXES', 'LOCKS', 'PARTITIONS', 'PRINCIPALS', 'ROLE GRANT', 'ROLES', 'SCHEMAS', 'TABLE EXTENDED', 'TABLES', 'TBLPROPERTIES', 'TRANSACTIONS', 'VIEWS']); } else if (parser.isImpala()) { - parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); + parser.suggestKeywords(['AGGREGATE FUNCTIONS', 'ANALYTIC FUNCTIONS', 'COLUMN STATS', 'CREATE TABLE', 'CURRENT ROLES', 'CREATE VIEW', 'DATABASES', 'FILES IN', 'FUNCTIONS', 'GRANT ROLE', 'GRANT USER', 'PARTITIONS', 'RANGE PARTITIONS', 'ROLE GRANT GROUP', 'ROLES', 'SCHEMAS', 'TABLE STATS', 'TABLES']); } else { parser.suggestKeywords(['COLUMNS', 'DATABASES', 'TABLES']); } @@ -64,13 +64,13 @@ ShowStatement_EDIT | AnyShow 'CURSOR' RegularOrBackTickedSchemaQualifiedName { // ROLES is considered a non-reserved keywords so we can't match it in ShowCurrentRolesStatement_EDIT - if ($3.identifierChain && $3.identifierChain.length === 1 && $3.identifierChain[0].name.toLowerCase() === 'roles') { + if (!parser.isImpala() && $3.identifierChain && $3.identifierChain.length === 1 && $3.identifierChain[0].name.toLowerCase() === 'roles') { parser.suggestKeywords(['CURRENT']); parser.yy.locations.pop(); } else { parser.addTablePrimary($3); if (parser.isImpala()) { - parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); + parser.suggestKeywords(['COLUMN STATS', 'CREATE TABLE', 'CREATE VIEW', 'FILES IN', 'PARTITIONS', 'RANGE PARTITIONS', 'TABLE STATS']); } } } @@ -233,6 +233,10 @@ ShowCurrentRolesStatement_EDIT { parser.suggestKeywords([ 'ROLES' ]); } + | AnyShow 'CURSOR' 'ROLES' + { + parser.suggestKeywords([ 'CURRENT' ]); + } ; ShowDatabasesStatement @@ -327,9 +331,16 @@ ShowFunctionsStatement_EDIT ShowGrantStatement : AnyShow 'GRANT' OptionalPrincipalName | AnyShow 'GRANT' OptionalPrincipalName 'ON' 'ALL' - | AnyShow 'GRANT' OptionalPrincipalName 'ON' RegularOrBacktickedIdentifier - | AnyShow 'GRANT' OptionalPrincipalName 'ON' AnyTable RegularOrBacktickedIdentifier - | AnyShow 'GRANT' 'ROLE' RegularOrBacktickedIdentifier + | AnyShow 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier + | AnyShow 'GRANT' OptionalPrincipalName 'ON' AnyTable SchemaQualifiedTableIdentifier + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'DATABASE' RegularOrBacktickedIdentifier + { + parser.addDatabaseLocation(@7, [ { name: $7 } ]); + } + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'SERVER' + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' SchemaQualifiedTableIdentifier + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'URI' RegularOrBacktickedIdentifier ; ShowGrantStatement_EDIT @@ -343,18 +354,42 @@ ShowGrantStatement_EDIT parser.suggestKeywords(['ALL', 'TABLE']); parser.suggestTables(); } + | AnyShow 'GRANT' OptionalPrincipalName 'ON' SchemaQualifiedTableIdentifier_EDIT | AnyShow 'GRANT' OptionalPrincipalName 'ON' AnyTable 'CURSOR' { parser.suggestTables(); } - | AnyShow 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' RegularOrBacktickedIdentifier + | AnyShow 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier { parser.suggestKeywords(['TABLE']); } + | AnyShow 'GRANT' OptionalPrincipalName 'ON' 'CURSOR' SchemaQualifiedTableIdentifier_EDIT | AnyShow 'GRANT' 'CURSOR' { - parser.suggestKeywords(['ROLE']); + parser.suggestKeywords(['ROLE', 'USER']); } + | AnyShow 'GRANT' ImpalaRoleOrUser 'CURSOR' + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'CURSOR' + { + parser.suggestKeywords(['ON DATABASE', 'ON SERVER', 'ON TABLE', 'ON URI']); + } + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'CURSOR' + { + parser.suggestKeywords(['DATABASE', 'SERVER', 'TABLE', 'URI']); + } + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'DATABASE' 'CURSOR' + { + parser.suggestDatabases(); + } + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' 'CURSOR' + { + parser.suggestDatabases({ + appendDot: true + }); + parser.suggestTables(); + } + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'TABLE' SchemaQualifiedTableIdentifier_EDIT + | AnyShow 'GRANT' ImpalaRoleOrUser RegularOrBacktickedIdentifier 'ON' 'URI' 'CURSOR' ; OptionalPrincipalName diff --git a/src/jison/sql_update.jison b/src/jison/sql_update.jison old mode 100755 new mode 100644 diff --git a/src/jison/sql_use.jison b/src/jison/sql_use.jison old mode 100755 new mode 100644 diff --git a/src/jison/sql_valueExpression.jison b/src/jison/sql_valueExpression.jison old mode 100755 new mode 100644 diff --git a/src/jison/syntax_footer.jison b/src/jison/syntax_footer.jison old mode 100755 new mode 100644 index 6f568d3..ec25eab --- a/src/jison/syntax_footer.jison +++ b/src/jison/syntax_footer.jison @@ -15,4 +15,5 @@ // limitations under the License. %% -SqlParseSupport.initSyntaxParser(parser); + +SqlParseSupport.initSyntaxParser(parser); \ No newline at end of file diff --git a/src/jison/syntax_header.jison b/src/jison/syntax_header.jison old mode 100755 new mode 100644 diff --git a/src/lib/parser.ts b/src/lib/parser.ts index 7d41f57..9391a3e 100644 --- a/src/lib/parser.ts +++ b/src/lib/parser.ts @@ -1,7 +1,45 @@ // import * as sqlSyntaxParser from '../core/sqlSyntaxParser'; -import * as sqlSyntaxParser from '../core/sqlSyntaxParser'; -import * as sqlAutoCompleteParser from '../core/sqlAutoCompleteParser'; +import hiveSyntaxParser from '../core/parse/hive/hiveSyntaxParser'; +import hiveAutoCompleteParser from '../core/parse/hive/hiveAutocompleteParser'; +import impalaSyntaxParser from '../core/parse/impala/impalaSyntaxParser'; +import impalaAutoCompleteParser from '../core/parse/impala/impalaAutocompleteParser'; +import genericSyntaxParser from '../core/parse/generic/genericSyntaxParser'; +import genericAutocompleteParser from '../core/parse/generic/genericAutocompleteParser'; +import { SyntaxParser, SyntaxResult } from '../core/sqlSyntaxParser'; +import { CompleteParser, CompleteResult } from '../core/sqlAutoCompleteParser'; +function getSyntaxParser (type: sqlType): any { + switch (type) { + case sqlType.Hive: { + return hiveSyntaxParser; + } + case sqlType.Impala: { + return impalaSyntaxParser; + } + case sqlType.None: { + return genericSyntaxParser; + } + default: { + return hiveSyntaxParser; + } + } +} +function getAutoCompleteParser (type: sqlType): any { + switch (type) { + case sqlType.Hive: { + return hiveAutoCompleteParser; + } + case sqlType.Impala: { + return impalaAutoCompleteParser; + } + case sqlType.None: { + return genericAutocompleteParser; + } + default: { + return hiveAutoCompleteParser; + } + } +} enum sqlType { Hive = 'hive', None = 'sql', @@ -20,17 +58,20 @@ function sqlToParserArgs (sql: sql) { /** * 校验语法 */ -function parseSyntax(sql: sql, type:sqlType = sqlType.Hive): sqlSyntaxParser.SyntaxResult | false { +function parseSyntax(sql: sql, type:sqlType = sqlType.Hive): SyntaxResult | false { const parserArgs = sqlToParserArgs(sql); - return sqlSyntaxParser.parser.parseSyntax(parserArgs[0], parserArgs[1], type, false) + console.log( + getSyntaxParser(type) + ) + return (getSyntaxParser(type) as SyntaxParser).parseSyntax(parserArgs[0], parserArgs[1], type, false) } /** * 自动补全提示 */ -function parserSql(sql: sql, type: sqlType = sqlType.Hive): sqlAutoCompleteParser.CompleteResult { +function parserSql(sql: sql, type: sqlType = sqlType.Hive): CompleteResult { const parserArgs = sqlToParserArgs(sql); - return sqlAutoCompleteParser.parser.parseSql(parserArgs[0], parserArgs[1], type, false) + return (getAutoCompleteParser(type) as CompleteParser).parseSql(parserArgs[0], parserArgs[1], type, false) } export { diff --git a/src/scripts/generateParsers.js b/src/scripts/generateParsers.js new file mode 100644 index 0000000..fceb0d4 --- /dev/null +++ b/src/scripts/generateParsers.js @@ -0,0 +1,571 @@ + +const fs = require('fs'); +const path = require('path'); +const exec = require('child_process').exec; + +const LICENSE = + '// Licensed to Cloudera, Inc. under one\n' + + '// or more contributor license agreements. See the NOTICE file\n' + + '// distributed with this work for additional information\n' + + '// regarding copyright ownership. Cloudera, Inc. licenses this file\n' + + '// to you under the Apache License, Version 2.0 (the\n' + + '// "License"); you may not use this file except in compliance\n' + + '// with the License. You may obtain a copy of the License at\n' + + '//\n' + + '// http://www.apache.org/licenses/LICENSE-2.0\n' + + '//\n' + + '// Unless required by applicable law or agreed to in writing, software\n' + + '// distributed under the License is distributed on an "AS IS" BASIS,\n' + + '// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n' + + '// See the License for the specific language governing permissions and\n' + + '// limitations under the License.\n'; + +const SQL_STATEMENTS_PARSER_JSDOC = + '/**\n' + + ' * @param {string} input\n' + + ' *\n' + + ' * @return {SqlStatementsParserResult}\n' + + ' */\n'; + +const PARSER_FOLDER = path.join(process.cwd(), 'src/core/parse/'); +const JISON_FOLDER = path.join(process.cwd(), 'src/jison/'); +const SQL_PARSER_REPOSITORY_PATH = path.join(PARSER_FOLDER, 'sqlParserRepository.js'); +const SYNTAX_PARSER_IMPORT_TEMPLATE = + ' KEY: require("KEY/KEYSyntaxParser")'; +const AUTOCOMPLETE_PARSER_IMPORT_TEMPLATE = + ' KEY: require("KEY/KEYAutocompleteParser")'; + +const parserDefinitions = { + globalSearchParser: { + sources: [path.join(JISON_FOLDER, 'globalSearchParser.jison')], + target: path.join(JISON_FOLDER ,'globalSearchParser.jison'), + outputFolder: PARSER_FOLDER, + afterParse: contents => + new Promise(resolve => { + resolve( + LICENSE + + contents.replace( + 'var globalSearchParser = ', + "import SqlParseSupport from './sqlParseSupport';\n\nvar globalSearchParser = " + ) + + '\nexport default globalSearchParser;\n' + ); + }) + }, + solrFormulaParser: { + sources: [path.join(JISON_FOLDER, 'solrFormulaParser.jison')], + target: path.join(JISON_FOLDER, 'solrFormulaParser.jison'), + outputFolder: PARSER_FOLDER, + afterParse: contents => + new Promise(resolve => { + resolve(LICENSE + contents + 'export default solrFormulaParser;\n'); + }) + }, + solrQueryParser: { + sources: [path.join(JISON_FOLDER, 'solrQueryParser.jison')], + target: path.join(JISON_FOLDER, 'solrQueryParser.jison'), + outputFolder: PARSER_FOLDER, + afterParse: contents => + new Promise(resolve => { + resolve(LICENSE + contents + 'export default solrQueryParser;\n'); + }) + }, + sqlStatementsParser: { + sources: [path.join(JISON_FOLDER, 'sqlStatementsParser.jison')], + target: path.join(JISON_FOLDER, 'sqlStatementsParser.jison'), + outputFolder: PARSER_FOLDER, + afterParse: contents => + new Promise(resolve => { + resolve( + LICENSE + + contents.replace( + 'parse: function parse', + SQL_STATEMENTS_PARSER_JSDOC + 'parse: function parse' + ) + + 'export default sqlStatementsParser;\n' + ); + }) + } +}; + +const mkdir = path => + new Promise((resolve, reject) => { + if (fs.existsSync(path)) { + resolve(); + } else { + fs.mkdir(path, err => { + if (err) { + reject(err); + } + resolve(); + }); + } + }); + +const readFile = path => + new Promise((resolve, reject) => { + fs.readFile(path, (err, buf) => { + if (err) { + reject(err); + } + resolve(buf ? buf.toString() : ''); + }); + }); + +const writeFile = (path, contents) => + new Promise((resolve, reject) => { + fs.writeFile(path, contents, err => { + if (err) { + reject(); + } + resolve(); + }); + }); + +const copyFile = (source, destination, contentsCallback) => + new Promise((resolve, reject) => { + readFile(source) + .then(contents => { + writeFile(destination, contentsCallback ? contentsCallback(contents) : contents) + .then(resolve) + .catch(reject); + }) + .catch(reject); + }); + +const deleteFile = path => { + fs.unlinkSync(path); +}; + +const execCmd = cmd => + new Promise((resolve, reject) => { + exec(cmd, (err, stdout, stderr) => { + if (err) { + reject('stderr:\n' + stderr + '\n\nstdout:\n' + stdout); + } + resolve(stdout); + }); + }); + +const generateParser = parserName => + new Promise((resolve, reject) => { + const parserConfig = parserDefinitions[parserName]; + + /** + * 合并jison文件,生成待编译文件 + */ + const concatPromise = new Promise((resolve, reject) => { + if (parserConfig.sources.length > 1 && parserConfig.target) { + console.log('Concatenating files...'); + const promises = parserConfig.sources.map(fileName => readFile(fileName)); + + Promise.all(promises) + .then(contents => { + writeFile(parserConfig.target, contents.join('')).then(() => { + resolve(parserConfig.target); + }); + }) + .catch(reject); + } else if (parserConfig.sources.length === 1) { + resolve(parserConfig.sources[0]); + } else { + reject('No jison source specified'); + } + }); + + concatPromise + .then(targetPath => { + console.log(`Generate precomplier jison success(${targetPath})...`); + let jisonCommand = 'jison ' + targetPath; + if (parserConfig.lexer) { + jisonCommand += ' ' + parserConfig.lexer; + } + jisonCommand += ' -m js'; + console.log('Generating parser...'); + execCmd(jisonCommand) + .then(stdout => { + if (/\S/.test(stdout)) { + console.log('got output for: ' + jisonCommand); + console.log(stdout); + } + if (parserConfig.sources.length > 1) { + deleteFile(targetPath); // Remove concatenated file + } + console.log('Adjusting JS...'); + /** + * 删除生成文件,复制到配置的文件夹中 + */ + const generatedJsFileName = parserConfig.target + .replace('.jison', '.js') + .replace(/^.*\/([^/]+)$/, '$1'); + readFile(generatedJsFileName) + .then(contents => { + parserConfig + .afterParse(contents) + .then(finalContents => { + writeFile(path.join(parserConfig.outputFolder, generatedJsFileName), finalContents) + .then(() => { + deleteFile(generatedJsFileName); + resolve(); + }) + .catch(reject); + }) + .catch(reject); + }) + .catch(reject); + }) + .catch(reject); + }) + .catch(reject); + }); + +let parsersToGenerate = []; +const invalid = []; + +let all = false; + +const listDir = folder => + new Promise(resolve => { + fs.readdir(folder, (err, files) => { + resolve(files); + }); + }); +/** + * 构造,添加子语言模块编译配置 + * @param {*} fileIndex 文件的存在表 + * @param {*} folder 对应的子语言文件夹 + * @param {*} sharedFiles 子语言核心jison文件 + * @param {*} autocomplete 是否为补全文件 + */ +const findParser = (fileIndex, folder, sharedFiles, autocomplete) => { + const prefix = autocomplete ? 'autocomplete' : 'syntax'; + if (fileIndex[prefix + '_header.jison'] && fileIndex[prefix + '_footer.jison']) { + const parserName = folder + (autocomplete ? 'AutocompleteParser' : 'SyntaxParser'); + const parserDefinition = { + sources: [path.join(JISON_FOLDER, 'sql', folder, prefix + '_header.jison')].concat(sharedFiles), + lexer: path.join(JISON_FOLDER, 'sql', folder, '/sql.jisonlex'), + target: path.join(JISON_FOLDER, 'sql', folder, parserName + '.jison'), + sqlParser: autocomplete ? 'AUTOCOMPLETE' : 'SYNTAX', + outputFolder: path.join(PARSER_FOLDER, folder), + afterParse: contents => + new Promise(resolve => { + resolve( + LICENSE + + contents + .replace( + 'var ' + parserName + ' = ', + "import SqlParseSupport from " + + "'./sqlParseSupport';\n\nvar " + + parserName + + ' = ' + ) + .replace( + 'loc: yyloc,', + "loc: lexer.yylloc, ruleId: stack.slice(stack.length - 2, stack.length).join('')," + ) + + '\nexport default ' + + parserName + + ';\n' + ); + }) + }; + + parserDefinition.sources.push(path.join(JISON_FOLDER, 'sql', folder, prefix + '_footer.jison')); + parserDefinitions[parserName] = parserDefinition; + } else { + console.log( + "Warn: Could not find '" + + prefix + + "_header.jison' or '" + + prefix + + "_footer.jison' in " + + JISON_FOLDER + + 'sql/' + + folder + + '/' + ); + } +}; + +/** + * 添加所有子语言编译配置 + */ +const identifySqlParsers = () => + new Promise(resolve => { + listDir(JISON_FOLDER + 'sql').then(files => { + const promises = []; + files.forEach(folder => { + const subLanguageJisonFolder = path.join(JISON_FOLDER, 'sql', folder); + promises.push( + /** + * 遍历具体的语言目录 + */ + + listDir(subLanguageJisonFolder).then(jisonFiles => { + /** + * 文件目录记录表 + */ + const fileIndex = {}; + jisonFiles.forEach(jisonFile => { + fileIndex[jisonFile] = true; + }); + + /** + * 挑选核心的jison文件(剥除autocomplate,syntax的功能文件) + */ + const sharedFiles = jisonFiles + .filter(jisonFile => jisonFile.indexOf('sql_') !== -1) + .map(jisonFile => path.join(subLanguageJisonFolder, jisonFile)); + + if (fileIndex['sql.jisonlex']) { + /** + * 添加子语言自动补全编译配置 + * 加入了error.jison,为了在校验失败的情况下也能够提示? + */ + findParser(fileIndex, folder, sharedFiles, true); + /** + * 添加子语言语法检查配置 + */ + findParser( + fileIndex, + folder, + sharedFiles.filter(path => path.indexOf('_error.jison') === -1), + false + ); + } else { + console.log( + "Warn: Could not find 'sql.jisonlex' in " + JISON_FOLDER + 'sql/' + folder + '/' + ); + } + }) + ); + }); + Promise.all(promises).then(resolve); + }); + }); + +const copyTests = (source, target) => + new Promise((resolve, reject) => { + const replaceRegexp = new RegExp(source + '(Autocomplete|Syntax)Parser', 'g'); + mkdir(PARSER_FOLDER + target) + .then(() => { + mkdir(PARSER_FOLDER + target + '/test') + .then(() => { + listDir(PARSER_FOLDER + source + '/test') + .then(testFiles => { + const copyPromises = []; + testFiles.forEach(testFile => { + copyPromises.push( + copyFile( + PARSER_FOLDER + source + '/test/' + testFile, + PARSER_FOLDER + target + '/test/' + testFile.replace(source, target), + contents => contents.replace(replaceRegexp, target + '$1Parser') + ) + ); + }); + Promise.all(copyPromises) + .then(resolve) + .catch(reject); + }) + .catch(reject); + }) + .catch(reject); + }) + .catch(reject); + }); + + /** + * 校验,配置自定义语言 + */ +const prepareForNewParser = () => + new Promise((resolve, reject) => { + /** + * 根据一个子语言文件夹来生成一个特殊sql名字的语法文件 + * -new generic postgresql + * 根据generic文件夹生成postgresql语法文件 + */ + if (process.argv.length === 3 && process.argv[0] === '-new') { + process.argv.shift(); + const source = process.argv.shift(); + const target = process.argv.shift(); + console.log("Generating new parser '" + target + "' based on '" + source + "'..."); + process.argv.push(target); + + if ( + !Object.keys(parserDefinitions).some(key => { + if (key.indexOf(source) === 0) { + copyTests(source, target) + .then(() => { + mkdir(JISON_FOLDER + 'sql/' + target) + .then(() => { + listDir(JISON_FOLDER + 'sql/' + source).then(files => { + const copyPromises = []; + files.forEach(file => { + copyPromises.push( + copyFile( + JISON_FOLDER + 'sql/' + source + '/' + file, + JISON_FOLDER + 'sql/' + target + '/' + file + ) + ); + }); + Promise.all(copyPromises).then(() => { + const autocompleteSources = [ + 'sql/' + target + '/autocomplete_header.jison' + ]; + const syntaxSources = ['sql/' + target + '/syntax_header.jison']; + + files.forEach(file => { + if (file.indexOf('sql_') === 0) { + autocompleteSources.push('sql/' + target + '/' + file); + syntaxSources.push('sql/' + target + '/' + file); + } + }); + autocompleteSources.push('sql/' + target + '/autocomplete_footer.jison'); + syntaxSources.push('sql/' + target + '/syntax_footer.jison'); + mkdir('desktop/core/src/desktop/js/parse/sql/' + target).then(() => { + copyFile( + 'desktop/core/src/desktop/js/parse/sql/' + + source + + '/sqlParseSupport.js', + 'desktop/core/src/desktop/js/parse/sql/' + + target + + '/sqlParseSupport.js', + contents => + contents.replace( + /parser\.yy\.activeDialect = '[^']+';'/g, + "parser.yy.activeDialect = '" + target + "';" + ) + ).then(() => { + identifySqlParsers() + .then(resolve) + .catch(reject); + }); + }); + }); + }); + }) + .catch(err => { + console.log(err); + }); + }) + .catch(reject); + return true; + } + }) + ) { + reject("No existing parser found for '" + source + "'"); + } + } else { + resolve(); + } + }); + +identifySqlParsers().then(() => { + process.argv.shift(); + process.argv.shift(); + console.log('Generate sub language success...'); + prepareForNewParser().then(() => { + console.log('Generate custom language success...'); + process.argv.forEach(arg => { + if (arg === 'all') { + /** + * 编译全部 + */ + all = true; + } else if (parserDefinitions[arg]) { + /** + * 特点编译目标 + */ + parsersToGenerate.push(arg); + } else { + /** + * 根据关键字匹配编译目标 + */ + let prefixFound = false; + Object.keys(parserDefinitions).forEach(key => { + if (key.indexOf(arg) === 0) { + prefixFound = true; + parsersToGenerate.push(key); + } + }); + if (!prefixFound) { + invalid.push(arg); + } + } + }); + + if (all) { + parsersToGenerate = Object.keys(parserDefinitions); + } + + if (invalid.length) { + console.log("No parser config found for: '" + invalid.join("', '") + "'"); + console.log( + '\nPossible options are:\n ' + + ['all'].concat(Object.keys(parserDefinitions)).join('\n ') + + '\n' + ); + return; + } + + const parserCount = parsersToGenerate.length; + let idx = 0; + /** + * 执行编译 + */ + const generateRecursive = () => { + idx++; + if (parsersToGenerate.length) { + const parserName = parsersToGenerate.pop(); + if (parserCount > 1) { + console.log("Generating '" + parserName + "' (" + idx + '/' + parserCount + ')...'); + } else { + console.log("Generating '" + parserName + "'..."); + } + generateParser(parserName) + .then(generateRecursive) + .catch(error => { + console.log(error); + console.log('FAIL!'); + }); + } else { + const autocompParsers = []; + const syntaxParsers = []; + console.log('Updating sqlParserRepository.js...'); + Object.keys(parserDefinitions).forEach(key => { + if (parserDefinitions[key].sqlParser === 'AUTOCOMPLETE') { + autocompParsers.push( + AUTOCOMPLETE_PARSER_IMPORT_TEMPLATE.replace( + /KEY/g, + key.replace('AutocompleteParser', '') + ) + ); + } else if (parserDefinitions[key].sqlParser === 'SYNTAX') { + syntaxParsers.push( + SYNTAX_PARSER_IMPORT_TEMPLATE.replace(/KEY/g, key.replace('SyntaxParser', '')) + ); + } + }); + readFile(SQL_PARSER_REPOSITORY_PATH).then(contents => { + contents = contents.replace( + /const SYNTAX_MODULES = [^}]+}/, + 'const SYNTAX_MODULES = {\n' + syntaxParsers.sort().join(',\n') + '\n}' + ); + contents = contents.replace( + /const AUTOCOMPLETE_MODULES = [^}]+}/, + 'const AUTOCOMPLETE_MODULES = {\n' + autocompParsers.sort().join(',\n') + '\n}' + ); + writeFile(SQL_PARSER_REPOSITORY_PATH, contents).then(() => { + console.log('Done!\n'); + }); + }); + } + }; + /** + * 集中精力办大事 + */ + generateRecursive(); + }); +}); + +/* eslint-enable no-restricted-syntax */ diff --git a/test/index.test.ts b/test/index.test.ts index 4ecf7cc..be8f08d 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -8,7 +8,7 @@ const flinksqlParser = dtSqlParser.flinksqlParser; describe('complete test', () => { describe('hive', () => { test('complete result', () => { - const sql = 'select id,name from user '; + const sql = 'select id,name from `user` ;'; const result = parser.parserSql([sql, ''], dtSqlParser.parser.sqlType.Hive); expect(result.locations).toBeInstanceOf(Array); expect(result.suggestKeywords).toBeInstanceOf(Array); @@ -26,12 +26,12 @@ describe('complete test', () => { describe('syntax test', () => { describe('impala', () => { test('no error', () => { - const sql = 'select id,name from user '; + const sql = 'select id,name from user1 '; const result = parser.parseSyntax([sql, ''], dtSqlParser.parser.sqlType.Impala); expect(result).toBe(false); }); test('insert', () => { - const sql = `insert into user (id, name) values (1 ,'a')`; + const sql = `insert into user1 (id, name) values (1 ,'a')`; const result = parser.parseSyntax([sql, ''], dtSqlParser.parser.sqlType.Impala); expect(result).toBe(false); }); @@ -61,7 +61,7 @@ describe('syntax test', () => { }); describe('hive', () => { test('no error', () => { - const sql = 'select id,name from user '; + const sql = 'select id,name from user1 '; const result = parser.parseSyntax([sql, ''], dtSqlParser.parser.sqlType.Hive); expect(result).toBe(false); }); @@ -93,7 +93,7 @@ describe('syntax test', () => { }) describe('flinksql', () => { test('no error', () => { - const sql = `select id from user.id;`; + const sql = `select id from use1r.id;`; const result = flinksqlParser(sql); expect(result).toBeNull(); }); @@ -126,14 +126,14 @@ describe('syntax test', () => { expect(result).toBeNull(); }); test('syntax error', () => { - const sql = 'select id from user.id; \nselect id from us*er.id; \nselect id from *user.id;'; + const sql = 'select id from us1er.id; \nselect id from us*er.id; \nselect id from *u1ser.id;'; const result = flinksqlParser(sql); expect(result).toMatchObject({ line: 2, column: 17, }); - expect(result.token.start).toBe(42); - expect(result.token.stop).toBe(42); + expect(result.token.start).toBe(43); + expect(result.token.stop).toBe(43); const sql2 = `CREATE TABLE MyTable( message.after.id int AS id, message.after.userid varchar AS userid,